From 62a968b1c66c6fa340234395870b781fb636bab8 Mon Sep 17 00:00:00 2001 From: Paulb23 Date: Wed, 7 Sep 2016 16:21:20 +0100 Subject: Ability to disable item list tooltip, issue 6240 --- scene/gui/item_list.cpp | 18 ++++++++++++++++++ scene/gui/item_list.h | 4 ++++ 2 files changed, 22 insertions(+) diff --git a/scene/gui/item_list.cpp b/scene/gui/item_list.cpp index 105d919338..63902ef815 100644 --- a/scene/gui/item_list.cpp +++ b/scene/gui/item_list.cpp @@ -40,6 +40,7 @@ void ItemList::add_item(const String& p_item,const Ref& p_texture,bool item.selectable=p_selectable; item.selected=false; item.disabled=false; + item.tooltip_enabled=true; item.custom_bg=Color(0,0,0,0); items.push_back(item); @@ -57,6 +58,7 @@ void ItemList::add_icon_item(const Ref& p_item,bool p_selectable){ item.selectable=p_selectable; item.selected=false; item.disabled=false; + item.tooltip_enabled=true; item.custom_bg=Color(0,0,0,0); items.push_back(item); @@ -82,6 +84,16 @@ String ItemList::get_item_text(int p_idx) const{ } +void ItemList::set_item_tooltip_enabled(int p_idx, const bool p_enabled) { + ERR_FAIL_INDEX(p_idx,items.size()); + items[p_idx].tooltip_enabled = p_enabled; +} + +bool ItemList::is_item_tooltip_enabled(int p_idx) const { + ERR_FAIL_INDEX_V(p_idx,items.size(), false); + return items[p_idx].tooltip_enabled; +} + void ItemList::set_item_tooltip(int p_idx,const String& p_tooltip){ ERR_FAIL_INDEX(p_idx,items.size()); @@ -1198,6 +1210,9 @@ String ItemList::get_tooltip(const Point2& p_pos) const { int closest = get_item_at_pos(p_pos); if (closest!=-1) { + if (!items[closest].tooltip_enabled) { + return ""; + } if (items[closest].tooltip!="") { return items[closest].tooltip; } @@ -1294,6 +1309,9 @@ void ItemList::_bind_methods(){ ObjectTypeDB::bind_method(_MD("set_item_custom_bg_color","idx","custom_bg_color"),&ItemList::set_item_custom_bg_color); ObjectTypeDB::bind_method(_MD("get_item_custom_bg_color","idx"),&ItemList::get_item_custom_bg_color); + ObjectTypeDB::bind_method(_MD("set_item_tooltip_enabled","idx","enable"),&ItemList::set_item_tooltip_enabled); + ObjectTypeDB::bind_method(_MD("is_item_tooltip_enabled","idx"),&ItemList::is_item_tooltip_enabled); + ObjectTypeDB::bind_method(_MD("set_item_tooltip","idx","tooltip"),&ItemList::set_item_tooltip); ObjectTypeDB::bind_method(_MD("get_item_tooltip","idx"),&ItemList::get_item_tooltip); diff --git a/scene/gui/item_list.h b/scene/gui/item_list.h index e1902d1c1f..91c74b5291 100644 --- a/scene/gui/item_list.h +++ b/scene/gui/item_list.h @@ -56,6 +56,7 @@ private: bool selectable; bool selected; bool disabled; + bool tooltip_enabled; Variant metadata; String tooltip; Color custom_bg; @@ -135,6 +136,9 @@ public: void set_item_tag_icon(int p_idx,const Ref& p_tag_icon); Ref get_item_tag_icon(int p_idx) const; + void set_item_tooltip_enabled(int p_idx, const bool p_enabled); + bool is_item_tooltip_enabled(int p_idx) const; + void set_item_tooltip(int p_idx,const String& p_tooltip); String get_item_tooltip(int p_idx) const; -- cgit v1.2.3 From 607d602493a88cab626db131d1427d4f9a13aff5 Mon Sep 17 00:00:00 2001 From: Paulb23 Date: Wed, 7 Sep 2016 16:36:05 +0100 Subject: Document itemlist disable tooltip --- doc/base/classes.xml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/doc/base/classes.xml b/doc/base/classes.xml index 07fd9980e0..298cc81125 100644 --- a/doc/base/classes.xml +++ b/doc/base/classes.xml @@ -17920,6 +17920,15 @@ Return tooltip hint for specified item index. + + + + + + + Returns whether the tooptip is enabled for specified item index. + + @@ -18101,6 +18110,15 @@ Sets tooltip hint for item at specified index. + + + + + + + Sets whether the tooltip is enabled for specified item index. + + -- cgit v1.2.3