18 float spaceAvail = 1 - me.keepspaceLeft - me.keepspaceRight;
23 float spaceUsed =
draw_TextWidth(t, me.allowColors, me.realFontSize);
25 if (spaceUsed <= spaceAvail)
27 if (!me.overrideRealOrigin.x)
28 me.realOrigin.x = me.align * (spaceAvail - spaceUsed) + me.keepspaceLeft;
29 if (!me.overrideCondenseFactor)
30 me.condenseFactor = 1;
32 else if (me.allowCut || me.allowWrap)
34 if (!me.overrideRealOrigin.x)
35 me.realOrigin.x = me.keepspaceLeft;
36 if (!me.overrideCondenseFactor)
37 me.condenseFactor = 1;
41 if (!me.overrideRealOrigin.x)
42 me.realOrigin.x = me.keepspaceLeft;
43 if (!me.overrideCondenseFactor)
44 me.condenseFactor = spaceAvail / spaceUsed;
45 if (me.condenseFactor > 1)
46 LOG_TRACEF(
"NOTE: label text %s too wide for label, condensed by factor %f", t, me.condenseFactor);
49 if (!me.overrideRealOrigin.y)
52 vector fs = me.realFontSize;
53 fs.x *= me.condenseFactor;
61 else if (me.allowWrap)
79 float text_height = lines * me.realFontSize.y;
81 text_height += (lines - 1) * me.realFontSize.y * me.allowWrap_spacing;
82 me.realOrigin.y = 0.5 * (1 - text_height);
92 SUPER(
Label).resizeNotify(me, relOrigin, relSize, absOrigin, absSize);
95 me.realFontSize.y = absSize.y == 0 ? 0 : (me.fontSize / absSize.y);
96 me.realFontSize.x = absSize.x == 0 ? 0 : (me.fontSize / absSize.x);
98 me.keepspaceLeft = me.marginLeft * me.realFontSize.x;
100 me.keepspaceRight = me.marginRight * me.realFontSize.x;
119 t = me.textEntity.toString(me.textEntity);
120 if (t != me.currentText)
122 strcpy(me.currentText, t);
130 me.recalcPositionWithText(me, t);
132 if (me.fontSize && t)
138 vector fs = me.realFontSize;
139 fs.x *= me.condenseFactor;
147 draw_Text(me.realOrigin, t, fs, me.colorL, me.alpha, me.allowColors);
149 else if (me.allowWrap)
159 draw_Text(o, t, fs, me.colorL, me.alpha, me.allowColors);
160 o.y += me.realFontSize.y * (1 + me.allowWrap_spacing);
164 draw_Text(me.realOrigin, t, fs, me.colorL, me.alpha, me.allowColors);