示例#1
0
void ScriptCreateDialog::_file_selected(const String &p_file) {

	String p = ProjectSettings::get_singleton()->localize_path(p_file);
	if (is_browsing_parent) {
		parent_name->set_text("\"" + p + "\"");
		_class_name_changed("\"" + p + "\"");
	} else {
		file_path->set_text(p);
		_path_changed(p);
	}
}
示例#2
0
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.basename();
		file_path->set_text(initial_bp+"."+ScriptServer::get_language( language_menu->get_selected() )->get_extension());
	} else {
		initial_bp="";
		file_path->set_text("");
	}
	_class_name_changed("");
	_path_changed(file_path->get_text());
}
示例#3
0
void ScriptCreateDialog::_lang_changed(int l) {

	l=language_menu->get_selected();
	if (ScriptServer::get_language( l )->has_named_classes()) {
		class_name->set_editable(true);
	} else {
		class_name->set_editable(false);
	}
	if (file_path->get_text().basename()==initial_bp) {
		file_path->set_text(initial_bp+"."+ScriptServer::get_language( l )->get_extension());
		_path_changed(file_path->get_text());
	}
	_class_name_changed(class_name->get_text());

}
示例#4
0
void ScriptCreateDialog::_file_selected(const String &p_file) {

	String p = ProjectSettings::get_singleton()->localize_path(p_file);
	if (is_browsing_parent) {
		parent_name->set_text("\"" + p + "\"");
		_class_name_changed("\"" + p + "\"");
	} else {
		file_path->set_text(p);
		_path_changed(p);

		String filename = p.get_file().get_basename();
		int select_start = p.find_last(filename);
		file_path->select(select_start, select_start + filename.length());
		file_path->set_cursor_position(select_start + filename.length());
		file_path->grab_focus();
	}
}
示例#5
0
void ScriptCreateDialog::_lang_changed(int l) {

	l=language_menu->get_selected();
	if (ScriptServer::get_language( l )->has_named_classes()) {
		class_name->set_editable(true);
	} else {
		class_name->set_editable(false);
	}

	String selected_ext="."+ScriptServer::get_language( l )->get_extension();
	String path=file_path->get_text();
	String extension="";
	if (path.find(".")>=0) {
		extension=path.extension();
	}

	if (extension.length()==0) {
		// add extension if none
		path+=selected_ext;
		_path_changed(path);
	} else {
		// change extension by selected language
		List<String> extensions;
		// get all possible extensions for script
		for (int l=0;l<language_menu->get_item_count();l++) {
			ScriptServer::get_language( l )->get_recognized_extensions(&extensions);
		}

		for(List<String>::Element *E=extensions.front();E;E=E->next()) {
			if (E->get().nocasecmp_to(extension)==0) {
				path=path.basename()+selected_ext;
				_path_changed(path);
				break;
			}
		}
	}
	file_path->set_text(path);
	_class_name_changed(class_name->get_text());

}
示例#6
0
void ScriptCreateDialog::config(const String &p_base_name, const String &p_base_path, bool p_built_in_enabled) {

	class_name->set_text("");
	class_name->deselect();
	parent_name->set_text(p_base_name);
	parent_name->deselect();

	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("");
	}
	file_path->deselect();

	built_in_enabled = p_built_in_enabled;

	_lang_changed(current_language);
	_class_name_changed("");
	_path_changed(file_path->get_text());
}