Mercurial > sdl-ios-xcode
diff src/events/SDL_mouse.c @ 1662:782fd950bd46 SDL-1.3
Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
WARNING: None of the video drivers have been updated for the new API yet! The API is still under design and very fluid.
The code is now run through a consistent indent format:
indent -i4 -nut -nsc -br -ce
The headers are being converted to automatically generate doxygen documentation.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sun, 28 May 2006 13:04:16 +0000 |
parents | 23a347cfbed8 |
children | 4da1ee79c9af |
line wrap: on
line diff
--- a/src/events/SDL_mouse.c Sun May 21 17:27:13 2006 +0000 +++ b/src/events/SDL_mouse.c Sun May 28 13:04:16 2006 +0000 @@ -34,230 +34,240 @@ static Sint16 SDL_MouseY = 0; static Sint16 SDL_DeltaX = 0; static Sint16 SDL_DeltaY = 0; -static Uint8 SDL_ButtonState = 0; +static Uint8 SDL_ButtonState = 0; /* Public functions */ -int SDL_MouseInit(void) +int +SDL_MouseInit (void) { - /* The mouse is at (0,0) */ - SDL_MouseX = 0; - SDL_MouseY = 0; - SDL_DeltaX = 0; - SDL_DeltaY = 0; - SDL_ButtonState = 0; + /* The mouse is at (0,0) */ + SDL_MouseX = 0; + SDL_MouseY = 0; + SDL_DeltaX = 0; + SDL_DeltaY = 0; + SDL_ButtonState = 0; - /* That's it! */ - return(0); + /* That's it! */ + return (0); } -void SDL_MouseQuit(void) + +void +SDL_MouseQuit (void) { } /* We lost the mouse, so post button up messages for all pressed buttons */ -void SDL_ResetMouse(void) +void +SDL_ResetMouse (void) { - Uint8 i; - for ( i = 0; i < sizeof(SDL_ButtonState)*8; ++i ) { - if ( SDL_ButtonState & SDL_BUTTON(i) ) { - SDL_PrivateMouseButton(SDL_RELEASED, i, 0, 0); - } - } + Uint8 i; + for (i = 0; i < sizeof (SDL_ButtonState) * 8; ++i) { + if (SDL_ButtonState & SDL_BUTTON (i)) { + SDL_PrivateMouseButton (SDL_RELEASED, i, 0, 0); + } + } } -Uint8 SDL_GetMouseState (int *x, int *y) +Uint8 +SDL_GetMouseState (int *x, int *y) { - if ( x ) { - *x = SDL_MouseX; - } - if ( y ) { - *y = SDL_MouseY; - } - return(SDL_ButtonState); + if (x) { + *x = SDL_MouseX; + } + if (y) { + *y = SDL_MouseY; + } + return (SDL_ButtonState); } -Uint8 SDL_GetRelativeMouseState (int *x, int *y) +Uint8 +SDL_GetRelativeMouseState (int *x, int *y) { - if ( x ) - *x = SDL_DeltaX; - if ( y ) - *y = SDL_DeltaY; - SDL_DeltaX = 0; - SDL_DeltaY = 0; - return(SDL_ButtonState); + if (x) + *x = SDL_DeltaX; + if (y) + *y = SDL_DeltaY; + SDL_DeltaX = 0; + SDL_DeltaY = 0; + return (SDL_ButtonState); } -static void ClipOffset(Sint16 *x, Sint16 *y) +static void +ClipOffset (Sint16 * x, Sint16 * y) { - /* This clips absolute mouse coordinates when the apparent - display surface is smaller than the real display surface. - */ - if ( SDL_VideoSurface->offset ) { - *y -= SDL_VideoSurface->offset/SDL_VideoSurface->pitch; - *x -= (SDL_VideoSurface->offset%SDL_VideoSurface->pitch)/ - SDL_VideoSurface->format->BytesPerPixel; - } + SDL_VideoDevice *_this = SDL_GetVideoDevice (); + + /* This clips absolute mouse coordinates when the apparent + display surface is smaller than the real display surface. + */ + if (SDL_VideoSurface->offset) { + *y -= SDL_VideoSurface->offset / SDL_VideoSurface->pitch; + *x -= (SDL_VideoSurface->offset % SDL_VideoSurface->pitch) / + SDL_VideoSurface->format->BytesPerPixel; + } } /* These are global for SDL_eventloop.c */ -int SDL_PrivateMouseMotion(Uint8 buttonstate, int relative, Sint16 x, Sint16 y) +int +SDL_PrivateMouseMotion (Uint8 buttonstate, int relative, Sint16 x, Sint16 y) { - int posted; - Uint16 X, Y; - Sint16 Xrel; - Sint16 Yrel; + SDL_VideoDevice *_this = SDL_GetVideoDevice (); + int posted; + Uint16 X, Y; + Sint16 Xrel; + Sint16 Yrel; - /* Don't handle mouse motion if there's no cursor surface */ - if ( SDL_VideoSurface == NULL ) { - return(0); - } + /* Don't handle mouse motion if there's no cursor surface */ + if (SDL_VideoSurface == NULL) { + return (0); + } - /* Default buttonstate is the current one */ - if ( ! buttonstate ) { - buttonstate = SDL_ButtonState; - } + /* Default buttonstate is the current one */ + if (!buttonstate) { + buttonstate = SDL_ButtonState; + } - Xrel = x; - Yrel = y; - if ( relative ) { - /* Push the cursor around */ - x = (SDL_MouseX+x); - y = (SDL_MouseY+y); - } else { - /* Do we need to clip {x,y} ? */ - ClipOffset(&x, &y); - } + Xrel = x; + Yrel = y; + if (relative) { + /* Push the cursor around */ + x = (SDL_MouseX + x); + y = (SDL_MouseY + y); + } else { + /* Do we need to clip {x,y} ? */ + ClipOffset (&x, &y); + } - /* Mouse coordinates range from 0 - width-1 and 0 - height-1 */ - if ( x < 0 ) - X = 0; - else - if ( x >= SDL_VideoSurface->w ) - X = SDL_VideoSurface->w-1; - else - X = (Uint16)x; + /* Mouse coordinates range from 0 - width-1 and 0 - height-1 */ + if (x < 0) + X = 0; + else if (x >= SDL_VideoSurface->w) + X = SDL_VideoSurface->w - 1; + else + X = (Uint16) x; - if ( y < 0 ) - Y = 0; - else - if ( y >= SDL_VideoSurface->h ) - Y = SDL_VideoSurface->h-1; - else - Y = (Uint16)y; + if (y < 0) + Y = 0; + else if (y >= SDL_VideoSurface->h) + Y = SDL_VideoSurface->h - 1; + else + Y = (Uint16) y; - /* If not relative mode, generate relative motion from clamped X/Y. - This prevents lots of extraneous large delta relative motion when - the screen is windowed mode and the mouse is outside the window. - */ - if ( ! relative ) { - Xrel = X-SDL_MouseX; - Yrel = Y-SDL_MouseY; - } + /* If not relative mode, generate relative motion from clamped X/Y. + This prevents lots of extraneous large delta relative motion when + the screen is windowed mode and the mouse is outside the window. + */ + if (!relative) { + Xrel = X - SDL_MouseX; + Yrel = Y - SDL_MouseY; + } - /* Drop events that don't change state */ - if ( ! Xrel && ! Yrel ) { + /* Drop events that don't change state */ + if (!Xrel && !Yrel) { #if 0 -printf("Mouse event didn't change state - dropped!\n"); + printf ("Mouse event didn't change state - dropped!\n"); #endif - return(0); - } + return (0); + } - /* Update internal mouse state */ - SDL_ButtonState = buttonstate; - SDL_MouseX = X; - SDL_MouseY = Y; - SDL_DeltaX += Xrel; - SDL_DeltaY += Yrel; - SDL_MoveCursor(SDL_MouseX, SDL_MouseY); + /* Update internal mouse state */ + SDL_ButtonState = buttonstate; + SDL_MouseX = X; + SDL_MouseY = Y; + SDL_DeltaX += Xrel; + SDL_DeltaY += Yrel; + SDL_MoveCursor (SDL_MouseX, SDL_MouseY); - /* Post the event, if desired */ - posted = 0; - if ( SDL_ProcessEvents[SDL_MOUSEMOTION] == SDL_ENABLE ) { - SDL_Event event; - SDL_memset(&event, 0, sizeof(event)); - event.type = SDL_MOUSEMOTION; - event.motion.state = buttonstate; - event.motion.x = X; - event.motion.y = Y; - event.motion.xrel = Xrel; - event.motion.yrel = Yrel; - if ( (SDL_EventOK == NULL) || (*SDL_EventOK)(&event) ) { - posted = 1; - SDL_PushEvent(&event); - } - } - return(posted); + /* Post the event, if desired */ + posted = 0; + if (SDL_ProcessEvents[SDL_MOUSEMOTION] == SDL_ENABLE) { + SDL_Event event; + SDL_memset (&event, 0, sizeof (event)); + event.type = SDL_MOUSEMOTION; + event.motion.state = buttonstate; + event.motion.x = X; + event.motion.y = Y; + event.motion.xrel = Xrel; + event.motion.yrel = Yrel; + if ((SDL_EventOK == NULL) || (*SDL_EventOK) (&event)) { + posted = 1; + SDL_PushEvent (&event); + } + } + return (posted); } -int SDL_PrivateMouseButton(Uint8 state, Uint8 button, Sint16 x, Sint16 y) +int +SDL_PrivateMouseButton (Uint8 state, Uint8 button, Sint16 x, Sint16 y) { - SDL_Event event; - int posted; - int move_mouse; - Uint8 buttonstate; + SDL_VideoDevice *_this = SDL_GetVideoDevice (); + SDL_Event event; + int posted; + int move_mouse; + Uint8 buttonstate; - SDL_memset(&event, 0, sizeof(event)); + SDL_memset (&event, 0, sizeof (event)); - /* Check parameters */ - if ( x || y ) { - ClipOffset(&x, &y); - move_mouse = 1; - /* Mouse coordinates range from 0 - width-1 and 0 - height-1 */ - if ( x < 0 ) - x = 0; - else - if ( x >= SDL_VideoSurface->w ) - x = SDL_VideoSurface->w-1; + /* Check parameters */ + if (x || y) { + ClipOffset (&x, &y); + move_mouse = 1; + /* Mouse coordinates range from 0 - width-1 and 0 - height-1 */ + if (x < 0) + x = 0; + else if (x >= SDL_VideoSurface->w) + x = SDL_VideoSurface->w - 1; - if ( y < 0 ) - y = 0; - else - if ( y >= SDL_VideoSurface->h ) - y = SDL_VideoSurface->h-1; - } else { - move_mouse = 0; - } - if ( ! x ) - x = SDL_MouseX; - if ( ! y ) - y = SDL_MouseY; + if (y < 0) + y = 0; + else if (y >= SDL_VideoSurface->h) + y = SDL_VideoSurface->h - 1; + } else { + move_mouse = 0; + } + if (!x) + x = SDL_MouseX; + if (!y) + y = SDL_MouseY; - /* Figure out which event to perform */ - buttonstate = SDL_ButtonState; - switch ( state ) { - case SDL_PRESSED: - event.type = SDL_MOUSEBUTTONDOWN; - buttonstate |= SDL_BUTTON(button); - break; - case SDL_RELEASED: - event.type = SDL_MOUSEBUTTONUP; - buttonstate &= ~SDL_BUTTON(button); - break; - default: - /* Invalid state -- bail */ - return(0); - } + /* Figure out which event to perform */ + buttonstate = SDL_ButtonState; + switch (state) { + case SDL_PRESSED: + event.type = SDL_MOUSEBUTTONDOWN; + buttonstate |= SDL_BUTTON (button); + break; + case SDL_RELEASED: + event.type = SDL_MOUSEBUTTONUP; + buttonstate &= ~SDL_BUTTON (button); + break; + default: + /* Invalid state -- bail */ + return (0); + } - /* Update internal mouse state */ - SDL_ButtonState = buttonstate; - if ( move_mouse ) { - SDL_MouseX = x; - SDL_MouseY = y; - SDL_MoveCursor(SDL_MouseX, SDL_MouseY); - } + /* Update internal mouse state */ + SDL_ButtonState = buttonstate; + if (move_mouse) { + SDL_MouseX = x; + SDL_MouseY = y; + SDL_MoveCursor (SDL_MouseX, SDL_MouseY); + } - /* Post the event, if desired */ - posted = 0; - if ( SDL_ProcessEvents[event.type] == SDL_ENABLE ) { - event.button.state = state; - event.button.button = button; - event.button.x = x; - event.button.y = y; - if ( (SDL_EventOK == NULL) || (*SDL_EventOK)(&event) ) { - posted = 1; - SDL_PushEvent(&event); - } - } - return(posted); + /* Post the event, if desired */ + posted = 0; + if (SDL_ProcessEvents[event.type] == SDL_ENABLE) { + event.button.state = state; + event.button.button = button; + event.button.x = x; + event.button.y = y; + if ((SDL_EventOK == NULL) || (*SDL_EventOK) (&event)) { + posted = 1; + SDL_PushEvent (&event); + } + } + return (posted); } +/* vi: set ts=4 sw=4 expandtab: */