GTK 文件选择对话框的更改

10 views
Skip to first unread message
Message has been deleted

胡杰婷

unread,
Jul 13, 2007, 4:40:44 AM7/13/07
to sky-tone
以后小电脑所有AP的文件选择对话框尽可能统一为以下模式:


gchar *
MainView::openFileDialog (const gchar *lastFolder)
{
GtkWidget *openDialog = gtk_file_chooser_dialog_new (_("Open PDF
File"),
GTK_WINDOW (m_MainWindow),
GTK_FILE_CHOOSER_ACTION_OPEN,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
NULL);
gtk_dialog_set_alternative_button_order (GTK_DIALOG (openDialog),
GTK_RESPONSE_ACCEPT, GTK_RESPONSE_CANCEL, -1);

// Select the last used folder as the initial folder, if any.
if ( NULL != lastFolder )
{
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER
(openDialog),
lastFolder);
}

// Add the file type filters.
{
GtkFileFilter *pdfFilter = gtk_file_filter_new ();
gtk_file_filter_set_name (pdfFilter,
_("Portable Document Format (PDF)
Files"));
gtk_file_filter_add_mime_type (pdfFilter, "application/pdf");
gtk_file_filter_add_pattern (pdfFilter, "*.pdf");
gtk_file_filter_add_pattern (pdfFilter, "*.PDF");

gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (openDialog),
pdfFilter);
// Set this filter as the default.
gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (openDialog),
pdfFilter);
}

{
GtkFileFilter *anyFilter = gtk_file_filter_new ();
gtk_file_filter_set_name (anyFilter, _("All Files"));
gtk_file_filter_add_pattern (anyFilter, "*");

gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (openDialog),
anyFilter);
}

if ( GTK_RESPONSE_ACCEPT == gtk_dialog_run (GTK_DIALOG
(openDialog)) )
{
gchar *fileName = gtk_file_chooser_get_filename (
GTK_FILE_CHOOSER (openDialog));
gtk_widget_destroy (openDialog);
return fileName;
}
gtk_widget_destroy (openDialog);
return NULL;
}

Reply all
Reply to author
Forward
0 new messages