Add horizontal margins to the editor help based on width

This decreases the number of characters per line, and therefore
helps make the editor help more readable.
This commit is contained in:
Hugo Locurcio 2019-06-05 20:47:34 +02:00
parent 89bcfa4b36
commit e564bffd90
No known key found for this signature in database
GPG key ID: 39E8F8BE30B0A49C
2 changed files with 16 additions and 0 deletions

View file

@ -164,6 +164,17 @@ void EditorHelp::_class_desc_select(const String &p_select) {
void EditorHelp::_class_desc_input(const Ref<InputEvent> &p_input) { void EditorHelp::_class_desc_input(const Ref<InputEvent> &p_input) {
} }
void EditorHelp::_class_desc_resized() {
// Add extra horizontal margins for better readability.
// The margins increase as the width of the editor help container increases.
const int display_margin = MAX(30 * EDSCALE, get_parent_anchorable_rect().size.width - 900 * EDSCALE) * 0.5;
Ref<StyleBox> class_desc_stylebox = EditorNode::get_singleton()->get_theme_base()->get_stylebox("normal", "RichTextLabel")->duplicate();
class_desc_stylebox->set_default_margin(MARGIN_LEFT, display_margin);
class_desc_stylebox->set_default_margin(MARGIN_RIGHT, display_margin);
class_desc->add_style_override("normal", class_desc_stylebox);
}
void EditorHelp::_add_type(const String &p_type, const String &p_enum) { void EditorHelp::_add_type(const String &p_type, const String &p_enum) {
String t = p_type; String t = p_type;
@ -1488,6 +1499,7 @@ void EditorHelp::_bind_methods() {
ClassDB::bind_method("_class_list_select", &EditorHelp::_class_list_select); ClassDB::bind_method("_class_list_select", &EditorHelp::_class_list_select);
ClassDB::bind_method("_class_desc_select", &EditorHelp::_class_desc_select); ClassDB::bind_method("_class_desc_select", &EditorHelp::_class_desc_select);
ClassDB::bind_method("_class_desc_input", &EditorHelp::_class_desc_input); ClassDB::bind_method("_class_desc_input", &EditorHelp::_class_desc_input);
ClassDB::bind_method("_class_desc_resized", &EditorHelp::_class_desc_resized);
ClassDB::bind_method("_request_help", &EditorHelp::_request_help); ClassDB::bind_method("_request_help", &EditorHelp::_request_help);
ClassDB::bind_method("_unhandled_key_input", &EditorHelp::_unhandled_key_input); ClassDB::bind_method("_unhandled_key_input", &EditorHelp::_unhandled_key_input);
ClassDB::bind_method("_search", &EditorHelp::_search); ClassDB::bind_method("_search", &EditorHelp::_search);
@ -1506,8 +1518,11 @@ EditorHelp::EditorHelp() {
add_child(class_desc); add_child(class_desc);
class_desc->set_v_size_flags(SIZE_EXPAND_FILL); class_desc->set_v_size_flags(SIZE_EXPAND_FILL);
class_desc->add_color_override("selection_color", get_color("accent_color", "Editor") * Color(1, 1, 1, 0.4)); class_desc->add_color_override("selection_color", get_color("accent_color", "Editor") * Color(1, 1, 1, 0.4));
class_desc->connect("meta_clicked", this, "_class_desc_select"); class_desc->connect("meta_clicked", this, "_class_desc_select");
class_desc->connect("gui_input", this, "_class_desc_input"); class_desc->connect("gui_input", this, "_class_desc_input");
class_desc->connect("resized", this, "_class_desc_resized");
_class_desc_resized();
// Added second so it opens at the bottom so it won't offset the entire widget. // Added second so it opens at the bottom so it won't offset the entire widget.
find_bar = memnew(FindBar); find_bar = memnew(FindBar);

View file

@ -151,6 +151,7 @@ class EditorHelp : public VBoxContainer {
void _class_list_select(const String &p_select); void _class_list_select(const String &p_select);
void _class_desc_select(const String &p_select); void _class_desc_select(const String &p_select);
void _class_desc_input(const Ref<InputEvent> &p_input); void _class_desc_input(const Ref<InputEvent> &p_input);
void _class_desc_resized();
Error _goto_desc(const String &p_class, int p_vscr = -1); Error _goto_desc(const String &p_class, int p_vscr = -1);
//void _update_history_buttons(); //void _update_history_buttons();