summaryrefslogtreecommitdiff
path: root/uisimulator/x11/button-x11.c
diff options
context:
space:
mode:
authorBjörn Stenberg <bjorn@haxx.se>2002-08-21 14:13:53 +0000
committerBjörn Stenberg <bjorn@haxx.se>2002-08-21 14:13:53 +0000
commit9af59727b36f841f5554558ae48107358bda4968 (patch)
treea0495b8c3e77cf9890de424cf2a30b1ab3e43f4b /uisimulator/x11/button-x11.c
parent76d41457b0ac9eb34a91f16e3f449ceae3fa10e6 (diff)
downloadrockbox-9af59727b36f841f5554558ae48107358bda4968.tar.gz
rockbox-9af59727b36f841f5554558ae48107358bda4968.zip
Added button release events
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1885 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'uisimulator/x11/button-x11.c')
-rw-r--r--uisimulator/x11/button-x11.c57
1 files changed, 41 insertions, 16 deletions
diff --git a/uisimulator/x11/button-x11.c b/uisimulator/x11/button-x11.c
index 734272c6c4..e93290f89e 100644
--- a/uisimulator/x11/button-x11.c
+++ b/uisimulator/x11/button-x11.c
@@ -67,71 +67,96 @@ extern int screenhack_handle_events (void);
67 67
68static int get_raw_button (void) 68static int get_raw_button (void)
69{ 69{
70 int k = screenhack_handle_events(); 70 int k;
71 switch(k) 71 static int next = 0;
72 if ( next ) {
73 k = next;
74 next = 0;
75 return k;
76 }
77
78 switch(screenhack_handle_events())
72 { 79 {
73 case XK_KP_Left: 80 case XK_KP_Left:
74 case XK_Left: 81 case XK_Left:
75 case XK_KP_4: 82 case XK_KP_4:
76 return BUTTON_LEFT; 83 k = BUTTON_LEFT;
84 break;
77 85
78 case XK_KP_Right: 86 case XK_KP_Right:
79 case XK_Right: 87 case XK_Right:
80 case XK_KP_6: 88 case XK_KP_6:
81 return BUTTON_RIGHT; 89 k = BUTTON_RIGHT;
90 break;
82 91
83 case XK_KP_Up: 92 case XK_KP_Up:
84 case XK_Up: 93 case XK_Up:
85 case XK_KP_8: 94 case XK_KP_8:
86 return BUTTON_UP; 95 k = BUTTON_UP;
96 break;
87 97
88 case XK_KP_Down: 98 case XK_KP_Down:
89 case XK_Down: 99 case XK_Down:
90 case XK_KP_2: 100 case XK_KP_2:
91 return BUTTON_DOWN; 101 k = BUTTON_DOWN;
102 break;
92 103
93#ifdef HAVE_RECORDER_KEYPAD 104#ifdef HAVE_RECORDER_KEYPAD
94 case XK_KP_Space: 105 case XK_KP_Space:
95 case XK_KP_5: 106 case XK_KP_5:
96 case XK_KP_Begin: 107 case XK_KP_Begin:
97 case XK_space: 108 case XK_space:
98 return BUTTON_PLAY; 109 k = BUTTON_PLAY;
110 break;
99 111
100 case XK_KP_Enter: 112 case XK_KP_Enter:
101 case XK_A: 113 case XK_A:
102 case XK_a: 114 case XK_a:
103 return BUTTON_OFF; 115 k = BUTTON_OFF;
116 break;
104 117
105 case XK_KP_Add: 118 case XK_KP_Add:
106 case XK_Q: 119 case XK_Q:
107 case XK_q: 120 case XK_q:
108 return BUTTON_ON; 121 k = BUTTON_ON;
122 break;
109 123
110 case XK_KP_Divide: 124 case XK_KP_Divide:
111 case XK_1: 125 case XK_1:
112 return BUTTON_F1; 126 k = BUTTON_F1;
127 break;
113 128
114 case XK_KP_Multiply: 129 case XK_KP_Multiply:
115 case XK_2: 130 case XK_2:
116 return BUTTON_F2; 131 k = BUTTON_F2;
132 break;
117 133
118 case XK_KP_Subtract: 134 case XK_KP_Subtract:
119 case XK_3: 135 case XK_3:
120 return BUTTON_F3; 136 k = BUTTON_F3;
137 break;
121#else 138#else
122 case XK_KP_Add: 139 case XK_KP_Add:
123 case XK_Q: 140 case XK_Q:
124 case XK_q: 141 case XK_q:
125 return BUTTON_ON; 142 k = BUTTON_ON;
143 break;
126 144
127 case XK_KP_Enter: 145 case XK_KP_Enter:
128 case XK_Return: 146 case XK_Return:
129 return BUTTON_MENU; 147 k = BUTTON_MENU;
148 break;
130#endif 149#endif
131 150
132 default: 151 default:
133 return 0; 152 k = 0;
153 break;
134 } 154 }
155
156 if ( k )
157 next = k | BUTTON_REL;
158
159 return k;
135} 160}
136 161
137/* 162/*
@@ -148,7 +173,7 @@ int button_get_w_tmo(int ticks)
148 x11_sleep(1); 173 x11_sleep(1);
149 else 174 else
150 break; 175 break;
151 }; 176 }
152 177
153 return bits; 178 return bits;
154} 179}