开发者

Enable GtkFileChooserDialog to select files OR folders

Using GTK+'s GtkFileChooserDialog, how can I allow the user to select a file or a folder (both are valid here). The actions available are mutu开发者_运维知识库ally exclusive.


Unfortunately I don't think this is possible.

I played around with this a bit in the "create a torrent" dialog in Transmission, and wound up using a radibox to enable one of two chooserdialogbuttons, one in file mode and the other in folder mode.


You could add another button. Here is a small example file-chooser window that has a button for "open" which opens files or folders and "select" button for selecting files.

void filechooser(GtkWidget* widget, gpointer gFilepath) {
   // create the dialogue with an "Open" button
   string* filepath = (string*) gFilepath;
   GtkWidget *dialog = gtk_file_chooser_dialog_new(
         "Open File",
         NULL, 
         GTK_FILE_CHOOSER_ACTION_OPEN,
         GTK_STOCK_CANCEL,
         GTK_RESPONSE_CANCEL,
         GTK_STOCK_OPEN,
         GTK_RESPONSE_ACCEPT, NULL);

   // add the additional "Select" button
   const guint MY_SELECTED = 0;
   gtk_dialog_add_button(GTK_DIALOG(dialog), "Select", MY_SELECTED);

   guint response = gtk_dialog_run(GTK_DIALOG(dialog));
   if(response == GTK_RESPONSE_ACCEPT || response == MY_SELECTED){
      *filepath = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
   }
   gtk_widget_destroy(dialog);
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