ui/cocoa/toolkit.m

changeset 721
e9f655afc7ed
parent 720
6fa3c629000f
child 800
814d374fb689
equal deleted inserted replaced
720:6fa3c629000f 721:e9f655afc7ed
35 #include "../common/threadpool.h" 35 #include "../common/threadpool.h"
36 36
37 #import "image.h" 37 #import "image.h"
38 #import "menu.h" 38 #import "menu.h"
39 #import "Toolbar.h" 39 #import "Toolbar.h"
40 #import "UiJob.h" 40 #import "UiThread.h"
41 41
42 #import "AppDelegate.h" 42 #import "AppDelegate.h"
43 43
44 static const char *application_name; 44 static const char *application_name;
45 45
165 thread.finish_callback = f; 165 thread.finish_callback = f;
166 thread.finish_userdata = fd; 166 thread.finish_userdata = fd;
167 [thread start]; 167 [thread start];
168 } 168 }
169 169
170 @implementation UiAppCallback
171
172 - (id) initWithCallback:(ui_threadfunc)func userdata:(void*)userdata {
173 self->callback = func;
174 self->userdata = userdata;
175 return self;
176 }
177
178 - (void) callMainThread {
179 [self performSelectorOnMainThread:@selector(mainThread:)
180 withObject:nil
181 waitUntilDone:NO];
182 }
183
184 - (void) mainThread:(id)n {
185 callback(userdata);
186 }
187
188 @end
189
170 void ui_call_mainthread(ui_threadfunc tf, void* td) { 190 void ui_call_mainthread(ui_threadfunc tf, void* td) {
171 191 UiAppCallback *cb = [[UiAppCallback alloc]initWithCallback:tf userdata:td];
192 [cb callMainThread];
172 } 193 }

mercurial