ui/gtk/toolkit.c

branch
newapi
changeset 280
e3565cf7c831
parent 275
132c7bcc6997
equal deleted inserted replaced
279:2ad83650d797 280:e3565cf7c831
36 #include "image.h" 36 #include "image.h"
37 #include "../common/document.h" 37 #include "../common/document.h"
38 #include "../common/properties.h" 38 #include "../common/properties.h"
39 #include "../common/menu.h" 39 #include "../common/menu.h"
40 #include "../common/toolbar.h" 40 #include "../common/toolbar.h"
41 #include "../common/threadpool.h"
41 42
42 #include <cx/utils.h> 43 #include <cx/utils.h>
43 #include <cx/string.h> 44 #include <cx/string.h>
44 #include <cx/printf.h> 45 #include <cx/printf.h>
45 46
184 int result = job->job_func(job->job_data); 185 int result = job->job_func(job->job_data);
185 if(!result) { 186 if(!result) {
186 g_idle_add(ui_job_finished, job); 187 g_idle_add(ui_job_finished, job);
187 } 188 }
188 return NULL; 189 return NULL;
190 }
191
192 static gboolean ui_idle_func(void *data) {
193 UiJob *job = data;
194 job->job_func(job->job_data);
195 free(job);
196 return FALSE;
197 }
198
199 void ui_call_mainthread(ui_threadfunc tf, void* td) {
200 UiJob *job = malloc(sizeof(UiJob));
201 job->job_func = tf;
202 job->job_data = td;
203 job->finish_callback = NULL;
204 job->finish_data = NULL;
205 job->obj = NULL;
206 g_idle_add(ui_idle_func, job);
189 } 207 }
190 208
191 void ui_job(UiObject *obj, ui_threadfunc tf, void *td, ui_callback f, void *fd) { 209 void ui_job(UiObject *obj, ui_threadfunc tf, void *td, ui_callback f, void *fd) {
192 UiJob *job = malloc(sizeof(UiJob)); 210 UiJob *job = malloc(sizeof(UiJob));
193 job->obj = obj; 211 job->obj = obj;

mercurial