Skip to content

Commit c8ef12a

Browse files
authored
Merge pull request #64665 from Mickeon/rename-label-visible
2 parents ff612b6 + 64bd36e commit c8ef12a

File tree

7 files changed

+61
-62
lines changed

7 files changed

+61
-62
lines changed

doc/classes/Label.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,6 @@
6161
Limits the lines of text the node shows on screen.
6262
</member>
6363
<member name="mouse_filter" type="int" setter="set_mouse_filter" getter="get_mouse_filter" overrides="Control" enum="Control.MouseFilter" default="2" />
64-
<member name="percent_visible" type="float" setter="set_percent_visible" getter="get_percent_visible" default="1.0">
65-
The fraction of characters to display, relative to the total number of characters (see [method get_total_character_count]). If set to [code]1.0[/code], all characters are displayed. If set to [code]0.5[/code], only half of the characters will be displayed. This can be useful when animating the text appearing in a dialog box.
66-
[b]Note:[/b] Setting this property updates [member visible_characters] accordingly.
67-
</member>
6864
<member name="size_flags_vertical" type="int" setter="set_v_size_flags" getter="get_v_size_flags" overrides="Control" default="4" />
6965
<member name="structured_text_bidi_override" type="int" setter="set_structured_text_bidi_override" getter="get_structured_text_bidi_override" enum="TextServer.StructuredTextParser" default="0">
7066
Set BiDi algorithm override for the structured text.
@@ -89,10 +85,14 @@
8985
</member>
9086
<member name="visible_characters" type="int" setter="set_visible_characters" getter="get_visible_characters" default="-1">
9187
The number of characters to display. If set to [code]-1[/code], all characters are displayed. This can be useful when animating the text appearing in a dialog box.
92-
[b]Note:[/b] Setting this property updates [member percent_visible] accordingly.
88+
[b]Note:[/b] Setting this property updates [member visible_ratio] accordingly.
9389
</member>
9490
<member name="visible_characters_behavior" type="int" setter="set_visible_characters_behavior" getter="get_visible_characters_behavior" enum="TextServer.VisibleCharactersBehavior" default="0">
95-
Sets the clipping behavior when [member visible_characters] or [member percent_visible] is set. See [enum TextServer.VisibleCharactersBehavior] for more info.
91+
Sets the clipping behavior when [member visible_characters] or [member visible_ratio] is set. See [enum TextServer.VisibleCharactersBehavior] for more info.
92+
</member>
93+
<member name="visible_ratio" type="float" setter="set_visible_ratio" getter="get_visible_ratio" default="1.0">
94+
The fraction of characters to display, relative to the total number of characters (see [method get_total_character_count]). If set to [code]1.0[/code], all characters are displayed. If set to [code]0.5[/code], only half of the characters will be displayed. This can be useful when animating the text appearing in a dialog box.
95+
[b]Note:[/b] Setting this property updates [member visible_characters] accordingly.
9696
</member>
9797
</members>
9898
<theme_items>

doc/classes/RichTextLabel.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -480,10 +480,6 @@
480480
<member name="override_selected_font_color" type="bool" setter="set_override_selected_font_color" getter="is_overriding_selected_font_color" default="false">
481481
If [code]true[/code], the label uses the custom font color.
482482
</member>
483-
<member name="percent_visible" type="float" setter="set_percent_visible" getter="get_percent_visible" default="1.0">
484-
The fraction of characters to display, relative to the total number of characters (see [method get_total_character_count]). If set to [code]1.0[/code], all characters are displayed. If set to [code]0.5[/code], only half of the characters will be displayed. This can be useful when animating the text appearing in a dialog box.
485-
[b]Note:[/b] Setting this property updates [member visible_characters] accordingly.
486-
</member>
487483
<member name="progress_bar_delay" type="int" setter="set_progress_bar_delay" getter="get_progress_bar_delay" default="1000">
488484
The delay after which the loading progress bar is displayed, in milliseconds. Set to [code]-1[/code] to disable progress bar entirely.
489485
[b]Note:[/b] Progress bar is displayed only if [member threaded] is enabled.
@@ -521,10 +517,14 @@
521517
</member>
522518
<member name="visible_characters" type="int" setter="set_visible_characters" getter="get_visible_characters" default="-1">
523519
The number of characters to display. If set to [code]-1[/code], all characters are displayed. This can be useful when animating the text appearing in a dialog box.
524-
[b]Note:[/b] Setting this property updates [member percent_visible] accordingly.
520+
[b]Note:[/b] Setting this property updates [member visible_ratio] accordingly.
525521
</member>
526522
<member name="visible_characters_behavior" type="int" setter="set_visible_characters_behavior" getter="get_visible_characters_behavior" enum="TextServer.VisibleCharactersBehavior" default="0">
527-
Sets the clipping behavior when [member visible_characters] or [member percent_visible] is set. See [enum TextServer.VisibleCharactersBehavior] for more info.
523+
Sets the clipping behavior when [member visible_characters] or [member visible_ratio] is set. See [enum TextServer.VisibleCharactersBehavior] for more info.
524+
</member>
525+
<member name="visible_ratio" type="float" setter="set_visible_ratio" getter="get_visible_ratio" default="1.0">
526+
The fraction of characters to display, relative to the total number of characters (see [method get_total_character_count]). If set to [code]1.0[/code], all characters are displayed. If set to [code]0.5[/code], only half of the characters will be displayed. This can be useful when animating the text appearing in a dialog box.
527+
[b]Note:[/b] Setting this property updates [member visible_characters] accordingly.
528528
</member>
529529
</members>
530530
<signals>

