Ignore:
Timestamp:
Mar 23, 2006, 7:36:59 PM (14 years ago)
Author:
Sam Hocevar
Message:
  • Massive rework of the event handling code, as per the TODO list.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcaca/trunk/caca/driver_win32.c

    r672 r681  
    236236}
    237237
    238 static unsigned int win32_get_event(caca_t *kk)
     238static int win32_get_event(caca_t *kk, struct caca_event *ev)
    239239{
    240240    INPUT_RECORD rec;
     
    253253
    254254            if(rec.Event.KeyEvent.bKeyDown)
    255                 event = CACA_EVENT_KEY_PRESS;
     255                ev->type = CACA_EVENT_KEY_PRESS;
    256256            else
    257                 event = CACA_EVENT_KEY_RELEASE;
     257                ev->type = CACA_EVENT_KEY_RELEASE;
    258258
    259259            if(rec.Event.KeyEvent.uChar.AsciiChar)
    260                 return event | rec.Event.KeyEvent.uChar.AsciiChar;
     260            {
     261                ev->data.key.c = rec.Event.KeyEvent.uChar.AsciiChar;
     262                ev->data.key.ucs4 = (uint32_t)ev->data.key.c;
     263                ev->data.key.utf8[0] = ev->data.key.c;
     264                ev->data.key.utf8[1] = '\0';
     265
     266                return 1;
     267            }
    261268        }
    262269
     
    266273            {
    267274                if(rec.Event.MouseEvent.dwButtonState & 0x01)
    268                     return CACA_EVENT_MOUSE_PRESS | 0x000001;
     275                {
     276                    ev->type = CACA_EVENT_MOUSE_PRESS;
     277                    ev->data.mouse.button = 1;
     278                    return 1;
     279                }
    269280
    270281                if(rec.Event.MouseEvent.dwButtonState & 0x02)
    271                     return CACA_EVENT_MOUSE_PRESS | 0x000002;
     282                {
     283                    ev->type = CACA_EVENT_MOUSE_PRESS;
     284                    ev->data.mouse.button = 2;
     285                    return 1;
     286                }
    272287            }
    273288            else if(rec.Event.MouseEvent.dwEventFlags == MOUSE_MOVED)
     
    282297                kk->mouse.y = pos.Y;
    283298
    284                 return CACA_EVENT_MOUSE_MOTION
    285                         | (kk->mouse.x << 12) | kk->mouse.y;
     299                ev->type = CACA_EVENT_MOUSE_MOTION;
     300                ev->data.mouse.x = kk->mouse.x;
     301                ev->data.mouse.y = kk->mouse.y;
     302                return 1;
    286303            }
    287304#if 0
     
    304321
    305322        /* Unknown event */
    306         return CACA_EVENT_NONE;
     323        ev->type = CACA_EVENT_NONE;
     324        return 0;
    307325    }
    308326
    309327    /* No event */
    310     return CACA_EVENT_NONE;
     328    ev->type = CACA_EVENT_NONE;
     329    return 0;
    311330}
    312331
Note: See TracChangeset for help on using the changeset viewer.