diff options
Diffstat (limited to 'scene/gui/menu_button.cpp')
-rw-r--r-- | scene/gui/menu_button.cpp | 39 |
1 files changed, 15 insertions, 24 deletions
diff --git a/scene/gui/menu_button.cpp b/scene/gui/menu_button.cpp index f15b864b95..f2e2c9b255 100644 --- a/scene/gui/menu_button.cpp +++ b/scene/gui/menu_button.cpp @@ -30,36 +30,32 @@ #include "os/keyboard.h" #include "scene/main/viewport.h" - void MenuButton::_unhandled_key_input(InputEvent p_event) { - - if (p_event.is_pressed() && !p_event.is_echo() && (p_event.type==InputEvent::KEY || p_event.type==InputEvent::ACTION || p_event.type==InputEvent::JOYPAD_BUTTON)) { + if (p_event.is_pressed() && !p_event.is_echo() && (p_event.type == InputEvent::KEY || p_event.type == InputEvent::ACTION || p_event.type == InputEvent::JOYPAD_BUTTON)) { if (!get_parent() || !is_visible_in_tree() || is_disabled()) return; bool global_only = (get_viewport()->get_modal_stack_top() && !get_viewport()->get_modal_stack_top()->is_a_parent_of(this)); - if (popup->activate_item_by_event(p_event,global_only)) + if (popup->activate_item_by_event(p_event, global_only)) accept_event(); } } - void MenuButton::pressed() { emit_signal("about_to_show"); - Size2 size=get_size(); + Size2 size = get_size(); Point2 gp = get_global_pos(); - popup->set_global_pos( gp + Size2( 0, size.height ) ); - popup->set_size( Size2( size.width, 0) ); - popup->set_parent_rect( Rect2(Point2(gp-popup->get_global_pos()),get_size())); + popup->set_global_pos(gp + Size2(0, size.height)); + popup->set_size(Size2(size.width, 0)); + popup->set_parent_rect(Rect2(Point2(gp - popup->get_global_pos()), get_size())); popup->popup(); popup->call_deferred("grab_click_focus"); popup->set_invalidate_click_until_motion(); - } void MenuButton::_gui_input(InputEvent p_event) { @@ -91,28 +87,27 @@ Array MenuButton::_get_items() const { return popup->get("items"); } -void MenuButton::_set_items(const Array& p_items) { +void MenuButton::_set_items(const Array &p_items) { - popup->set("items",p_items); + popup->set("items", p_items); } void MenuButton::_bind_methods() { - ClassDB::bind_method(D_METHOD("get_popup:PopupMenu"),&MenuButton::get_popup); - ClassDB::bind_method(D_METHOD("_unhandled_key_input"),&MenuButton::_unhandled_key_input); - ClassDB::bind_method(D_METHOD("_set_items"),&MenuButton::_set_items); - ClassDB::bind_method(D_METHOD("_get_items"),&MenuButton::_get_items); + ClassDB::bind_method(D_METHOD("get_popup:PopupMenu"), &MenuButton::get_popup); + ClassDB::bind_method(D_METHOD("_unhandled_key_input"), &MenuButton::_unhandled_key_input); + ClassDB::bind_method(D_METHOD("_set_items"), &MenuButton::_set_items); + ClassDB::bind_method(D_METHOD("_get_items"), &MenuButton::_get_items); - ADD_PROPERTY( PropertyInfo(Variant::ARRAY,"items",PROPERTY_HINT_NONE,"",PROPERTY_USAGE_NOEDITOR), "_set_items","_get_items") ; + ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "items", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR), "_set_items", "_get_items"); - ADD_SIGNAL( MethodInfo("about_to_show") ); + ADD_SIGNAL(MethodInfo("about_to_show")); } MenuButton::MenuButton() { - set_flat(true); set_enabled_focus_mode(FOCUS_NONE); - popup = memnew( PopupMenu ); + popup = memnew(PopupMenu); popup->hide(); add_child(popup); popup->set_as_toplevel(true); @@ -120,9 +115,5 @@ MenuButton::MenuButton() { set_action_mode(ACTION_MODE_BUTTON_PRESS); } - MenuButton::~MenuButton() { - } - - |