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