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 LOG_TRACEF(
"NOTE: label text %s too wide for label, condensed by factor %f", t, me.condenseFactor);
48 if (!me.overrideRealOrigin.y)
56 fs.x *= me.condenseFactor;
63 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);
91 SUPER(
Label).resizeNotify(me, relOrigin, relSize, absOrigin, absSize);
94 me.realFontSize.y = absSize.y == 0 ? 0 : (me.fontSize / absSize.y);
95 me.realFontSize.x = absSize.x == 0 ? 0 : (me.fontSize / absSize.x);
97 me.keepspaceLeft = me.marginLeft * me.realFontSize.x;
99 me.keepspaceRight = me.marginRight * me.realFontSize.x;
118 t = me.textEntity.toString(me.textEntity);
119 if (t != me.currentText)
121 strcpy(me.currentText, t);
129 me.recalcPositionWithText(me, t);
131 if (me.fontSize && t)
137 vector fs = me.realFontSize;
138 fs.x *= me.condenseFactor;
146 draw_Text(me.realOrigin, t, fs, me.colorL, me.alpha, me.allowColors);
148 else if (me.allowWrap)
158 draw_Text(o, t, fs, me.colorL, me.alpha, me.allowColors);
159 o.y += me.realFontSize.y * (1 + me.allowWrap_spacing);
163 draw_Text(me.realOrigin, t, fs, me.colorL, me.alpha, me.allowColors);