diff options
-rw-r--r-- | doc/classes/ReferenceRect.xml | 8 | ||||
-rw-r--r-- | scene/gui/reference_rect.cpp | 18 | ||||
-rw-r--r-- | scene/gui/reference_rect.h | 5 | ||||
-rw-r--r-- | scene/resources/default_theme/default_theme.cpp | 1 |
4 files changed, 26 insertions, 6 deletions
diff --git a/doc/classes/ReferenceRect.xml b/doc/classes/ReferenceRect.xml index 4453e8726f..4c6f014965 100644 --- a/doc/classes/ReferenceRect.xml +++ b/doc/classes/ReferenceRect.xml @@ -14,8 +14,8 @@ </methods> <constants> </constants> - <theme_items> - <theme_item name="border" type="StyleBox"> - </theme_item> - </theme_items> + <members> + <member name="border_color" type="Color" setter="set_border_color" getter="get_border_color"> + </member> + </members> </class> diff --git a/scene/gui/reference_rect.cpp b/scene/gui/reference_rect.cpp index 5e25f43daf..74e68598f4 100644 --- a/scene/gui/reference_rect.cpp +++ b/scene/gui/reference_rect.cpp @@ -39,9 +39,25 @@ void ReferenceRect::_notification(int p_what) { if (!is_inside_tree()) return; if (Engine::get_singleton()->is_editor_hint()) - draw_style_box(get_stylebox("border"), Rect2(Point2(), get_size())); + draw_rect(Rect2(Point2(), get_size()), border_color, false); } } +void ReferenceRect::set_border_color(const Color &color) { + border_color = color; +} + +Color ReferenceRect::get_border_color() const { + return border_color; +} + +void ReferenceRect::_bind_methods() { + ClassDB::bind_method(D_METHOD("get_border_color"), &ReferenceRect::get_border_color); + ClassDB::bind_method(D_METHOD("set_border_color", "color"), &ReferenceRect::set_border_color); + + ADD_PROPERTY(PropertyInfo(Variant::COLOR, "border_color"), "set_border_color", "get_border_color"); +} + ReferenceRect::ReferenceRect() { + border_color = Color(1, 0, 0); } diff --git a/scene/gui/reference_rect.h b/scene/gui/reference_rect.h index 473e348c85..9fad1a06b0 100644 --- a/scene/gui/reference_rect.h +++ b/scene/gui/reference_rect.h @@ -36,12 +36,17 @@ class ReferenceRect : public Control { GDCLASS(ReferenceRect, Control); + Color border_color; protected: void _notification(int p_what); + static void _bind_methods(); public: ReferenceRect(); + + void set_border_color(const Color &color); + Color get_border_color() const; }; #endif // REFERENCE_RECT_H diff --git a/scene/resources/default_theme/default_theme.cpp b/scene/resources/default_theme/default_theme.cpp index 2d05f5e19f..0eee2ae393 100644 --- a/scene/resources/default_theme/default_theme.cpp +++ b/scene/resources/default_theme/default_theme.cpp @@ -867,7 +867,6 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const Ref<StyleBoxTexture> ttnc = make_stylebox(full_panel_bg_png, 8, 8, 8, 8); ttnc->set_draw_center(false); - theme->set_stylebox("border", "ReferenceRect", make_stylebox(reference_border_png, 4, 4, 4, 4)); theme->set_stylebox("panelnc", "Panel", ttnc); theme->set_stylebox("panelf", "Panel", tc_sb); |