doc/classes/TextServer.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1632,13 +1632,13 @@
16321632
Displays glyphs that are mapped to the first [member Label.visible_characters] or [member RichTextLabel.visible_characters] characters from the beginning of the text.
16331633
</constant>
16341634
<constant name="VC_GLYPHS_AUTO" value="2" enum="VisibleCharactersBehavior">
1635-
Displays [member Label.percent_visible] or [member RichTextLabel.percent_visible] glyphs, starting from the left or from the right, depending on [member Control.layout_direction] value.
1635+
Displays [member Label.visible_ratio] or [member RichTextLabel.visible_ratio] glyphs, starting from the left or from the right, depending on [member Control.layout_direction] value.
16361636
</constant>
16371637
<constant name="VC_GLYPHS_LTR" value="3" enum="VisibleCharactersBehavior">
1638-
Displays [member Label.percent_visible] or [member RichTextLabel.percent_visible] glyphs, starting from the left.
1638+
Displays [member Label.visible_ratio] or [member RichTextLabel.visible_ratio] glyphs, starting from the left.
16391639
</constant>
16401640
<constant name="VC_GLYPHS_RTL" value="4" enum="VisibleCharactersBehavior">
1641-
Displays [member Label.percent_visible] or [member RichTextLabel.percent_visible] glyphs, starting from the right.
1641+
Displays [member Label.visible_ratio] or [member RichTextLabel.visible_ratio] glyphs, starting from the right.
16421642
</constant>
16431643
<constant name="OVERRUN_NO_TRIMMING" value="0" enum="OverrunBehavior">
16441644
No text trimming is performed.

