コード例 #1
0
ファイル: support_cb.c プロジェクト: pseudotensor/Vis5dPlus
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);

}
コード例 #2
0
ファイル: gobj.c プロジェクト: VisualIdeation/cave5d-2.0.1
/* 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;
}