Merge pull request #102648 from bruvzg/el_force
Expose `OVERRUN_ENFORCE_ELLIPSIS` flag to the controls.
This commit is contained in:
@ -1970,10 +1970,16 @@
|
|||||||
Trims the text per word.
|
Trims the text per word.
|
||||||
</constant>
|
</constant>
|
||||||
<constant name="OVERRUN_TRIM_ELLIPSIS" value="3" enum="OverrunBehavior">
|
<constant name="OVERRUN_TRIM_ELLIPSIS" value="3" enum="OverrunBehavior">
|
||||||
Trims the text per character and adds an ellipsis to indicate that parts are hidden.
|
Trims the text per character and adds an ellipsis to indicate that parts are hidden if trimmed text is 6 characters or longer.
|
||||||
</constant>
|
</constant>
|
||||||
<constant name="OVERRUN_TRIM_WORD_ELLIPSIS" value="4" enum="OverrunBehavior">
|
<constant name="OVERRUN_TRIM_WORD_ELLIPSIS" value="4" enum="OverrunBehavior">
|
||||||
Trims the text per word and adds an ellipsis to indicate that parts are hidden.
|
Trims the text per word and adds an ellipsis to indicate that parts are hidden if trimmed text is 6 characters or longer.
|
||||||
|
</constant>
|
||||||
|
<constant name="OVERRUN_TRIM_ELLIPSIS_FORCE" value="5" enum="OverrunBehavior">
|
||||||
|
Trims the text per character and adds an ellipsis to indicate that parts are hidden regardless of trimmed text length.
|
||||||
|
</constant>
|
||||||
|
<constant name="OVERRUN_TRIM_WORD_ELLIPSIS_FORCE" value="6" enum="OverrunBehavior">
|
||||||
|
Trims the text per word and adds an ellipsis to indicate that parts are hidden regardless of trimmed text length.
|
||||||
</constant>
|
</constant>
|
||||||
<constant name="OVERRUN_NO_TRIM" value="0" enum="TextOverrunFlag" is_bitfield="true">
|
<constant name="OVERRUN_NO_TRIM" value="0" enum="TextOverrunFlag" is_bitfield="true">
|
||||||
No trimming is performed.
|
No trimming is performed.
|
||||||
|
|||||||
@ -791,7 +791,7 @@ void Button::_bind_methods() {
|
|||||||
|
|
||||||
ADD_GROUP("Text Behavior", "");
|
ADD_GROUP("Text Behavior", "");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "alignment", PROPERTY_HINT_ENUM, "Left,Center,Right"), "set_text_alignment", "get_text_alignment");
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "alignment", PROPERTY_HINT_ENUM, "Left,Center,Right"), "set_text_alignment", "get_text_alignment");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "text_overrun_behavior", PROPERTY_HINT_ENUM, "Trim Nothing,Trim Characters,Trim Words,Ellipsis,Word Ellipsis"), "set_text_overrun_behavior", "get_text_overrun_behavior");
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "text_overrun_behavior", PROPERTY_HINT_ENUM, "Trim Nothing,Trim Characters,Trim Words,Ellipsis (6+ Characters),Word Ellipsis (6+ Characters),Ellipsis (Always),Word Ellipsis (Always)"), "set_text_overrun_behavior", "get_text_overrun_behavior");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "autowrap_mode", PROPERTY_HINT_ENUM, "Off,Arbitrary,Word,Word (Smart)"), "set_autowrap_mode", "get_autowrap_mode");
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "autowrap_mode", PROPERTY_HINT_ENUM, "Off,Arbitrary,Word,Word (Smart)"), "set_autowrap_mode", "get_autowrap_mode");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "clip_text"), "set_clip_text", "get_clip_text");
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "clip_text"), "set_clip_text", "get_clip_text");
|
||||||
|
|
||||||
|
|||||||
@ -2078,7 +2078,7 @@ void ItemList::_bind_methods() {
|
|||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "max_text_lines", PROPERTY_HINT_RANGE, "1,10,1,or_greater"), "set_max_text_lines", "get_max_text_lines");
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "max_text_lines", PROPERTY_HINT_RANGE, "1,10,1,or_greater"), "set_max_text_lines", "get_max_text_lines");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "auto_width"), "set_auto_width", "has_auto_width");
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "auto_width"), "set_auto_width", "has_auto_width");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "auto_height"), "set_auto_height", "has_auto_height");
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "auto_height"), "set_auto_height", "has_auto_height");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "text_overrun_behavior", PROPERTY_HINT_ENUM, "Trim Nothing,Trim Characters,Trim Words,Ellipsis,Word Ellipsis"), "set_text_overrun_behavior", "get_text_overrun_behavior");
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "text_overrun_behavior", PROPERTY_HINT_ENUM, "Trim Nothing,Trim Characters,Trim Words,Ellipsis (6+ Characters),Word Ellipsis (6+ Characters),Ellipsis (Always),Word Ellipsis (Always)"), "set_text_overrun_behavior", "get_text_overrun_behavior");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "wraparound_items"), "set_wraparound_items", "has_wraparound_items");
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "wraparound_items"), "set_wraparound_items", "has_wraparound_items");
|
||||||
ADD_ARRAY_COUNT("Items", "item_count", "set_item_count", "get_item_count", "item_");
|
ADD_ARRAY_COUNT("Items", "item_count", "set_item_count", "get_item_count", "item_");
|
||||||
ADD_GROUP("Columns", "");
|
ADD_GROUP("Columns", "");
|
||||||
|
|||||||
@ -236,6 +236,17 @@ void Label::_shape() const {
|
|||||||
if (para.lines_dirty) {
|
if (para.lines_dirty) {
|
||||||
BitField<TextServer::TextOverrunFlag> overrun_flags = TextServer::OVERRUN_NO_TRIM;
|
BitField<TextServer::TextOverrunFlag> overrun_flags = TextServer::OVERRUN_NO_TRIM;
|
||||||
switch (overrun_behavior) {
|
switch (overrun_behavior) {
|
||||||
|
case TextServer::OVERRUN_TRIM_WORD_ELLIPSIS_FORCE: {
|
||||||
|
overrun_flags.set_flag(TextServer::OVERRUN_TRIM);
|
||||||
|
overrun_flags.set_flag(TextServer::OVERRUN_TRIM_WORD_ONLY);
|
||||||
|
overrun_flags.set_flag(TextServer::OVERRUN_ADD_ELLIPSIS);
|
||||||
|
overrun_flags.set_flag(TextServer::OVERRUN_ENFORCE_ELLIPSIS);
|
||||||
|
} break;
|
||||||
|
case TextServer::OVERRUN_TRIM_ELLIPSIS_FORCE: {
|
||||||
|
overrun_flags.set_flag(TextServer::OVERRUN_TRIM);
|
||||||
|
overrun_flags.set_flag(TextServer::OVERRUN_ADD_ELLIPSIS);
|
||||||
|
overrun_flags.set_flag(TextServer::OVERRUN_ENFORCE_ELLIPSIS);
|
||||||
|
} break;
|
||||||
case TextServer::OVERRUN_TRIM_WORD_ELLIPSIS:
|
case TextServer::OVERRUN_TRIM_WORD_ELLIPSIS:
|
||||||
overrun_flags.set_flag(TextServer::OVERRUN_TRIM);
|
overrun_flags.set_flag(TextServer::OVERRUN_TRIM);
|
||||||
overrun_flags.set_flag(TextServer::OVERRUN_TRIM_WORD_ONLY);
|
overrun_flags.set_flag(TextServer::OVERRUN_TRIM_WORD_ONLY);
|
||||||
@ -1394,7 +1405,7 @@ void Label::_bind_methods() {
|
|||||||
ADD_PROPERTY(PropertyInfo(Variant::STRING, "paragraph_separator"), "set_paragraph_separator", "get_paragraph_separator");
|
ADD_PROPERTY(PropertyInfo(Variant::STRING, "paragraph_separator"), "set_paragraph_separator", "get_paragraph_separator");
|
||||||
|
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "clip_text"), "set_clip_text", "is_clipping_text");
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "clip_text"), "set_clip_text", "is_clipping_text");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "text_overrun_behavior", PROPERTY_HINT_ENUM, "Trim Nothing,Trim Characters,Trim Words,Ellipsis,Word Ellipsis"), "set_text_overrun_behavior", "get_text_overrun_behavior");
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "text_overrun_behavior", PROPERTY_HINT_ENUM, "Trim Nothing,Trim Characters,Trim Words,Ellipsis (6+ Characters),Word Ellipsis (6+ Characters),Ellipsis (Always),Word Ellipsis (Always)"), "set_text_overrun_behavior", "get_text_overrun_behavior");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::STRING, "ellipsis_char"), "set_ellipsis_char", "get_ellipsis_char");
|
ADD_PROPERTY(PropertyInfo(Variant::STRING, "ellipsis_char"), "set_ellipsis_char", "get_ellipsis_char");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "uppercase"), "set_uppercase", "is_uppercase");
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "uppercase"), "set_uppercase", "is_uppercase");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::PACKED_FLOAT32_ARRAY, "tab_stops"), "set_tab_stops", "get_tab_stops");
|
ADD_PROPERTY(PropertyInfo(Variant::PACKED_FLOAT32_ARRAY, "tab_stops"), "set_tab_stops", "get_tab_stops");
|
||||||
|
|||||||
@ -79,7 +79,7 @@ void TextLine::_bind_methods() {
|
|||||||
ClassDB::bind_method(D_METHOD("set_text_overrun_behavior", "overrun_behavior"), &TextLine::set_text_overrun_behavior);
|
ClassDB::bind_method(D_METHOD("set_text_overrun_behavior", "overrun_behavior"), &TextLine::set_text_overrun_behavior);
|
||||||
ClassDB::bind_method(D_METHOD("get_text_overrun_behavior"), &TextLine::get_text_overrun_behavior);
|
ClassDB::bind_method(D_METHOD("get_text_overrun_behavior"), &TextLine::get_text_overrun_behavior);
|
||||||
|
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "text_overrun_behavior", PROPERTY_HINT_ENUM, "Trim Nothing,Trim Characters,Trim Words,Ellipsis,Word Ellipsis"), "set_text_overrun_behavior", "get_text_overrun_behavior");
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "text_overrun_behavior", PROPERTY_HINT_ENUM, "Trim Nothing,Trim Characters,Trim Words,Ellipsis (6+ Characters),Word Ellipsis (6+ Characters),Ellipsis (Always),Word Ellipsis (Always)"), "set_text_overrun_behavior", "get_text_overrun_behavior");
|
||||||
|
|
||||||
ClassDB::bind_method(D_METHOD("set_ellipsis_char", "char"), &TextLine::set_ellipsis_char);
|
ClassDB::bind_method(D_METHOD("set_ellipsis_char", "char"), &TextLine::set_ellipsis_char);
|
||||||
ClassDB::bind_method(D_METHOD("get_ellipsis_char"), &TextLine::get_ellipsis_char);
|
ClassDB::bind_method(D_METHOD("get_ellipsis_char"), &TextLine::get_ellipsis_char);
|
||||||
@ -118,6 +118,17 @@ void TextLine::_shape() const {
|
|||||||
BitField<TextServer::TextOverrunFlag> overrun_flags = TextServer::OVERRUN_NO_TRIM;
|
BitField<TextServer::TextOverrunFlag> overrun_flags = TextServer::OVERRUN_NO_TRIM;
|
||||||
if (overrun_behavior != TextServer::OVERRUN_NO_TRIMMING) {
|
if (overrun_behavior != TextServer::OVERRUN_NO_TRIMMING) {
|
||||||
switch (overrun_behavior) {
|
switch (overrun_behavior) {
|
||||||
|
case TextServer::OVERRUN_TRIM_WORD_ELLIPSIS_FORCE: {
|
||||||
|
overrun_flags.set_flag(TextServer::OVERRUN_TRIM);
|
||||||
|
overrun_flags.set_flag(TextServer::OVERRUN_TRIM_WORD_ONLY);
|
||||||
|
overrun_flags.set_flag(TextServer::OVERRUN_ADD_ELLIPSIS);
|
||||||
|
overrun_flags.set_flag(TextServer::OVERRUN_ENFORCE_ELLIPSIS);
|
||||||
|
} break;
|
||||||
|
case TextServer::OVERRUN_TRIM_ELLIPSIS_FORCE: {
|
||||||
|
overrun_flags.set_flag(TextServer::OVERRUN_TRIM);
|
||||||
|
overrun_flags.set_flag(TextServer::OVERRUN_ADD_ELLIPSIS);
|
||||||
|
overrun_flags.set_flag(TextServer::OVERRUN_ENFORCE_ELLIPSIS);
|
||||||
|
} break;
|
||||||
case TextServer::OVERRUN_TRIM_WORD_ELLIPSIS:
|
case TextServer::OVERRUN_TRIM_WORD_ELLIPSIS:
|
||||||
overrun_flags.set_flag(TextServer::OVERRUN_TRIM);
|
overrun_flags.set_flag(TextServer::OVERRUN_TRIM);
|
||||||
overrun_flags.set_flag(TextServer::OVERRUN_TRIM_WORD_ONLY);
|
overrun_flags.set_flag(TextServer::OVERRUN_TRIM_WORD_ONLY);
|
||||||
|
|||||||
@ -87,7 +87,7 @@ void TextParagraph::_bind_methods() {
|
|||||||
ClassDB::bind_method(D_METHOD("set_text_overrun_behavior", "overrun_behavior"), &TextParagraph::set_text_overrun_behavior);
|
ClassDB::bind_method(D_METHOD("set_text_overrun_behavior", "overrun_behavior"), &TextParagraph::set_text_overrun_behavior);
|
||||||
ClassDB::bind_method(D_METHOD("get_text_overrun_behavior"), &TextParagraph::get_text_overrun_behavior);
|
ClassDB::bind_method(D_METHOD("get_text_overrun_behavior"), &TextParagraph::get_text_overrun_behavior);
|
||||||
|
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "text_overrun_behavior", PROPERTY_HINT_ENUM, "Trim Nothing,Trim Characters,Trim Words,Ellipsis,Word Ellipsis"), "set_text_overrun_behavior", "get_text_overrun_behavior");
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "text_overrun_behavior", PROPERTY_HINT_ENUM, "Trim Nothing,Trim Characters,Trim Words,Ellipsis (6+ Characters),Word Ellipsis (6+ Characters),Ellipsis (Always),Word Ellipsis (Always)"), "set_text_overrun_behavior", "get_text_overrun_behavior");
|
||||||
|
|
||||||
ClassDB::bind_method(D_METHOD("set_ellipsis_char", "char"), &TextParagraph::set_ellipsis_char);
|
ClassDB::bind_method(D_METHOD("set_ellipsis_char", "char"), &TextParagraph::set_ellipsis_char);
|
||||||
ClassDB::bind_method(D_METHOD("get_ellipsis_char"), &TextParagraph::get_ellipsis_char);
|
ClassDB::bind_method(D_METHOD("get_ellipsis_char"), &TextParagraph::get_ellipsis_char);
|
||||||
@ -213,6 +213,17 @@ void TextParagraph::_shape_lines() const {
|
|||||||
BitField<TextServer::TextOverrunFlag> overrun_flags = TextServer::OVERRUN_NO_TRIM;
|
BitField<TextServer::TextOverrunFlag> overrun_flags = TextServer::OVERRUN_NO_TRIM;
|
||||||
if (overrun_behavior != TextServer::OVERRUN_NO_TRIMMING) {
|
if (overrun_behavior != TextServer::OVERRUN_NO_TRIMMING) {
|
||||||
switch (overrun_behavior) {
|
switch (overrun_behavior) {
|
||||||
|
case TextServer::OVERRUN_TRIM_WORD_ELLIPSIS_FORCE: {
|
||||||
|
overrun_flags.set_flag(TextServer::OVERRUN_TRIM);
|
||||||
|
overrun_flags.set_flag(TextServer::OVERRUN_TRIM_WORD_ONLY);
|
||||||
|
overrun_flags.set_flag(TextServer::OVERRUN_ADD_ELLIPSIS);
|
||||||
|
overrun_flags.set_flag(TextServer::OVERRUN_ENFORCE_ELLIPSIS);
|
||||||
|
} break;
|
||||||
|
case TextServer::OVERRUN_TRIM_ELLIPSIS_FORCE: {
|
||||||
|
overrun_flags.set_flag(TextServer::OVERRUN_TRIM);
|
||||||
|
overrun_flags.set_flag(TextServer::OVERRUN_ADD_ELLIPSIS);
|
||||||
|
overrun_flags.set_flag(TextServer::OVERRUN_ENFORCE_ELLIPSIS);
|
||||||
|
} break;
|
||||||
case TextServer::OVERRUN_TRIM_WORD_ELLIPSIS:
|
case TextServer::OVERRUN_TRIM_WORD_ELLIPSIS:
|
||||||
overrun_flags.set_flag(TextServer::OVERRUN_TRIM);
|
overrun_flags.set_flag(TextServer::OVERRUN_TRIM);
|
||||||
overrun_flags.set_flag(TextServer::OVERRUN_TRIM_WORD_ONLY);
|
overrun_flags.set_flag(TextServer::OVERRUN_TRIM_WORD_ONLY);
|
||||||
|
|||||||
@ -565,6 +565,8 @@ void TextServer::_bind_methods() {
|
|||||||
BIND_ENUM_CONSTANT(OVERRUN_TRIM_WORD);
|
BIND_ENUM_CONSTANT(OVERRUN_TRIM_WORD);
|
||||||
BIND_ENUM_CONSTANT(OVERRUN_TRIM_ELLIPSIS);
|
BIND_ENUM_CONSTANT(OVERRUN_TRIM_ELLIPSIS);
|
||||||
BIND_ENUM_CONSTANT(OVERRUN_TRIM_WORD_ELLIPSIS);
|
BIND_ENUM_CONSTANT(OVERRUN_TRIM_WORD_ELLIPSIS);
|
||||||
|
BIND_ENUM_CONSTANT(OVERRUN_TRIM_ELLIPSIS_FORCE);
|
||||||
|
BIND_ENUM_CONSTANT(OVERRUN_TRIM_WORD_ELLIPSIS_FORCE);
|
||||||
|
|
||||||
/* TextOverrunFlag */
|
/* TextOverrunFlag */
|
||||||
BIND_BITFIELD_FLAG(OVERRUN_NO_TRIM);
|
BIND_BITFIELD_FLAG(OVERRUN_NO_TRIM);
|
||||||
|
|||||||
@ -119,6 +119,8 @@ public:
|
|||||||
OVERRUN_TRIM_WORD,
|
OVERRUN_TRIM_WORD,
|
||||||
OVERRUN_TRIM_ELLIPSIS,
|
OVERRUN_TRIM_ELLIPSIS,
|
||||||
OVERRUN_TRIM_WORD_ELLIPSIS,
|
OVERRUN_TRIM_WORD_ELLIPSIS,
|
||||||
|
OVERRUN_TRIM_ELLIPSIS_FORCE,
|
||||||
|
OVERRUN_TRIM_WORD_ELLIPSIS_FORCE,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum TextOverrunFlag {
|
enum TextOverrunFlag {
|
||||||
|
|||||||
Reference in New Issue
Block a user