X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fgraphics%2Fwindow.cpp;h=a1353acf8fe4000f6b5a35cce9624cd6b2d43399;hb=4464dd5d973c47f6d7a7c352a90bd88cdb717cd2;hp=77959ded2ddd3de77627846028f5a7946ae9cd8b;hpb=1023b38fa278cea71fba3d2881e1bfde930cd025;p=libs%2Fgui.git diff --git a/source/graphics/window.cpp b/source/graphics/window.cpp index 77959de..a1353ac 100644 --- a/source/graphics/window.cpp +++ b/source/graphics/window.cpp @@ -9,6 +9,7 @@ #include #endif #include +#include #include "display.h" #include "window.h" #include "display_priv.h" @@ -99,7 +100,7 @@ void Window::init() wndcl.hCursor = LoadCursor(0, IDC_ARROW); wndcl.hbrBackground = 0; wndcl.lpszMenuName = 0; - wndcl.lpszClassName = "mspgbase"; + wndcl.lpszClassName = "mspgui"; wndcl.hIconSm = 0; if(!RegisterClassEx(&wndcl)) @@ -118,7 +119,7 @@ void Window::init() AdjustWindowRectEx(&rect, style, false, exstyle); priv->window = CreateWindowEx(exstyle, - "mspgbase", + "mspgui", "Window", style, CW_USEDEFAULT, CW_USEDEFAULT, @@ -368,47 +369,23 @@ void Window::hide() bool Window::event(const Event &evnt) { #ifdef WIN32 - WPARAM wp = evnt.wparam; - LPARAM lp = evnt.lparam; switch(evnt.msg) { case WM_KEYDOWN: - signal_key_press.emit(wp, 0, wp); - break; case WM_KEYUP: - signal_key_release.emit(wp, 0); - break; case WM_LBUTTONDOWN: - signal_button_press.emit(GET_X_LPARAM(lp), GET_Y_LPARAM(lp), 1, 0); - break; case WM_LBUTTONUP: - signal_button_release.emit(GET_X_LPARAM(lp), GET_Y_LPARAM(lp), 1, 0); - break; case WM_MBUTTONDOWN: - signal_button_press.emit(GET_X_LPARAM(lp), GET_Y_LPARAM(lp), 2, 0); - break; case WM_MBUTTONUP: - signal_button_release.emit(GET_X_LPARAM(lp), GET_Y_LPARAM(lp), 2, 0); - break; case WM_RBUTTONDOWN: - signal_button_press.emit(GET_X_LPARAM(lp), GET_Y_LPARAM(lp), 3, 0); - break; case WM_RBUTTONUP: - signal_button_release.emit(GET_X_LPARAM(lp), GET_Y_LPARAM(lp), 3, 0); - break; case WM_MOUSEWHEEL: - { - unsigned btn = (HIWORD(wp)&0x8000) ? 5 : 4; - signal_button_press.emit(GET_X_LPARAM(lp), GET_Y_LPARAM(lp), btn, 0); - signal_button_release.emit(GET_X_LPARAM(lp), GET_Y_LPARAM(lp), btn, 0); - } - break; case WM_MOUSEMOVE: - signal_pointer_motion.emit(GET_X_LPARAM(lp), GET_Y_LPARAM(lp)); + signal_input_event.emit(evnt); break; case WM_SIZE: - options.width = LOWORD(lp); - options.height = HIWORD(lp); + options.width = LOWORD(evnt.lparam); + options.height = HIWORD(evnt.lparam); signal_resize.emit(options.width, options.height); break; case WM_CLOSE: @@ -422,24 +399,11 @@ bool Window::event(const Event &evnt) switch(ev.type) { case ButtonPress: - signal_button_press.emit(ev.xbutton.x, ev.xbutton.y, ev.xbutton.button, ev.xbutton.state); - break; case ButtonRelease: - signal_button_release.emit(ev.xbutton.x, ev.xbutton.y, ev.xbutton.button, ev.xbutton.state); - break; case MotionNotify: - signal_pointer_motion.emit(ev.xmotion.x, ev.xmotion.y); - break; case KeyPress: - { - char buf[16]; - XLookupString(const_cast(&ev.xkey), buf, sizeof(buf), 0, 0); - // XXX Handle the result according to locale - signal_key_press.emit(XKeycodeToKeysym(display.get_private().display, ev.xkey.keycode, 0), ev.xkey.state, buf[0]); - } - break; case KeyRelease: - signal_key_release.emit(XKeycodeToKeysym(display.get_private().display, ev.xkey.keycode, 0), ev.xkey.state); + signal_input_event.emit(evnt); break; case ConfigureNotify: if((ev.xconfigure.width==static_cast(options.width) && ev.xconfigure.height==static_cast(options.height)) == resizing)