You've already forked godot
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:
@@ -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);
|
||||
|
||||
@@ -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; }
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user