ATTRIB(InputBox, enableClearButton, float, 1)
ATTRIB(InputBox, clearButton, entity, NULL)
- ATTRIB(InputBox, cb_size, vector, '0 0 0')
+ ATTRIB(InputBox, cb_width, float, 0)
ATTRIB(InputBox, cb_pressed, float, 0)
ATTRIB(InputBox, cb_focused, float, 0)
- // ATTRIB(InputBox, cb_src, string, SKINGFX_CLEARBUTTON)
- ATTRIB(InputBox, cb_src, string, "clearbutton")
+ ATTRIB(InputBox, cb_color, vector, '1 1 1')
+ ATTRIB(InputBox, cb_colorF, vector, '1 1 1')
+ ATTRIB(InputBox, cb_colorC, vector, '1 1 1')
ENDCLASS(InputBox)
void InputBox_Clear_Click(entity btn, entity me);
#endif
SUPER(InputBox).resizeNotify(me, relOrigin, relSize, absOrigin, absSize);
if (me.enableClearButton)
{
- me.cb_size = eX * (absSize_y / absSize_x) + eY;
- me.keepspaceRight = me.keepspaceRight + me.cb_size_x;
+ me.cb_width = absSize_y / absSize_x;
+ me.cb_offset = bound(-1, me.cb_offset, 0) * me.cb_width; // bound to range -1, 0
+ me.keepspaceRight = me.keepspaceRight - me.cb_offset + me.cb_width;
}
}
float over_ClearButton(entity me, vector pos)
{
- if (pos_x >= 1 - me.cb_size_x)
- if (pos_x < 1)
+ if (pos_x >= 1 + me.cb_offset - me.cb_width)
+ if (pos_x < 1 + me.cb_offset)
if (pos_y >= 0)
- if (pos_y < me.cb_size_y)
+ if (pos_y < 1)
return 1;
return 0;
}
if(me.pressed)
me.mouseDrag(me, me.dragScrollPos); // simulate mouseDrag event
+ if(me.recalcPos)
+ me.recalcPositionWithText(me, me.text);
+
me.focusable = !me.disabled;
if(me.disabled)
draw_alpha *= me.disabledAlpha;
vector p;
vector theTempColor;
float component;
-
+
p = me.realOrigin - eX * me.scrollPos;
theColor = '1 1 1';
theAlpha = 1; //theVariableAlpha = 1; // changes when ^ax found
-
+
n = strlen(me.text);
for(i = 0; i < n; ++i)
{
else if(ch2 == "x") // ^x found
{
theColor = '1 1 1';
- theTempColor = '0 0 0';
-
+
component = HEXDIGIT_TO_DEC(substring(me.text, i+2, 1));
if (component >= 0) // ^xr found
{
theTempColor_x = component/15;
-
+
component = HEXDIGIT_TO_DEC(substring(me.text, i+3, 1));
if (component >= 0) // ^xrg found
{
theTempColor_y = component/15;
-
+
component = HEXDIGIT_TO_DEC(substring(me.text, i+4, 1));
if (component >= 0) // ^xrgb found
{
theTempColor_z = component/15;
theColor = theTempColor;
w = draw_TextWidth(substring(me.text, i, 5), 0, me.realFontSize);
-
+
draw_Fill(p, eX * w + eY * me.realFontSize_y, '1 1 1', 0.5);
draw_Text(p, substring(me.text, i, 5), me.realFontSize, theColor, 1, 0); // theVariableAlpha instead of 1 using alpha tags ^ax
i += 3;
}
else
draw_Text(me.realOrigin - eX * me.scrollPos, me.text, me.realFontSize, '1 1 1', 1, 0);
- // skipping SUPER(InputBox).draw(me);
+
if(!me.focused || (time - me.lastChangeTime) < floor(time - me.lastChangeTime) + 0.5)
draw_Text(me.realOrigin + eX * (cursorPosInWidths - me.scrollPos), CURSOR, me.realFontSize, '1 1 1', 1, 0);
if (me.text != "")
{
if(me.focused && me.cb_pressed)
- draw_Picture('1 1 0' - me.cb_size, strcat(me.cb_src, "_c"), me.cb_size, '1 1 1', 1);
+ draw_Picture(eX * (1 + me.cb_offset - me.cb_width), strcat(me.cb_src, "_c"), eX * me.cb_width + eY, me.cb_colorC, 1);
else if(me.focused && me.cb_focused)
- draw_Picture('1 1 0' - me.cb_size, strcat(me.cb_src, "_f"), me.cb_size, '1 1 1', 1);
+ draw_Picture(eX * (1 + me.cb_offset - me.cb_width), strcat(me.cb_src, "_f"), eX * me.cb_width + eY, me.cb_colorF, 1);
else
- draw_Picture('1 1 0' - me.cb_size, strcat(me.cb_src, "_n"), me.cb_size, '1 1 1', 1);
+ draw_Picture(eX * (1 + me.cb_offset - me.cb_width), strcat(me.cb_src, "_n"), eX * me.cb_width + eY, me.cb_color, 1);
}
+
+ // skipping SUPER(InputBox).draw(me);
+ Item_draw(me);
}
void InputBox_showNotify(entity me)