Пример #1
0
LRESULT CALLBACK wndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
	switch(msg) {
	case WM_CLOSE:
		if(MessageBoxA(hwnd, "Do you want to close Perception?", "Perception", MB_YESNO) == IDYES)
			exit(-1);
		else
			return 0;
	case WM_MOUSEMOVE:
		if(!tracking_mouse) {
			tracking_mouse = true;
			mouse_connected();
		}
		break;
	case WM_LBUTTONDOWN: mouse_button_down(0); break;
	case WM_LBUTTONUP: mouse_button_up(0); break;
	case WM_MBUTTONDOWN: mouse_button_down(1); break;
	case WM_MBUTTONUP: mouse_button_up(1); break;
	case WM_RBUTTONDOWN: mouse_button_down(2); break;
	case WM_RBUTTONUP: mouse_button_up(2); break;
	case WM_XBUTTONDOWN: mouse_button_down(HIWORD(wParam) == XBUTTON1 ? 3 : 4); break;
	case WM_XBUTTONUP: mouse_button_up(HIWORD(wParam) == XBUTTON1 ? 3 : 4); break;
		break;
	case WM_MOUSELEAVE:
		if(tracking_mouse) {
			tracking_mouse = false;
			mouse_disconnected();
		}
		break;
	}

	return DefWindowProc(hwnd,msg,wParam,lParam);
}
Пример #2
0
void mouse_button(int bnumber, int state)
{
    switch (bnumber) {
    case SDL_BUTTON_LEFT:
        mouse_button_left(state);
        break;
    case SDL_BUTTON_MIDDLE:
        mouse_button_middle(state);
        break;
    case SDL_BUTTON_RIGHT:
        mouse_button_right(state);
        break;
    case SDL_BUTTON_WHEELUP:
        mouse_button_up(state);
        break;
    case SDL_BUTTON_WHEELDOWN:
        mouse_button_down(state);
        break;
    default:
        break;
    }
}