Mercurial > repos > rhope
comparison window.c @ 3:94c885692eb5
Partial set of fixes and enhancements from Linux box
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 29 Apr 2009 03:21:23 -0400 |
parents | 76568becd6d6 |
children |
comparison
equal
deleted
inserted
replaced
2:73e978d590c7 | 3:94c885692eb5 |
---|---|
8 | 8 |
9 #ifdef SYLLABLE | 9 #ifdef SYLLABLE |
10 #include "syl_window.h" | 10 #include "syl_window.h" |
11 VIS_CRITICAL_SECTION(app_lock); | 11 VIS_CRITICAL_SECTION(app_lock); |
12 #else | 12 #else |
13 #ifdef WIN32 | 13 #ifdef GTK |
14 #include "gtk_window.h" | |
15 VIS_CRITICAL_SECTION(gtk_init_lock); | |
16 #else | |
17 #ifdef WIN32 | |
14 #include "ms_window.h" | 18 #include "ms_window.h" |
15 VIS_CRITICAL_SECTION(hwnd_lock); | 19 VIS_CRITICAL_SECTION(hwnd_lock); |
20 #endif | |
16 #endif | 21 #endif |
17 #endif | 22 #endif |
18 | 23 |
19 /* | 24 /* |
20 typedef struct | 25 typedef struct |
39 #ifdef SYLLABLE | 44 #ifdef SYLLABLE |
40 DEBUGPUTS("Initializing app_lock"); | 45 DEBUGPUTS("Initializing app_lock"); |
41 | 46 |
42 VIS_InitializeCriticalSection(app_lock); | 47 VIS_InitializeCriticalSection(app_lock); |
43 #else | 48 #else |
44 #ifdef WIN32 | 49 #ifdef GTK |
45 VIS_InitializeCriticalSection(hwnd_lock); | 50 VIS_InitializeCriticalSection(gtk_init_lock); |
51 #else | |
52 #ifdef WIN32 | |
53 VIS_InitializeCriticalSection(hwnd_lock); | |
54 #endif | |
46 #endif | 55 #endif |
47 #endif | 56 #endif |
48 } | 57 } |
49 | 58 |
50 int vis_window_new(datum ** inputlist, queue_entry * worker_entry) | 59 int vis_window_new(datum ** inputlist, queue_entry * worker_entry) |
60 | 69 |
61 window->widget_dict = create_dict(worker_entry->instance->def->program); | 70 window->widget_dict = create_dict(worker_entry->instance->def->program); |
62 window->widget_xpos = create_dict(worker_entry->instance->def->program); | 71 window->widget_xpos = create_dict(worker_entry->instance->def->program); |
63 window->widget_ypos = create_dict(worker_entry->instance->def->program); | 72 window->widget_ypos = create_dict(worker_entry->instance->def->program); |
64 window->id_list = create_list(worker_entry->instance->def->program); | 73 window->id_list = create_list(worker_entry->instance->def->program); |
74 window->menu = NULL; | |
65 release_ref(inputlist[1]); | 75 release_ref(inputlist[1]); |
66 release_ref(inputlist[2]); | 76 release_ref(inputlist[2]); |
67 inputlist[0] = window_datum; | 77 inputlist[0] = window_datum; |
68 return 0; | 78 return 0; |
69 } | 79 } |
252 widget = params[0]->c.generic.data; | 262 widget = params[0]->c.generic.data; |
253 widget->selected_index = -1; | 263 widget->selected_index = -1; |
254 return 0; | 264 return 0; |
255 } | 265 } |
256 | 266 |
267 //Also used for Set Data@Datagrid | |
257 int vis_dropdown_settext(datum ** params, queue_entry * entry) | 268 int vis_dropdown_settext(datum ** params, queue_entry * entry) |
258 { | 269 { |
259 vis_widget * widget; | 270 vis_widget * widget; |
260 params[0] = copy_datum(params[0], 0); | 271 params[0] = copy_datum(params[0], 0); |
261 widget = params[0]->c.generic.data; | 272 widget = params[0]->c.generic.data; |
275 widget->selected_index = params[1]->c.integers.num_a; | 286 widget->selected_index = params[1]->c.integers.num_a; |
276 release_ref(params[1]); | 287 release_ref(params[1]); |
277 return 0; | 288 return 0; |
278 } | 289 } |
279 | 290 |
280 | 291 int vis_datagrid_new(datum ** inputlist, queue_entry * worker_entry) |
281 | 292 { |
282 | 293 widget_new(inputlist, BUILTIN_TYPE_DATAGRID, worker_entry->instance->def->program); |
283 | 294 return 0; |
284 | 295 } |
285 | 296 |
286 | 297 int vis_menu_new(datum ** inputlist, queue_entry * worker_entry) |
287 | 298 { |
288 | 299 vis_menu * menu; |
289 | 300 inputlist[0] = new_datum(BUILTIN_TYPE_MENU, 1, sizeof(vis_menu), worker_entry->instance->def->program); |
290 | 301 menu = inputlist[0]->c.generic.data; |
291 | 302 menu->label_list = create_list(worker_entry->instance->def->program); |
303 menu->action_list = create_list(worker_entry->instance->def->program); | |
304 return 0; | |
305 } | |
306 | |
307 int vis_menu_add_item(datum ** inputlist, queue_entry * worker_entry) | |
308 { | |
309 datum * wparams[2]; | |
310 vis_menu * menu; | |
311 inputlist[0] = copy_datum(inputlist[0], 0); | |
312 menu = inputlist[0]->c.generic.data; | |
313 wparams[0] = menu->label_list; | |
314 wparams[1] = inputlist[1]; | |
315 vis_list_append(wparams, worker_entry); | |
316 menu->label_list = wparams[0]; | |
317 wparams[0] = menu->action_list; | |
318 wparams[1] = inputlist[2]; | |
319 vis_list_append(wparams, worker_entry); | |
320 menu->action_list = wparams[0]; | |
321 return 0; | |
322 } | |
323 | |
324 int vis_window_set_menu(datum ** inputlist, queue_entry * worker_entry) | |
325 { | |
326 vis_window * window; | |
327 inputlist[0] = copy_datum(inputlist[0], 0); | |
328 window = inputlist[0]->c.generic.data; | |
329 release_ref(window->menu); | |
330 window->menu = inputlist[1]; | |
331 return 0; | |
332 } | |
333 | |
334 |