Ejemplo n.º 1
0
void rdiswindow_load (GtkMenuItem * menuItem, struct _rdiswindow * rdiswindow)
{
    GtkWidget * dialog;

    dialog = gtk_file_chooser_dialog_new(LANG_LOADEXECFILE,
                                         GTK_WINDOW(rdiswindow->window),
                                         GTK_FILE_CHOOSER_ACTION_OPEN,
                                         GTK_STOCK_CANCEL,
                                         GTK_RESPONSE_CANCEL,
                                         GTK_STOCK_OPEN,
                                         GTK_RESPONSE_ACCEPT,
                                         NULL);

    if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
    {
        char * filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
        char tmp[256];

        _loader * loader = loader_create(filename);

        if (loader == NULL)
            snprintf(tmp, 256, "failed to load executable %s", filename);
        else {
            struct _rdis * rdis;
            rdis = rdis_create_with_console(loader,
                                 (void (*) (void *, const char *)) gui_console,
                                            rdiswindow->gui);
            gui_close_windows(rdiswindow->gui);
            gui_set_rdis(rdiswindow->gui, rdis);
            snprintf(tmp, 256, "loaded executable %s", filename);
        }

        gui_console(rdiswindow->gui, tmp);

        g_free(filename);
    }

    gtk_widget_destroy(dialog);
}
Ejemplo n.º 2
0
struct _rdis * rdis_create (_loader * loader)
{
    return rdis_create_with_console(loader, NULL, NULL);
}