Changeset 548 for libcaca/trunk/caca/driver_win32.c
- Timestamp:
- Mar 8, 2006, 10:28:41 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcaca/trunk/caca/driver_win32.c
r540 r548 217 217 } 218 218 219 static unsigned int win32_get_event(caca_t *kk) 220 { 221 INPUT_RECORD rec; 222 DWORD num; 223 224 for( ; ; ) 225 { 226 GetNumberOfConsoleInputEvents(kk->win32.hin, &num); 227 if(num == 0) 228 break; 229 230 ReadConsoleInput(kk->win32.hin, &rec, 1, &num); 231 if(rec.EventType == KEY_EVENT) 232 { 233 unsigned int event; 234 235 if(rec.Event.KeyEvent.bKeyDown) 236 event = CACA_EVENT_KEY_PRESS; 237 else 238 event = CACA_EVENT_KEY_RELEASE; 239 240 if(rec.Event.KeyEvent.uChar.AsciiChar) 241 return event | rec.Event.KeyEvent.uChar.AsciiChar; 242 } 243 244 if(rec.EventType == MOUSE_EVENT) 245 { 246 if(rec.Event.MouseEvent.dwEventFlags == 0) 247 { 248 if(rec.Event.MouseEvent.dwButtonState & 0x01) 249 return CACA_EVENT_MOUSE_PRESS | 0x000001; 250 251 if(rec.Event.MouseEvent.dwButtonState & 0x02) 252 return CACA_EVENT_MOUSE_PRESS | 0x000002; 253 } 254 else if(rec.Event.MouseEvent.dwEventFlags == MOUSE_MOVED) 255 { 256 COORD pos = rec.Event.MouseEvent.dwMousePosition; 257 258 if(kk->mouse_x == (unsigned int)pos.X && 259 kk->mouse_y == (unsigned int)pos.Y) 260 continue; 261 262 kk->mouse_x = pos.X; 263 kk->mouse_y = pos.Y; 264 265 return CACA_EVENT_MOUSE_MOTION | (kk->mouse_x << 12) | kk->mouse_y; 266 } 267 #if 0 268 else if(rec.Event.MouseEvent.dwEventFlags == DOUBLE_CLICK) 269 { 270 cout << rec.Event.MouseEvent.dwMousePosition.X << "," << 271 rec.Event.MouseEvent.dwMousePosition.Y << " " << flush; 272 } 273 else if(rec.Event.MouseEvent.dwEventFlags == MOUSE_WHEELED) 274 { 275 SetConsoleCursorPosition(hOut, 276 WheelWhere); 277 if(rec.Event.MouseEvent.dwButtonState & 0xFF000000) 278 cout << "Down" << flush; 279 else 280 cout << "Up " << flush; 281 } 282 #endif 283 } 284 285 /* Unknown event */ 286 return CACA_EVENT_NONE; 287 } 288 289 /* No event */ 290 return CACA_EVENT_NONE; 291 } 292 219 293 /* 220 294 * Driver initialisation … … 232 306 kk->driver.display = win32_display; 233 307 kk->driver.handle_resize = win32_handle_resize; 308 kk->driver.get_event = win32_get_event; 234 309 } 235 310
Note: See TracChangeset
for help on using the changeset viewer.