OSDN Git Service

[updated] shared lib. middle mouse button handling was wrong
authorbadlogicgames <badlogicgames@6c4fd544-2939-11df-bb46-9574ba5d0bfa>
Mon, 24 Jan 2011 15:08:46 +0000 (15:08 +0000)
committerbadlogicgames <badlogicgames@6c4fd544-2939-11df-bb46-9574ba5d0bfa>
Mon, 24 Jan 2011 15:08:46 +0000 (15:08 +0000)
backends/gdx-backends-angle/libs/angle.jar [deleted file]
backends/gdx-backends-angle/src/com/badlogic/gdx/backends/angle/AngleApplication.java
backends/gdx-backends-angle/src/com/badlogic/gdx/backends/angle/AngleInput.java

diff --git a/backends/gdx-backends-angle/libs/angle.jar b/backends/gdx-backends-angle/libs/angle.jar
deleted file mode 100644 (file)
index 32bb1ea..0000000
Binary files a/backends/gdx-backends-angle/libs/angle.jar and /dev/null differ
index 15f9c51..9ed3d93 100644 (file)
@@ -99,7 +99,7 @@ public class AngleApplication implements Application, ESLoop {
        }\r
 \r
        @Override public void onMouse (int action, int x, int y, int button) {\r
-               if (action != ES_MOUSE_WHEEL) input.registerMouseEvent(action, x, y, button);\r
+               input.registerMouseEvent(action, x, y, button);\r
        }\r
 \r
        @Override public void quit () {\r
@@ -115,6 +115,7 @@ public class AngleApplication implements Application, ESLoop {
                }\r
                input.processEvents();\r
                listener.render();\r
+               input.justTouched = false;\r
        }\r
 \r
        @Override public void resize (int width, int height) {\r
index bedcc64..0d241e7 100644 (file)
@@ -71,6 +71,7 @@ public class AngleInput implements Input {
        int mouseX = 0;\r
        int mouseY = 0;\r
        HashSet<Integer> pressedKeys = new HashSet<Integer>();\r
+       HashSet<Integer> pressedButtons = new HashSet<Integer>();\r
 \r
        private InputProcessor processor;\r
 \r
@@ -95,9 +96,8 @@ public class AngleInput implements Input {
                });\r
        }\r
 \r
-       public int getX () {\r
-               // FIXME\r
-               return 0;\r
+       public int getX () { \r
+               return mouseY;\r
        }\r
 \r
        public int getY () {\r
@@ -116,7 +116,7 @@ public class AngleInput implements Input {
        }\r
 \r
        public boolean isTouched () {\r
-               return mousePressed = true;\r
+               return mousePressed;\r
        }\r
 \r
        public int getX (int pointer) {\r
@@ -244,7 +244,7 @@ public class AngleInput implements Input {
                                break;\r
                        case ESLoop.ES_KEY_TYPED:\r
                                event.type = KeyEvent.KEY_TYPED;\r
-                               break;\r
+                               break;                          \r
                        }\r
 \r
                        keyEvents.add(event);\r
@@ -262,13 +262,45 @@ public class AngleInput implements Input {
                        case ESLoop.ES_MOUSE_DOWN:\r
                                event.type = TouchEvent.TOUCH_DOWN;\r
                                mousePressed = true;\r
+                               justTouched = true;\r
+                               if((button & ESLoop.ES_MOUSE_LBUTTON) != 0) {\r
+                                       pressedButtons.add(Buttons.LEFT);\r
+                                       event.button = Buttons.LEFT;\r
+                               }\r
+                               if((button & ESLoop.ES_MOUSE_RBUTTON) != 0) {\r
+                                       pressedButtons.add(Buttons.RIGHT);\r
+                                       event.button = Buttons.RIGHT;\r
+                               }\r
+                               if((button & ESLoop.ES_MOUSE_MBUTTON) != 0) {\r
+                                       pressedButtons.add(Buttons.MIDDLE);\r
+                                       event.button = Buttons.MIDDLE;\r
+                               }\r
                                break;\r
                        case ESLoop.ES_MOUSE_UP:\r
                                event.type = TouchEvent.TOUCH_UP;\r
-                               mousePressed = true;\r
+                               mousePressed = false;\r
+                               if((button & ESLoop.ES_MOUSE_LBUTTON) != 0) {\r
+                                       pressedButtons.remove(Buttons.LEFT);\r
+                                       event.button = Buttons.LEFT;                                    \r
+                               }\r
+                               if((button & ESLoop.ES_MOUSE_RBUTTON) != 0) {\r
+                                       pressedButtons.remove(Buttons.RIGHT);\r
+                                       event.button = Buttons.RIGHT;\r
+                               }\r
+                               if((button & ESLoop.ES_MOUSE_MBUTTON) != 0) {\r
+                                       pressedButtons.remove(Buttons.MIDDLE);\r
+                                       event.button = Buttons.MIDDLE;\r
+                               }\r
                                break;\r
                        case ESLoop.ES_MOUSE_MOVE:\r
-                               event.type = TouchEvent.TOUCH_DRAGGED;\r
+                               if(!mousePressed)\r
+                                       event.type = TouchEvent.TOUCH_MOVED;\r
+                               else\r
+                                       event.type = TouchEvent.TOUCH_DRAGGED;\r
+                               break;                  \r
+                       case ESLoop.ES_MOUSE_WHEEL:\r
+                               event.type = TouchEvent.TOUCH_SCROLL;\r
+                               event.scrollAmount = -(int)Math.signum(x);\r
                                break;\r
                        }\r
                        \r
@@ -277,7 +309,6 @@ public class AngleInput implements Input {
        }\r
 \r
        int translateKey (int keyCode) {\r
-               // FIXME\r
                return keyCode;\r
        }\r
 \r
@@ -291,10 +322,10 @@ public class AngleInput implements Input {
 \r
        @Override public boolean justTouched () {\r
                return justTouched;\r
-       }\r
-\r
-       @Override public boolean isButtonPressed (int button) {\r
-               return false;\r
+       }               \r
+       \r
+       @Override public boolean isButtonPressed (int button) {         \r
+               return pressedButtons.contains(button);\r
        }\r
 \r
        @Override public void vibrate (long[] pattern, int repeat) {\r