Browse Source

Add ability to set the tooltip text of a `TreeItem` button

Ninni Pipping 2 years ago
parent
commit
75b355ee99
3 changed files with 17 additions and 0 deletions
  1. 9 0
      doc/classes/TreeItem.xml
  2. 7 0
      scene/gui/tree.cpp
  3. 1 0
      scene/gui/tree.h

+ 9 - 0
doc/classes/TreeItem.xml

@@ -490,6 +490,15 @@
 				If [code]true[/code], disables the button at index [param button_index] in the given [param column].
 				If [code]true[/code], disables the button at index [param button_index] in the given [param column].
 			</description>
 			</description>
 		</method>
 		</method>
+		<method name="set_button_tooltip_text">
+			<return type="void" />
+			<param index="0" name="column" type="int" />
+			<param index="1" name="button_index" type="int" />
+			<param index="2" name="tooltip" type="String" />
+			<description>
+				Sets the tooltip text for the button at index [param button_index] in the given [param column].
+			</description>
+		</method>
 		<method name="set_cell_mode">
 		<method name="set_cell_mode">
 			<return type="void" />
 			<return type="void" />
 			<param index="0" name="column" type="int" />
 			<param index="0" name="column" type="int" />

+ 7 - 0
scene/gui/tree.cpp

@@ -1176,6 +1176,12 @@ int TreeItem::get_button_by_id(int p_column, int p_id) const {
 	return -1;
 	return -1;
 }
 }
 
 
+void TreeItem::set_button_tooltip_text(int p_column, int p_index, const String &p_tooltip) {
+	ERR_FAIL_INDEX(p_column, cells.size());
+	ERR_FAIL_INDEX(p_index, cells[p_column].buttons.size());
+	cells.write[p_column].buttons.write[p_index].tooltip = p_tooltip;
+}
+
 void TreeItem::set_button(int p_column, int p_index, const Ref<Texture2D> &p_button) {
 void TreeItem::set_button(int p_column, int p_index, const Ref<Texture2D> &p_button) {
 	ERR_FAIL_COND(p_button.is_null());
 	ERR_FAIL_COND(p_button.is_null());
 	ERR_FAIL_INDEX(p_column, cells.size());
 	ERR_FAIL_INDEX(p_column, cells.size());
@@ -1586,6 +1592,7 @@ void TreeItem::_bind_methods() {
 	ClassDB::bind_method(D_METHOD("get_button_id", "column", "button_index"), &TreeItem::get_button_id);
 	ClassDB::bind_method(D_METHOD("get_button_id", "column", "button_index"), &TreeItem::get_button_id);
 	ClassDB::bind_method(D_METHOD("get_button_by_id", "column", "id"), &TreeItem::get_button_by_id);
 	ClassDB::bind_method(D_METHOD("get_button_by_id", "column", "id"), &TreeItem::get_button_by_id);
 	ClassDB::bind_method(D_METHOD("get_button", "column", "button_index"), &TreeItem::get_button);
 	ClassDB::bind_method(D_METHOD("get_button", "column", "button_index"), &TreeItem::get_button);
+	ClassDB::bind_method(D_METHOD("set_button_tooltip_text", "column", "button_index", "tooltip"), &TreeItem::set_button_tooltip_text);
 	ClassDB::bind_method(D_METHOD("set_button", "column", "button_index", "button"), &TreeItem::set_button);
 	ClassDB::bind_method(D_METHOD("set_button", "column", "button_index", "button"), &TreeItem::set_button);
 	ClassDB::bind_method(D_METHOD("erase_button", "column", "button_index"), &TreeItem::erase_button);
 	ClassDB::bind_method(D_METHOD("erase_button", "column", "button_index"), &TreeItem::erase_button);
 	ClassDB::bind_method(D_METHOD("set_button_disabled", "column", "button_index", "disabled"), &TreeItem::set_button_disabled);
 	ClassDB::bind_method(D_METHOD("set_button_disabled", "column", "button_index", "disabled"), &TreeItem::set_button_disabled);

+ 1 - 0
scene/gui/tree.h

@@ -262,6 +262,7 @@ public:
 	int get_button_id(int p_column, int p_index) const;
 	int get_button_id(int p_column, int p_index) const;
 	void erase_button(int p_column, int p_index);
 	void erase_button(int p_column, int p_index);
 	int get_button_by_id(int p_column, int p_id) const;
 	int get_button_by_id(int p_column, int p_id) const;
+	void set_button_tooltip_text(int p_column, int p_index, const String &p_tooltip);
 	void set_button(int p_column, int p_index, const Ref<Texture2D> &p_button);
 	void set_button(int p_column, int p_index, const Ref<Texture2D> &p_button);
 	void set_button_color(int p_column, int p_index, const Color &p_color);
 	void set_button_color(int p_column, int p_index, const Color &p_color);
 	void set_button_disabled(int p_column, int p_index, bool p_disabled);
 	void set_button_disabled(int p_column, int p_index, bool p_disabled);