diff options
Diffstat (limited to 'src/FbTk/Menu.cc')
-rw-r--r-- | src/FbTk/Menu.cc | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/src/FbTk/Menu.cc b/src/FbTk/Menu.cc index e52b4dd..ccd76d3 100644 --- a/src/FbTk/Menu.cc +++ b/src/FbTk/Menu.cc | |||
@@ -126,8 +126,7 @@ Menu::Menu(FbTk::ThemeProxy<MenuTheme> &tm, ImageControl &imgctrl): | |||
126 | 126 | ||
127 | m_title_vis = true; | 127 | m_title_vis = true; |
128 | 128 | ||
129 | m_internal_menu = | 129 | m_moving = |
130 | m_moving = | ||
131 | m_closing = | 130 | m_closing = |
132 | m_torn = | 131 | m_torn = |
133 | m_visible = false; | 132 | m_visible = false; |
@@ -227,7 +226,7 @@ int Menu::insert(const FbString &label, int pos) { | |||
227 | return insert(new MenuItem(label, *this), pos); | 226 | return insert(new MenuItem(label, *this), pos); |
228 | } | 227 | } |
229 | 228 | ||
230 | int Menu::insert(const FbString &label, Menu *submenu, int pos) { | 229 | int Menu::insert(const FbString &label, const RefCount<Menu> &submenu, int pos) { |
231 | return insert(new MenuItem(label, submenu, this), pos); | 230 | return insert(new MenuItem(label, submenu, this), pos); |
232 | } | 231 | } |
233 | 232 | ||
@@ -274,19 +273,6 @@ int Menu::remove(unsigned int index) { | |||
274 | if (index != menuitems.size()) | 273 | if (index != menuitems.size()) |
275 | fixMenuItemIndices(); | 274 | fixMenuItemIndices(); |
276 | 275 | ||
277 | if (item->submenu() != 0) { | ||
278 | Menu *tmp = item->submenu(); | ||
279 | // if menu is internal we should just hide it instead | ||
280 | // if destroying it | ||
281 | if (! tmp->m_internal_menu) { | ||
282 | delete tmp; | ||
283 | } | ||
284 | // We can't internal_hide here, as the child may be deleted! | ||
285 | // } else | ||
286 | // tmp->internal_hide(); | ||
287 | } | ||
288 | |||
289 | |||
290 | delete item; | 276 | delete item; |
291 | } | 277 | } |
292 | 278 | ||
@@ -374,8 +360,8 @@ void Menu::enterSubmenu() { | |||
374 | if (!validIndex(m_active_index)) | 360 | if (!validIndex(m_active_index)) |
375 | return; | 361 | return; |
376 | 362 | ||
377 | Menu *submenu = menuitems[m_active_index]->submenu(); | 363 | RefCount<Menu> submenu = menuitems[m_active_index]->submenu(); |
378 | if (submenu == 0) | 364 | if (! submenu) |
379 | return; | 365 | return; |
380 | 366 | ||
381 | if (submenu->menuitems.size() == 0) | 367 | if (submenu->menuitems.size() == 0) |
@@ -759,7 +745,7 @@ void Menu::drawSubmenu(unsigned int index) { | |||
759 | clearItem(index); | 745 | clearItem(index); |
760 | 746 | ||
761 | if (! item->submenu()->isVisible() && item->submenu()->numberOfItems() > 0) { | 747 | if (! item->submenu()->isVisible() && item->submenu()->numberOfItems() > 0) { |
762 | shown = item->submenu(); | 748 | shown = item->submenu().get(); |
763 | item->showSubmenu(); | 749 | item->showSubmenu(); |
764 | item->submenu()->raise(); | 750 | item->submenu()->raise(); |
765 | } | 751 | } |