Ejemplo n.º 1
0
Dictionary ShaderEditor::get_state() const {
#if 0
	apply_shaders();

	Dictionary state;

	Array paths;
	int open=-1;

	for(int i=0;i<tab_container->get_child_count();i++) {

		ShaderTextEditor *ste = tab_container->get_child(i)->cast_to<ShaderTextEditor>();
		if (!ste)
			continue;


		Ref<Shader> shader = ste->get_edited_shader();
		if (shader->get_path()!="" && shader->get_path().find("local://")==-1 && shader->get_path().find("::")==-1) {

			paths.push_back(shader->get_path());
		} else {


			const Node *owner = _find_node_with_shader(get_root_node(),shader.get_ref_ptr());
			if (owner)
				paths.push_back(owner->get_path());

		}

		if (i==tab_container->get_current_tab())
			open=i;
	}

	if (paths.size())
		state["sources"]=paths;
	if (open!=-1)
		state["current"]=open;


	return state;
#endif
	return Dictionary();
}
Ejemplo n.º 2
0
void ShaderEditor::_menu_option(int p_option) {

	int selected = tab_container->get_current_tab();
	if (selected<0 || selected>=tab_container->get_child_count())
		return;

	ShaderTextEditor *current = tab_container->get_child(selected)->cast_to<ShaderTextEditor>();
	if (!current)
		return;

	switch(p_option) {
		case EDIT_UNDO: {


			current->get_text_edit()->undo();
		} break;
		case EDIT_REDO: {
			current->get_text_edit()->redo();

		} break;
		case EDIT_CUT: {

			current->get_text_edit()->cut();
		} break;
		case EDIT_COPY: {
			current->get_text_edit()->copy();

		} break;
		case EDIT_PASTE: {
			current->get_text_edit()->paste();

		} break;
		case EDIT_SELECT_ALL: {

			current->get_text_edit()->select_all();

		} break;
		case SEARCH_FIND: {

			find_replace_dialog->set_text_edit(current->get_text_edit());
			find_replace_dialog->popup_search();
		} break;
		case SEARCH_FIND_NEXT: {

			find_replace_dialog->set_text_edit(current->get_text_edit());
			 find_replace_dialog->search_next();
		} break;
		case SEARCH_REPLACE: {

			find_replace_dialog->set_text_edit(current->get_text_edit());
			find_replace_dialog->popup_replace();
		} break;
//		case SEARCH_LOCATE_SYMBOL: {

//		} break;
		case SEARCH_GOTO_LINE: {

			goto_line_dialog->popup_find_line(current->get_text_edit());
		} break;
		case SHADER_POST_PROCESS_MODE:{

			fragment_editor->set_edited_shader(shader,ShaderLanguage::SHADER_POST_PROCESS);
			fragment_editor->_validate_script();
			apply_shaders();
			settings_menu->get_popup()->set_item_checked( settings_menu->get_popup()->get_item_index(SHADER_MATERIAL_MODE), false);
			settings_menu->get_popup()->set_item_checked( settings_menu->get_popup()->get_item_index(SHADER_POST_PROCESS_MODE), true);


		} break;
		case SHADER_MATERIAL_MODE: {

			fragment_editor->set_edited_shader(shader,ShaderLanguage::SHADER_MATERIAL_FRAGMENT);
			fragment_editor->_validate_script();
			apply_shaders();
			settings_menu->get_popup()->set_item_checked( settings_menu->get_popup()->get_item_index(SHADER_MATERIAL_MODE), true);
			settings_menu->get_popup()->set_item_checked( settings_menu->get_popup()->get_item_index(SHADER_POST_PROCESS_MODE), false);

		} break;
	}
}
Ejemplo n.º 3
0
void ShaderEditor::_menu_option(int p_option) {


	ShaderTextEditor *current = tab_container->get_current_tab_control()->cast_to<ShaderTextEditor>();
	if (!current)
		return;

	switch(p_option) {
		case EDIT_UNDO: {


			current->get_text_edit()->undo();
		} break;
		case EDIT_REDO: {
			current->get_text_edit()->redo();

		} break;
		case EDIT_CUT: {

			current->get_text_edit()->cut();
		} break;
		case EDIT_COPY: {
			current->get_text_edit()->copy();

		} break;
		case EDIT_PASTE: {
			current->get_text_edit()->paste();

		} break;
		case EDIT_SELECT_ALL: {

			current->get_text_edit()->select_all();

		} break;
		case SEARCH_FIND: {

			find_replace_dialog->set_text_edit(current->get_text_edit());
			find_replace_dialog->popup_search();
		} break;
		case SEARCH_FIND_NEXT: {

			find_replace_dialog->set_text_edit(current->get_text_edit());
			 find_replace_dialog->search_next();
		} break;
		case SEARCH_REPLACE: {

			find_replace_dialog->set_text_edit(current->get_text_edit());
			find_replace_dialog->popup_replace();
		} break;
//		case SEARCH_LOCATE_SYMBOL: {

//		} break;
		case SEARCH_GOTO_LINE: {

			goto_line_dialog->popup_find_line(current->get_text_edit());
		} break;

	}
}