0
@@ -59,9 +59,9 @@ shoes_app_alloc(VALUE klass)
0
- shoes_world->app = shoes_app_alloc(cApp);
0
- rb_ary_push(shoes_world->apps, shoes_world->app);
0
- return shoes_world->app;
0
+ VALUE app = shoes_app_alloc(cApp);
0
+ rb_ary_push(shoes_world->apps, app);
0
@@ -1391,6 +1391,54 @@ shoes_app_start(VALUE appobj, VALUE allapps, char *uri)
0
+ shoes_code code = SHOES_OK;
0
+ shoes_world->os.classex.hInstance = shoes_world->os.instance;
0
+ shoes_world->os.classex.lpszClassName = SHOES_SHORTNAME;
0
+ shoes_world->os.classex.lpfnWndProc = shoes_app_win32proc;
0
+ shoes_world->os.classex.style = CS_HREDRAW | CS_VREDRAW;
0
+ shoes_world->os.classex.cbSize = sizeof(WNDCLASSEX);
0
+ shoes_world->os.classex.hIcon = LoadIcon(shoes_world->os.instance, IDI_APPLICATION);
0
+ shoes_world->os.classex.hIconSm = LoadIcon(shoes_world->os.instance, IDI_APPLICATION);
0
+ shoes_world->os.classex.hCursor = LoadCursor(NULL, IDC_ARROW);
0
+ shoes_world->os.classex.lpszMenuName = NULL;
0
+ shoes_world->os.classex.cbClsExtra = 0;
0
+ shoes_world->os.classex.cbWndExtra = 0;
0
+ shoes_world->os.classex.hbrBackground = 0;
0
+ if (!RegisterClassEx(&shoes_world->os.classex))
0
+ QUIT("Couldn't register WIN32 window class.");
0
+ shoes_world->os.vlclassex.hInstance = shoes_world->os.slotex.hInstance = shoes_world->os.instance;
0
+ shoes_world->os.vlclassex.lpszClassName = SHOES_VLCLASS;
0
+ shoes_world->os.slotex.lpszClassName = SHOES_SLOTCLASS;
0
+ shoes_world->os.vlclassex.style = shoes_world->os.slotex.style = CS_NOCLOSE;
0
+ shoes_world->os.vlclassex.lpfnWndProc = DefWindowProc;
0
+ shoes_world->os.slotex.lpfnWndProc = shoes_slot_win32proc;
0
+ shoes_world->os.vlclassex.cbSize = shoes_world->os.slotex.cbSize = sizeof(WNDCLASSEX);
0
+ shoes_world->os.vlclassex.hIcon = shoes_world->os.slotex.hIcon = NULL;
0
+ shoes_world->os.vlclassex.hIconSm = shoes_world->os.slotex.hIconSm = NULL;
0
+ shoes_world->os.vlclassex.hCursor = shoes_world->os.slotex.hCursor = LoadCursor(NULL, IDC_ARROW);
0
+ shoes_world->os.vlclassex.lpszMenuName = shoes_world->os.slotex.lpszMenuName = NULL;
0
+ shoes_world->os.vlclassex.cbClsExtra = shoes_world->os.slotex.cbClsExtra = 0;
0
+ shoes_world->os.vlclassex.cbWndExtra = shoes_world->os.slotex.cbWndExtra = 0;
0
+ shoes_world->os.vlclassex.hbrBackground = shoes_world->os.slotex.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
0
+ if (!RegisterClassEx(&shoes_world->os.slotex) || !RegisterClassEx(&shoes_world->os.vlclassex))
0
+ QUIT("Couldn't register VLC window class.");
0
shoes_app_open(shoes_app *app, char *path, unsigned char is_main)
0
@@ -1500,43 +1548,6 @@ shoes_app_open(shoes_app *app, char *path, unsigned char is_main)
0
app->os.ctrlkey = false;
0
app->os.altkey = false;
0
app->os.shiftkey = false;
0
- app->os.classex.hInstance = shoes_world->os.instance;
0
- app->os.classex.lpszClassName = SHOES_SHORTNAME;
0
- app->os.classex.lpfnWndProc = shoes_app_win32proc;
0
- app->os.classex.style = CS_HREDRAW | CS_VREDRAW;
0
- app->os.classex.cbSize = sizeof(WNDCLASSEX);
0
- app->os.classex.hIcon = LoadIcon(shoes_world->os.instance, IDI_APPLICATION);
0
- app->os.classex.hIconSm = LoadIcon(shoes_world->os.instance, IDI_APPLICATION);
0
- app->os.classex.hCursor = LoadCursor(NULL, IDC_ARROW);
0
- app->os.classex.lpszMenuName = NULL;
0
- app->os.classex.cbClsExtra = 0;
0
- app->os.classex.cbWndExtra = 0;
0
- app->os.classex.hbrBackground = 0;
0
- if (!RegisterClassEx(&app->os.classex))
0
- QUIT("Couldn't register WIN32 window class.");
0
- app->os.vlclassex.hInstance = app->os.slotex.hInstance = shoes_world->os.instance;
0
- app->os.vlclassex.lpszClassName = SHOES_VLCLASS;
0
- app->os.slotex.lpszClassName = SHOES_SLOTCLASS;
0
- app->os.vlclassex.style = app->os.slotex.style = CS_NOCLOSE;
0
- app->os.vlclassex.lpfnWndProc = DefWindowProc;
0
- app->os.slotex.lpfnWndProc = shoes_slot_win32proc;
0
- app->os.vlclassex.cbSize = app->os.slotex.cbSize = sizeof(WNDCLASSEX);
0
- app->os.vlclassex.hIcon = app->os.slotex.hIcon = NULL;
0
- app->os.vlclassex.hIconSm = app->os.slotex.hIconSm = NULL;
0
- app->os.vlclassex.hCursor = app->os.slotex.hCursor = LoadCursor(NULL, IDC_ARROW);
0
- app->os.vlclassex.lpszMenuName = app->os.slotex.lpszMenuName = NULL;
0
- app->os.vlclassex.cbClsExtra = app->os.slotex.cbClsExtra = 0;
0
- app->os.vlclassex.cbWndExtra = app->os.slotex.cbWndExtra = 0;
0
- app->os.vlclassex.hbrBackground = app->os.slotex.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
0
- if (!RegisterClassEx(&app->os.slotex) || !RegisterClassEx(&app->os.vlclassex))
0
- QUIT("Couldn't register VLC window class.");
0
@@ -1580,6 +1591,7 @@ shoes_app_open(shoes_app *app, char *path, unsigned char is_main)
0
ShowWindow(app->slot.window, SW_SHOWNORMAL);
0
@@ -1638,14 +1650,18 @@ shoes_app_loop(shoes_app *app)
0
- while (
WM_QUIT != msgs.message)
0
+ while (
msgs.message != WM_QUIT)
0
BOOL msg = PeekMessage(&msgs, NULL, 0, 0, PM_REMOVE);
0
if (msgs.message == WM_KEYDOWN || msgs.message == WM_KEYUP)
0
- if (RARRAY_LEN(app->slot.controls) > 0)
0
+ VALUE appw = (VALUE)GetWindowLong(msgs.hwnd, GWL_USERDATA);
0
+ Data_Get_Struct(appw, shoes_app, appk);
0
+ if (RARRAY_LEN(appk->slot.controls) > 0)
0
@@ -1660,7 +1676,9 @@ shoes_app_loop(shoes_app *app)
0
else if (msgs.message == WM_SYSCHAR || msgs.message == WM_CHAR)
0
- if (msg) msg = IsDialogMessage(app->slot.window, &msgs);
0
+ msg = IsDialogMessage(app->slot.window, &msgs);
0
TranslateMessage(&msgs);
Comments
No one has commented yet.