18 float spaceAvail = 1 - me.keepspaceLeft - me.keepspaceRight;
22 float spaceUsed =
draw_TextWidth(t, me.allowColors, me.realFontSize);
24 if (spaceUsed <= spaceAvail)
26 if (!me.overrideRealOrigin_x) me.realOrigin_x = me.align * (spaceAvail - spaceUsed) + me.keepspaceLeft;
27 if (!me.overrideCondenseFactor) me.condenseFactor = 1;
29 else if (me.allowCut || me.allowWrap)
31 if (!me.overrideRealOrigin_x) me.realOrigin_x = me.keepspaceLeft;
32 if (!me.overrideCondenseFactor) me.condenseFactor = 1;
36 if (!me.overrideRealOrigin_x) me.realOrigin_x = me.keepspaceLeft;
37 if (!me.overrideCondenseFactor) me.condenseFactor = spaceAvail / spaceUsed;
38 LOG_TRACEF(
"NOTE: label text %s too wide for label, condensed by factor %f", t, me.condenseFactor);
41 if (!me.overrideRealOrigin_y)
49 fs.x *= me.condenseFactor;
58 else if (me.allowWrap)
76 float text_height = lines * me.realFontSize.y;
78 text_height += (lines - 1) * me.realFontSize.y * me.allowWrap_spacing;
79 me.realOrigin_y = 0.5 * (1 - text_height);
88 SUPER(
Label).resizeNotify(me, relOrigin, relSize, absOrigin, absSize);
91 me.realFontSize_y = absSize.y == 0 ? 0 : (me.fontSize / absSize.y);
92 me.realFontSize_x = absSize.x == 0 ? 0 : (me.fontSize / absSize.x);
93 if (me.marginLeft) me.keepspaceLeft = me.marginLeft * me.realFontSize.x;
94 if (me.marginRight) me.keepspaceRight = me.marginRight * me.realFontSize.x;
108 if (me.disabled)
draw_alpha *= me.disabledAlpha;
112 t = me.textEntity.toString(me.textEntity);
113 if (t != me.currentText)
115 strcpy(me.currentText, t);
124 if (me.recalcPos) me.recalcPositionWithText(me, t);
135 fs = me.realFontSize;
136 fs.x *= me.condenseFactor;
143 draw_Text(me.realOrigin,
draw_TextShortenToWidth(t, (1 - me.keepspaceLeft - me.keepspaceRight), me.allowColors, fs), fs, me.colorL, me.alpha, me.allowColors);
145 else if (me.allowWrap)
153 draw_Text(o, t, fs, me.colorL, me.alpha, me.allowColors);
154 o.y += me.realFontSize.y * (1 + me.allowWrap_spacing);
159 draw_Text(me.realOrigin, t, fs, me.colorL, me.alpha, me.allowColors);