1
0
mirror of https://github.com/godotengine/godot.git synced 2025-12-31 18:41:20 +00:00

Change Theme to EditorDock and add closable property

This commit is contained in:
kobewi
2025-11-24 20:10:34 +01:00
parent 5f12ada7a4
commit 2de97cafb7
7 changed files with 55 additions and 22 deletions

View File

@@ -60,6 +60,10 @@ void EditorDock::_bind_methods() {
ClassDB::bind_method(D_METHOD("is_transient"), &EditorDock::is_transient);
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "transient"), "set_transient", "is_transient");
ClassDB::bind_method(D_METHOD("set_closable", "closable"), &EditorDock::set_closable);
ClassDB::bind_method(D_METHOD("is_closable"), &EditorDock::is_closable);
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "closable"), "set_closable", "is_closable");
ClassDB::bind_method(D_METHOD("set_icon_name", "icon_name"), &EditorDock::set_icon_name);
ClassDB::bind_method(D_METHOD("get_icon_name"), &EditorDock::get_icon_name);
ADD_PROPERTY(PropertyInfo(Variant::STRING_NAME, "icon_name"), "set_icon_name", "get_icon_name");
@@ -88,6 +92,8 @@ void EditorDock::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_available_layouts"), &EditorDock::get_available_layouts);
ADD_PROPERTY(PropertyInfo(Variant::INT, "available_layouts", PROPERTY_HINT_FLAGS, "Vertical:1,Horizontal:2,Floating:3"), "set_available_layouts", "get_available_layouts");
ADD_SIGNAL(MethodInfo("closed"));
BIND_BITFIELD_FLAG(DOCK_LAYOUT_VERTICAL);
BIND_BITFIELD_FLAG(DOCK_LAYOUT_HORIZONTAL);
BIND_BITFIELD_FLAG(DOCK_LAYOUT_FLOATING);

View File

@@ -64,6 +64,7 @@ private:
DockConstants::DockSlot default_slot = DockConstants::DOCK_SLOT_NONE;
bool global = true;
bool transient = false;
bool closable = false;
BitField<DockLayout> available_layouts = DOCK_LAYOUT_VERTICAL | DOCK_LAYOUT_FLOATING;
@@ -102,6 +103,9 @@ public:
void set_transient(bool p_transient) { transient = p_transient; }
bool is_transient() const { return transient; }
void set_closable(bool p_closable) { closable = p_closable; }
bool is_closable() const { return closable; }
void set_icon_name(const StringName &p_name);
StringName get_icon_name() const { return icon_name; }

View File

@@ -1051,6 +1051,7 @@ void DockContextPopup::_tab_move_right() {
void DockContextPopup::_close_dock() {
hide();
context_dock->emit_signal("closed");
dock_manager->close_dock(context_dock);
}
@@ -1206,7 +1207,7 @@ void DockContextPopup::_dock_select_draw() {
void DockContextPopup::_update_buttons() {
TabContainer *context_tab_container = dock_manager->get_dock_tab_container(context_dock);
if (context_dock->global) {
if (context_dock->global || context_dock->closable) {
close_button->set_tooltip_text(TTRC("Close this dock."));
close_button->set_disabled(false);
} else {