int BC_MenuPopup::remove_item(BC_MenuItem *item)
{
menu_items.remove(item);
+ return 0;
}
int BC_MenuPopup::del_item(BC_MenuItem *item)
return 0;
}
-int BC_MenuPopup::total_menuitems()
+BC_MenuItem *BC_MenuPopup::get_item(int i)
+{
+ return menu_items[i];
+}
+
+int BC_MenuPopup::total_items()
{
- return menu_items.total;
+ return menu_items.size();
}
int BC_MenuPopup::dispatch_button_press()
int result = 0;
if(popup)
{
- for(int i = 0; i < menu_items.total && !result; i++)
+ for(int i = 0; i < menu_items.total && !result && popup; i++)
{
result = menu_items.values[i]->dispatch_button_press();
}
int result = 0, redraw = 0;
if(popup)
{
- for(int i = 0; i < menu_items.total && !result; i++)
+ for(int i = 0; i < menu_items.total && !result && popup; i++)
{
result = menu_items.values[i]->dispatch_button_release(redraw);
}
int BC_MenuPopup::cursor_inside()
{
if( !popup ) return 0;
- int x = popup->get_relative_cursor_x();
- if( x < 0 || x > popup->get_w() ) return 0;
- int y = popup->get_relative_cursor_y();
- if( y < 0 || y > popup->get_h() ) return 0;
- return 1;
+ if( popup->cursor_above() ) return 1;
+ for( int i=0; i<menu_items.size(); ++i ) {
+ if( !menu_items[i]->submenu ) continue;
+ if( menu_items[i]->submenu->cursor_inside() ) return 1;
+ }
+ return 0;
}
int BC_MenuPopup::get_w()