mirror of
https://github.com/Relintai/pandemonium_engine.git
synced 2024-12-23 04:16:50 +01:00
Moved ScriptEditorBase to it's own file.
This commit is contained in:
parent
b3d5b450ec
commit
004dd1231f
@ -11,6 +11,7 @@ sources = [
|
||||
"script_text_editor.cpp",
|
||||
"text_editor.cpp",
|
||||
"script_editor_quick_open.cpp",
|
||||
"script_editor_base.cpp",
|
||||
]
|
||||
|
||||
env_mlp.add_source_files(env.modules_sources, sources)
|
||||
|
@ -5,11 +5,13 @@
|
||||
|
||||
#include "script_text_editor.h"
|
||||
#include "text_editor.h"
|
||||
#include "script_editor_base.h"
|
||||
|
||||
void register_code_editor_types(ModuleRegistrationLevel p_level) {
|
||||
if (p_level == MODULE_REGISTRATION_LEVEL_SCENE) {
|
||||
//ClassDB::register_class<>();
|
||||
ClassDB::register_virtual_class<ScriptEditor>();
|
||||
ClassDB::register_virtual_class<ScriptEditorBase>();
|
||||
}
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
|
43
modules/code_editor/script_editor_base.cpp
Normal file
43
modules/code_editor/script_editor_base.cpp
Normal file
@ -0,0 +1,43 @@
|
||||
/*************************************************************************/
|
||||
/* script_editor_plugin.cpp */
|
||||
/*************************************************************************/
|
||||
/* This file is part of: */
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
/* "Software"), to deal in the Software without restriction, including */
|
||||
/* without limitation the rights to use, copy, modify, merge, publish, */
|
||||
/* distribute, sublicense, and/or sell copies of the Software, and to */
|
||||
/* permit persons to whom the Software is furnished to do so, subject to */
|
||||
/* the following conditions: */
|
||||
/* */
|
||||
/* The above copyright notice and this permission notice shall be */
|
||||
/* included in all copies or substantial portions of the Software. */
|
||||
/* */
|
||||
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
|
||||
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
|
||||
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
|
||||
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
|
||||
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
|
||||
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/*************************************************************************/
|
||||
|
||||
#include "script_editor_base.h"
|
||||
|
||||
void ScriptEditorBase::_bind_methods() {
|
||||
ADD_SIGNAL(MethodInfo("name_changed"));
|
||||
ADD_SIGNAL(MethodInfo("edited_script_changed"));
|
||||
ADD_SIGNAL(MethodInfo("request_help", PropertyInfo(Variant::STRING, "topic")));
|
||||
ADD_SIGNAL(MethodInfo("request_open_script_at_line", PropertyInfo(Variant::OBJECT, "script"), PropertyInfo(Variant::INT, "line")));
|
||||
ADD_SIGNAL(MethodInfo("request_save_history"));
|
||||
ADD_SIGNAL(MethodInfo("go_to_help", PropertyInfo(Variant::STRING, "what")));
|
||||
// TODO: This signal is no use for VisualScript.
|
||||
ADD_SIGNAL(MethodInfo("search_in_files_requested", PropertyInfo(Variant::STRING, "text")));
|
||||
ADD_SIGNAL(MethodInfo("replace_in_files_requested", PropertyInfo(Variant::STRING, "text")));
|
||||
}
|
87
modules/code_editor/script_editor_base.h
Normal file
87
modules/code_editor/script_editor_base.h
Normal file
@ -0,0 +1,87 @@
|
||||
#ifndef SCRIPT_EDITOR_BASE_H
|
||||
#define SCRIPT_EDITOR_BASE_H
|
||||
|
||||
/*************************************************************************/
|
||||
/* script_editor_plugin.h */
|
||||
/*************************************************************************/
|
||||
/* This file is part of: */
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
/* "Software"), to deal in the Software without restriction, including */
|
||||
/* without limitation the rights to use, copy, modify, merge, publish, */
|
||||
/* distribute, sublicense, and/or sell copies of the Software, and to */
|
||||
/* permit persons to whom the Software is furnished to do so, subject to */
|
||||
/* the following conditions: */
|
||||
/* */
|
||||
/* The above copyright notice and this permission notice shall be */
|
||||
/* included in all copies or substantial portions of the Software. */
|
||||
/* */
|
||||
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
|
||||
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
|
||||
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
|
||||
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
|
||||
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
|
||||
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/*************************************************************************/
|
||||
|
||||
#include "scene/gui/box_container.h"
|
||||
|
||||
class SyntaxHighlighter;
|
||||
class Texture;
|
||||
|
||||
class ScriptEditorBase : public VBoxContainer {
|
||||
GDCLASS(ScriptEditorBase, VBoxContainer);
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
|
||||
public:
|
||||
virtual void add_syntax_highlighter(SyntaxHighlighter *p_highlighter) = 0;
|
||||
virtual void set_syntax_highlighter(SyntaxHighlighter *p_highlighter) = 0;
|
||||
|
||||
virtual void apply_code() = 0;
|
||||
virtual RES get_edited_resource() const = 0;
|
||||
virtual Vector<String> get_functions() = 0;
|
||||
virtual void set_edited_resource(const RES &p_res) = 0;
|
||||
virtual void enable_editor() = 0;
|
||||
virtual void reload_text() = 0;
|
||||
virtual String get_name() = 0;
|
||||
virtual Ref<Texture> get_icon() = 0;
|
||||
virtual bool is_unsaved() = 0;
|
||||
virtual Variant get_edit_state() = 0;
|
||||
virtual void set_edit_state(const Variant &p_state) = 0;
|
||||
virtual void goto_line(int p_line, bool p_with_error = false) = 0;
|
||||
virtual void set_executing_line(int p_line) = 0;
|
||||
virtual void clear_executing_line() = 0;
|
||||
virtual void trim_trailing_whitespace() = 0;
|
||||
virtual void insert_final_newline() = 0;
|
||||
virtual void convert_indent_to_spaces() = 0;
|
||||
virtual void convert_indent_to_tabs() = 0;
|
||||
virtual void ensure_focus() = 0;
|
||||
virtual void tag_saved_version() = 0;
|
||||
virtual void reload(bool p_soft) {}
|
||||
virtual void get_breakpoints(List<int> *p_breakpoints) = 0;
|
||||
virtual void add_callback(const String &p_function, PoolStringArray p_args) = 0;
|
||||
virtual void update_settings() = 0;
|
||||
virtual void set_debugger_active(bool p_active) = 0;
|
||||
virtual bool can_lose_focus_on_node_selection() { return true; }
|
||||
|
||||
virtual bool show_members_overview() = 0;
|
||||
|
||||
virtual void set_tooltip_request_func(String p_method, Object *p_obj) = 0;
|
||||
virtual Control *get_edit_menu() = 0;
|
||||
virtual void clear_edit_menu() = 0;
|
||||
|
||||
virtual void validate() = 0;
|
||||
|
||||
ScriptEditorBase() {}
|
||||
};
|
||||
|
||||
#endif // SCRIPT_EDITOR_PLUGIN_H
|
@ -99,20 +99,6 @@
|
||||
#include "shader_editor/shader_editor_plugin.h"
|
||||
#endif
|
||||
|
||||
/*** SCRIPT EDITOR ****/
|
||||
|
||||
void ScriptEditorBase::_bind_methods() {
|
||||
ADD_SIGNAL(MethodInfo("name_changed"));
|
||||
ADD_SIGNAL(MethodInfo("edited_script_changed"));
|
||||
ADD_SIGNAL(MethodInfo("request_help", PropertyInfo(Variant::STRING, "topic")));
|
||||
ADD_SIGNAL(MethodInfo("request_open_script_at_line", PropertyInfo(Variant::OBJECT, "script"), PropertyInfo(Variant::INT, "line")));
|
||||
ADD_SIGNAL(MethodInfo("request_save_history"));
|
||||
ADD_SIGNAL(MethodInfo("go_to_help", PropertyInfo(Variant::STRING, "what")));
|
||||
// TODO: This signal is no use for VisualScript.
|
||||
ADD_SIGNAL(MethodInfo("search_in_files_requested", PropertyInfo(Variant::STRING, "text")));
|
||||
ADD_SIGNAL(MethodInfo("replace_in_files_requested", PropertyInfo(Variant::STRING, "text")));
|
||||
}
|
||||
|
||||
static bool _is_built_in_script(Script *p_script) {
|
||||
String path = p_script->get_path();
|
||||
|
||||
|
@ -51,6 +51,8 @@
|
||||
#include "core/variant/variant.h"
|
||||
#include "core/containers/vector.h"
|
||||
|
||||
#include "script_editor_base.h"
|
||||
|
||||
class Button;
|
||||
class ConfigFile;
|
||||
class Control;
|
||||
@ -78,54 +80,6 @@ class VSplitContainer;
|
||||
class ScriptEditorQuickOpen;
|
||||
class ScriptEditorDebugger;
|
||||
|
||||
class ScriptEditorBase : public VBoxContainer {
|
||||
GDCLASS(ScriptEditorBase, VBoxContainer);
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
|
||||
public:
|
||||
virtual void add_syntax_highlighter(SyntaxHighlighter *p_highlighter) = 0;
|
||||
virtual void set_syntax_highlighter(SyntaxHighlighter *p_highlighter) = 0;
|
||||
|
||||
virtual void apply_code() = 0;
|
||||
virtual RES get_edited_resource() const = 0;
|
||||
virtual Vector<String> get_functions() = 0;
|
||||
virtual void set_edited_resource(const RES &p_res) = 0;
|
||||
virtual void enable_editor() = 0;
|
||||
virtual void reload_text() = 0;
|
||||
virtual String get_name() = 0;
|
||||
virtual Ref<Texture> get_icon() = 0;
|
||||
virtual bool is_unsaved() = 0;
|
||||
virtual Variant get_edit_state() = 0;
|
||||
virtual void set_edit_state(const Variant &p_state) = 0;
|
||||
virtual void goto_line(int p_line, bool p_with_error = false) = 0;
|
||||
virtual void set_executing_line(int p_line) = 0;
|
||||
virtual void clear_executing_line() = 0;
|
||||
virtual void trim_trailing_whitespace() = 0;
|
||||
virtual void insert_final_newline() = 0;
|
||||
virtual void convert_indent_to_spaces() = 0;
|
||||
virtual void convert_indent_to_tabs() = 0;
|
||||
virtual void ensure_focus() = 0;
|
||||
virtual void tag_saved_version() = 0;
|
||||
virtual void reload(bool p_soft) {}
|
||||
virtual void get_breakpoints(List<int> *p_breakpoints) = 0;
|
||||
virtual void add_callback(const String &p_function, PoolStringArray p_args) = 0;
|
||||
virtual void update_settings() = 0;
|
||||
virtual void set_debugger_active(bool p_active) = 0;
|
||||
virtual bool can_lose_focus_on_node_selection() { return true; }
|
||||
|
||||
virtual bool show_members_overview() = 0;
|
||||
|
||||
virtual void set_tooltip_request_func(String p_method, Object *p_obj) = 0;
|
||||
virtual Control *get_edit_menu() = 0;
|
||||
virtual void clear_edit_menu() = 0;
|
||||
|
||||
virtual void validate() = 0;
|
||||
|
||||
ScriptEditorBase() {}
|
||||
};
|
||||
|
||||
typedef SyntaxHighlighter *(*CreateSyntaxHighlighterFunc)();
|
||||
typedef ScriptEditorBase *(*CreateScriptEditorFunc)(const RES &p_resource);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user