scene/gui/label.cpp

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -279,8 +279,8 @@ void Label::_notification(int p_what) {
279279
return; // Nothing new.
280280
}
281281
xl_text = new_text;
282-
if (percent_visible < 1) {
283-
visible_chars = get_total_character_count() * percent_visible;
282+
if (visible_ratio < 1) {
283+
visible_chars = get_total_character_count() * visible_ratio;
284284
}
285285
dirty = true;
286286

@@ -348,7 +348,7 @@ void Label::_notification(int p_what) {
348348
total_h += TS->shaped_text_get_size(lines_rid[i]).y + line_spacing;
349349
total_glyphs += TS->shaped_text_get_glyph_count(lines_rid[i]) + TS->shaped_text_get_ellipsis_glyph_count(lines_rid[i]);
350350
}
351-
int visible_glyphs = total_glyphs * percent_visible;
351+
int visible_glyphs = total_glyphs * visible_ratio;
352352
int processed_glyphs = 0;
353353
total_h += style->get_margin(SIDE_TOP) + style->get_margin(SIDE_BOTTOM);
354354

@@ -652,8 +652,8 @@ void Label::set_text(const String &p_string) {
652652
text = p_string;
653653
xl_text = atr(p_string);
654654
dirty = true;
655-
if (percent_visible < 1) {
656-
visible_chars = get_total_character_count() * percent_visible;
655+
if (visible_ratio < 1) {
656+
visible_chars = get_total_character_count() * visible_ratio;
657657
}
658658
update();
659659
update_minimum_size();
@@ -771,9 +771,9 @@ void Label::set_visible_characters(int p_amount) {
771771
if (visible_chars != p_amount) {
772772
visible_chars = p_amount;
773773
if (get_total_character_count() > 0) {
774-
percent_visible = (float)p_amount / (float)get_total_character_count();
774+
visible_ratio = (float)p_amount / (float)get_total_character_count();
775775
} else {
776-
percent_visible = 1.0;
776+
visible_ratio = 1.0;
777777
}
778778
if (visible_chars_behavior == TextServer::VC_CHARS_BEFORE_SHAPING) {
779779
dirty = true;
@@ -786,17 +786,17 @@ int Label::get_visible_characters() const {
786786
return visible_chars;
787787
}
788788

789-
void Label::set_percent_visible(float p_percent) {
790-
if (percent_visible != p_percent) {
791-
if (percent_visible >= 1.0) {
789+
void Label::set_visible_ratio(float p_ratio) {
790+
if (visible_ratio != p_ratio) {
791+
if (visible_ratio >= 1.0) {
792792
visible_chars = -1;
793-
percent_visible = 1.0;
794-
} else if (percent_visible < 0.0) {
793+
visible_ratio = 1.0;
794+
} else if (visible_ratio < 0.0) {
795795
visible_chars = 0;
796-
percent_visible = 0.0;
796+
visible_ratio = 0.0;
797797
} else {
798-
visible_chars = get_total_character_count() * p_percent;
799-
percent_visible = p_percent;
798+
visible_chars = get_total_character_count() * p_ratio;
799+
visible_ratio = p_ratio;
800800
}
801801

802802
if (visible_chars_behavior == TextServer::VC_CHARS_BEFORE_SHAPING) {
@@ -806,8 +806,8 @@ void Label::set_percent_visible(float p_percent) {
806806
}
807807
}
808808

809-
float Label::get_percent_visible() const {
810-
return percent_visible;
809+
float Label::get_visible_ratio() const {
810+
return visible_ratio;
811811
}
812812

813813
TextServer::VisibleCharactersBehavior Label::get_visible_characters_behavior() const {
@@ -889,8 +889,8 @@ void Label::_bind_methods() {
889889
ClassDB::bind_method(D_METHOD("get_visible_characters"), &Label::get_visible_characters);
890890
ClassDB::bind_method(D_METHOD("get_visible_characters_behavior"), &Label::get_visible_characters_behavior);
891891
ClassDB::bind_method(D_METHOD("set_visible_characters_behavior", "behavior"), &Label::set_visible_characters_behavior);
892-
ClassDB::bind_method(D_METHOD("set_percent_visible", "percent_visible"), &Label::set_percent_visible);
893-
ClassDB::bind_method(D_METHOD("get_percent_visible"), &Label::get_percent_visible);
892+
ClassDB::bind_method(D_METHOD("set_visible_ratio", "ratio"), &Label::set_visible_ratio);
893+
ClassDB::bind_method(D_METHOD("get_visible_ratio"), &Label::get_visible_ratio);
894894
ClassDB::bind_method(D_METHOD("set_lines_skipped", "lines_skipped"), &Label::set_lines_skipped);
895895
ClassDB::bind_method(D_METHOD("get_lines_skipped"), &Label::get_lines_skipped);
896896
ClassDB::bind_method(D_METHOD("set_max_lines_visible", "lines_visible"), &Label::set_max_lines_visible);
@@ -911,10 +911,10 @@ void Label::_bind_methods() {
911911
ADD_PROPERTY(PropertyInfo(Variant::INT, "lines_skipped", PROPERTY_HINT_RANGE, "0,999,1"), "set_lines_skipped", "get_lines_skipped");
912912
ADD_PROPERTY(PropertyInfo(Variant::INT, "max_lines_visible", PROPERTY_HINT_RANGE, "-1,999,1"), "set_max_lines_visible", "get_max_lines_visible");
913913

914-
// Note: "visible_characters" and "percent_visible" should be set after "text" to be correctly applied.
914+
// Note: "visible_characters" and "visible_ratio" should be set after "text" to be correctly applied.
915915
ADD_PROPERTY(PropertyInfo(Variant::INT, "visible_characters", PROPERTY_HINT_RANGE, "-1,128000,1"), "set_visible_characters", "get_visible_characters");
916916
ADD_PROPERTY(PropertyInfo(Variant::INT, "visible_characters_behavior", PROPERTY_HINT_ENUM, "Characters Before Shaping,Characters After Shaping,Glyphs (Layout Direction),Glyphs (Left-to-Right),Glyphs (Right-to-Left)"), "set_visible_characters_behavior", "get_visible_characters_behavior");
917-
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "percent_visible", PROPERTY_HINT_RANGE, "0,1,0.001"), "set_percent_visible", "get_percent_visible");
917+
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "visible_ratio", PROPERTY_HINT_RANGE, "0,1,0.001"), "set_visible_ratio", "get_visible_ratio");
918918

919919
ADD_GROUP("BiDi", "");
920920
ADD_PROPERTY(PropertyInfo(Variant::INT, "text_direction", PROPERTY_HINT_ENUM, "Auto,Left-to-Right,Right-to-Left,Inherited"), "set_text_direction", "get_text_direction");

scene/gui/label.h

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,9 @@ class Label : public Control {
5959
TextServer::StructuredTextParser st_parser = TextServer::STRUCTURED_TEXT_DEFAULT;
6060
Array st_args;
6161

62-
float percent_visible = 1.0;
63-
6462
TextServer::VisibleCharactersBehavior visible_chars_behavior = TextServer::VC_CHARS_BEFORE_SHAPING;
6563
int visible_chars = -1;
64+
float visible_ratio = 1.0;
6665
int lines_skipped = 0;
6766
int max_lines_visible = -1;
6867

@@ -110,22 +109,22 @@ class Label : public Control {
110109
void set_uppercase(bool p_uppercase);
111110
bool is_uppercase() const;
112111

113-
TextServer::VisibleCharactersBehavior get_visible_characters_behavior() const;
114112
void set_visible_characters_behavior(TextServer::VisibleCharactersBehavior p_behavior);
113+
TextServer::VisibleCharactersBehavior get_visible_characters_behavior() const;
115114

116115
void set_visible_characters(int p_amount);
117116
int get_visible_characters() const;
118117
int get_total_character_count() const;
119118

119+
void set_visible_ratio(float p_ratio);
120+
float get_visible_ratio() const;
121+
120122
void set_clip_text(bool p_clip);
121123
bool is_clipping_text() const;
122124

123125
void set_text_overrun_behavior(TextServer::OverrunBehavior p_behavior);
124126
TextServer::OverrunBehavior get_text_overrun_behavior() const;
125127

126-
void set_percent_visible(float p_percent);
127-
float get_percent_visible() const;
128-
129128
void set_lines_skipped(int p_lines);
130129
int get_lines_skipped() const;
131130

scene/gui/rich_text_label.cpp

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -742,7 +742,7 @@ int RichTextLabel::_draw_line(ItemFrame *p_frame, int p_line, const Vector2 &p_o
742742
bool trim_glyphs_ltr = (visible_characters >= 0) && ((visible_chars_behavior == TextServer::VC_GLYPHS_LTR) || ((visible_chars_behavior == TextServer::VC_GLYPHS_AUTO) && !lrtl));
743743
bool trim_glyphs_rtl = (visible_characters >= 0) && ((visible_chars_behavior == TextServer::VC_GLYPHS_RTL) || ((visible_chars_behavior == TextServer::VC_GLYPHS_AUTO) && lrtl));
744744
int total_glyphs = (trim_glyphs_ltr || trim_glyphs_rtl) ? get_total_glyph_count() : 0;
745-
int visible_glyphs = total_glyphs * percent_visible;
745+
int visible_glyphs = total_glyphs * visible_ratio;
746746

747747
Vector<int> list_index;
748748
Vector<ItemList *> list_items;
@@ -4940,19 +4940,19 @@ TextServer::AutowrapMode RichTextLabel::get_autowrap_mode() const {
49404940
return autowrap_mode;
49414941
}
49424942

4943-
void RichTextLabel::set_percent_visible(float p_percent) {
4944-
if (percent_visible != p_percent) {
4943+
void RichTextLabel::set_visible_ratio(float p_ratio) {
4944+
if (visible_ratio != p_ratio) {
49454945
_stop_thread();
49464946

4947-
if (percent_visible >= 1.0) {
4947+
if (visible_ratio >= 1.0) {
49484948
visible_characters = -1;
4949-
percent_visible = 1.0;
4950-
} else if (percent_visible < 0.0) {
4949+
visible_ratio = 1.0;
4950+
} else if (visible_ratio < 0.0) {
49514951
visible_characters = 0;
4952-
percent_visible = 0.0;
4952+
visible_ratio = 0.0;
49534953
} else {
4954-
visible_characters = get_total_character_count() * p_percent;
4955-
percent_visible = p_percent;
4954+
visible_characters = get_total_character_count() * p_ratio;
4955+
visible_ratio = p_ratio;
49564956
}
49574957

49584958
if (visible_chars_behavior == TextServer::VC_CHARS_BEFORE_SHAPING) {
@@ -4963,8 +4963,8 @@ void RichTextLabel::set_percent_visible(float p_percent) {
49634963
}
49644964
}
49654965

4966-
float RichTextLabel::get_percent_visible() const {
4967-
return percent_visible;
4966+
float RichTextLabel::get_visible_ratio() const {
4967+
return visible_ratio;
49684968
}
49694969

49704970
void RichTextLabel::set_effects(Array p_effects) {
@@ -5139,8 +5139,8 @@ void RichTextLabel::_bind_methods() {
51395139
ClassDB::bind_method(D_METHOD("get_visible_characters_behavior"), &RichTextLabel::get_visible_characters_behavior);
51405140
ClassDB::bind_method(D_METHOD("set_visible_characters_behavior", "behavior"), &RichTextLabel::set_visible_characters_behavior);
51415141

5142-
ClassDB::bind_method(D_METHOD("set_percent_visible", "percent_visible"), &RichTextLabel::set_percent_visible);
5143-
ClassDB::bind_method(D_METHOD("get_percent_visible"), &RichTextLabel::get_percent_visible);
5142+
ClassDB::bind_method(D_METHOD("set_visible_ratio", "ratio"), &RichTextLabel::set_visible_ratio);
5143+
ClassDB::bind_method(D_METHOD("get_visible_ratio"), &RichTextLabel::get_visible_ratio);
51445144

51455145
ClassDB::bind_method(D_METHOD("get_character_line", "character"), &RichTextLabel::get_character_line);
51465146
ClassDB::bind_method(D_METHOD("get_character_paragraph", "character"), &RichTextLabel::get_character_paragraph);
@@ -5189,10 +5189,10 @@ void RichTextLabel::_bind_methods() {
51895189
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "hint_underlined"), "set_hint_underline", "is_hint_underlined");
51905190
ADD_PROPERTY(PropertyInfo(Variant::INT, "autowrap_mode", PROPERTY_HINT_ENUM, "Off,Arbitrary,Word,Word (Smart)"), "set_autowrap_mode", "get_autowrap_mode");
51915191

5192-
// Note: "visible_characters" and "percent_visible" should be set after "text" to be correctly applied.
5192+
// Note: "visible_characters" and "visible_ratio" should be set after "text" to be correctly applied.
51935193
ADD_PROPERTY(PropertyInfo(Variant::INT, "visible_characters", PROPERTY_HINT_RANGE, "-1,128000,1"), "set_visible_characters", "get_visible_characters");
51945194
ADD_PROPERTY(PropertyInfo(Variant::INT, "visible_characters_behavior", PROPERTY_HINT_ENUM, "Characters Before Shaping,Characters After Shaping,Glyphs (Layout Direction),Glyphs (Left-to-Right),Glyphs (Right-to-Left)"), "set_visible_characters_behavior", "get_visible_characters_behavior");
5195-
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "percent_visible", PROPERTY_HINT_RANGE, "0,1,0.001"), "set_percent_visible", "get_percent_visible");
5195+
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "visible_ratio", PROPERTY_HINT_RANGE, "0,1,0.001"), "set_visible_ratio", "get_visible_ratio");
51965196

51975197
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "context_menu_enabled"), "set_context_menu_enabled", "is_context_menu_enabled");
51985198
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "shortcut_keys_enabled"), "set_shortcut_keys_enabled", "is_shortcut_keys_enabled");
@@ -5264,11 +5264,11 @@ void RichTextLabel::set_visible_characters(int p_visible) {
52645264

52655265
visible_characters = p_visible;
52665266
if (p_visible == -1) {
5267-
percent_visible = 1;
5267+
visible_ratio = 1;
52685268
} else {
52695269
int total_char_count = get_total_character_count();
52705270
if (total_char_count > 0) {
5271-
percent_visible = (float)p_visible / (float)total_char_count;
5271+
visible_ratio = (float)p_visible / (float)total_char_count;
52725272
}
52735273
}
52745274
if (visible_chars_behavior == TextServer::VC_CHARS_BEFORE_SHAPING) {

scene/gui/rich_text_label.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,7 @@ class RichTextLabel : public Control {
440440
void _menu_option(int p_option);
441441

442442
int visible_characters = -1;
443-
float percent_visible = 1.0;
443+
float visible_ratio = 1.0;
444444
TextServer::VisibleCharactersBehavior visible_chars_behavior = TextServer::VC_CHARS_BEFORE_SHAPING;
445445

446446
bool _is_click_inside_selection() const;
@@ -660,8 +660,8 @@ class RichTextLabel : public Control {
660660
int get_total_character_count() const;
661661
int get_total_glyph_count() const;
662662

663-
void set_percent_visible(float p_percent);
664-
float get_percent_visible() const;
663+
void set_visible_ratio(float p_ratio);
664+
float get_visible_ratio() const;
665665

666666
TextServer::VisibleCharactersBehavior get_visible_characters_behavior() const;
667667
void set_visible_characters_behavior(TextServer::VisibleCharactersBehavior p_behavior);

0 commit comments

Comments
 (0)