From b0d9aa11246fc23f8296d25dfc9f72310a93f614 Mon Sep 17 00:00:00 2001 From: fluxgen <fluxgen> Date: Fri, 24 Jan 2003 12:19:15 +0000 Subject: fixed minor style issues --- src/FbTk/Menu.cc | 52 ++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 14 deletions(-) diff --git a/src/FbTk/Menu.cc b/src/FbTk/Menu.cc index d6851cb..29d60d4 100644 --- a/src/FbTk/Menu.cc +++ b/src/FbTk/Menu.cc @@ -22,7 +22,7 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Menu.cc,v 1.6 2003/01/13 03:04:47 fluxgen Exp $ +// $Id: Menu.cc,v 1.7 2003/01/24 12:19:15 fluxgen Exp $ //use GNU extensions #ifndef _GNU_SOURCE @@ -248,12 +248,15 @@ void Menu::enableTitle() { } void Menu::update() { - + if (menu.bevel_w > 10) // clamp to "normal" size + menu.bevel_w = 10; + if (m_border_width > 20) + m_border_width = 20; + menu.item_h = m_theme.frameFont().height() + menu.bevel_w; menu.title_h = m_theme.frameFont().height() + menu.bevel_w*2; - - if (title_vis) { + if (title_vis) { menu.item_w = m_theme.titleFont().textWidth(menu.label.c_str(), menu.label.size()); menu.item_w += (menu.bevel_w * 2); @@ -281,8 +284,9 @@ void Menu::update() { menu.sublevels = 1; while (menu.item_h * (menuitems.size() + 1) / menu.sublevels + - menu.title_h + m_border_width > m_screen_height) + menu.title_h + m_border_width > m_screen_height) { menu.sublevels++; + } if (menu.sublevels < menu.minsub) menu.sublevels = menu.minsub; @@ -298,7 +302,7 @@ void Menu::update() { if (! menu.width) menu.width = menu.item_w; menu.frame_h = (menu.item_h * menu.persub); - menu.height = ((title_vis) ? menu.title_h + m_border_width : 0) + + menu.height = ((title_vis) ? menu.title_h + menu.title.borderWidth() : 0) + menu.frame_h; if (! menu.frame_h) menu.frame_h = 1; if (menu.height < 1) menu.height = 1; @@ -359,11 +363,13 @@ void Menu::update() { menu.window.resize(menu.width, menu.height); - if (title_vis) - menu.title.resize(menu.width, menu.title_h); + if (title_vis) { + menu.title.moveResize(-menu.title.borderWidth(), -menu.title.borderWidth(), + menu.width + menu.title.borderWidth(), menu.title_h); + } - menu.frame.moveResize(0, ((title_vis) ? menu.title_h + m_border_width : 0), - menu.width, menu.frame_h); + menu.frame.moveResize(0, ((title_vis) ? menu.title.y() + menu.title.height() + menu.title.borderWidth()*2 : 0), + menu.window.width(), menu.frame_h); menu.window.clear(); menu.title.clear(); menu.frame.clear(); @@ -497,7 +503,7 @@ void Menu::drawSubmenu(unsigned int index) { if (m_alignment == ALIGNTOP) { y = (((shifted) ? menu.y_shift : menu.y) + - ((title_vis) ? menu.title_h + m_border_width : 0) - + ((title_vis) ? menu.title_h + menu.title.borderWidth() : 0) - ((item->submenu()->title_vis) ? item->submenu()->menu.title_h + menu.window.borderWidth() : 0)); } else { @@ -1006,11 +1012,29 @@ void Menu::leaveNotifyEvent(XCrossingEvent &ce) { void Menu::reconfigure() { + menu.bevel_w = m_theme.bevelWidth(); + m_border_width = m_theme.borderWidth(); + if (menu.bevel_w > 10) // clamp to "normal" size + menu.bevel_w = 10; + if (menu.bevel_w < 0) + menu.bevel_w = 1; + if (m_border_width > 20) // clamp to normal size + m_border_width = 20; + if (m_border_width < 0) + m_border_width = 0; + menu.window.setBackgroundColor(m_theme.borderColor()); + menu.title.setBackgroundColor(m_theme.borderColor()); + menu.frame.setBackgroundColor(m_theme.borderColor()); + menu.window.setBorderColor(m_theme.borderColor()); - menu.window.setBorderWidth(m_theme.borderWidth()); - menu.bevel_w = m_theme.bevelWidth(); - m_border_width = menu.window.borderWidth(); + menu.title.setBorderColor(m_theme.borderColor()); + menu.frame.setBorderColor(m_theme.borderColor()); + + menu.window.setBorderWidth(m_border_width); + menu.title.setBorderWidth(m_border_width); + + update(); } -- cgit v0.11.2