METHOD(Button, mousePress, float(entity, vector))
METHOD(Button, mouseDrag, float(entity, vector))
METHOD(Button, mouseRelease, float(entity, vector))
- ATTRIB(Button, onClick, void(entity, entity), SUB_Null)
+ METHOD(Button, focusEnter, void(entity))
+ ATTRIB(Button, onClick, void(entity, entity), func_null)
ATTRIB(Button, onClickEntity, entity, NULL)
ATTRIB(Button, src, string, string_null)
ATTRIB(Button, srcSuffix, string, string_null)
#endif
#ifdef IMPLEMENTATION
-void resizeNotifyButton(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
+void Button_resizeNotify(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
{
if(me.srcMulti)
me.keepspaceLeft = 0;
else
me.keepspaceLeft = min(0.8, absSize_y / absSize_x);
- resizeNotifyLabel(me, relOrigin, relSize, absOrigin, absSize);
+ SUPER(Button).resizeNotify(me, relOrigin, relSize, absOrigin, absSize);
}
-void configureButtonButton(entity me, string txt, float sz, string gfx)
+void Button_configureButton(entity me, string txt, float sz, string gfx)
{
- configureLabelLabel(me, txt, sz, me.srcMulti ? 0.5 : 0);
+ SUPER(Button).configureLabel(me, txt, sz, me.srcMulti ? 0.5 : 0);
me.src = gfx;
}
-float keyDownButton(entity me, float key, float ascii, float shift)
+float Button_keyDown(entity me, float key, float ascii, float shift)
{
- if(key == K_ENTER || key == K_SPACE)
+ if(key == K_ENTER || key == K_SPACE || key == K_KP_ENTER)
{
me.clickTime = 0.1; // delayed for effect
return 1;
}
return 0;
}
-float mouseDragButton(entity me, vector pos)
+float Button_mouseDrag(entity me, vector pos)
{
me.pressed = 1;
if(pos_x < 0) me.pressed = 0;
if(pos_y >= 1) me.pressed = 0;
return 1;
}
-float mousePressButton(entity me, vector pos)
+float Button_mousePress(entity me, vector pos)
{
me.mouseDrag(me, pos); // verify coordinates
- if(cvar("menu_sounds"))
- localsound("sound/misc/menu2.wav");
return 1;
}
-float mouseReleaseButton(entity me, vector pos)
+float Button_mouseRelease(entity me, vector pos)
{
me.mouseDrag(me, pos); // verify coordinates
if(me.pressed)
{
- if not(me.disabled)
- me.onClick(me, me.onClickEntity);
+ if (!me.disabled)
+ {
+ if(cvar("menu_sounds"))
+ localsound("sound/misc/menu2.wav");
+ if(me.onClick)
+ me.onClick(me, me.onClickEntity);
+ }
me.pressed = 0;
}
return 1;
}
-void showNotifyButton(entity me)
+void Button_showNotify(entity me)
{
me.focusable = !me.disabled;
}
-.float playedfocus;
-void drawButton(entity me)
+void Button_focusEnter(entity me)
+{
+ if(cvar("menu_sounds") > 1)
+ localsound("sound/misc/menu1.wav");
+ SUPER(Button).focusEnter(me);
+}
+void Button_draw(entity me)
{
vector bOrigin, bSize;
float save;
draw_alpha = save;
- drawLabel(me);
-
if(me.clickTime > 0 && me.clickTime <= frametime)
{
// keyboard click timer expired? Fire the event then.
- if not(me.disabled)
- me.onClick(me, me.onClickEntity);
+ if (!me.disabled)
+ if(me.onClick)
+ me.onClick(me, me.onClickEntity);
}
me.clickTime -= frametime;
- if(cvar("menu_sounds") > 1)
- if(me.focused && !me.playedfocus)
- {
- localsound("sound/misc/menu1.wav");
- me.playedfocus = 1;
- }
- else if(!me.focused && me.playedfocus)
- me.playedfocus = 0;
+ SUPER(Button).draw(me);
}
-#endif
\ No newline at end of file
+#endif