Mercurial > projects > dynamin
comparison dynamin/gui/windows_window.d @ 12:7a7e5f9bd1ae
Implement invoke() and invokeNow() on Windows.
author | Jordan Miner <jminer7@gmail.com> |
---|---|
date | Sat, 18 Jul 2009 01:37:06 -0500 |
parents | aa4efef0f0b1 |
children | ef81af74a306 |
comparison
equal
deleted
inserted
replaced
11:df1c8e659b75 | 12:7a7e5f9bd1ae |
---|---|
32 public import dynamin.all_gui; | 32 public import dynamin.all_gui; |
33 public import dynamin.gui.window; | 33 public import dynamin.gui.window; |
34 public import dynamin.gui.key; | 34 public import dynamin.gui.key; |
35 public import dynamin.all_painting; | 35 public import dynamin.all_painting; |
36 public import tango.io.Stdout; | 36 public import tango.io.Stdout; |
37 public import tango.core.sync.Semaphore; | |
37 | 38 |
38 /// | 39 /// |
39 enum WindowsVersion { | 40 enum WindowsVersion { |
40 /// | 41 /// |
41 Windows95, /// | 42 Windows95, /// |
115 Stdout("GetMessage() failed!").newline; | 116 Stdout("GetMessage() failed!").newline; |
116 TranslateMessage(&msg); | 117 TranslateMessage(&msg); |
117 DispatchMessage(&msg); | 118 DispatchMessage(&msg); |
118 } | 119 } |
119 } | 120 } |
120 } | 121 void backend_invoke(void delegate() dg) { |
121 | 122 PostMessage(msgWnd, WM_USER + 7, |
123 cast(word)dg.ptr, cast(word)dg.funcptr); | |
124 } | |
125 void backend_invokeNow(void delegate() dg) { | |
126 SendMessage(msgWnd, WM_USER + 7, | |
127 cast(word)dg.ptr, cast(word)dg.funcptr); | |
128 } | |
129 | |
130 } | |
122 /* | 131 /* |
123 * The reason backends use the backend_ prefix and: | 132 * The reason backends use the backend_ prefix and: |
124 * mixin Backend(); | 133 * mixin Backend(); |
125 * instead of using just the method name and | 134 * instead of using just the method name and |
126 * mixin Backend() backend; | 135 * mixin Backend() backend; |
964 return 0; | 973 return 0; |
965 case WM_POWERBROADCAST: | 974 case WM_POWERBROADCAST: |
966 if(wParam == PBT_APMRESUMESUSPEND || wParam == PBT_APMRESUMECRITICAL) | 975 if(wParam == PBT_APMRESUMESUSPEND || wParam == PBT_APMRESUMECRITICAL) |
967 Environment.backend_increaseTimerRes(); | 976 Environment.backend_increaseTimerRes(); |
968 return 0; | 977 return 0; |
978 case WM_USER + 7: | |
979 void delegate() dg; | |
980 dg.ptr = cast(void*)wParam; | |
981 dg.funcptr = cast(void function())lParam; | |
982 dg(); | |
983 return 0; | |
969 case WM_TIMER: | 984 case WM_TIMER: |
970 case WM_CHANGECBCHAIN: | 985 case WM_CHANGECBCHAIN: |
971 case WM_DRAWCLIPBOARD: | 986 case WM_DRAWCLIPBOARD: |
972 case WM_TIMECHANGE: //?? | 987 case WM_TIMECHANGE: //?? |
973 default: | 988 default: |