/*! \brief Creates filter for file chooser. * \par Function Description * This function adds file filters to <B>filechooser</B>. * * \param [in] filechooser The file chooser to add filter to. */ static void x_fileselect_setup_filechooser_filters (GtkFileChooser *filechooser) { GtkFileFilter *filter; /* file filter for schematic files (*.sch) */ filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("Schematics")); gtk_file_filter_add_pattern (filter, "*.sch"); gtk_file_chooser_add_filter (filechooser, filter); /* file filter for symbol files (*.sym) */ filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("Symbols")); gtk_file_filter_add_pattern (filter, "*.sym"); gtk_file_chooser_add_filter (filechooser, filter); /* file filter for both symbol and schematic files (*.sym+*.sch) */ filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("Schematics and symbols")); gtk_file_filter_add_pattern (filter, "*.sym"); gtk_file_filter_add_pattern (filter, "*.sch"); gtk_file_chooser_add_filter (filechooser, filter); /* file filter that match any file */ filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("All files")); gtk_file_filter_add_pattern (filter, "*"); gtk_file_chooser_add_filter (filechooser, filter); }
void ui_signal_export (GtkMenuItem * item, gpointer data) { GtkWidget *dialog; GtkWidget *window = GET_OBJECT("window"); GtkFileFilter * filter_auto; GtkFileFilter * filter_pdf; GtkFileFilter * filter_svg; GtkFileFilter * filter_png; dialog = gtk_file_chooser_dialog_new (_("Export"), GTK_WINDOW(window), GTK_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, NULL); /* Set filters */ filter_auto = gtk_file_filter_new(); filter_pdf = gtk_file_filter_new(); filter_svg = gtk_file_filter_new(); filter_png = gtk_file_filter_new(); gtk_file_filter_add_pattern (filter_auto, "*"); gtk_file_filter_add_mime_type (filter_pdf, "application/pdf"); gtk_file_filter_add_mime_type (filter_svg, "image/svg+xml"); gtk_file_filter_add_mime_type (filter_png, "image/png"); gtk_file_filter_set_name (filter_pdf, "Portable Document Format (PDF)"); gtk_file_filter_set_name (filter_svg, "Scalable Vector Graphcis (SVG)"); gtk_file_filter_set_name (filter_png, "Portable Networks Graphcis (PNG)"); gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog), TRUE); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter_png); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter_pdf); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter_svg); if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) { char *filename; char * ext; gint width, height; GtkFileFilter * filter; gboolean successp; filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); filter = gtk_file_chooser_get_filter (GTK_FILE_CHOOSER (dialog)); gdk_window_get_size (hexboard->window, &width, &height); if (filter == filter_pdf) ext = "pdf"; else if (filter == filter_png) ext = "png"; else if (filter == filter_svg) ext = "svg"; successp = hexboard_save_as_image (HEXBOARD(hexboard), filename, ext, width, height); if (!successp) g_message (_("An error ocurred while export the board.")); g_log (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, _("Board was exported to %s."), filename); g_free (filename); } gtk_widget_destroy (dialog); }
void ui_signal_save_as (GtkMenuItem * item, gpointer data) { GtkWidget *dialog; GtkWidget *window = GET_OBJECT("window"); dialog = gtk_file_chooser_dialog_new (_("Save"), GTK_WINDOW(window), GTK_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, NULL); /* Set filters */ gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter_sgf); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter_lg_sgf); if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) { g_free (game_file); game_file = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); game_format = dialog_selected_format (dialog); gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog), TRUE); if (game_format != HEX_AUTO) hex_save_sgf (game, game_format, game_file); update_window_title(); } gtk_widget_destroy (dialog); }
GtkWidget* vice_file_entry(const char *title, const char *default_dir, const char *pat, GtkFileChooserAction action) { GtkWidget *fb; GtkFileFilter *ff = NULL, *allf; fb = gtk_file_chooser_widget_new(action); if (default_dir) gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(fb), default_dir); if (pat) { ff = gtk_file_filter_new(); gtk_file_filter_add_pattern(ff, pat); gtk_file_filter_set_name(ff, pat); } allf = gtk_file_filter_new(); gtk_file_filter_add_pattern(allf, "*"); gtk_file_filter_set_name(allf, _("all files")); if (ff) gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(fb), ff); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(fb), allf); gtk_widget_show(fb); return fb; }
// select a file to play, and play it BOOL PlayFile() { BOOL ret=FALSE; regex_t fregex; GtkWidget *filesel; // file selector GtkFileFilter *filter; filesel=gtk_file_chooser_dialog_new("Open File",GTK_WINDOW(win),GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL,GTK_RESPONSE_CANCEL,GTK_STOCK_OPEN,GTK_RESPONSE_ACCEPT,NULL); filter=gtk_file_filter_new(); gtk_file_filter_set_name(filter,"Playable files"); regcomp(&fregex,"\\.(mo3|xm|mod|s3m|it|umx|mp[1-3]|ogg|wav|aif)$",REG_ICASE|REG_NOSUB|REG_EXTENDED); gtk_file_filter_add_custom(filter,GTK_FILE_FILTER_FILENAME,FileExtensionFilter,&fregex,NULL); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(filesel),filter); filter=gtk_file_filter_new(); gtk_file_filter_set_name(filter,"All files"); gtk_file_filter_add_pattern(filter,"*"); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(filesel),filter); if (gtk_dialog_run(GTK_DIALOG(filesel))==GTK_RESPONSE_ACCEPT) { char *file=gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(filesel)); gtk_widget_hide(filesel); if (!(chan=BASS_StreamCreateFile(FALSE,file,0,0,BASS_SAMPLE_LOOP)) && !(chan=BASS_MusicLoad(FALSE,file,0,0,BASS_MUSIC_RAMP|BASS_SAMPLE_LOOP,1))) { Error("Can't play file"); } else { BASS_ChannelPlay(chan,FALSE); ret=TRUE; } g_free(file); } gtk_widget_destroy(filesel); return ret; }
void gtk_gui::do_open(){ #if GTK_MAJOR_VERSION >= 3 m_file_chooser = GTK_FILE_CHOOSER (gtk_file_chooser_dialog_new(gettext("Please, select a file"), NULL, GTK_FILE_CHOOSER_ACTION_OPEN, "_Cancel", GTK_RESPONSE_CANCEL, "_Open", GTK_RESPONSE_ACCEPT, NULL)); #else // GTK_MAJOR_VERSION < 3 m_file_chooser = GTK_FILE_CHOOSER (gtk_file_chooser_dialog_new(gettext("Please, select a file"), NULL, GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL)); #endif // GTK_MAJOR_VERSION < 3 GtkFileFilter *filter_smil = gtk_file_filter_new(); gtk_file_filter_set_name(filter_smil, gettext("SMIL files")); gtk_file_filter_add_pattern(filter_smil, "*.smil"); gtk_file_filter_add_pattern(filter_smil, "*.smi"); gtk_file_chooser_add_filter(m_file_chooser, filter_smil); GtkFileFilter *filter_all = gtk_file_filter_new(); gtk_file_filter_set_name(filter_all, gettext("All files")); gtk_file_filter_add_pattern(filter_all, "*.smil"); gtk_file_filter_add_pattern(filter_all, "*.smi"); gtk_file_filter_add_pattern(filter_all, "*.grins"); gtk_file_chooser_add_filter(m_file_chooser, filter_all); GtkFileFilter *filter_any = gtk_file_filter_new(); gtk_file_filter_set_name(filter_any, gettext("Any file")); gtk_file_filter_add_pattern(filter_any, "*"); gtk_file_chooser_add_filter(m_file_chooser, filter_any); gint result = gtk_dialog_run (GTK_DIALOG (m_file_chooser)); if (result == GTK_RESPONSE_ACCEPT) { do_file_selected(); } gtk_widget_hide(GTK_WIDGET (m_file_chooser)); }
static void add_image_files (GtkWidget *dialog) { GtkFileFilter* filter; GSList *formats, *l; gchar **mimes, **t; filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("All image files")); formats = gdk_pixbuf_get_formats (); for (l = formats; l; l = g_slist_next (l)) { mimes = gdk_pixbuf_format_get_mime_types ((GdkPixbufFormat*)l->data); for (t = mimes; *t; t++) gtk_file_filter_add_mime_type (filter, *t); g_strfreev (mimes); } g_slist_free (formats); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter); gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (dialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("All JPEG files")); gtk_file_filter_add_mime_type (filter, "image/jpeg"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("All files")); gtk_file_filter_add_pattern (filter, "*"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter); }
static void on_open(GtkWidget *widget, ChmSee *self) { GladeXML *glade; GtkWidget *dialog; GtkFileFilter *filter; /* create openfile dialog */ glade = glade_xml_new(get_resource_path(GLADE_FILE), "openfile_dialog", NULL); dialog = glade_xml_get_widget(glade, "openfile_dialog"); g_signal_connect(G_OBJECT (dialog), "response", G_CALLBACK (open_response_cb), self); /* File list fiter */ filter = gtk_file_filter_new(); gtk_file_filter_set_name(filter, _("CHM Files")); gtk_file_filter_add_pattern(filter, "*.[cC][hH][mM]"); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER (dialog), filter); filter = gtk_file_filter_new(); gtk_file_filter_set_name(filter, _("All Files")); gtk_file_filter_add_pattern(filter, "*"); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER (dialog), filter); /* Previous opened folder */ if (selfp->last_dir) { gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER (dialog), selfp->last_dir); } g_object_unref(glade); }
void BrowseSessionFile(GtkWidget *empty) { GtkWidget *chooser; GtkFileFilter *filter; chooser = gtk_file_chooser_dialog_new("Open session file", GTK_WINDOW(gui.windows.hash), GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); filter = gtk_file_filter_new(); gtk_file_filter_set_name(filter, "Session files"); gtk_file_filter_add_pattern(filter, "*.session"); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(chooser), filter); filter = gtk_file_filter_new(); gtk_file_filter_set_name(filter, "All files"); gtk_file_filter_add_pattern(filter, "*"); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(chooser), filter); if (gtk_dialog_run(GTK_DIALOG(chooser)) == GTK_RESPONSE_ACCEPT) { const gchar *txt = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser)); settings.resume_session = true; db.tables.clear(); db.hashes.clear(); strcpy(settings.sessionfile, txt); pthread_t thread[1]; pthread_create(&thread[0], NULL, rcracki_mt, NULL); } gtk_widget_destroy(chooser); }
static void winfilterfiles(GtkFileChooser *dialog) { GtkFileFilter *filter; filter = gtk_file_filter_new(); gtk_file_filter_set_name(filter, "All Games"); for (size_t i = 0; i < NFILTERS; i++) for (size_t j = 0; filters[i].exts[j] != NULL; j++) add_extension_to_filter(filter, filters[i].exts[j]); gtk_file_chooser_add_filter(dialog, filter); for (size_t i = 0; i < NFILTERS; i++) { filter = gtk_file_filter_new(); gtk_file_filter_set_name(filter, filters[i].name); for (size_t j = 0; filters[i].exts[j] != NULL; j++) add_extension_to_filter(filter, filters[i].exts[j]); gtk_file_chooser_add_filter(dialog, filter); } filter = gtk_file_filter_new(); gtk_file_filter_set_name(filter, "All Files"); gtk_file_filter_add_pattern(filter, "*"); gtk_file_chooser_add_filter(dialog, filter); }
void open_image_file_cb ( GtkWidget *widget, AnypaperWindow *window ) { GtkWidget *dialog; GtkWidget *preview; GtkFileFilter *filterImages, *filterAll; preview = gtk_image_new (); dialog = gtk_file_chooser_dialog_new ("Open File", GTK_WINDOW(window->priv->window), GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); filterImages = gtk_file_filter_new (); gtk_file_filter_set_name (GTK_FILE_FILTER(filterImages),"JPEG images"); gtk_file_filter_add_mime_type(GTK_FILE_FILTER(filterImages), "image/jpeg/*"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filterImages); filterAll = gtk_file_filter_new (); gtk_file_filter_set_name (GTK_FILE_FILTER(filterAll),"All files"); gtk_file_filter_add_pattern(GTK_FILE_FILTER(filterAll), "*"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filterAll); gtk_file_chooser_set_preview_widget (GTK_FILE_CHOOSER (dialog), preview); gtk_file_chooser_set_filename(GTK_FILE_CHOOSER (dialog), gtk_entry_get_text (GTK_ENTRY (window->priv->file_entry))); g_signal_connect (dialog, "update-preview", G_CALLBACK (update_preview_cb), preview); if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) { g_free(window->parameters->file); window->parameters->file = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); gtk_entry_set_text (GTK_ENTRY (window->priv->file_entry), window->parameters->file); set_image_common(window); } gtk_widget_destroy (dialog); }
char* get_open_filename( GtkWindow* parent, const char* cwd ) { char* file = NULL; GtkFileChooser* dlg = (GtkFileChooser*)gtk_file_chooser_dialog_new( NULL, parent, GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_OK, NULL ); GtkWidget* img; GtkFileFilter *filter; if( cwd ) gtk_file_chooser_set_current_folder( dlg, cwd ); img = gtk_image_new(); gtk_widget_set_size_request( img, 128, 128 ); gtk_file_chooser_set_preview_widget( dlg, img ); g_signal_connect( dlg, "update-preview", G_CALLBACK(on_update_preview), img ); filter = gtk_file_filter_new(); gtk_file_filter_set_name( filter, _("All Supported Images") ); gtk_file_filter_add_pixbuf_formats( filter ); gtk_file_chooser_add_filter( dlg, filter ); filter = gtk_file_filter_new(); gtk_file_filter_set_name( filter, _("All Files") ); gtk_file_filter_add_pattern( filter, "*" ); gtk_file_chooser_add_filter( dlg, filter ); if( gtk_dialog_run( (GtkDialog*)dlg ) == GTK_RESPONSE_OK ) file = gtk_file_chooser_get_filename( dlg ); gtk_widget_destroy( (GtkWidget*)dlg ); return file; }
static void import_clicked(GtkWidget *w, gpointer user_data) { GtkWidget *win = dt_ui_main_window(darktable.gui->ui); GtkWidget *filechooser = gtk_file_chooser_dialog_new( _("select style"), GTK_WINDOW(win), GTK_FILE_CHOOSER_ACTION_OPEN, _("_cancel"), GTK_RESPONSE_CANCEL, _("_open"), GTK_RESPONSE_ACCEPT, (char *)NULL); gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(filechooser), TRUE); gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(filechooser), g_get_home_dir()); GtkFileFilter *filter; filter = GTK_FILE_FILTER(gtk_file_filter_new()); gtk_file_filter_add_pattern(filter, "*.dtstyle"); gtk_file_filter_set_name(filter, _("darktable style files")); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(filechooser), filter); filter = GTK_FILE_FILTER(gtk_file_filter_new()); gtk_file_filter_add_pattern(filter, "*"); gtk_file_filter_set_name(filter, _("all files")); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(filechooser), filter); if(gtk_dialog_run(GTK_DIALOG(filechooser)) == GTK_RESPONSE_ACCEPT) { GSList *filenames = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(filechooser)); g_slist_foreach(filenames, (GFunc)dt_styles_import_from_file, NULL); g_slist_free_full(filenames, g_free); dt_lib_styles_t *d = (dt_lib_styles_t *)user_data; _gui_styles_update_view(d); } gtk_widget_destroy(filechooser); }
CMasterBiasDlg::CMasterBiasDlg(GtkWindow *pParent):m_pParent(pParent), m_InFiles(0), m_FileList(NULL), m_FilePath(NULL) { GtkWidget *vbox, *xbox, *bbox; GSList *group; GtkFileFilter *filters[2]; // Dialog with buttons m_pDlg = gtk_file_chooser_dialog_new("Master bias frame", pParent, GTK_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, GTK_STOCK_HELP, GTK_RESPONSE_HELP, NULL); gtk_file_chooser_standard_tooltips(GTK_FILE_CHOOSER(m_pDlg)); gtk_dialog_set_tooltip_by_response(GTK_DIALOG(m_pDlg), GTK_RESPONSE_ACCEPT, "Create a master bias frame and save it to the specified file"); g_signal_connect(G_OBJECT(m_pDlg), "response", G_CALLBACK(response_dialog), this); gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(m_pDlg), true); // Filters filters[0] = gtk_file_filter_new(); gtk_file_filter_add_pattern(filters[0], "*." FILE_EXTENSION_FITS); gtk_file_filter_set_name(filters[0], "FITS files"); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(m_pDlg), filters[0]); filters[1] = gtk_file_filter_new(); gtk_file_filter_add_pattern(filters[1], "*"); gtk_file_filter_set_name(filters[1], "All files"); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(m_pDlg), filters[1]); gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(m_pDlg), filters[0]); // Dialog icon gchar *icon = get_icon_file("masterbias"); gtk_window_set_icon(GTK_WINDOW(m_pDlg), gdk_pixbuf_new_from_file(icon, NULL)); g_free(icon); // Frame selection xbox = gtk_vbox_new(FALSE, 8); m_ProcFrame = gtk_frame_new("Process"); gtk_box_pack_start(GTK_BOX(xbox), m_ProcFrame, FALSE, TRUE, 0); vbox = gtk_vbox_new(FALSE, 4); gtk_container_add(GTK_CONTAINER(m_ProcFrame), vbox); gtk_container_set_border_width(GTK_CONTAINER(vbox), 4); m_AllBtn = gtk_radio_button_new_with_label(NULL, "all files in current project"); gtk_widget_set_tooltip_text(m_AllBtn, "Include all frames in the current project"); gtk_box_pack_start(GTK_BOX(vbox), m_AllBtn, TRUE, TRUE, 0); group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(m_AllBtn)); m_SelBtn = gtk_radio_button_new_with_label(group, "selected files only"); gtk_widget_set_tooltip_text(m_SelBtn, "Include frames that are selected in the main window"); gtk_box_pack_start(GTK_BOX(vbox), m_SelBtn, TRUE, TRUE, 0); // Options bbox = gtk_hbutton_box_new(); gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_START); gtk_box_pack_start(GTK_BOX(xbox), bbox, FALSE, TRUE, 0); m_OptionsBtn = gtk_button_new_with_label("Options"); gtk_widget_set_tooltip_text(m_OptionsBtn, "Edit project settings"); gtk_box_pack_start(GTK_BOX(bbox), m_OptionsBtn, FALSE, TRUE, 0); g_signal_connect(G_OBJECT(m_OptionsBtn), "clicked", G_CALLBACK(button_clicked), this); gtk_file_chooser_set_extra_widget(GTK_FILE_CHOOSER(m_pDlg), xbox); gtk_widget_show_all(xbox); }
// sets up the file chooser dialog static void create_file_chooser_dialog() { GtkWidget *parent = get_widget_checked("ssv_main_window"); add_overlay_widget = gtk_file_chooser_dialog_new( "Open Overlay File", GTK_WINDOW(parent), GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, //Cancel button GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, //Open button NULL); // we need to extract the buttons, so we can connect them to our // button handlers, above GtkHButtonBox *box = (GtkHButtonBox*)(((GtkDialog*)add_overlay_widget)->action_area); GList *buttons = box->button_box.box.children; GtkWidget *cancel_btn = ((GtkBoxChild*)buttons->data)->widget; GtkWidget *ok_btn = ((GtkBoxChild*)buttons->next->data)->widget; g_signal_connect((gpointer)cancel_btn, "clicked", G_CALLBACK(add_overlay_cancel_clicked), NULL); g_signal_connect((gpointer)ok_btn, "clicked", G_CALLBACK(add_overlay_ok_clicked), NULL); g_signal_connect(add_overlay_widget, "destroy", G_CALLBACK(add_overlay_widget_destroy), NULL); g_signal_connect(add_overlay_widget, "destroy_event", G_CALLBACK(add_overlay_widget_destroy), NULL); g_signal_connect(add_overlay_widget, "delete_event", G_CALLBACK(add_overlay_widget_destroy), NULL); // add the filters GtkFileFilter *shp_filt = gtk_file_filter_new(); gtk_file_filter_set_name(shp_filt, "Shape Files (*.shp)"); gtk_file_filter_add_pattern(shp_filt, "*.shp"); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(add_overlay_widget),shp_filt); GtkFileFilter *csv_filt = gtk_file_filter_new(); gtk_file_filter_set_name(csv_filt, "Generic CSV Files (*.csv)"); gtk_file_filter_add_pattern(csv_filt, "*.csv"); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(add_overlay_widget),csv_filt); GtkFileFilter *all_filt = gtk_file_filter_new(); gtk_file_filter_set_name(all_filt, "All Files (*.*)"); gtk_file_filter_add_pattern(all_filt, "*"); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(add_overlay_widget),all_filt); // don't allow multi-select gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(add_overlay_widget), FALSE); // we need to make these modal -- if the user opens multiple "open" // dialogs, we'll get confused on the callbacks gtk_window_set_modal(GTK_WINDOW(add_overlay_widget), TRUE); gtk_window_set_destroy_with_parent(GTK_WINDOW(add_overlay_widget), TRUE); gtk_dialog_set_default_response(GTK_DIALOG(add_overlay_widget), GTK_RESPONSE_OK); }
uint8_t setFilter(GtkWidget *dialog) { gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), filter_all); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), filter_avi); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), filter_mpeg); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), filter_image); return 1; }
static void load_profile_from_file_cb(RoccatProfilePage *profile_page, gpointer user_data) { ArvoconfigWindow *window = ARVOCONFIG_WINDOW(user_data); ArvoconfigWindowPrivate *priv = window->priv; GtkWidget *dialog; gchar *filename, *path; GError *error = NULL; GtkFileFilter *windows_filter; GtkFileFilter *linux_filter; GtkFileFilter *all_filter; GtkFileFilter *filter; ArvoRkp *rkp; dialog = gtk_file_chooser_dialog_new(_("Load profile"), GTK_WINDOW(window), GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); windows_filter = windows_file_filter_new(); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), windows_filter); linux_filter = linux_file_filter_new(); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), linux_filter); all_filter = all_file_filter_new(); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), all_filter); path = arvo_configuration_get_rkp_save_path(priv->config); gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), path); g_free(path); if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) { filter = gtk_file_chooser_get_filter(GTK_FILE_CHOOSER(dialog)); filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); path = g_path_get_dirname(filename); arvo_configuration_set_rkp_save_path(priv->config, path); g_free(path); rkp = arvo_rkp_read_with_path(filename, &error); if (filter != linux_filter) arvo_windows_rkp_to_linux(rkp); if (error) { roccat_warning_dialog(GTK_WINDOW(dialog), _("Could not load profile"), error->message); g_error_free(error); } else { arvo_rkp_set_modified(rkp); arvoconfig_profile_page_set_rkp(ARVOCONFIG_PROFILE_PAGE(profile_page), rkp); arvo_rkp_free(rkp); } g_free(filename); } gtk_widget_destroy(dialog); }
int run_save_dialog() // returns 0 if user canceled { GtkWidget *file_chooser = gtk_file_chooser_dialog_new("Save Map", GTK_WINDOW(window), GTK_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, NULL); gtk_dialog_set_default_response (GTK_DIALOG (file_chooser), GTK_RESPONSE_ACCEPT); GtkFileFilter *filter; /* Filters */ filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "All Emergence Maps"); gtk_file_filter_add_pattern (filter, "*.map"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (file_chooser), filter); /* Make this filter the default */ gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (file_chooser), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "All Files"); gtk_file_filter_add_pattern (filter, "*"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (file_chooser), filter); gchar *current_folder = gtk_file_chooser_get_current_folder(GTK_FILE_CHOOSER (file_chooser)); struct string_t *rel_filename = arb_abs2rel(map_filename->text, current_folder); if(rel_filename) gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (file_chooser), rel_filename->text); g_free(current_folder); free_string(rel_filename); int retval; if (gtk_dialog_run (GTK_DIALOG (file_chooser)) == GTK_RESPONSE_ACCEPT) { char *filename; filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_chooser)); save_dialog_ok (filename); g_free (filename); retval = 1; } else retval = 0; gtk_widget_destroy (file_chooser); return retval; }
char *select_filename(GtkWidget *wiggy, char *title, char *name, char *in_pattern, char *dir, char *fn) { GtkWidget *chooser; GtkFileFilter *filter; char *search; char *next; char *p1,*p2; char *pattern; char pat[MAX_PATH+1]; chooser=gtk_file_chooser_dialog_new(title ,GTK_WINDOW(gtk_widget_get_toplevel(wiggy)) ,GTK_FILE_CHOOSER_ACTION_OPEN ,GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL ,GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT ,NULL); gtk_file_chooser_set_local_only(GTK_FILE_CHOOSER(chooser), TRUE); gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(chooser) ,dir); filter=gtk_file_filter_new(); gtk_file_filter_set_name(filter, name); pattern=strdup(in_pattern); search=pattern; while((next=strtok(search, ";"))!=NULL) { search=NULL; pat[0]=0; p2=pat; for(p1=next;*p1;p1++) { if(toupper(*p1)!=tolower(*p1)) { *(p2++)='['; *(p2++)=toupper(*p1); *(p2++)=tolower(*p1); *(p2++)=']'; } else *(p2++)=*p1; *p2=0; } gtk_file_filter_add_pattern(filter, pat); } free(pattern); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(chooser), filter); filter=gtk_file_filter_new(); gtk_file_filter_set_name(filter, "All Files"); gtk_file_filter_add_pattern(filter, "*"); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(chooser), filter); switch(gtk_dialog_run(GTK_DIALOG(chooser))) { case GTK_RESPONSE_ACCEPT: strcpy(fn, gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser))); break; default: fn[0]=0; } gtk_widget_destroy(chooser); return(fn); }
void wp_create_filechooser (AppearanceData *data) { const char *start_dir, *pictures = NULL; GtkFileFilter *filter; data->wp_filesel = GTK_FILE_CHOOSER ( gtk_file_chooser_dialog_new (_("Add Wallpaper"), GTK_WINDOW (appearance_capplet_get_widget (data, "appearance_window")), GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_OK, NULL)); gtk_dialog_set_default_response (GTK_DIALOG (data->wp_filesel), GTK_RESPONSE_OK); gtk_file_chooser_set_select_multiple (data->wp_filesel, TRUE); gtk_file_chooser_set_use_preview_label (data->wp_filesel, FALSE); start_dir = g_get_home_dir (); if (g_file_test ("/usr/share/backgrounds", G_FILE_TEST_IS_DIR)) { gtk_file_chooser_add_shortcut_folder (data->wp_filesel, "/usr/share/backgrounds", NULL); start_dir = "/usr/share/backgrounds"; } pictures = g_get_user_special_dir (G_USER_DIRECTORY_PICTURES); if (pictures != NULL && g_file_test (pictures, G_FILE_TEST_IS_DIR)) { gtk_file_chooser_add_shortcut_folder (data->wp_filesel, pictures, NULL); start_dir = pictures; } gtk_file_chooser_set_current_folder (data->wp_filesel, start_dir); filter = gtk_file_filter_new (); gtk_file_filter_add_pixbuf_formats (filter); gtk_file_filter_set_name (filter, _("Images")); gtk_file_chooser_add_filter (data->wp_filesel, filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("All files")); gtk_file_filter_add_pattern (filter, "*"); gtk_file_chooser_add_filter (data->wp_filesel, filter); data->wp_image = gtk_image_new (); gtk_file_chooser_set_preview_widget (data->wp_filesel, data->wp_image); gtk_widget_set_size_request (data->wp_image, 128, -1); gtk_widget_show (data->wp_image); g_signal_connect (data->wp_filesel, "update-preview", (GCallback) wp_update_preview, data); }
static GtkFileChooser * gui_image_chooser_new (gboolean is_save) { GtkFileChooser *fsel; fsel = GTK_FILE_CHOOSER (g_object_new (GTK_TYPE_FILE_CHOOSER_DIALOG, "action", is_save ? GTK_FILE_CHOOSER_ACTION_SAVE : GTK_FILE_CHOOSER_ACTION_OPEN, "local-only", FALSE, "use-preview-label", FALSE, NULL)); gtk_dialog_add_buttons (GTK_DIALOG (fsel), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, is_save ? GTK_STOCK_SAVE : GTK_STOCK_OPEN, GTK_RESPONSE_OK, NULL); gtk_dialog_set_default_response (GTK_DIALOG (fsel), GTK_RESPONSE_OK); /* Filters */ { GtkFileFilter *filter; filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("All Files")); gtk_file_filter_add_pattern (filter, "*"); gtk_file_chooser_add_filter (fsel, filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("Images")); gtk_file_filter_add_custom (filter, GTK_FILE_FILTER_MIME_TYPE, filter_images, NULL, NULL); gtk_file_chooser_add_filter (fsel, filter); /* Make this filter the default */ gtk_file_chooser_set_filter (fsel, filter); } /* Preview */ { GtkWidget *vbox = gtk_vbox_new (FALSE, 2); GtkWidget *preview_image = gtk_image_new (); GtkWidget *preview_label = gtk_label_new (""); g_object_set_data (G_OBJECT (fsel), "image-widget", preview_image); g_object_set_data (G_OBJECT (fsel), "label-widget", preview_label); gtk_widget_set_size_request (vbox, PREVIEW_HSIZE, -1); gtk_box_pack_start (GTK_BOX (vbox), preview_image, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox), preview_label, FALSE, FALSE, 0); gtk_file_chooser_set_preview_widget (fsel, vbox); g_signal_connect (fsel, "update-preview", G_CALLBACK (update_preview_cb), NULL); update_preview_cb (fsel); } return fsel; }
bool dialog_open(int flags, const char *filters, char **out) { GtkWidget *dialog; GtkFileFilter *filter; GtkFileChooser *chooser; GtkFileChooserAction action; gint res; const char *extension; char default_name[128]; action = flags & DIALOG_FLAG_SAVE ? GTK_FILE_CHOOSER_ACTION_SAVE : GTK_FILE_CHOOSER_ACTION_OPEN; if (flags & DIALOG_FLAG_DIR) action = GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER; gtk_init_check(NULL, NULL); dialog = gtk_file_chooser_dialog_new( flags & DIALOG_FLAG_SAVE ? "Save File" : "Open File", NULL, action, "_Cancel", GTK_RESPONSE_CANCEL, flags & DIALOG_FLAG_SAVE ? "_Save" : "_Open", GTK_RESPONSE_ACCEPT, NULL ); chooser = GTK_FILE_CHOOSER(dialog); gtk_file_chooser_set_do_overwrite_confirmation(chooser, TRUE); if ((flags & DIALOG_FLAG_SAVE) && filters) { extension = filters + strlen(filters) + 3; sprintf(default_name, "untitled.%s", extension); gtk_file_chooser_set_current_name(chooser, default_name); } while (filters && *filters) { filter = gtk_file_filter_new(); gtk_file_filter_set_name(filter, filters); filters += strlen(filters) + 1; gtk_file_filter_add_pattern(filter, filters); gtk_file_chooser_add_filter(chooser, filter); filters += strlen(filters) + 1; } // Add a default 'any' file pattern. filter = gtk_file_filter_new(); gtk_file_filter_set_name(filter, "*"); gtk_file_filter_add_pattern(filter, "*"); gtk_file_chooser_add_filter(chooser, filter); res = gtk_dialog_run(GTK_DIALOG(dialog)); if (res == GTK_RESPONSE_ACCEPT) { *out = gtk_file_chooser_get_filename(chooser); } gtk_widget_destroy(dialog); while (gtk_events_pending()) gtk_main_iteration(); return res == GTK_RESPONSE_ACCEPT; }
int main(int argc, char **argv) { GtkBuilder* builder; GError* error = NULL; /* Starts Gtk+ subsystem */ gtk_init(&argc, &argv); /* Load GUI interface */ builder = gtk_builder_new(); if(!gtk_builder_add_from_file(builder, "gui/probwin.glade", &error)) { if(error) { g_warning("%s", error->message); g_error_free(error); } else { g_warning("Unknown error."); } return(1); } /* Get pointers to objects */ window = GTK_WINDOW(gtk_builder_get_object(builder, "window")); format_view = GTK_TREE_VIEW(gtk_builder_get_object(builder, "format_view")); format_model = GTK_LIST_STORE(gtk_builder_get_object(builder, "format_model")); team_a_name = GTK_ENTRY(gtk_builder_get_object(builder, "team_a_name")); team_b_name = GTK_ENTRY(gtk_builder_get_object(builder, "team_b_name")); prob_a_home = GTK_SPIN_BUTTON(gtk_builder_get_object(builder, "prob_a_home")); prob_a_road = GTK_SPIN_BUTTON(gtk_builder_get_object(builder, "prob_a_road")); num_games = GTK_SPIN_BUTTON(gtk_builder_get_object(builder, "num_games")); prob_b_home = GTK_LABEL(gtk_builder_get_object(builder, "prob_b_home")); prob_b_road = GTK_LABEL(gtk_builder_get_object(builder, "prob_b_road")); load_dialog = GTK_FILE_CHOOSER(gtk_builder_get_object(builder, "load_dialog")); save_dialog = GTK_FILE_CHOOSER(gtk_builder_get_object(builder, "save_dialog")); GtkFileFilter* file_filter = gtk_file_filter_new(); gtk_file_filter_set_name(file_filter, "Custom data file (*.probwin)"); gtk_file_filter_add_pattern(file_filter, "*.probwin"); gtk_file_chooser_add_filter(load_dialog, file_filter); gtk_file_chooser_add_filter(save_dialog, file_filter); /* Connect signals */ gtk_builder_connect_signals(builder, NULL); g_object_unref(G_OBJECT(builder)); gtk_widget_show(GTK_WIDGET(window)); gtk_main(); return(0); }
static gchar * msp_plugin_get_filename (PlannerPlugin *plugin) { PlannerWindow *window; GtkWidget *file_chooser; GtkFileFilter *filter; gint response; gchar *dir; gchar *filename; window = plugin->main_window; file_chooser = gtk_file_chooser_dialog_new (_("Import a File"), GTK_WINDOW (window), GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_OK, NULL); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("XML Files")); gtk_file_filter_add_pattern (filter, "*.xml"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (file_chooser), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("All Files")); gtk_file_filter_add_pattern (filter, "*"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (file_chooser), filter); dir = msp_plugin_get_last_dir (plugin); gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (file_chooser), dir); g_free (dir); gtk_window_set_modal (GTK_WINDOW (file_chooser), TRUE); gtk_widget_show (file_chooser); response = gtk_dialog_run (GTK_DIALOG (file_chooser)); gtk_widget_hide (file_chooser); filename = NULL; if (response == GTK_RESPONSE_OK) { filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_chooser)); } gtk_widget_destroy (file_chooser); if (filename) { dir = g_path_get_dirname (filename); msp_plugin_set_last_dir (plugin, dir); g_free (dir); } return filename; }
static void add_file_filter_to_file_chooser(GtkFileChooser *chooser) { GtkFileFilter *filter; filter = gtk_file_filter_new(); gtk_file_filter_set_name(filter, _("KonePure Windows profiles")); gtk_file_filter_add_pattern(filter, "*." ROCCAT_MOUSE_PROFILE_EXTENSION); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(chooser), filter); filter = gtk_file_filter_new(); gtk_file_filter_set_name(filter, _("All files")); gtk_file_filter_add_pattern(filter, "*"); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(chooser), filter); }
/** * ev_document_factory_add_filters: * @chooser: a #GtkFileChooser * @document: a #EvDocument, or %NULL * * Adds some file filters to @chooser. * Always add a "All documents" format. * * If @document is not %NULL, adds a #GtkFileFilter for @document's MIME type. * * If @document is %NULL, adds a #GtkFileFilter for each document type that atril * can handle. */ void ev_document_factory_add_filters (GtkWidget *chooser, EvDocument *document) { GList *all_types; GtkFileFilter *filter; GtkFileFilter *default_filter; GtkFileFilter *document_filter; g_return_if_fail (GTK_IS_FILE_CHOOSER (chooser)); g_return_if_fail (document == NULL || EV_IS_DOCUMENT (document)); all_types = ev_backends_manager_get_all_types_info (); default_filter = document_filter = filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("All Documents")); g_list_foreach (all_types, (GFunc)file_filter_add_mime_types, filter); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter); if (document) { EvTypeInfo *info; info = ev_backends_manager_get_document_type_info (document); default_filter = filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, info->desc); file_filter_add_mime_types (info, filter); g_free (info); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter); } else { GList *l; for (l = all_types; l; l = g_list_next (l)){ EvTypeInfo *info; info = (EvTypeInfo *)l->data; default_filter = filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, info->desc); file_filter_add_mime_types (info, filter); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter); } } g_list_foreach (all_types, (GFunc)g_free, NULL); g_list_free (all_types); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("All Files")); gtk_file_filter_add_pattern (filter, "*"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter); gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (chooser), document == NULL ? document_filter : default_filter); }
EXPORT void on_execute_menu_item_activate (GtkMenuItem *menuitem, gpointer user_data) { GtkWidget *file_chooser; GtkFileFilter *wizard_filter, *all_filter; int response; char *script_path; char *key; file_chooser = gtk_file_chooser_dialog_new ("Select script to run", GTK_WINDOW (warlock_get_widget ("main_window")), GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); key = preferences_get_key (PREF_SCRIPT_PATH); script_path = preferences_get_string (key); gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (file_chooser), script_path); g_free (script_path); g_free (key); wizard_filter = gtk_file_filter_new (); gtk_file_filter_set_name (wizard_filter, "Wizard Scripting files"); gtk_file_filter_add_pattern (wizard_filter, "*.[Cc][Mm][Dd]"); gtk_file_filter_add_pattern (wizard_filter, "*.[Ww][Ii][Zz]"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (file_chooser), wizard_filter); all_filter = gtk_file_filter_new (); gtk_file_filter_set_name (all_filter, "All files"); gtk_file_filter_add_pattern (all_filter, "*"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (file_chooser), all_filter); response = gtk_dialog_run (GTK_DIALOG (file_chooser)); if (response == GTK_RESPONSE_ACCEPT) { char *filename; filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_chooser)); script_load (filename, 0, NULL); g_free (filename); } gtk_widget_destroy (file_chooser); }
int main(int argc, char* argv[]) { regex_t fregex; gtk_init(&argc,&argv); // check the correct BASS was loaded if (HIWORD(BASS_GetVersion())!=BASSVERSION) { Error("An incorrect version of BASS was loaded"); return 0; } // enable floating-point DSP (not really necessary as the channels will be floating-point anyway) BASS_SetConfig(BASS_CONFIG_FLOATDSP,TRUE); // initialize default device if (!BASS_Init(-1,44100,0,NULL,NULL)) { Error("Can't initialize device"); return 0; } // initialize GUI glade=glade_xml_new(GLADE_PATH"dsptest.glade",NULL,NULL); if (!glade) return 0; win=GetWidget("window1"); if (!win) return 0; glade_xml_signal_autoconnect(glade); { // initialize file selector GtkFileFilter *filter; filesel=gtk_file_chooser_dialog_new("Open File",GTK_WINDOW(win),GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL,GTK_RESPONSE_CANCEL,GTK_STOCK_OPEN,GTK_RESPONSE_ACCEPT,NULL); filter=gtk_file_filter_new(); gtk_file_filter_set_name(filter,"Playable files"); regcomp(&fregex,"\\.(mo3|xm|mod|s3m|it|umx|mp[1-3]|ogg|wav|aif)$",REG_ICASE|REG_NOSUB|REG_EXTENDED); gtk_file_filter_add_custom(filter,GTK_FILE_FILTER_FILENAME,FileExtensionFilter,&fregex,NULL); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(filesel),filter); filter=gtk_file_filter_new(); gtk_file_filter_set_name(filter,"All files"); gtk_file_filter_add_pattern(filter,"*"); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(filesel),filter); } gtk_main(); gtk_widget_destroy(filesel); regfree(&fregex); BASS_Free(); return 0; }
static void add_common_filters_to_gtkchooser(GtkFileFilter *gfilter, GtkWindow *picker, std::string filtername) { gtk_file_filter_set_name(gfilter, filtername.c_str()); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(picker), gfilter); GtkFileFilter *allfilter = gtk_file_filter_new(); gtk_file_filter_add_pattern(allfilter, "*"); gtk_file_filter_set_name(allfilter, "All Files"); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(picker), allfilter); gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(picker), gfilter); }
static void browse_button_cb (GtkWidget *widget, gpointer data) { GtkWindow *parent = GTK_WINDOW (data); GtkFileFilter *filter; GtkWidget *file_dialog; file_dialog = gtk_file_chooser_dialog_new (_("Select User Image"), parent, GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); gtk_file_chooser_set_show_hidden (GTK_FILE_CHOOSER (file_dialog), FALSE); gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (file_dialog), TRUE); gtk_file_chooser_set_use_preview_label (GTK_FILE_CHOOSER (file_dialog), FALSE); if (facedir && g_file_test (facedir, G_FILE_TEST_IS_DIR)) { gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (file_dialog), facedir); gtk_file_chooser_add_shortcut_folder (GTK_FILE_CHOOSER (file_dialog), facedir, NULL); } else { gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (file_dialog), DATADIR "/pixmaps"); gtk_file_chooser_add_shortcut_folder (GTK_FILE_CHOOSER (file_dialog), DATADIR "/pixmaps", NULL); } filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("Images")); gtk_file_filter_add_pixbuf_formats (filter); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (file_dialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, _("All Files")); gtk_file_filter_add_pattern(filter, "*"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (file_dialog), filter); if (imagename != NULL) { gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (file_dialog), imagename); } add_preview_widget (file_dialog); g_signal_connect (G_OBJECT (file_dialog), "response", G_CALLBACK (install_response), NULL); gtk_widget_show (file_dialog); }