X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fmenu%2Fitem%2Fbutton.c;h=8bbdfa70406e125083dc6572acedf2f123aeb120;hp=3d91229ec6669dcd6f3af7c1b56858db72708b2f;hb=e0ac5f9f14e169a1e19d0e36b85cab061a74ed93;hpb=0218563b4059e788652d927ef6e8ce738c055ba1 diff --git a/qcsrc/menu/item/button.c b/qcsrc/menu/item/button.c index 3d91229ec..8bbdfa704 100644 --- a/qcsrc/menu/item/button.c +++ b/qcsrc/menu/item/button.c @@ -8,7 +8,8 @@ CLASS(Button) EXTENDS(Label) 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) @@ -69,8 +70,6 @@ float Button_mouseDrag(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 Button_mouseRelease(entity me, vector pos) @@ -78,8 +77,13 @@ 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; @@ -88,7 +92,12 @@ void Button_showNotify(entity me) { me.focusable = !me.disabled; } -.float playedfocus; +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; @@ -150,23 +159,15 @@ void Button_draw(entity me) draw_alpha = save; - SUPER(Button).draw(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