/* * Update mouse status and issue events on it if necessary. * This function doesn't block, but is normally only called when * there is known to be some data waiting to be read from the mouse. */ void GsCheckMouseEvent(void) { COORD rootx; /* latest mouse x position */ COORD rooty; /* latest mouse y position */ BUTTON newbuttons; /* latest buttons */ int mousestatus; /* latest mouse status */ /* Read the latest mouse status: */ mousestatus = GdReadMouse(&rootx, &rooty, &newbuttons); if(mousestatus < 0) { GsError(GR_ERROR_MOUSE_ERROR, 0); return; } else if(mousestatus) /* Deliver events as appropriate: */ GsHandleMouseStatus(rootx, rooty, newbuttons); }
/* * Update mouse status and issue events on it if necessary. * This function doesn't block, but is normally only called when * there is known to be some data waiting to be read from the mouse. */ GR_BOOL GsCheckMouseEvent(void) { GR_COORD rootx; /* latest mouse x position */ GR_COORD rooty; /* latest mouse y position */ int newbuttons; /* latest buttons */ int mousestatus; /* latest mouse status */ /* Read the latest mouse status: */ mousestatus = GdReadMouse(&rootx, &rooty, &newbuttons); if(mousestatus < 0) { GsError(GR_ERROR_MOUSE_ERROR, 0); return FALSE; } else if(mousestatus) { /* Deliver events as appropriate: */ GsHandleMouseStatus(rootx, rooty, newbuttons); /* possibly reset portrait mode based on mouse position*/ if (autoportrait) GsSetPortraitModeFromXY(rootx, rooty); return TRUE; } return FALSE; }