From 254d79a560781e9f86debcc63ef6726cfd81ac80 Mon Sep 17 00:00:00 2001 From: Juan Linietsky Date: Mon, 18 Jul 2016 09:59:31 -0300 Subject: [PATCH] Add a function to notify font users that the font changed. Closes #5774 --- doc/base/classes.xml | 5 +++++ scene/resources/font.cpp | 6 ++++++ scene/resources/font.h | 1 + 3 files changed, 12 insertions(+) diff --git a/doc/base/classes.xml b/doc/base/classes.xml index d3d8b2d9f67..526d03fd0be 100644 --- a/doc/base/classes.xml +++ b/doc/base/classes.xml @@ -12999,6 +12999,11 @@ Return the font descent (number of pixels below the baseline). + + + After editing a font (changing size, ascent, char rects, etc.). Call this function to propagate changes to controls that might use it. + + diff --git a/scene/resources/font.cpp b/scene/resources/font.cpp index 6ad8a955658..1afa3fec19f 100644 --- a/scene/resources/font.cpp +++ b/scene/resources/font.cpp @@ -71,6 +71,11 @@ void Font::draw(RID p_canvas_item, const Point2& p_pos, const String& p_text, co } } +void Font::update_changes() { + + emit_changed(); +} + void Font::_bind_methods() { ObjectTypeDB::bind_method(_MD("draw","canvas_item","pos","string","modulate","clip_w"),&Font::draw,DEFVAL(Color(1,1,1)),DEFVAL(-1)); @@ -80,6 +85,7 @@ void Font::_bind_methods() { ObjectTypeDB::bind_method(_MD("is_distance_field_hint"),&Font::is_distance_field_hint); ObjectTypeDB::bind_method(_MD("get_string_size","string"),&Font::get_string_size); ObjectTypeDB::bind_method(_MD("draw_char","canvas_item","pos","char","next","modulate"),&Font::draw_char,DEFVAL(-1),DEFVAL(Color(1,1,1))); + ObjectTypeDB::bind_method(_MD("update_changes"),&Font::update_changes); } diff --git a/scene/resources/font.h b/scene/resources/font.h index 67836564cdc..fe4558f9e3b 100644 --- a/scene/resources/font.h +++ b/scene/resources/font.h @@ -61,6 +61,7 @@ public: void draw_halign(RID p_canvas_item, const Point2& p_pos, HAlign p_align,float p_width,const String& p_text,const Color& p_modulate=Color(1,1,1)) const; virtual float draw_char(RID p_canvas_item, const Point2& p_pos, CharType p_char, CharType p_next=0,const Color& p_modulate=Color(1,1,1)) const=0; + void update_changes(); Font(); };