ProjectManager::ProjectManager() { int margin = get_constant("margin","Dialogs"); int button_margin = get_constant("button_margin","Dialogs"); // load settings if (!EditorSettings::get_singleton()) EditorSettings::create(); set_area_as_parent_rect(); Panel *panel = memnew( Panel ); add_child(panel); panel->set_area_as_parent_rect(); VBoxContainer *vb = memnew( VBoxContainer ); panel->add_child(vb); vb->set_area_as_parent_rect(20); Label *l = memnew( Label ); l->set_text(_MKSTR(VERSION_NAME)" - Project Manager"); l->add_font_override("font",get_font("large","Fonts")); l->set_align(Label::ALIGN_CENTER); vb->add_child(l); l = memnew( Label ); l->set_text("v"VERSION_MKSTRING); //l->add_font_override("font",get_font("bold","Fonts")); l->set_align(Label::ALIGN_CENTER); vb->add_child(l); vb->add_child(memnew(HSeparator)); vb->add_margin_child("\n",memnew(Control)); HBoxContainer *tree_hb = memnew( HBoxContainer); vb->add_margin_child("Recent Projects:",tree_hb,true); PanelContainer *pc = memnew( PanelContainer); pc->add_style_override("panel",get_stylebox("bg","Tree")); tree_hb->add_child(pc); pc->set_h_size_flags(SIZE_EXPAND_FILL); scroll = memnew( ScrollContainer ); pc->add_child(scroll); scroll->set_enable_h_scroll(false); VBoxContainer *tree_vb = memnew( VBoxContainer); tree_hb->add_child(tree_vb); scroll_childs = memnew( VBoxContainer ); scroll_childs->set_h_size_flags(SIZE_EXPAND_FILL); scroll->add_child(scroll_childs); //HBoxContainer *hb = memnew( HBoxContainer ); //vb->add_child(hb); Button *open = memnew( Button ); open->set_text("Edit"); tree_vb->add_child(open); open->connect("pressed", this,"_open_project"); open_btn=open; Button *run = memnew( Button ); run->set_text("Run"); tree_vb->add_child(run); run->connect("pressed", this,"_run_project"); run_btn=run; tree_vb->add_child(memnew( HSeparator )); Button *scan = memnew( Button ); scan->set_text("Scan"); tree_vb->add_child(scan); scan->connect("pressed", this,"_scan_projects"); tree_vb->add_child(memnew( HSeparator )); scan_dir = memnew( FileDialog ); scan_dir->set_access(FileDialog::ACCESS_FILESYSTEM); scan_dir->set_mode(FileDialog::MODE_OPEN_DIR); add_child(scan_dir); scan_dir->connect("dir_selected",this,"_scan_begin"); Button* create = memnew( Button ); create->set_text("New Project"); tree_vb->add_child(create); create->connect("pressed", this,"_new_project"); Button* import = memnew( Button ); import->set_text("Import"); tree_vb->add_child(import); import->connect("pressed", this,"_import_project"); Button* erase = memnew( Button ); erase->set_text("Erase"); tree_vb->add_child(erase); erase->connect("pressed", this,"_erase_project"); erase_btn=erase; tree_vb->add_spacer(); Button * cancel = memnew( Button ); cancel->set_text("Exit"); tree_vb->add_child(cancel); cancel->connect("pressed", this,"_exit_dialog"); vb->add_margin_child("\n",memnew(Control)); vb->add_child(memnew(HSeparator)); l = memnew( Label ); String cp; cp.push_back(0xA9); cp.push_back(0); l->set_text(cp+" 2008-2012 Juan Linietsky, Ariel Manzur."); l->set_align(Label::ALIGN_CENTER); vb->add_child(l); erase_ask = memnew( ConfirmationDialog ); erase_ask->get_ok()->set_text("Erase"); erase_ask->get_ok()->connect("pressed", this,"_erase_project_confirm"); add_child(erase_ask); OS::get_singleton()->set_low_processor_usage_mode(true); npdialog = memnew( NewProjectDialog ); add_child(npdialog); Ref<Theme> theme = memnew( Theme ); editor_register_icons(theme); set_theme(theme); npdialog->connect("project_created", this,"_load_recent_projects"); _load_recent_projects(); //get_ok()->set_text("Open"); //get_ok()->set_text("Exit"); }
ScriptCreateDialog::ScriptCreateDialog() { /* DIALOG */ /* Main Controls */ GridContainer *gc = memnew(GridContainer); gc->set_columns(2); /* Error Messages Field */ VBoxContainer *vb = memnew(VBoxContainer); HBoxContainer *hb = memnew(HBoxContainer); Label *l = memnew(Label); l->set_text(" - "); hb->add_child(l); error_label = memnew(Label); error_label->set_text(TTR("Error!")); error_label->set_align(Label::ALIGN_LEFT); hb->add_child(error_label); vb->add_child(hb); hb = memnew(HBoxContainer); l = memnew(Label); l->set_text(" - "); hb->add_child(l); path_error_label = memnew(Label); path_error_label->set_text(TTR("Error!")); path_error_label->set_align(Label::ALIGN_LEFT); hb->add_child(path_error_label); vb->add_child(hb); PanelContainer *pc = memnew(PanelContainer); pc->set_h_size_flags(Control::SIZE_FILL); pc->add_style_override("panel", EditorNode::get_singleton()->get_gui_base()->get_stylebox("bg", "Tree")); pc->add_child(vb); /* Margins */ Control *empty_h = memnew(Control); empty_h->set_name("empty_h"); //duplicate() doesn't like nodes without a name empty_h->set_h_size_flags(Control::SIZE_EXPAND_FILL); empty_h->set_v_size_flags(Control::SIZE_EXPAND_FILL); empty_h->set_custom_minimum_size(Size2(0, 10 * EDSCALE)); Control *empty_v = memnew(Control); empty_v->set_name("empty_v"); empty_v->set_h_size_flags(Control::SIZE_EXPAND_FILL); empty_v->set_v_size_flags(Control::SIZE_EXPAND_FILL); empty_v->set_custom_minimum_size(Size2(10, 0 * EDSCALE)); vb = memnew(VBoxContainer); vb->add_child(empty_h->duplicate()); vb->add_child(gc); vb->add_child(empty_h->duplicate()); vb->add_child(pc); vb->add_child(empty_h->duplicate()); hb = memnew(HBoxContainer); hb->add_child(empty_v->duplicate()); hb->add_child(vb); hb->add_child(empty_v->duplicate()); memdelete(empty_h); memdelete(empty_v); add_child(hb); /* Language */ language_menu = memnew(OptionButton); language_menu->set_custom_minimum_size(Size2(250, 0) * EDSCALE); language_menu->set_h_size_flags(SIZE_EXPAND_FILL); l = memnew(Label); l->set_text(TTR("Language")); l->set_align(Label::ALIGN_RIGHT); gc->add_child(l); gc->add_child(language_menu); int default_lang = 0; for (int i = 0; i < ScriptServer::get_language_count(); i++) { String lang = ScriptServer::get_language(i)->get_name(); language_menu->add_item(lang); if (lang == "GDScript") { default_lang = i; } } String last_selected_language = EditorSettings::get_singleton()->get_project_metadata("script_setup", "last_selected_language", ""); if (last_selected_language != "") { for (int i = 0; i < language_menu->get_item_count(); i++) { if (language_menu->get_item_text(i) == last_selected_language) { language_menu->select(i); current_language = i; break; } } } else { language_menu->select(default_lang); current_language = default_lang; } language_menu->connect("item_selected", this, "_lang_changed"); /* Inherits */ hb = memnew(HBoxContainer); hb->set_h_size_flags(SIZE_EXPAND_FILL); parent_name = memnew(LineEdit); parent_name->connect("text_changed", this, "_parent_name_changed"); parent_name->set_h_size_flags(SIZE_EXPAND_FILL); hb->add_child(parent_name); parent_browse_button = memnew(Button); parent_browse_button->set_flat(true); parent_browse_button->connect("pressed", this, "_browse_path", varray(true)); hb->add_child(parent_browse_button); l = memnew(Label); l->set_text(TTR("Inherits")); l->set_align(Label::ALIGN_RIGHT); gc->add_child(l); gc->add_child(hb); is_browsing_parent = false; /* Class Name */ class_name = memnew(LineEdit); class_name->connect("text_changed", this, "_class_name_changed"); class_name->set_h_size_flags(SIZE_EXPAND_FILL); l = memnew(Label); l->set_text(TTR("Class Name")); l->set_align(Label::ALIGN_RIGHT); gc->add_child(l); gc->add_child(class_name); /* Templates */ template_menu = memnew(OptionButton); l = memnew(Label); l->set_text(TTR("Template")); l->set_align(Label::ALIGN_RIGHT); gc->add_child(l); gc->add_child(template_menu); template_menu->connect("item_selected", this, "_template_changed"); /* Built-in Script */ internal = memnew(CheckButton); internal->connect("pressed", this, "_built_in_pressed"); hb = memnew(HBoxContainer); hb->add_child(internal); l = memnew(Label); l->set_text(TTR("Built-in Script")); l->set_align(Label::ALIGN_RIGHT); gc->add_child(l); gc->add_child(hb); /* Path */ hb = memnew(HBoxContainer); file_path = memnew(LineEdit); file_path->connect("text_changed", this, "_path_changed"); file_path->set_h_size_flags(SIZE_EXPAND_FILL); hb->add_child(file_path); path_button = memnew(Button); path_button->set_flat(true); path_button->connect("pressed", this, "_browse_path", varray(false)); hb->add_child(path_button); l = memnew(Label); l->set_text(TTR("Path")); l->set_align(Label::ALIGN_RIGHT); gc->add_child(l); gc->add_child(hb); /* Dialog Setup */ file_browse = memnew(EditorFileDialog); file_browse->connect("file_selected", this, "_file_selected"); add_child(file_browse); get_ok()->set_text(TTR("Create")); alert = memnew(AcceptDialog); alert->set_as_minsize(); alert->get_label()->set_autowrap(true); alert->get_label()->set_align(Label::ALIGN_CENTER); alert->get_label()->set_valign(Label::VALIGN_CENTER); alert->get_label()->set_custom_minimum_size(Size2(325, 60) * EDSCALE); add_child(alert); set_as_minsize(); set_hide_on_ok(false); set_title(TTR("Attach Node Script")); is_parent_name_valid = false; is_class_name_valid = false; is_path_valid = false; has_named_classes = false; supports_built_in = false; can_inherit_from_file = false; is_built_in = false; is_new_script_created = true; }