@@ -47,6 +47,7 @@ void LinkButton::_shape() {
4747 const String &lang = language.is_empty () ? _get_locale () : language;
4848 text_buf->add_string (xl_text, font, font_size, lang);
4949 text_buf->set_text_overrun_behavior (overrun_behavior);
50+ text_buf->set_ellipsis_char (el_char);
5051
5152 queue_accessibility_update ();
5253}
@@ -87,6 +88,29 @@ void LinkButton::set_structured_text_bidi_override(TextServer::StructuredTextPar
8788 }
8889}
8990
91+ void LinkButton::set_ellipsis_char (const String &p_char) {
92+ String c = p_char;
93+ if (c.length () > 1 ) {
94+ WARN_PRINT (" Ellipsis must be exactly one character long (" + itos (c.length ()) + " characters given)." );
95+ c = c.left (1 );
96+ }
97+
98+ if (el_char == c) {
99+ return ;
100+ }
101+ el_char = c;
102+
103+ if (overrun_behavior != TextServer::OVERRUN_NO_TRIMMING) {
104+ _shape ();
105+ queue_redraw ();
106+ update_minimum_size ();
107+ }
108+ }
109+
110+ String LinkButton::get_ellipsis_char () const {
111+ return el_char;
112+ }
113+
90114TextServer::StructuredTextParser LinkButton::get_structured_text_bidi_override () const {
91115 return st_parser;
92116}
@@ -292,6 +316,8 @@ void LinkButton::_bind_methods() {
292316 ClassDB::bind_method (D_METHOD (" get_text" ), &LinkButton::get_text);
293317 ClassDB::bind_method (D_METHOD (" set_text_overrun_behavior" , " overrun_behavior" ), &LinkButton::set_text_overrun_behavior);
294318 ClassDB::bind_method (D_METHOD (" get_text_overrun_behavior" ), &LinkButton::get_text_overrun_behavior);
319+ ClassDB::bind_method (D_METHOD (" set_ellipsis_char" , " char" ), &LinkButton::set_ellipsis_char);
320+ ClassDB::bind_method (D_METHOD (" get_ellipsis_char" ), &LinkButton::get_ellipsis_char);
295321 ClassDB::bind_method (D_METHOD (" set_text_direction" , " direction" ), &LinkButton::set_text_direction);
296322 ClassDB::bind_method (D_METHOD (" get_text_direction" ), &LinkButton::get_text_direction);
297323 ClassDB::bind_method (D_METHOD (" set_language" , " language" ), &LinkButton::set_language);
@@ -315,6 +341,7 @@ void LinkButton::_bind_methods() {
315341
316342 ADD_GROUP (" Text Behavior" , " " );
317343 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" );
344+ ADD_PROPERTY (PropertyInfo (Variant::STRING, " ellipsis_char" ), " set_ellipsis_char" , " get_ellipsis_char" );
318345
319346 ADD_GROUP (" BiDi" , " " );
320347 ADD_PROPERTY (PropertyInfo (Variant::INT, " text_direction" , PROPERTY_HINT_ENUM, " Auto,Left-to-Right,Right-to-Left,Inherited" ), " set_text_direction" , " get_text_direction" );
0 commit comments