123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- #include "node_dock.h"
- #include "editor_node.h"
- void NodeDock::show_groups() {
- groups_button->set_pressed(true);
- connections_button->set_pressed(false);
- groups->show();
- connections->hide();
- }
- void NodeDock::show_connections() {
- groups_button->set_pressed(false);
- connections_button->set_pressed(true);
- groups->hide();
- connections->show();
- }
- void NodeDock::_bind_methods() {
- ClassDB::bind_method(D_METHOD("show_groups"), &NodeDock::show_groups);
- ClassDB::bind_method(D_METHOD("show_connections"), &NodeDock::show_connections);
- }
- void NodeDock::_notification(int p_what) {
- if (p_what == NOTIFICATION_ENTER_TREE) {
- connections_button->set_icon(get_icon("Signals", "EditorIcons"));
- groups_button->set_icon(get_icon("Groups", "EditorIcons"));
- } else if (p_what == EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED) {
- connections_button->set_icon(get_icon("Signals", "EditorIcons"));
- groups_button->set_icon(get_icon("Groups", "EditorIcons"));
- }
- }
- NodeDock *NodeDock::singleton = NULL;
- void NodeDock::update_lists() {
- connections->update_tree();
- }
- void NodeDock::set_node(Node *p_node) {
- connections->set_node(p_node);
- groups->set_current(p_node);
- if (p_node) {
- if (connections_button->is_pressed())
- connections->show();
- else
- groups->show();
- mode_hb->show();
- select_a_node->hide();
- } else {
- connections->hide();
- groups->hide();
- mode_hb->hide();
- select_a_node->show();
- }
- }
- NodeDock::NodeDock() {
- singleton = this;
- set_name("Node");
- mode_hb = memnew(HBoxContainer);
- add_child(mode_hb);
- mode_hb->hide();
- connections_button = memnew(ToolButton);
- connections_button->set_text(TTR("Signals"));
- connections_button->set_toggle_mode(true);
- connections_button->set_pressed(true);
- connections_button->set_h_size_flags(SIZE_EXPAND_FILL);
- mode_hb->add_child(connections_button);
- connections_button->connect("pressed", this, "show_connections");
- groups_button = memnew(ToolButton);
- groups_button->set_text(TTR("Groups"));
- groups_button->set_toggle_mode(true);
- groups_button->set_pressed(false);
- groups_button->set_h_size_flags(SIZE_EXPAND_FILL);
- mode_hb->add_child(groups_button);
- groups_button->connect("pressed", this, "show_groups");
- connections = memnew(ConnectionsDock(EditorNode::get_singleton()));
- connections->set_undoredo(EditorNode::get_singleton()->get_undo_redo());
- add_child(connections);
- connections->set_v_size_flags(SIZE_EXPAND_FILL);
- connections->hide();
- groups = memnew(GroupsEditor);
- groups->set_undo_redo(EditorNode::get_singleton()->get_undo_redo());
- add_child(groups);
- groups->set_v_size_flags(SIZE_EXPAND_FILL);
- groups->hide();
- select_a_node = memnew(Label);
- select_a_node->set_text(TTR("Select a Node to edit Signals and Groups."));
- select_a_node->set_v_size_flags(SIZE_EXPAND_FILL);
- select_a_node->set_valign(Label::VALIGN_CENTER);
- select_a_node->set_align(Label::ALIGN_CENTER);
- select_a_node->set_autowrap(true);
- add_child(select_a_node);
- }
|