WMSG_RESULT CUITree::MouseWheel( UINT16 x, UINT16 y, int wheel ) { WMSG_RESULT ret = WMSG_FAIL; if (wheel > 0) OnMouseWheelUp(); else if (wheel < 0) OnMouseWheelDown(); if (m_bHide == FALSE) { ret = OnMouseWheel(x, y, wheel); } if (ret == WMSG_FAIL) ret = MouseWheelChild(x, y, wheel); return ret; }
WMSG_RESULT CUIBase::MouseWheel(UINT16 x, UINT16 y, int wheel) { if (m_bHide) return WMSG_FAIL; if (IsInside(x, y) == FALSE) return WMSG_FAIL; WMSG_RESULT ret = WMSG_FAIL; if (wheel > 0) OnMouseWheelUp(); else if (wheel < 0) OnMouseWheelDown(); ret = OnMouseWheel(x, y, wheel); if (ret == WMSG_FAIL) ret = MouseWheelChild(x, y, wheel); return ret; }
void Application::Run() { // // keyboard // if (keyboard_needs_poll()) poll_keyboard(); for (int k = 0; k < 256; k++) { if (key[k]) { OnKeyPress(k); if (!prevKeyState[k]) OnKeyPressed(k); } else if (!key[k]) { if (prevKeyState[k]) OnKeyReleased(k); } } memcpy(prevKeyState,(char*)key,256); // // mouse // if (mouse_needs_poll()) poll_mouse(); for (int button = 0; button < (numMouseButtons); button++) { if ((mouse_b & (1 << button)) != 0) { mouseButtons[button] = true; } else { mouseButtons[button] = false; } if (mouseButtons[button] && (!prevMouseButtons[button])) { OnMousePressed(button, mouse_x, mouse_y); mousePressedLocs[button].x = mouse_x; mousePressedLocs[button].y = mouse_y; } else if ((!mouseButtons[button]) && prevMouseButtons[button]) { OnMouseReleased(button, mouse_x, mouse_y); if ((mousePressedLocs[button].x == mouse_x) && (mousePressedLocs[button].y == mouse_y)) { OnMouseClick(button,mouse_x,mouse_y); } } } memcpy(prevMouseButtons,mouseButtons,sizeof(bool)*(numMouseButtons+1)); if ((mouse_x != prevMouseX) || (mouse_y != prevMouseY)) { OnMouseMove(mouse_x,mouse_y); prevMouseX = mouse_x; prevMouseY = mouse_y; } // mouse wheel if (mouse_z > prevMouseZ) { OnMouseWheelUp( mouse_x, mouse_y ); prevMouseZ = mouse_z; } else if (mouse_z < prevMouseZ) { OnMouseWheelDown( mouse_x, mouse_y ); prevMouseZ = mouse_z; } // // run the game // show_mouse(NULL); RunGame(); show_mouse(canvas); // // render canvas to the screen // blit(canvas,screen,0,0,0,0,screen->w,screen->h); // // sound polling (to ensure sounds currently playing will keep playing) // SoundOGG::PollSounds(); // // handle timing // HandleTiming(); }