Merge pull request #20906 from Chaosus/rrect_fix

Fix ReferenceRect border
This commit is contained in:
Rémi Verschelde 2018-08-14 23:31:48 +02:00 committed by GitHub
commit d6058b967d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 27 additions and 7 deletions

View File

@ -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>

View File

@ -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);
}
}
ReferenceRect::ReferenceRect() {
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);
}

View File

@ -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

View File

@ -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);