فهرست منبع

Merge pull request #5898 from MarianoGnu/master

expose bottom panel button to EditorPlugin scripts
Rémi Verschelde 9 سال پیش
والد
کامیت
29c1a6eb23
3فایلهای تغییر یافته به همراه6 افزوده شده و 5 حذف شده
  1. 1 1
      doc/base/classes.xml
  2. 3 3
      tools/editor/editor_plugin.cpp
  3. 2 1
      tools/editor/editor_plugin.h

+ 1 - 1
doc/base/classes.xml

@@ -11281,7 +11281,7 @@
 			<argument index="1" name="title" type="String">
 			</argument>
 			<description>
-				Add a control to the bottom panel (together with Output, Debug, Animation, etc). If your plugin is being removed, also make sure to remove your control by calling [method remove_control_from_bottom_panel].
+				Add a control to the bottom panel (together with Output, Debug, Animation, etc). Returns a reference to the button added. It's up to you to hide/show the button when needed. If your plugin is being removed, also make sure to remove your control by calling [method remove_control_from_bottom_panel].
 			</description>
 		</method>
 		<method name="add_control_to_container">

+ 3 - 3
tools/editor/editor_plugin.cpp

@@ -44,9 +44,9 @@ void EditorPlugin::remove_custom_type(const String& p_type){
 }
 
 
-void EditorPlugin::add_control_to_bottom_panel(Control *p_control, const String &p_title) {
+ToolButton * EditorPlugin::add_control_to_bottom_panel(Control *p_control, const String &p_title) {
 
-	EditorNode::get_singleton()->add_bottom_panel_item(p_title,p_control);
+	return EditorNode::get_singleton()->add_bottom_panel_item(p_title,p_control);
 }
 
 void EditorPlugin::add_control_to_dock(DockSlot p_slot,Control *p_control) {
@@ -284,7 +284,7 @@ Control *EditorPlugin::get_base_control() {
 void EditorPlugin::_bind_methods() {
 
 	ObjectTypeDB::bind_method(_MD("add_control_to_container","container","control:Control"),&EditorPlugin::add_control_to_container);
-	ObjectTypeDB::bind_method(_MD("add_control_to_bottom_panel","control:Control","title"),&EditorPlugin::add_control_to_bottom_panel);
+	ObjectTypeDB::bind_method(_MD("add_control_to_bottom_panel:ToolButton","control:Control","title"),&EditorPlugin::add_control_to_bottom_panel);
 	ObjectTypeDB::bind_method(_MD("add_control_to_dock","slot","control:Control"),&EditorPlugin::add_control_to_dock);
 	ObjectTypeDB::bind_method(_MD("remove_control_from_docks","control:Control"),&EditorPlugin::remove_control_from_docks);
 	ObjectTypeDB::bind_method(_MD("remove_control_from_bottom_panel","control:Control"),&EditorPlugin::remove_control_from_bottom_panel);

+ 2 - 1
tools/editor/editor_plugin.h

@@ -29,6 +29,7 @@
 #ifndef EDITOR_PLUGIN_H
 #define EDITOR_PLUGIN_H
 
+#include "scene/gui/tool_button.h"
 #include "scene/main/node.h"
 #include "scene/resources/texture.h"
 #include "undo_redo.h"
@@ -92,7 +93,7 @@ public:
 	//TODO: send a resoucre for editing to the editor node?
 
 	void add_control_to_container(CustomControlContainer p_location, Control *p_control);
-	void add_control_to_bottom_panel(Control *p_control, const String &p_title);
+	ToolButton *add_control_to_bottom_panel(Control *p_control, const String &p_title);
 	void add_control_to_dock(DockSlot p_slot,Control *p_control);
 	void remove_control_from_docks(Control *p_control);
 	void remove_control_from_bottom_panel(Control *p_control);