]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/menu/item/button.c
Merge remote-tracking branch 'origin/divVerent/allow-override-item-model'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / item / button.c
index 728413135ad1d5f8f9dfb6bd189e041e63aefef5..71ca11c7c3a439327f888e8edc605b7d6fa36e35 100644 (file)
@@ -8,6 +8,7 @@ CLASS(Button) EXTENDS(Label)
        METHOD(Button, mousePress, float(entity, vector))
        METHOD(Button, mouseDrag, float(entity, vector))
        METHOD(Button, mouseRelease, float(entity, vector))
+       METHOD(Button, focusEnter, void(entity))
        ATTRIB(Button, onClick, void(entity, entity), SUB_Null)
        ATTRIB(Button, onClickEntity, entity, NULL)
        ATTRIB(Button, src, string, string_null)
@@ -50,7 +51,7 @@ void Button_configureButton(entity me, string txt, float sz, string gfx)
 }
 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;
@@ -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)
@@ -79,7 +78,11 @@ float Button_mouseRelease(entity me, vector pos)
        if(me.pressed)
        {
                if not(me.disabled)
+               {
+                       if(cvar("menu_sounds"))
+                               localsound("sound/misc/menu2.wav");
                        me.onClick(me, me.onClickEntity);
+               }
                me.pressed = 0;
        }
        return 1;
@@ -88,7 +91,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;
@@ -159,14 +167,5 @@ void Button_draw(entity me)
                        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;
 }
-#endif
\ No newline at end of file
+#endif