Author: ArcRiley Date: 2008-03-05 10:30:08 -0500 (Wed, 05 Mar 2008) New Revision: 1041
Modified: trunk/pysoy/src/_core/_windowproc.pxi Log: Ticket #901 : * UNTESTED - _windowproc updated to new API Modified: trunk/pysoy/src/_core/_windowproc.pxi =================================================================== --- trunk/pysoy/src/_core/_windowproc.pxi 2008-03-05 02:38:42 UTC (rev 1040) +++ trunk/pysoy/src/_core/_windowproc.pxi 2008-03-05 15:30:08 UTC (rev 1041) @@ -19,60 +19,62 @@ cimport soy.controllers -cdef Window _get_window(windows.HWND hwnd): - cdef int i - for i from 0 <= i < _windows.current: - if (<Window> _windows.list[i])._window == hwnd: - return (<Window> _windows.list[i]) +cdef Window _get_window(windows.HWND _hwnd): + cdef int _i + for _i from 0 <= _i < _windows._current: + if (<Window> _windows._list[_i])._window == _hwnd : + return (<Window> _windows._list[_i]) return None -cdef windows.LRESULT __stdcall _window_proc( - windows.HWND hwnd, - windows.UINT msg, - windows.WPARAM wParam, - windows.LPARAM lParam -): - cdef Window w - cdef int i - if msg == windows.WM_SIZE: - w = _get_window(hwnd) - if w is None: +cdef windows.LRESULT __stdcall _window_proc(windows.HWND _hwnd, + windows.UINT _msg, + windows.WPARAM _wParam, + windows.LPARAM _lParam) : + cdef int _i + cdef Window _win + if _msg == windows.WM_SIZE : + _win = _get_window(_hwnd) + if _win is None: return 0 - #stdio.printf("WindowProc, msg %d, hwnd %x\n", msg, hwnd) + #stdio.printf("WindowProc, _msg %d, _hwnd %x\n", _msg, _hwnd) #stdio.printf("WindowProc, thread %d\n", windows.GetCurrentThreadId()) #stdio.printf("WindowProc: Got WM_SIZE\n") - #stdio.printf("WindowProc: w: %x, width: %d, height: %d\n", <void *>w, windows.LOWORD(lParam), windows.HIWORD(lParam)) - w._resize(windows.LOWORD(lParam), windows.HIWORD(lParam)) + #stdio.printf("WindowProc: _win: %x, width: %d, height: %d\n", + # <void *> _win, + # windows.LOWORD(_lParam), windows.HIWORD(_lParam)) + _win._resize(windows.LOWORD(_lParam), windows.HIWORD(_lParam)) return 0 - elif msg == windows.WM_CHAR: - if wParam > 255: + elif _msg == windows.WM_CHAR : + if _wParam > 255: return 0 - w = _get_window(hwnd) - #stdio.printf("WindowProc: WM_CHAR: got '%c'\n", <unsigned char>wParam) - w._controllers.lock() - for i from 0 <= i < w._controllers.current: - (<soy.controllers.Controller> w._controllers.list[i])._eventKeyDown( - 0, <unsigned char>wParam) - w._controllers.unlock() + _win = _get_window(_hwnd) + #stdio.printf("WindowProc: WM_CHAR: got '%c'\n", <unsigned char> _wParam) + _win._controllers._iterStart() + for _i from 0 <= _i < _win._controllers._current : + (<soy.controllers.Controller> + _win._controllers._list[_i])._eventKeyDown(0, <unsigned char> _wParam) + _win._controllers._iterDone() return 0 - elif msg == windows.WM_KEYDOWN: - w = _get_window(hwnd) - #stdio.printf("WindowProc: WM_KEYDOWN: got %d\n", ((lParam >> 16) & 0xff)) - w._controllers.lock() - for i from 0 <= i < w._controllers.current: - (<soy.controllers.Controller> w._controllers.list[i])._eventKeyDown( - <unsigned char>((lParam >> 16) & 0xff), 0) - w._controllers.unlock() + elif _msg == windows.WM_KEYDOWN: + _win = _get_window(_hwnd) + #stdio.printf("WindowProc: WM_KEYDOWN: got %d\n", + # ((_lParam >> 16) & 0xff)) + _win._controllers._iterStart() + for _i from 0 <= _i < _win._controllers._current : + (<soy.controllers.Controller> + _win._controllers._list[_i])._eventKeyDown(<unsigned char> + ((_lParam >> 16) & 0xff), 0) + _win._controllers._iterDone() return 0 - elif msg == windows.WM_CLOSE: - w = _get_window(hwnd) - w._controllers.lock() - for i from 0 <= i < w._controllers.current: - (<soy.controllers.Controller> w._controllers.list[i])._eventWinClose() - w._controllers.unlock() - #w._destroy() + elif _msg == windows.WM_CLOSE: + _win = _get_window(_hwnd) + _win._controllers._iterStart() + for _i from 0 <= _i < _win._controllers._current: + (<soy.controllers.Controller> + _win._controllers._list[_i])._eventWinClose() + _win._controllers._iterDone() + #_win._destroy() return 0 - return windows.DefWindowProc(hwnd, msg, wParam, lParam) + return windows.DefWindowProc(_hwnd, _msg, _wParam, _lParam) # vim: sts=2:sw=2:et - _______________________________________________ PySoy-SVN mailing list PySoy-SVN@pysoy.org http://www.pysoy.org/mailman/listinfo/pysoy-svn