void ScriptCreateDialog::config(const String &p_base_name, const String &p_base_path) { class_name->set_text(""); parent_name->set_text(p_base_name); if (p_base_path != "") { initial_bp = p_base_path.get_basename(); file_path->set_text(initial_bp + "." + ScriptServer::get_language(language_menu->get_selected())->get_extension()); } else { initial_bp = ""; file_path->set_text(""); } _lang_changed(current_language); _parent_name_changed(parent_name->get_text()); _class_name_changed(""); _path_changed(file_path->get_text()); }
ScriptCreateDialog::ScriptCreateDialog() { /* SNAP DIALOG */ VBoxContainer *vb = memnew( VBoxContainer ); add_child(vb); set_child_rect(vb); class_name = memnew( LineEdit ); VBoxContainer *vb2 = memnew( VBoxContainer ); vb2->add_child(class_name); class_name->connect("text_changed", this,"_class_name_changed"); error_label = memnew(Label); error_label->set_text("valid chars: a-z A-Z 0-9 _"); error_label->set_align(Label::ALIGN_CENTER); vb2->add_child(error_label); vb->add_margin_child(TTR("Class Name:"),vb2); parent_name = memnew( LineEdit ); vb->add_margin_child(TTR("Inherits:"),parent_name); parent_name->connect("text_changed", this,"_class_name_changed"); language_menu = memnew( OptionButton ); vb->add_margin_child(TTR("Language"),language_menu); for(int i=0;i<ScriptServer::get_language_count();i++) { language_menu->add_item(ScriptServer::get_language(i)->get_name()); } editor_settings = EditorSettings::get_singleton(); String last_selected_language = editor_settings->get_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); break; } else language_menu->select(0); language_menu->connect("item_selected",this,"_lang_changed"); //parent_name->set_text(); vb2 = memnew( VBoxContainer ); path_vb = memnew( VBoxContainer ); vb2->add_child(path_vb); HBoxContainer *hbc = memnew( HBoxContainer ); file_path = memnew( LineEdit ); file_path->connect("text_changed",this,"_path_changed"); hbc->add_child(file_path); file_path->set_h_size_flags(SIZE_EXPAND_FILL); Button *b = memnew( Button ); b->set_text(" .. "); b->connect("pressed",this,"_browse_path"); hbc->add_child(b); path_vb->add_child(hbc); path_error_label = memnew( Label ); path_vb->add_child( path_error_label ); path_error_label->set_text(TTR("Error!")); path_error_label->set_align(Label::ALIGN_CENTER); internal = memnew( CheckButton ); internal->set_text(TTR("Built-In Script")); vb2->add_child(internal); internal->connect("pressed",this,"_built_in_pressed"); vb->add_margin_child(TTR("Path:"),vb2); set_size(Size2(200,150)); set_hide_on_ok(false); set_title(TTR("Attach Node Script")); 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 ); add_child(alert); _lang_changed(0); create_new=true; }