mirror of
https://github.com/godotengine/godot.git
synced 2024-11-22 12:12:28 +00:00
Merge pull request #11253 from djrm/pr_better_docs
Improved editor docs
This commit is contained in:
commit
8c08f2380d
@ -150,9 +150,9 @@ Comment: Noto Sans font
|
||||
Copyright: 2012, Google Inc.
|
||||
License: OFL-1.1
|
||||
|
||||
Files: ./thirdparty/fonts/source_code_pro.otf
|
||||
Comment: Source Code Pro font
|
||||
Copyright: 2010, 2012, Adobe Systems Incorporated
|
||||
Files: ./thirdparty/fonts/mononoki_Regular.ttf
|
||||
Comment: Mononoki font
|
||||
Copyright: 2013, Matthias Tellen
|
||||
License: OFL-1.1
|
||||
|
||||
Files: ./thirdparty/freetype/
|
||||
|
@ -78,8 +78,8 @@ static Ref<BitmapFont> make_font(int p_height, int p_ascent, int p_valign, int p
|
||||
m_name.instance(); \
|
||||
m_name->set_size(m_size); \
|
||||
m_name->set_font_data(DefaultFont); \
|
||||
m_name->set_spacing(DynamicFont::SPACING_TOP, -1); \
|
||||
m_name->set_spacing(DynamicFont::SPACING_BOTTOM, -1); \
|
||||
m_name->set_spacing(DynamicFont::SPACING_TOP, -EDSCALE); \
|
||||
m_name->set_spacing(DynamicFont::SPACING_BOTTOM, -EDSCALE); \
|
||||
MAKE_FALLBACKS(m_name);
|
||||
|
||||
void editor_register_fonts(Ref<Theme> p_theme) {
|
||||
@ -119,7 +119,7 @@ void editor_register_fonts(Ref<Theme> p_theme) {
|
||||
|
||||
Ref<DynamicFontData> dfmono;
|
||||
dfmono.instance();
|
||||
dfmono->set_font_ptr(_font_source_code_pro, _font_source_code_pro_size);
|
||||
dfmono->set_font_ptr(_font_mononoki_Regular, _font_mononoki_Regular_size);
|
||||
//dfd->set_force_autohinter(true); //just looks better..i think?
|
||||
|
||||
MAKE_DEFAULT_FONT(df, int(EditorSettings::get_singleton()->get("interface/font_size")) * EDSCALE);
|
||||
@ -147,7 +147,9 @@ void editor_register_fonts(Ref<Theme> p_theme) {
|
||||
|
||||
Ref<DynamicFont> df_doc_code;
|
||||
df_doc_code.instance();
|
||||
df_doc_code->set_size(int(EDITOR_DEF("text_editor/help/help_source_font_size", 14)) * EDSCALE);
|
||||
df_doc_code->set_size(int(EDITOR_DEF("text_editor/help/help_source_font_size", 18)) * EDSCALE);
|
||||
df_doc_code->set_spacing(DynamicFont::SPACING_TOP, -EDSCALE);
|
||||
df_doc_code->set_spacing(DynamicFont::SPACING_BOTTOM, -EDSCALE);
|
||||
df_doc_code->set_font_data(dfmono);
|
||||
MAKE_FALLBACKS(df_doc_code);
|
||||
|
||||
|
@ -607,7 +607,9 @@ void EditorHelp::_add_type(const String &p_type, const String &p_enum) {
|
||||
t = p_enum.get_slice(".", 0);
|
||||
}
|
||||
}
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/base_type_color"));
|
||||
const Color text_color = get_color("default_color", "RichTextLabel");
|
||||
const Color type_color = get_color("accent_color", "Editor").linear_interpolate(text_color, 0.5);
|
||||
class_desc->push_color(type_color);
|
||||
if (can_ref) {
|
||||
if (p_enum == "") {
|
||||
class_desc->push_meta("#" + t); //class
|
||||
@ -642,24 +644,32 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
|
||||
class_desc->clear();
|
||||
method_line.clear();
|
||||
section_line.clear();
|
||||
edited_class = p_class;
|
||||
//edited_class->show();
|
||||
|
||||
DocData::ClassDoc cd = doc->class_list[p_class]; //make a copy, so we can sort without worrying
|
||||
// Colors
|
||||
const Color title_color = get_color("accent_color", "Editor");
|
||||
const Color text_color = get_color("font_color", "RichTextLabel");
|
||||
const Color highlight_color = get_color("highlight_color", "RichTextLabel");
|
||||
const Color base_type_color = title_color.linear_interpolate(text_color, 0.5);
|
||||
const Color comment_color = Color(text_color.r, text_color.g, text_color.b, 0.6);
|
||||
const Color symbol_color = comment_color;
|
||||
const Color value_color = Color(text_color.r, text_color.g, text_color.b, 0.4);
|
||||
const Color qualifier_color = Color(text_color.r, text_color.g, text_color.b, 0.8);
|
||||
|
||||
Color h_color;
|
||||
DocData::ClassDoc cd = doc->class_list[p_class]; //make a copy, so we can sort without worrying
|
||||
|
||||
Ref<Font> doc_font = get_font("doc", "EditorFonts");
|
||||
Ref<Font> doc_title_font = get_font("doc_title", "EditorFonts");
|
||||
Ref<Font> doc_code_font = get_font("doc_source", "EditorFonts");
|
||||
String link_color_text = Color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color")).to_html(false);
|
||||
|
||||
h_color = Color(1, 1, 1, 1);
|
||||
String link_color_text = title_color.to_html(false);
|
||||
|
||||
section_line.push_back(Pair<String, int>(TTR("Top"), 0));
|
||||
class_desc->push_font(doc_title_font);
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
|
||||
class_desc->push_color(title_color);
|
||||
class_desc->add_text(TTR("Class:") + " ");
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/base_type_color"));
|
||||
class_desc->push_color(highlight_color);
|
||||
_add_text(p_class);
|
||||
class_desc->pop();
|
||||
class_desc->pop();
|
||||
@ -668,7 +678,7 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
|
||||
if (cd.inherits != "") {
|
||||
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
|
||||
class_desc->push_color(title_color);
|
||||
class_desc->push_font(doc_title_font);
|
||||
class_desc->add_text(TTR("Inherits:") + " ");
|
||||
class_desc->pop();
|
||||
@ -702,7 +712,7 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
if (E->get().inherits == cd.name) {
|
||||
|
||||
if (!found) {
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
|
||||
class_desc->push_color(title_color);
|
||||
class_desc->push_font(doc_title_font);
|
||||
class_desc->add_text(TTR("Inherited by:") + " ");
|
||||
class_desc->pop();
|
||||
@ -729,11 +739,12 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
class_desc->add_newline();
|
||||
}
|
||||
|
||||
class_desc->add_newline();
|
||||
class_desc->add_newline();
|
||||
|
||||
if (cd.brief_description != "") {
|
||||
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
|
||||
class_desc->push_color(title_color);
|
||||
class_desc->push_font(doc_title_font);
|
||||
class_desc->add_text(TTR("Brief Description:"));
|
||||
class_desc->pop();
|
||||
@ -741,7 +752,7 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
|
||||
//class_desc->add_newline();
|
||||
class_desc->add_newline();
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
|
||||
class_desc->push_color(text_color);
|
||||
class_desc->push_font(doc_font);
|
||||
class_desc->push_indent(1);
|
||||
_add_text(cd.brief_description);
|
||||
@ -750,6 +761,7 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
class_desc->pop();
|
||||
class_desc->add_newline();
|
||||
class_desc->add_newline();
|
||||
class_desc->add_newline();
|
||||
}
|
||||
|
||||
Set<String> skip_methods;
|
||||
@ -757,7 +769,8 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
|
||||
if (cd.properties.size()) {
|
||||
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
|
||||
section_line.push_back(Pair<String, int>(TTR("Members"), class_desc->get_line_count() - 2));
|
||||
class_desc->push_color(title_color);
|
||||
class_desc->push_font(doc_title_font);
|
||||
class_desc->add_text(TTR("Members:"));
|
||||
class_desc->pop();
|
||||
@ -775,7 +788,6 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
class_desc->push_align(RichTextLabel::ALIGN_RIGHT);
|
||||
class_desc->push_font(doc_code_font);
|
||||
_add_type(cd.properties[i].type, cd.properties[i].enumeration);
|
||||
class_desc->add_text(" ");
|
||||
class_desc->pop();
|
||||
class_desc->pop();
|
||||
class_desc->pop();
|
||||
@ -800,7 +812,7 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
}
|
||||
|
||||
class_desc->push_font(doc_code_font);
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
|
||||
class_desc->push_color(highlight_color);
|
||||
_add_text(cd.properties[i].name);
|
||||
|
||||
if (describe) {
|
||||
@ -835,7 +847,8 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
if (sort_methods)
|
||||
methods.sort();
|
||||
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
|
||||
section_line.push_back(Pair<String, int>(TTR("Public Methods"), class_desc->get_line_count() - 2));
|
||||
class_desc->push_color(title_color);
|
||||
class_desc->push_font(doc_title_font);
|
||||
class_desc->add_text(TTR("Public Methods:"));
|
||||
class_desc->pop();
|
||||
@ -852,9 +865,9 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
|
||||
bool is_vararg = methods[i].qualifiers.find("vararg") != -1;
|
||||
|
||||
class_desc->push_cell();
|
||||
|
||||
method_line[methods[i].name] = class_desc->get_line_count() - 2; //gets overridden if description
|
||||
|
||||
class_desc->push_cell();
|
||||
class_desc->push_align(RichTextLabel::ALIGN_RIGHT);
|
||||
class_desc->push_font(doc_code_font);
|
||||
_add_type(methods[i].return_type, methods[i].return_enum);
|
||||
@ -862,23 +875,24 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
class_desc->pop(); //align
|
||||
class_desc->pop(); //font
|
||||
class_desc->pop(); //cell
|
||||
|
||||
class_desc->push_cell();
|
||||
class_desc->push_font(doc_code_font);
|
||||
|
||||
if (true || methods[i].description != "") { //always describe method
|
||||
if (methods[i].description != "") {
|
||||
method_descr = true;
|
||||
class_desc->push_meta("@" + methods[i].name);
|
||||
}
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
|
||||
class_desc->push_color(highlight_color);
|
||||
_add_text(methods[i].name);
|
||||
class_desc->pop();
|
||||
if (methods[i].description != "")
|
||||
class_desc->pop();
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color"));
|
||||
class_desc->pop(); // pop meta
|
||||
class_desc->push_color(symbol_color);
|
||||
class_desc->add_text(methods[i].arguments.size() || is_vararg ? "( " : "(");
|
||||
class_desc->pop();
|
||||
for (int j = 0; j < methods[i].arguments.size(); j++) {
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
|
||||
class_desc->push_color(text_color);
|
||||
if (j > 0)
|
||||
class_desc->add_text(", ");
|
||||
_add_type(methods[i].arguments[j].type, methods[i].arguments[j].enumeration);
|
||||
@ -886,7 +900,7 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
_add_text(methods[i].arguments[j].name);
|
||||
if (methods[i].arguments[j].default_value != "") {
|
||||
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color"));
|
||||
class_desc->push_color(symbol_color);
|
||||
class_desc->add_text("=");
|
||||
class_desc->pop();
|
||||
_add_text(methods[i].arguments[j].default_value);
|
||||
@ -896,21 +910,21 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
}
|
||||
|
||||
if (is_vararg) {
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
|
||||
class_desc->push_color(text_color);
|
||||
if (methods[i].arguments.size())
|
||||
class_desc->add_text(", ");
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color"));
|
||||
class_desc->push_color(symbol_color);
|
||||
class_desc->add_text("...");
|
||||
class_desc->pop();
|
||||
class_desc->pop();
|
||||
}
|
||||
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color"));
|
||||
class_desc->push_color(symbol_color);
|
||||
class_desc->add_text(methods[i].arguments.size() || is_vararg ? " )" : ")");
|
||||
class_desc->pop();
|
||||
if (methods[i].qualifiers != "") {
|
||||
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
|
||||
class_desc->push_color(qualifier_color);
|
||||
class_desc->add_text(" ");
|
||||
_add_text(methods[i].qualifiers);
|
||||
class_desc->pop();
|
||||
@ -927,42 +941,54 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
|
||||
if (cd.theme_properties.size()) {
|
||||
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
|
||||
section_line.push_back(Pair<String, int>(TTR("GUI Theme Items"), class_desc->get_line_count() - 2));
|
||||
class_desc->push_color(title_color);
|
||||
class_desc->push_font(doc_title_font);
|
||||
class_desc->add_text(TTR("GUI Theme Items:"));
|
||||
class_desc->pop();
|
||||
class_desc->pop();
|
||||
class_desc->add_newline();
|
||||
// class_desc->add_newline();
|
||||
|
||||
class_desc->push_indent(1);
|
||||
class_desc->push_table(2);
|
||||
class_desc->set_table_column_expand(1, 1);
|
||||
|
||||
//class_desc->add_newline();
|
||||
|
||||
for (int i = 0; i < cd.theme_properties.size(); i++) {
|
||||
|
||||
theme_property_line[cd.theme_properties[i].name] = class_desc->get_line_count() - 2; //gets overridden if description
|
||||
|
||||
class_desc->push_cell();
|
||||
class_desc->push_align(RichTextLabel::ALIGN_RIGHT);
|
||||
class_desc->push_font(doc_code_font);
|
||||
_add_type(cd.theme_properties[i].type);
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
|
||||
class_desc->add_text(" ");
|
||||
class_desc->pop();
|
||||
class_desc->pop();
|
||||
class_desc->pop();
|
||||
|
||||
class_desc->push_cell();
|
||||
class_desc->push_font(doc_code_font);
|
||||
class_desc->push_color(highlight_color);
|
||||
_add_text(cd.theme_properties[i].name);
|
||||
class_desc->pop();
|
||||
class_desc->pop();
|
||||
|
||||
if (true || cd.theme_properties[i].description != "") { //always describe properties
|
||||
if (cd.theme_properties[i].description != "") {
|
||||
class_desc->push_font(doc_font);
|
||||
class_desc->add_text(" ");
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/comment_color"));
|
||||
class_desc->push_color(comment_color);
|
||||
_add_text(cd.theme_properties[i].description);
|
||||
class_desc->pop();
|
||||
class_desc->pop();
|
||||
}
|
||||
|
||||
class_desc->add_newline();
|
||||
class_desc->pop(); // cell
|
||||
}
|
||||
|
||||
class_desc->pop(); // table
|
||||
class_desc->pop();
|
||||
class_desc->add_newline();
|
||||
class_desc->add_newline();
|
||||
}
|
||||
|
||||
if (cd.signals.size()) {
|
||||
@ -970,7 +996,9 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
if (sort_methods) {
|
||||
cd.signals.sort();
|
||||
}
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
|
||||
|
||||
section_line.push_back(Pair<String, int>(TTR("Signals"), class_desc->get_line_count() - 2));
|
||||
class_desc->push_color(title_color);
|
||||
class_desc->push_font(doc_title_font);
|
||||
class_desc->add_text(TTR("Signals:"));
|
||||
class_desc->pop();
|
||||
@ -987,14 +1015,14 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
class_desc->push_font(doc_code_font); // monofont
|
||||
//_add_type("void");
|
||||
//class_desc->add_text(" ");
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
|
||||
class_desc->push_color(highlight_color);
|
||||
_add_text(cd.signals[i].name);
|
||||
class_desc->pop();
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color"));
|
||||
class_desc->push_color(symbol_color);
|
||||
class_desc->add_text(cd.signals[i].arguments.size() ? "( " : "(");
|
||||
class_desc->pop();
|
||||
for (int j = 0; j < cd.signals[i].arguments.size(); j++) {
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
|
||||
class_desc->push_color(text_color);
|
||||
if (j > 0)
|
||||
class_desc->add_text(", ");
|
||||
_add_type(cd.signals[i].arguments[j].type);
|
||||
@ -1002,7 +1030,7 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
_add_text(cd.signals[i].arguments[j].name);
|
||||
if (cd.signals[i].arguments[j].default_value != "") {
|
||||
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color"));
|
||||
class_desc->push_color(symbol_color);
|
||||
class_desc->add_text("=");
|
||||
class_desc->pop();
|
||||
_add_text(cd.signals[i].arguments[j].default_value);
|
||||
@ -1011,13 +1039,13 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
class_desc->pop();
|
||||
}
|
||||
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color"));
|
||||
class_desc->push_color(symbol_color);
|
||||
class_desc->add_text(cd.signals[i].arguments.size() ? " )" : ")");
|
||||
class_desc->pop();
|
||||
class_desc->pop(); // end monofont
|
||||
if (cd.signals[i].description != "") {
|
||||
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/comment_color"));
|
||||
class_desc->push_color(comment_color);
|
||||
class_desc->add_text(" ");
|
||||
_add_text(cd.signals[i].description);
|
||||
class_desc->pop();
|
||||
@ -1050,7 +1078,8 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
|
||||
if (enums.size()) {
|
||||
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
|
||||
section_line.push_back(Pair<String, int>(TTR("Enumerations"), class_desc->get_line_count() - 2));
|
||||
class_desc->push_color(title_color);
|
||||
class_desc->push_font(doc_title_font);
|
||||
class_desc->add_text(TTR("Enumerations:"));
|
||||
class_desc->pop();
|
||||
@ -1064,7 +1093,7 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
|
||||
enum_line[E->key()] = class_desc->get_line_count() - 2;
|
||||
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
|
||||
class_desc->push_color(title_color);
|
||||
class_desc->add_text(TTR("enum "));
|
||||
class_desc->pop();
|
||||
class_desc->push_font(doc_code_font);
|
||||
@ -1073,9 +1102,11 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
e = e.get_slice(".", 1);
|
||||
}
|
||||
|
||||
class_desc->push_color(highlight_color);
|
||||
class_desc->add_text(e);
|
||||
class_desc->pop();
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
|
||||
class_desc->pop();
|
||||
class_desc->push_color(symbol_color);
|
||||
class_desc->add_text(":");
|
||||
class_desc->pop();
|
||||
class_desc->add_newline();
|
||||
@ -1086,20 +1117,20 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
for (int i = 0; i < enum_list.size(); i++) {
|
||||
|
||||
class_desc->push_font(doc_code_font);
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/base_type_color"));
|
||||
class_desc->push_color(highlight_color);
|
||||
_add_text(enum_list[i].name);
|
||||
class_desc->pop();
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color"));
|
||||
class_desc->push_color(symbol_color);
|
||||
class_desc->add_text(" = ");
|
||||
class_desc->pop();
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
|
||||
class_desc->push_color(value_color);
|
||||
_add_text(enum_list[i].value);
|
||||
class_desc->pop();
|
||||
class_desc->pop();
|
||||
if (enum_list[i].description != "") {
|
||||
class_desc->push_font(doc_font);
|
||||
class_desc->add_text(" ");
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/comment_color"));
|
||||
class_desc->push_color(comment_color);
|
||||
_add_text(enum_list[i].description);
|
||||
class_desc->pop();
|
||||
class_desc->pop();
|
||||
@ -1119,7 +1150,8 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
|
||||
if (constants.size()) {
|
||||
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
|
||||
section_line.push_back(Pair<String, int>(TTR("Constants"), class_desc->get_line_count() - 2));
|
||||
class_desc->push_color(title_color);
|
||||
class_desc->push_font(doc_title_font);
|
||||
class_desc->add_text(TTR("Constants:"));
|
||||
class_desc->pop();
|
||||
@ -1133,20 +1165,20 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
|
||||
constant_line[constants[i].name] = class_desc->get_line_count() - 2;
|
||||
class_desc->push_font(doc_code_font);
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/base_type_color"));
|
||||
class_desc->push_color(highlight_color);
|
||||
_add_text(constants[i].name);
|
||||
class_desc->pop();
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color"));
|
||||
class_desc->push_color(symbol_color);
|
||||
class_desc->add_text(" = ");
|
||||
class_desc->pop();
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
|
||||
class_desc->push_color(value_color);
|
||||
_add_text(constants[i].value);
|
||||
class_desc->pop();
|
||||
class_desc->pop();
|
||||
if (constants[i].description != "") {
|
||||
class_desc->push_font(doc_font);
|
||||
class_desc->add_text(" ");
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/comment_color"));
|
||||
class_desc->push_color(comment_color);
|
||||
_add_text(constants[i].description);
|
||||
class_desc->pop();
|
||||
class_desc->pop();
|
||||
@ -1162,16 +1194,16 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
|
||||
if (cd.description != "") {
|
||||
|
||||
section_line.push_back(Pair<String, int>(TTR("Description"), class_desc->get_line_count() - 2));
|
||||
description_line = class_desc->get_line_count() - 2;
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
|
||||
class_desc->push_color(title_color);
|
||||
class_desc->push_font(doc_title_font);
|
||||
class_desc->add_text(TTR("Description:"));
|
||||
class_desc->pop();
|
||||
class_desc->pop();
|
||||
|
||||
class_desc->add_newline();
|
||||
class_desc->add_newline();
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
|
||||
class_desc->push_color(text_color);
|
||||
class_desc->push_font(doc_font);
|
||||
class_desc->push_indent(1);
|
||||
_add_text(cd.description);
|
||||
@ -1180,11 +1212,13 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
class_desc->pop();
|
||||
class_desc->add_newline();
|
||||
class_desc->add_newline();
|
||||
class_desc->add_newline();
|
||||
}
|
||||
|
||||
if (property_descr) {
|
||||
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
|
||||
section_line.push_back(Pair<String, int>(TTR("Properties"), class_desc->get_line_count() - 2));
|
||||
class_desc->push_color(title_color);
|
||||
class_desc->push_font(doc_title_font);
|
||||
class_desc->add_text(TTR("Property Description:"));
|
||||
class_desc->pop();
|
||||
@ -1201,7 +1235,7 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
_add_type(cd.properties[i].type, cd.properties[i].enumeration);
|
||||
|
||||
class_desc->add_text(" ");
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
|
||||
class_desc->push_color(highlight_color);
|
||||
_add_text(cd.properties[i].name);
|
||||
class_desc->pop(); //color
|
||||
|
||||
@ -1214,11 +1248,11 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
class_desc->push_font(doc_font);
|
||||
|
||||
class_desc->push_indent(2);
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
|
||||
class_desc->push_color(comment_color);
|
||||
class_desc->add_text("Setter: ");
|
||||
class_desc->pop();
|
||||
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
|
||||
class_desc->push_color(text_color);
|
||||
class_desc->add_text(cd.properties[i].setter + "(value)");
|
||||
class_desc->pop(); //color
|
||||
|
||||
@ -1232,11 +1266,11 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
class_desc->push_font(doc_font);
|
||||
|
||||
class_desc->push_indent(2);
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
|
||||
class_desc->push_color(comment_color);
|
||||
class_desc->add_text("Getter: ");
|
||||
class_desc->pop();
|
||||
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
|
||||
class_desc->push_color(text_color);
|
||||
class_desc->add_text(cd.properties[i].getter + "()");
|
||||
class_desc->pop(); //color
|
||||
|
||||
@ -1247,7 +1281,7 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
|
||||
class_desc->add_newline();
|
||||
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
|
||||
class_desc->push_color(text_color);
|
||||
class_desc->push_font(doc_font);
|
||||
class_desc->push_indent(1);
|
||||
if (cd.properties[i].description.strip_edges() != String()) {
|
||||
@ -1255,7 +1289,7 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
} else {
|
||||
class_desc->add_image(get_icon("Error", "EditorIcons"));
|
||||
class_desc->add_text(" ");
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/comment_color"));
|
||||
class_desc->push_color(comment_color);
|
||||
class_desc->append_bbcode(TTR("There is currently no description for this property. Please help us by [color=$color][url=$url]contributing one[/url][/color]!").replace("$url", CONTRIBUTE_URL).replace("$color", link_color_text));
|
||||
class_desc->pop();
|
||||
}
|
||||
@ -1270,7 +1304,8 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
|
||||
if (method_descr) {
|
||||
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
|
||||
section_line.push_back(Pair<String, int>(TTR("Methods"), class_desc->get_line_count() - 2));
|
||||
class_desc->push_color(title_color);
|
||||
class_desc->push_font(doc_title_font);
|
||||
class_desc->add_text(TTR("Method Description:"));
|
||||
class_desc->pop();
|
||||
@ -1289,14 +1324,14 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
_add_type(methods[i].return_type, methods[i].return_enum);
|
||||
|
||||
class_desc->add_text(" ");
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
|
||||
class_desc->push_color(highlight_color);
|
||||
_add_text(methods[i].name);
|
||||
class_desc->pop();
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color"));
|
||||
class_desc->push_color(symbol_color);
|
||||
class_desc->add_text(methods[i].arguments.size() || is_vararg ? "( " : "(");
|
||||
class_desc->pop();
|
||||
for (int j = 0; j < methods[i].arguments.size(); j++) {
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
|
||||
class_desc->push_color(text_color);
|
||||
if (j > 0)
|
||||
class_desc->add_text(", ");
|
||||
_add_type(methods[i].arguments[j].type, methods[i].arguments[j].enumeration);
|
||||
@ -1304,7 +1339,7 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
_add_text(methods[i].arguments[j].name);
|
||||
if (methods[i].arguments[j].default_value != "") {
|
||||
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color"));
|
||||
class_desc->push_color(symbol_color);
|
||||
class_desc->add_text("=");
|
||||
class_desc->pop();
|
||||
_add_text(methods[i].arguments[j].default_value);
|
||||
@ -1314,21 +1349,21 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
}
|
||||
|
||||
if (is_vararg) {
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
|
||||
class_desc->push_color(text_color);
|
||||
if (methods[i].arguments.size())
|
||||
class_desc->add_text(", ");
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color"));
|
||||
class_desc->push_color(symbol_color);
|
||||
class_desc->add_text("...");
|
||||
class_desc->pop();
|
||||
class_desc->pop();
|
||||
}
|
||||
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color"));
|
||||
class_desc->push_color(symbol_color);
|
||||
class_desc->add_text(methods[i].arguments.size() || is_vararg ? " )" : ")");
|
||||
class_desc->pop();
|
||||
if (methods[i].qualifiers != "") {
|
||||
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
|
||||
class_desc->push_color(qualifier_color);
|
||||
class_desc->add_text(" ");
|
||||
_add_text(methods[i].qualifiers);
|
||||
class_desc->pop();
|
||||
@ -1337,7 +1372,7 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
class_desc->pop();
|
||||
|
||||
class_desc->add_newline();
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
|
||||
class_desc->push_color(text_color);
|
||||
class_desc->push_font(doc_font);
|
||||
class_desc->push_indent(1);
|
||||
if (methods[i].description.strip_edges() != String()) {
|
||||
@ -1345,7 +1380,7 @@ Error EditorHelp::_goto_desc(const String &p_class, int p_vscr) {
|
||||
} else {
|
||||
class_desc->add_image(get_icon("Error", "EditorIcons"));
|
||||
class_desc->add_text(" ");
|
||||
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/comment_color"));
|
||||
class_desc->push_color(comment_color);
|
||||
class_desc->append_bbcode(TTR("There is currently no description for this method. Please help us by [color=$color][url=$url]contributing one[/url][/color]!").replace("$url", CONTRIBUTE_URL).replace("$color", link_color_text));
|
||||
class_desc->pop();
|
||||
}
|
||||
@ -1419,70 +1454,16 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt) {
|
||||
DocData *doc = EditorHelp::get_doc_data();
|
||||
String base_path;
|
||||
|
||||
/*p_rt->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/text_color"));
|
||||
p_rt->push_font( get_font("normal","Fonts") );
|
||||
p_rt->push_indent(1);*/
|
||||
int pos = 0;
|
||||
|
||||
Ref<Font> doc_font = p_rt->get_font("doc", "EditorFonts");
|
||||
Ref<Font> doc_code_font = p_rt->get_font("doc_source", "EditorFonts");
|
||||
Color font_color_hl = p_rt->get_color("highlight_color", "RichTextLabel");
|
||||
Color link_color = p_rt->get_color("accent_color", "Editor").linear_interpolate(font_color_hl, 0.8);
|
||||
|
||||
String bbcode = p_bbcode.replace("\t", " ").replace("\r", " ").strip_edges();
|
||||
|
||||
//change newlines for double newlines
|
||||
for (int i = 0; i < bbcode.length(); i++) {
|
||||
|
||||
//find valid newlines (double)
|
||||
if (bbcode[i] == '\n') {
|
||||
bool dnl = false;
|
||||
int j = i + 1;
|
||||
for (; j < p_bbcode.length(); j++) {
|
||||
if (bbcode[j] == ' ')
|
||||
continue;
|
||||
if (bbcode[j] == '\n') {
|
||||
dnl = true;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (dnl) {
|
||||
bbcode[i] = 0xFFFF;
|
||||
//keep
|
||||
i = j;
|
||||
} else {
|
||||
bbcode = bbcode.insert(i, "\n");
|
||||
i++;
|
||||
//bbcode[i]=' ';
|
||||
//i=j-1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//remove double spaces or spaces after newlines
|
||||
for (int i = 0; i < bbcode.length(); i++) {
|
||||
|
||||
if (bbcode[i] == ' ' || bbcode[i] == '\n' || bbcode[i] == 0xFFFF) {
|
||||
|
||||
for (int j = i + 1; j < p_bbcode.length(); j++) {
|
||||
if (bbcode[j] == ' ') {
|
||||
bbcode.remove(j);
|
||||
j--;
|
||||
continue;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//change newlines to double newlines
|
||||
|
||||
CharType dnls[2] = { 0xFFFF, 0 };
|
||||
bbcode = bbcode.replace(dnls, "\n");
|
||||
|
||||
List<String> tag_stack;
|
||||
|
||||
int pos = 0;
|
||||
while (pos < bbcode.length()) {
|
||||
|
||||
int brk_pos = bbcode.find("[", pos);
|
||||
@ -1500,7 +1481,6 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt) {
|
||||
int brk_end = bbcode.find("]", brk_pos + 1);
|
||||
|
||||
if (brk_end == -1) {
|
||||
//no close, add the rest
|
||||
p_rt->add_text(bbcode.substr(brk_pos, bbcode.length() - brk_pos));
|
||||
|
||||
break;
|
||||
@ -1512,6 +1492,7 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt) {
|
||||
bool tag_ok = tag_stack.size() && tag_stack.front()->get() == tag.substr(1, tag.length());
|
||||
if (tag_stack.size()) {
|
||||
}
|
||||
|
||||
if (!tag_ok) {
|
||||
|
||||
p_rt->add_text("[");
|
||||
@ -1527,7 +1508,7 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt) {
|
||||
} else if (tag.begins_with("method ")) {
|
||||
|
||||
String m = tag.substr(7, tag.length());
|
||||
p_rt->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
|
||||
p_rt->push_color(link_color);
|
||||
p_rt->push_meta("@" + m);
|
||||
p_rt->add_text(m + "()");
|
||||
p_rt->pop();
|
||||
@ -1536,7 +1517,7 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt) {
|
||||
|
||||
} else if (doc->class_list.has(tag)) {
|
||||
|
||||
p_rt->push_color(EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color"));
|
||||
p_rt->push_color(link_color);
|
||||
p_rt->push_meta("#" + tag);
|
||||
p_rt->add_text(tag);
|
||||
p_rt->pop();
|
||||
@ -1552,13 +1533,7 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt) {
|
||||
} else if (tag == "i") {
|
||||
|
||||
//use italics font
|
||||
Color text_color = EditorSettings::get_singleton()->get("text_editor/highlighting/text_color");
|
||||
//no italics so emphasize with color
|
||||
text_color.r *= 1.1;
|
||||
text_color.g *= 1.1;
|
||||
text_color.b *= 1.1;
|
||||
p_rt->push_color(text_color);
|
||||
//p_rt->push_font(get_font("italic","Fonts"));
|
||||
p_rt->push_color(font_color_hl);
|
||||
pos = brk_end + 1;
|
||||
tag_stack.push_front(tag);
|
||||
} else if (tag == "code" || tag == "codeblock") {
|
||||
@ -1728,6 +1703,7 @@ void EditorHelp::_notification(int p_what) {
|
||||
case EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED: {
|
||||
|
||||
class_desc->add_color_override("selection_color", EDITOR_DEF("text_editor/highlighting/selection_color", Color(0.2, 0.2, 1)));
|
||||
|
||||
} break;
|
||||
|
||||
default: break;
|
||||
@ -1744,9 +1720,23 @@ void EditorHelp::go_to_class(const String &p_class, int p_scroll) {
|
||||
_goto_desc(p_class, p_scroll);
|
||||
}
|
||||
|
||||
Vector<Pair<String, int> > EditorHelp::get_sections() {
|
||||
Vector<Pair<String, int> > sections;
|
||||
|
||||
for (int i = 0; i < section_line.size(); i++) {
|
||||
sections.push_back(Pair<String, int>(section_line[i].first, i));
|
||||
}
|
||||
return sections;
|
||||
}
|
||||
|
||||
void EditorHelp::scroll_to_section(int p_section_index) {
|
||||
int line = section_line[p_section_index].second;
|
||||
class_desc->scroll_to_line(line);
|
||||
}
|
||||
|
||||
void EditorHelp::popup_search() {
|
||||
|
||||
search_dialog->popup_centered(Size2(250, 80));
|
||||
search_dialog->popup_centered(Size2(250, 80) * EDSCALE);
|
||||
search->grab_focus();
|
||||
}
|
||||
|
||||
@ -1825,7 +1815,6 @@ EditorHelp::EditorHelp() {
|
||||
search_dialog->get_ok()->set_text(TTR("Find"));
|
||||
search_dialog->connect("confirmed", this, "_search_cbk");
|
||||
search_dialog->set_hide_on_ok(false);
|
||||
search_dialog->set_self_modulate(Color(1, 1, 1, 0.8));
|
||||
|
||||
/*class_search = memnew( EditorHelpSearch(editor) );
|
||||
editor->get_gui_base()->add_child(class_search);
|
||||
|
@ -118,6 +118,7 @@ class EditorHelp : public VBoxContainer {
|
||||
|
||||
String edited_class;
|
||||
|
||||
Vector<Pair<String, int> > section_line;
|
||||
Map<String, int> method_line;
|
||||
Map<String, int> signal_line;
|
||||
Map<String, int> property_line;
|
||||
@ -168,6 +169,9 @@ public:
|
||||
void go_to_help(const String &p_help);
|
||||
void go_to_class(const String &p_class, int p_scroll = 0);
|
||||
|
||||
Vector<Pair<String, int> > get_sections();
|
||||
void scroll_to_section(int p_section_index);
|
||||
|
||||
void popup_search();
|
||||
void search_again();
|
||||
|
||||
|
@ -739,6 +739,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
|
||||
set("docks/property_editor/texture_preview_width", 48);
|
||||
set("docks/property_editor/auto_refresh_interval", 0.3);
|
||||
set("text_editor/help/doc_path", "");
|
||||
set("text_editor/help/show_help_index", true);
|
||||
|
||||
set("filesystem/import/ask_save_before_reimport", false);
|
||||
|
||||
|
@ -706,7 +706,8 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
|
||||
|
||||
//RichTextLabel
|
||||
Color rtl_combined_bg_color = dark_color_1.linear_interpolate(script_bg_color, script_bg_color.a);
|
||||
Color rtl_font_color = (rtl_combined_bg_color.r + rtl_combined_bg_color.g + rtl_combined_bg_color.b > 0.5 * 3) ? Color(0, 0, 0) : Color(1, 1, 1);
|
||||
Color rtl_mono_color = (rtl_combined_bg_color.r + rtl_combined_bg_color.g + rtl_combined_bg_color.b > 1.5) ? Color(0, 0, 0) : Color(1, 1, 1);
|
||||
Color rtl_font_color = rtl_mono_color.linear_interpolate(rtl_combined_bg_color, 0.25);
|
||||
theme->set_color("default_color", "RichTextLabel", rtl_font_color);
|
||||
theme->set_stylebox("focus", "RichTextLabel", make_empty_stylebox());
|
||||
theme->set_stylebox("normal", "RichTextLabel", style_tree_bg);
|
||||
@ -717,6 +718,9 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
|
||||
style_code_focus->set_bg_color(rtl_combined_bg_color);
|
||||
theme->set_stylebox("code_focus", "RichTextLabel", style_code_focus);
|
||||
|
||||
theme->set_color("font_color", "RichTextLabel", rtl_font_color);
|
||||
theme->set_color("highlight_color", "RichTextLabel", rtl_mono_color);
|
||||
|
||||
// Panel
|
||||
theme->set_stylebox("panel", "Panel", make_flat_stylebox(dark_color_1, 6, 4, 6, 4));
|
||||
|
||||
|
@ -421,8 +421,10 @@ void ScriptEditor::_go_to_tab(int p_idx) {
|
||||
_update_history_arrows();
|
||||
_update_script_colors();
|
||||
_update_members_overview();
|
||||
_update_help_overview();
|
||||
_update_selected_editor_menu();
|
||||
_update_members_overview_visibility();
|
||||
_update_help_overview_visibility();
|
||||
}
|
||||
|
||||
void ScriptEditor::_add_recent_script(String p_path) {
|
||||
@ -555,6 +557,7 @@ void ScriptEditor::_close_tab(int p_idx, bool p_save) {
|
||||
|
||||
_update_script_names();
|
||||
_update_members_overview_visibility();
|
||||
_update_help_overview_visibility();
|
||||
_save_layout();
|
||||
}
|
||||
|
||||
@ -1110,6 +1113,7 @@ void ScriptEditor::_notification(int p_what) {
|
||||
editor->connect("resource_saved", this, "_res_saved_callback");
|
||||
script_list->connect("item_selected", this, "_script_selected");
|
||||
members_overview->connect("item_selected", this, "_members_overview_selected");
|
||||
help_overview->connect("item_selected", this, "_help_overview_selected");
|
||||
script_split->connect("dragged", this, "_script_split_dragged");
|
||||
autosave_timer->connect("timeout", this, "_autosave_scripts");
|
||||
{
|
||||
@ -1278,6 +1282,15 @@ void ScriptEditor::_members_overview_selected(int p_idx) {
|
||||
se->ensure_focus();
|
||||
}
|
||||
|
||||
void ScriptEditor::_help_overview_selected(int p_idx) {
|
||||
Node *current = tab_container->get_child(tab_container->get_current_tab());
|
||||
EditorHelp *se = Object::cast_to<EditorHelp>(current);
|
||||
if (!se) {
|
||||
return;
|
||||
}
|
||||
se->scroll_to_section(help_overview->get_item_metadata(p_idx));
|
||||
}
|
||||
|
||||
void ScriptEditor::_script_selected(int p_idx) {
|
||||
|
||||
grab_focus_block = !Input::get_singleton()->is_mouse_button_pressed(1); //amazing hack, simply amazing
|
||||
@ -1387,6 +1400,50 @@ void ScriptEditor::_update_members_overview() {
|
||||
}
|
||||
}
|
||||
|
||||
void ScriptEditor::_update_help_overview_visibility() {
|
||||
|
||||
int selected = tab_container->get_current_tab();
|
||||
if (selected < 0 || selected >= tab_container->get_child_count())
|
||||
return;
|
||||
|
||||
Node *current = tab_container->get_child(tab_container->get_current_tab());
|
||||
EditorHelp *se = Object::cast_to<EditorHelp>(current);
|
||||
if (!se) {
|
||||
help_overview->set_visible(false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (help_overview_enabled) {
|
||||
help_overview->set_visible(true);
|
||||
} else {
|
||||
help_overview->set_visible(false);
|
||||
}
|
||||
}
|
||||
|
||||
void ScriptEditor::_update_help_overview() {
|
||||
|
||||
int selected = tab_container->get_current_tab();
|
||||
if (selected < 0 || selected >= tab_container->get_child_count())
|
||||
return;
|
||||
|
||||
Node *current = tab_container->get_child(tab_container->get_current_tab());
|
||||
EditorHelp *se = Object::cast_to<EditorHelp>(current);
|
||||
if (!se) {
|
||||
return;
|
||||
}
|
||||
|
||||
help_overview->clear();
|
||||
|
||||
Vector<Pair<String, int> > sections = se->get_sections();
|
||||
for (int i = 0; i < sections.size(); i++) {
|
||||
help_overview->add_item(sections[i].first);
|
||||
help_overview->set_item_metadata(i, sections[i].second);
|
||||
}
|
||||
}
|
||||
|
||||
void _help_overview_selected(int p_idx) {
|
||||
}
|
||||
|
||||
void ScriptEditor::_update_script_colors() {
|
||||
|
||||
bool script_temperature_enabled = EditorSettings::get_singleton()->get("text_editor/open_scripts/script_temperature_enabled");
|
||||
@ -1531,6 +1588,7 @@ void ScriptEditor::_update_script_names() {
|
||||
}
|
||||
|
||||
_update_members_overview();
|
||||
_update_help_overview();
|
||||
_update_script_colors();
|
||||
}
|
||||
|
||||
@ -1785,7 +1843,9 @@ void ScriptEditor::_editor_settings_changed() {
|
||||
use_space_indentation = EditorSettings::get_singleton()->get("text_editor/indent/type");
|
||||
|
||||
members_overview_enabled = EditorSettings::get_singleton()->get("text_editor/open_scripts/show_members_overview");
|
||||
help_overview_enabled = EditorSettings::get_singleton()->get("text_editor/help/show_help_index");
|
||||
_update_members_overview_visibility();
|
||||
_update_help_overview_visibility();
|
||||
|
||||
float autosave_time = EditorSettings::get_singleton()->get("text_editor/files/autosave_interval_secs");
|
||||
if (autosave_time > 0) {
|
||||
@ -2164,6 +2224,7 @@ void ScriptEditor::_bind_methods() {
|
||||
ClassDB::bind_method("_update_script_names", &ScriptEditor::_update_script_names);
|
||||
ClassDB::bind_method("_tree_changed", &ScriptEditor::_tree_changed);
|
||||
ClassDB::bind_method("_members_overview_selected", &ScriptEditor::_members_overview_selected);
|
||||
ClassDB::bind_method("_help_overview_selected", &ScriptEditor::_help_overview_selected);
|
||||
ClassDB::bind_method("_script_selected", &ScriptEditor::_script_selected);
|
||||
ClassDB::bind_method("_script_created", &ScriptEditor::_script_created);
|
||||
ClassDB::bind_method("_script_split_dragged", &ScriptEditor::_script_split_dragged);
|
||||
@ -2193,6 +2254,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
|
||||
pending_auto_reload = false;
|
||||
auto_reload_running_scripts = false;
|
||||
members_overview_enabled = true;
|
||||
help_overview_enabled = true;
|
||||
editor = p_editor;
|
||||
|
||||
VBoxContainer *main_container = memnew(VBoxContainer);
|
||||
@ -2221,6 +2283,11 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
|
||||
members_overview->set_custom_minimum_size(Size2(0, 100)); //need to give a bit of limit to avoid it from disappearing
|
||||
members_overview->set_v_size_flags(SIZE_EXPAND_FILL);
|
||||
|
||||
help_overview = memnew(ItemList);
|
||||
list_split->add_child(help_overview);
|
||||
help_overview->set_custom_minimum_size(Size2(0, 100)); //need to give a bit of limit to avoid it from disappearing
|
||||
help_overview->set_v_size_flags(SIZE_EXPAND_FILL);
|
||||
|
||||
tab_container = memnew(TabContainer);
|
||||
tab_container->set_tabs_visible(false);
|
||||
script_split->add_child(tab_container);
|
||||
|
@ -187,6 +187,8 @@ class ScriptEditor : public PanelContainer {
|
||||
HSplitContainer *script_split;
|
||||
ItemList *members_overview;
|
||||
bool members_overview_enabled;
|
||||
ItemList *help_overview;
|
||||
bool help_overview_enabled;
|
||||
VSplitContainer *list_split;
|
||||
TabContainer *tab_container;
|
||||
EditorFileDialog *file_dialog;
|
||||
@ -294,6 +296,10 @@ class ScriptEditor : public PanelContainer {
|
||||
void _members_overview_selected(int p_idx);
|
||||
void _script_selected(int p_idx);
|
||||
|
||||
void _update_help_overview_visibility();
|
||||
void _update_help_overview();
|
||||
void _help_overview_selected(int p_idx);
|
||||
|
||||
void _find_scripts(Node *p_base, Node *p_current, Set<Ref<Script> > &used);
|
||||
|
||||
void _tree_changed();
|
||||
|
6
thirdparty/README.md
vendored
6
thirdparty/README.md
vendored
@ -59,10 +59,10 @@ Files extracted from upstream source:
|
||||
|
||||
Use UI font if exists, because it has tight vertial metrix and good for UI.
|
||||
|
||||
### Adobe Source Code Pro Regular
|
||||
### Mononoki Regular
|
||||
|
||||
- Upstream: https://github.com/adobe-fonts/source-code-pro
|
||||
- Version: 2.030
|
||||
- Upstream: https://github.com/madmalik/mononoki
|
||||
- Version: 1.2
|
||||
- License: OFL-1.1
|
||||
|
||||
### DroidSans*.ttf
|
||||
|
@ -1,8 +1,9 @@
|
||||
Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.
|
||||
Copyright (c) 2013, Matthias Tellen matthias.tellen@googlemail.com,
|
||||
with Reserved Font Name monoOne.
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
|
||||
This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
@ -91,4 +92,3 @@ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
|
BIN
thirdparty/fonts/mononoki_Regular.ttf
vendored
Normal file
BIN
thirdparty/fonts/mononoki_Regular.ttf
vendored
Normal file
Binary file not shown.
BIN
thirdparty/fonts/source_code_pro.otf
vendored
BIN
thirdparty/fonts/source_code_pro.otf
vendored
Binary file not shown.
Loading…
Reference in New Issue
Block a user