]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Menu: allow customizing line spacing in wrapped TextLabel text. Improve appearance...
authorterencehill <piuntn@gmail.com>
Wed, 12 Jun 2024 23:36:47 +0000 (01:36 +0200)
committerterencehill <piuntn@gmail.com>
Thu, 13 Jun 2024 12:53:49 +0000 (14:53 +0200)
The language change warning message is now an unique string, removing a possible source of confusion for translators since the first part of the message ended with a coma

qcsrc/menu/item/label.qc
qcsrc/menu/item/label.qh
qcsrc/menu/xonotic/dialog_firstrun.qc
qcsrc/menu/xonotic/dialog_settings_user_languagewarning.qc
qcsrc/menu/xonotic/dialog_settings_user_languagewarning.qh

index f7a782dabbf877a3b0bcef5adee11db333d8edc0..8d297e7a4bebf5be65f427af8ad3c2f7bb7adabf 100644 (file)
 
                        draw_fontscale = dfs;
 
-                       me.realOrigin_y = 0.5 * (1 - lines * me.realFontSize.y);
+                       float text_height = lines * me.realFontSize.y;
+                       if (lines > 1)
+                               text_height += (lines - 1) * me.realFontSize.y * me.allowWrap_spacing;
+                       me.realOrigin_y = 0.5 * (1 - text_height);
                }
 
                if (me.isBold) draw_endBoldFont();
                                                if (me.allowColors) t = getWrappedLine((1 - me.keepspaceLeft - me.keepspaceRight), fs, draw_TextWidth_WithColors);
                                                else t = getWrappedLine((1 - me.keepspaceLeft - me.keepspaceRight), fs, draw_TextWidth_WithoutColors);
                                                draw_Text(o, t, fs, me.colorL, me.alpha, me.allowColors);
-                                               o.y += me.realFontSize.y;
+                                               o.y += me.realFontSize.y * (1 + me.allowWrap_spacing);
                                        }
                                }
                                else
index 2439d1d5beafbfa72c206bfe422a25c9135517e3..8a81ec35170365198bd3e463cf8b1a4004f38c4d 100644 (file)
@@ -26,7 +26,11 @@ CLASS(Label, MenuItem)
        ATTRIB(Label, disabled, float, 0);
        ATTRIB(Label, disabledAlpha, float, 0.3);
        ATTRIB(Label, textEntity, entity);
+       // if allowWrap is enabled text is wrapped on multiple lines and can't be condensed;
+       // lines are centered vertically and are allowed to extend outside the item box
+       // so there should be some free space above and below the item
        ATTRIB(Label, allowWrap, float, 0);
+       ATTRIB(Label, allowWrap_spacing, float, 0);
        ATTRIB(Label, recalcPos, float, 0);
        ATTRIB(Label, condenseFactor, float, 1);
        ATTRIB(Label, overrideRealOrigin, vector, '0 0 0');
index c45256c525621e59e2eeb901d6efd3dcca8c1e7e..f17699b371e7a40f24b3ba6f34d583c08c6bfbf9 100644 (file)
@@ -43,6 +43,7 @@ void XonoticFirstRunDialog_fill(entity me)
                me.TDempty(me, 1);
                me.TD(me, 2, 4, e = makeXonoticTextLabel(0, _("Welcome to Xonotic, please select your language preference and enter your player name to get started.  You can change these options later through the menu system.")));
                e.allowWrap = 1;
+               e.allowWrap_spacing = 0.5;
        me.TR(me);
 
        me.TR(me);
index 3cbd15bb41c2506cb96981a1e1b78d28979d3e12..be41cc20df459fadc98cd6de37145b7d8c754d0a 100644 (file)
@@ -7,9 +7,11 @@ void XonoticLanguageWarningDialog_fill(entity me)
 {
        entity e;
        me.TR(me);
-               me.TD(me, 1, 4, e = makeXonoticTextLabel(0, _("While connected language changes will be applied only to the menu,")));
+               me.TD(me, 2, 4, e = makeXonoticTextLabel(0,
+                       _("While connected language changes will be applied only to the menu, full language changes will take effect starting from the next game")));
+                       e.allowWrap = 1;
+                       e.allowWrap_spacing = 0.5;
        me.TR(me);
-               me.TD(me, 1, 4, e = makeXonoticTextLabel(0, _("full language changes will take effect starting from the next game")));
        me.TR(me);
        me.TR(me);
                // reconnect command doesn't work properly, otherwise it would replace disconnect
index ba5c8a5d1c0bc0f129e006da2a5f06ce5e23aa8f..7bfbdadce7c3ed92fe8d14cdf2c0aacc41cc05cf 100644 (file)
@@ -6,6 +6,6 @@ CLASS(XonoticLanguageWarningDialog, XonoticDialog)
        ATTRIB(XonoticLanguageWarningDialog, title, string, _("Warning"));
        ATTRIB(XonoticLanguageWarningDialog, color, vector, SKINCOLOR_DIALOG_HUDCONFIRM);
        ATTRIB(XonoticLanguageWarningDialog, intendedWidth, float, 0.6);
-       ATTRIB(XonoticLanguageWarningDialog, rows, float, 5);
+       ATTRIB(XonoticLanguageWarningDialog, rows, float, 4);
        ATTRIB(XonoticLanguageWarningDialog, columns, float, 4);
 ENDCLASS(XonoticLanguageWarningDialog)