Browse Source

Merge pull request #6420 from Paulb23/itemlist_tooltip_disable_issue_6240

Itemlist tooltip disable issue 6240
Rémi Verschelde 9 years ago
parent
commit
a40309b532
3 changed files with 40 additions and 0 deletions
  1. 18 0
      doc/base/classes.xml
  2. 18 0
      scene/gui/item_list.cpp
  3. 4 0
      scene/gui/item_list.h

+ 18 - 0
doc/base/classes.xml

@@ -17940,6 +17940,15 @@
 				Return tooltip hint for specified item index.
 				Return tooltip hint for specified item index.
 			</description>
 			</description>
 		</method>
 		</method>
+		<method name="is_item_tooltip_enabled" qualifiers="const">
+			<return type="bool">
+			</return>
+			<argument index="0" name="idx" type="int">
+			</argument>
+			<description>
+				Returns whether the tooptip is enabled for specified item index.
+			</description>
+		</method>
 		<method name="get_max_columns" qualifiers="const">
 		<method name="get_max_columns" qualifiers="const">
 			<return type="int">
 			<return type="int">
 			</return>
 			</return>
@@ -18121,6 +18130,15 @@
 				Sets tooltip hint for item at specified index.
 				Sets tooltip hint for item at specified index.
 			</description>
 			</description>
 		</method>
 		</method>
+		<method name="set_item_tooltip_enabled">
+			<argument index="0" name="idx" type="int">
+			</argument>
+			<argument index="1" name="enable" type="bool">
+			</argument>
+			<description>
+				Sets whether the tooltip is enabled for specified item index.
+			</description>
+		</method>
 		<method name="set_max_columns">
 		<method name="set_max_columns">
 			<argument index="0" name="amount" type="int">
 			<argument index="0" name="amount" type="int">
 			</argument>
 			</argument>

+ 18 - 0
scene/gui/item_list.cpp

@@ -40,6 +40,7 @@ void ItemList::add_item(const String& p_item,const Ref<Texture>& p_texture,bool
 	item.selectable=p_selectable;
 	item.selectable=p_selectable;
 	item.selected=false;
 	item.selected=false;
 	item.disabled=false;
 	item.disabled=false;
+	item.tooltip_enabled=true;
 	item.custom_bg=Color(0,0,0,0);
 	item.custom_bg=Color(0,0,0,0);
 	items.push_back(item);
 	items.push_back(item);
 
 
@@ -57,6 +58,7 @@ void ItemList::add_icon_item(const Ref<Texture>& p_item,bool p_selectable){
 	item.selectable=p_selectable;
 	item.selectable=p_selectable;
 	item.selected=false;
 	item.selected=false;
 	item.disabled=false;
 	item.disabled=false;
+	item.tooltip_enabled=true;
 	item.custom_bg=Color(0,0,0,0);
 	item.custom_bg=Color(0,0,0,0);
 	items.push_back(item);
 	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){
 void ItemList::set_item_tooltip(int p_idx,const String& p_tooltip){
 
 
 	ERR_FAIL_INDEX(p_idx,items.size());
 	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);
 	int closest = get_item_at_pos(p_pos);
 
 
 	if (closest!=-1) {
 	if (closest!=-1) {
+		if (!items[closest].tooltip_enabled) {
+			return "";
+		}
 		if (items[closest].tooltip!="") {
 		if (items[closest].tooltip!="") {
 			return 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("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("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("set_item_tooltip","idx","tooltip"),&ItemList::set_item_tooltip);
 	ObjectTypeDB::bind_method(_MD("get_item_tooltip","idx"),&ItemList::get_item_tooltip);
 	ObjectTypeDB::bind_method(_MD("get_item_tooltip","idx"),&ItemList::get_item_tooltip);
 
 

+ 4 - 0
scene/gui/item_list.h

@@ -56,6 +56,7 @@ private:
 		bool selectable;
 		bool selectable;
 		bool selected;
 		bool selected;
 		bool disabled;
 		bool disabled;
+		bool tooltip_enabled;
 		Variant metadata;
 		Variant metadata;
 		String tooltip;
 		String tooltip;
 		Color custom_bg;
 		Color custom_bg;
@@ -135,6 +136,9 @@ public:
 	void set_item_tag_icon(int p_idx,const Ref<Texture>& p_tag_icon);
 	void set_item_tag_icon(int p_idx,const Ref<Texture>& p_tag_icon);
 	Ref<Texture> get_item_tag_icon(int p_idx) const;
 	Ref<Texture> 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);
 	void set_item_tooltip(int p_idx,const String& p_tooltip);
 	String get_item_tooltip(int p_idx) const;
 	String get_item_tooltip(int p_idx) const;