From 7051685a779f2b1fa4322d6f8fbfaba71deea73f Mon Sep 17 00:00:00 2001 From: azagaya Date: Mon, 28 Jan 2019 12:31:24 -0300 Subject: [PATCH] Fixes differences between docs and item_selected and item_focused signals in optionbutton Description in docs about item_selected and item_focused signals in optionbutton is fixed to match the real behaviour. Also, get_item_index function is added. --- doc/classes/OptionButton.xml | 15 ++++++++++++--- scene/gui/option_button.cpp | 7 +++++++ scene/gui/option_button.h | 1 + 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/doc/classes/OptionButton.xml b/doc/classes/OptionButton.xml index c58c932b61b..09b91671493 100644 --- a/doc/classes/OptionButton.xml +++ b/doc/classes/OptionButton.xml @@ -71,9 +71,18 @@ - Return the ID of the item at index "idx". + Return the ID of the item at index [code]idx[/code]. + + + + + + + Return the index of the item with the given [code]id[/code]. + + @@ -198,14 +207,14 @@ - This signal is emitted when user navigated to an item using [code]ui_up[/code] or [code]ui_down[/code] action. ID of the item selected is passed as argument (if no IDs were added, ID will be just the item index). + This signal is emitted when user navigated to an item using [code]ui_up[/code] or [code]ui_down[/code] action. ID of the item selected is passed as argument. - This signal is emitted when the current item was changed by the user. ID of the item selected is passed as argument (if no IDs were added, ID will be just the item index). + This signal is emitted when the current item was changed by the user. Index of the item selected is passed as argument. diff --git a/scene/gui/option_button.cpp b/scene/gui/option_button.cpp index 98f427cc078..b9b270ce0c4 100644 --- a/scene/gui/option_button.cpp +++ b/scene/gui/option_button.cpp @@ -160,6 +160,12 @@ int OptionButton::get_item_id(int p_idx) const { return popup->get_item_id(p_idx); } + +int OptionButton::get_item_index(int p_id) const { + + return popup->get_item_index(p_id); +} + Variant OptionButton::get_item_metadata(int p_idx) const { return popup->get_item_metadata(p_idx); @@ -306,6 +312,7 @@ void OptionButton::_bind_methods() { ClassDB::bind_method(D_METHOD("get_item_text", "idx"), &OptionButton::get_item_text); ClassDB::bind_method(D_METHOD("get_item_icon", "idx"), &OptionButton::get_item_icon); ClassDB::bind_method(D_METHOD("get_item_id", "idx"), &OptionButton::get_item_id); + ClassDB::bind_method(D_METHOD("get_item_index", "id"), &OptionButton::get_item_index); ClassDB::bind_method(D_METHOD("get_item_metadata", "idx"), &OptionButton::get_item_metadata); ClassDB::bind_method(D_METHOD("is_item_disabled", "idx"), &OptionButton::is_item_disabled); ClassDB::bind_method(D_METHOD("get_item_count"), &OptionButton::get_item_count); diff --git a/scene/gui/option_button.h b/scene/gui/option_button.h index 121b4c002d7..63b451377ad 100644 --- a/scene/gui/option_button.h +++ b/scene/gui/option_button.h @@ -71,6 +71,7 @@ public: String get_item_text(int p_idx) const; Ref get_item_icon(int p_idx) const; int get_item_id(int p_idx) const; + int get_item_index(int p_id) const; Variant get_item_metadata(int p_idx) const; bool is_item_disabled(int p_idx) const;