void on_fileselect_ok (GtkButton *button, gpointer user_data) { GtkWidget *filesel, *window3D, *save_procedure; gint what; gchar *filename; v5d_info *info; int hires; filesel = gtk_widget_get_toplevel (GTK_WIDGET (button)); filename = gtk_file_selection_get_filename (GTK_FILE_SELECTION (filesel)); what = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(filesel), "OpenWhat")); window3D = GTK_WIDGET(gtk_object_get_data(GTK_OBJECT(filesel), "window3D")); if(window3D==NULL) { fprintf(stderr,"Could not find window3D widget\n"); exit ; } info = (v5d_info *) lookup_widget(window3D,"v5d_info"); switch(what) { case DATA_FILE: load_data_file(window3D,filename); break; case TOPO_FILE: hires = vis5d_graphics_mode(info->v5d_display_context,VIS5D_HIRESTOPO,VIS5D_GET); vis5d_init_topo(info->v5d_display_context,filename,hires); vis5d_load_topo_and_map(info->v5d_display_context); break; case MAP_FILE: vis5d_init_map(info->v5d_display_context,filename); vis5d_load_topo_and_map(info->v5d_display_context); break; case PROCEDURE_FILE: if(info->ProcedureDialog) gtk_widget_destroy(info->ProcedureDialog); info->ProcedureDialog = new_ProcedureDialog(info, filename); gtk_window_set_transient_for(GTK_WINDOW(info->ProcedureDialog),GTK_WINDOW(window3D)); break; case SAVE_PROCEDURE_FILE: if(! info->ProcedureDialog) { printf("Error: ProcedureDialog not defined\n"); return; } save_procedure = lookup_widget(info->ProcedureDialog, "saveProcedure"); on_saveProcedure_activate(GTK_MENU_ITEM(save_procedure), filename); break; default: g_print("open what ? %d\n",what); } gtk_widget_hide (filesel); /* This is the only window that should accept input */ gtk_grab_remove(filesel); }
/* 01Feb08 Phil McDonald */ int gobj_state (APP_MGR *amgr, int iobj, int mode) { int state, flag; GOVIS5D *gobj; gobj = &(amgr->gobj[iobj]); if (gobj->idatactx < 0) { if ((gobj->grType == VIS5D_TOPO) || (gobj->grType == VIS5D_MAP)) { state = vis5d_graphics_mode (amgr->dx, gobj->grType, mode); } else { state = vis5d_enable_graphics (amgr->dx, gobj->grType, gobj->varNo, mode); } } else { state = vis5d_enable_graphics (gobj->idatactx, gobj->grType, gobj->varNo, mode); } if (gobj->grType == VIS5D_TOPO) { vis5d_check_texture (amgr->dx, &flag); if (flag) vis5d_graphics_mode (amgr->dx, VIS5D_TEXTURE, mode); } else if (gobj->grType == VIS5D_MAP) { vis5d_check_topo (amgr->dx, &flag); if (flag) vis5d_enable_sfc_map (amgr->dx, mode); } if (mode != VIS5D_GET) amgr->redraw = 1; return state; }