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",
|
"script_text_editor.cpp",
|
||||||
"text_editor.cpp",
|
"text_editor.cpp",
|
||||||
"script_editor_quick_open.cpp",
|
"script_editor_quick_open.cpp",
|
||||||
|
"script_editor_base.cpp",
|
||||||
]
|
]
|
||||||
|
|
||||||
env_mlp.add_source_files(env.modules_sources, sources)
|
env_mlp.add_source_files(env.modules_sources, sources)
|
||||||
|
@ -5,11 +5,13 @@
|
|||||||
|
|
||||||
#include "script_text_editor.h"
|
#include "script_text_editor.h"
|
||||||
#include "text_editor.h"
|
#include "text_editor.h"
|
||||||
|
#include "script_editor_base.h"
|
||||||
|
|
||||||
void register_code_editor_types(ModuleRegistrationLevel p_level) {
|
void register_code_editor_types(ModuleRegistrationLevel p_level) {
|
||||||
if (p_level == MODULE_REGISTRATION_LEVEL_SCENE) {
|
if (p_level == MODULE_REGISTRATION_LEVEL_SCENE) {
|
||||||
//ClassDB::register_class<>();
|
//ClassDB::register_class<>();
|
||||||
ClassDB::register_virtual_class<ScriptEditor>();
|
ClassDB::register_virtual_class<ScriptEditor>();
|
||||||
|
ClassDB::register_virtual_class<ScriptEditorBase>();
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef TOOLS_ENABLED
|
#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"
|
#include "shader_editor/shader_editor_plugin.h"
|
||||||
#endif
|
#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) {
|
static bool _is_built_in_script(Script *p_script) {
|
||||||
String path = p_script->get_path();
|
String path = p_script->get_path();
|
||||||
|
|
||||||
|
@ -51,6 +51,8 @@
|
|||||||
#include "core/variant/variant.h"
|
#include "core/variant/variant.h"
|
||||||
#include "core/containers/vector.h"
|
#include "core/containers/vector.h"
|
||||||
|
|
||||||
|
#include "script_editor_base.h"
|
||||||
|
|
||||||
class Button;
|
class Button;
|
||||||
class ConfigFile;
|
class ConfigFile;
|
||||||
class Control;
|
class Control;
|
||||||
@ -78,54 +80,6 @@ class VSplitContainer;
|
|||||||
class ScriptEditorQuickOpen;
|
class ScriptEditorQuickOpen;
|
||||||
class ScriptEditorDebugger;
|
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 SyntaxHighlighter *(*CreateSyntaxHighlighterFunc)();
|
||||||
typedef ScriptEditorBase *(*CreateScriptEditorFunc)(const RES &p_resource);
|
typedef ScriptEditorBase *(*CreateScriptEditorFunc)(const RES &p_resource);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user