diff options
Diffstat (limited to 'src/FbTk/Menu.cc')
-rw-r--r-- | src/FbTk/Menu.cc | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/FbTk/Menu.cc b/src/FbTk/Menu.cc index 4dbb48c..8dddc16 100644 --- a/src/FbTk/Menu.cc +++ b/src/FbTk/Menu.cc | |||
@@ -91,6 +91,12 @@ Menu* s_focused = 0; // holds currently focused menu | |||
91 | Menu* Menu::shownMenu() { return s_shown; } | 91 | Menu* Menu::shownMenu() { return s_shown; } |
92 | Menu* Menu::focused() { return s_focused; } | 92 | Menu* Menu::focused() { return s_focused; } |
93 | 93 | ||
94 | void Menu::hideShownMenu() { | ||
95 | if (s_shown) | ||
96 | s_shown->hide(); | ||
97 | } | ||
98 | |||
99 | |||
94 | Menu::Menu(FbTk::ThemeProxy<MenuTheme> &tm, ImageControl &imgctrl): | 100 | Menu::Menu(FbTk::ThemeProxy<MenuTheme> &tm, ImageControl &imgctrl): |
95 | m_theme(tm), | 101 | m_theme(tm), |
96 | m_parent(0), | 102 | m_parent(0), |
@@ -240,6 +246,18 @@ int Menu::insertItem(MenuItem *item, int pos) { | |||
240 | return m_items.size(); | 246 | return m_items.size(); |
241 | } | 247 | } |
242 | 248 | ||
249 | |||
250 | int Menu::findSubmenuIndex(const FbTk::Menu* submenu) const { | ||
251 | size_t i; | ||
252 | for (i = 0; i < m_items.size(); i++) { | ||
253 | if (m_items[i]->submenu() == submenu) { | ||
254 | return i; | ||
255 | } | ||
256 | } | ||
257 | return -1; | ||
258 | } | ||
259 | |||
260 | |||
243 | void Menu::fixMenuItemIndices() { | 261 | void Menu::fixMenuItemIndices() { |
244 | for (size_t i = 0; i < m_items.size(); i++) | 262 | for (size_t i = 0; i < m_items.size(); i++) |
245 | m_items[i]->setIndex(i); | 263 | m_items[i]->setIndex(i); |
@@ -1391,9 +1409,5 @@ void Menu::drawLine(int index, int size){ | |||
1391 | item->drawLine(m_frame, theme(), size, item_x, item_y, m_item_w); | 1409 | item->drawLine(m_frame, theme(), size, item_x, item_y, m_item_w); |
1392 | } | 1410 | } |
1393 | 1411 | ||
1394 | void Menu::hideShownMenu() { | ||
1395 | if (s_shown) | ||
1396 | s_shown->hide(); | ||
1397 | } | ||
1398 | 1412 | ||
1399 | } // end namespace FbTk | 1413 | } // end namespace FbTk |