Mercurial > repos > rhope
diff 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 |
line wrap: on
line diff
--- a/window.c Wed Apr 29 02:58:03 2009 -0400 +++ b/window.c Wed Apr 29 03:21:23 2009 -0400 @@ -10,9 +10,14 @@ #include "syl_window.h" VIS_CRITICAL_SECTION(app_lock); #else - #ifdef WIN32 + #ifdef GTK +#include "gtk_window.h" +VIS_CRITICAL_SECTION(gtk_init_lock); + #else + #ifdef WIN32 #include "ms_window.h" -VIS_CRITICAL_SECTION(hwnd_lock); +VIS_CRITICAL_SECTION(hwnd_lock); + #endif #endif #endif @@ -41,8 +46,12 @@ VIS_InitializeCriticalSection(app_lock); #else - #ifdef WIN32 - VIS_InitializeCriticalSection(hwnd_lock); + #ifdef GTK + VIS_InitializeCriticalSection(gtk_init_lock); + #else + #ifdef WIN32 + VIS_InitializeCriticalSection(hwnd_lock); + #endif #endif #endif } @@ -62,6 +71,7 @@ window->widget_xpos = create_dict(worker_entry->instance->def->program); window->widget_ypos = create_dict(worker_entry->instance->def->program); window->id_list = create_list(worker_entry->instance->def->program); + window->menu = NULL; release_ref(inputlist[1]); release_ref(inputlist[2]); inputlist[0] = window_datum; @@ -254,6 +264,7 @@ return 0; } +//Also used for Set Data@Datagrid int vis_dropdown_settext(datum ** params, queue_entry * entry) { vis_widget * widget; @@ -277,15 +288,47 @@ return 0; } +int vis_datagrid_new(datum ** inputlist, queue_entry * worker_entry) +{ + widget_new(inputlist, BUILTIN_TYPE_DATAGRID, worker_entry->instance->def->program); + return 0; +} +int vis_menu_new(datum ** inputlist, queue_entry * worker_entry) +{ + vis_menu * menu; + inputlist[0] = new_datum(BUILTIN_TYPE_MENU, 1, sizeof(vis_menu), worker_entry->instance->def->program); + menu = inputlist[0]->c.generic.data; + menu->label_list = create_list(worker_entry->instance->def->program); + menu->action_list = create_list(worker_entry->instance->def->program); + return 0; +} +int vis_menu_add_item(datum ** inputlist, queue_entry * worker_entry) +{ + datum * wparams[2]; + vis_menu * menu; + inputlist[0] = copy_datum(inputlist[0], 0); + menu = inputlist[0]->c.generic.data; + wparams[0] = menu->label_list; + wparams[1] = inputlist[1]; + vis_list_append(wparams, worker_entry); + menu->label_list = wparams[0]; + wparams[0] = menu->action_list; + wparams[1] = inputlist[2]; + vis_list_append(wparams, worker_entry); + menu->action_list = wparams[0]; + return 0; +} - +int vis_window_set_menu(datum ** inputlist, queue_entry * worker_entry) +{ + vis_window * window; + inputlist[0] = copy_datum(inputlist[0], 0); + window = inputlist[0]->c.generic.data; + release_ref(window->menu); + window->menu = inputlist[1]; + return 0; +} - - - - - -