Let the user choose a file to view himself when started with no argument

This commit is contained in:
Pierre Pronchery 2009-05-25 22:14:24 +00:00
parent d253f3b442
commit 24cdf377d6

View File

@ -55,6 +55,7 @@ typedef struct _View
/* prototypes */
static View * _view_new(char const * path);
static View * _view_new_open(void);
static void _view_delete(View * view);
/* useful */
@ -251,6 +252,29 @@ static GtkWidget * _new_text(View * view, char const * path)
}
/* view_new_open */
static View * _view_new_open(void)
{
View * ret;
GtkWidget * dialog;
char * pathname = NULL;
dialog = gtk_file_chooser_dialog_new("View file...", NULL,
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)
pathname = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(
dialog));
gtk_widget_destroy(dialog);
if(pathname == NULL)
return NULL;
ret = _view_new(pathname);
free(pathname);
return ret;
}
/* view_delete */
static void _view_delete(View * view)
{
@ -579,9 +603,11 @@ int main(int argc, char * argv[])
return _usage();
}
if(optind == argc)
return _usage();
_view_new_open();
else
for(i = optind; i < argc; i++)
_view_new(argv[i]);
if(_view_cnt)
gtk_main();
return 0;
}