static void test_action_widgets (void) { GtkWidget *dialog; GtkFileChooserAction action; gboolean passed; dialog = gtk_file_chooser_dialog_new ("Test file chooser", NULL, GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL); gtk_widget_show_now (dialog); action = gtk_file_chooser_get_action (GTK_FILE_CHOOSER (dialog)); passed = test_widgets_for_current_action (GTK_FILE_CHOOSER_DIALOG (dialog), action); log_test (passed, "test_action_widgets(): widgets for initial action %s", get_action_name (action)); g_assert (passed); passed = foreach_action (GTK_FILE_CHOOSER_DIALOG (dialog), switch_from_action_cb, NULL); log_test (passed, "test_action_widgets(): all transitions through property change"); g_assert (passed); gtk_widget_destroy (dialog); }
static void open_cb(GtkMenuItem *menuitem, GtkBuilder *builder) { GtkFileChooserDialog *file_chooser = GTK_FILE_CHOOSER_DIALOG(gtk_builder_get_object(builder, "file-chooser-dialog")); gint result = gtk_dialog_run(GTK_DIALOG(file_chooser)); g_message("open_cb result: %d, accept: %d\n", result, GTK_RESPONSE_ACCEPT); switch (result) { case GTK_RESPONSE_APPLY: { g_message("open file"); float alpha; unsigned int fft_nbits; unsigned int use_logscale; set_parameters_from_prefs(builder, &alpha, &fft_nbits, &use_logscale); char *file_name = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(file_chooser)); GtkImage *canvas = GTK_IMAGE(gtk_builder_get_object(builder, "canvas")); open_file(file_name, alpha, fft_nbits, use_logscale, canvas); g_free(file_name); break; } case GTK_RESPONSE_CANCEL: // fallthrough default: break; } gtk_widget_hide(GTK_WIDGET(file_chooser)); }
static void store_save_settings(GtkamSave *save) { gchar *savedir,*t; gchar buf[5]; /* Directory */ savedir = g_strdup (gtk_file_chooser_get_filename ( GTK_FILE_CHOOSER_DIALOG (save))); if (savedir) { if (strlen (savedir) > 255) savedir[255] = '\0'; if (!g_file_test (savedir, G_FILE_TEST_IS_DIR)) { t = g_path_get_dirname (savedir); g_free (savedir); savedir = t; } gp_setting_set ("gtkam", "save-dir", savedir); g_free (savedir); } /* toggle buttons */ #define STORE_TOGGLE(NAME) \ snprintf(buf,sizeof(buf), "%d", gtk_toggle_button_get_active( \ save->priv->toggle_ ## NAME)); \ gp_setting_set("gtkam","save-" #NAME,buf) STORE_TOGGLE(preview); STORE_TOGGLE(normal); STORE_TOGGLE(raw); STORE_TOGGLE(audio); STORE_TOGGLE(exif); STORE_TOGGLE(filename_camera); /* prefix entry */ if (g_slist_length (save->priv->data) > 1) { /* only when saving several files */ gp_setting_set("gtkam", "save-prefix", (gchar *) gtk_entry_get_text (GTK_ENTRY (save->priv->prefix_entry))); } }
static GtkFileChooserDefault * get_impl_from_dialog (GtkWidget *dialog) { GtkFileChooserDialog *d; GtkFileChooserDialogPrivate *dialog_priv; GtkFileChooserWidget *chooser_widget; GtkFileChooserWidgetPrivate *widget_priv; GtkFileChooserDefault *impl; d = GTK_FILE_CHOOSER_DIALOG (dialog); dialog_priv = d->priv; chooser_widget = GTK_FILE_CHOOSER_WIDGET (dialog_priv->widget); if (!chooser_widget) g_error ("BUG: dialog_priv->widget is not a GtkFileChooserWidget"); widget_priv = chooser_widget->priv; impl = (GtkFileChooserDefault *) (widget_priv->impl); if (!impl) g_error ("BUG: widget_priv->impl is not a GtkFileChooserDefault"); return impl; }
void ags_machine_open_response_callback(GtkDialog *dialog, gint response, AgsMachine *machine) { GtkFileChooserDialog *file_chooser; GtkCheckButton *overwrite; GtkCheckButton *create; GSList *filenames; file_chooser = GTK_FILE_CHOOSER_DIALOG(dialog); if(response == GTK_RESPONSE_ACCEPT){ filenames = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(file_chooser)); overwrite = g_object_get_data(G_OBJECT(dialog), "overwrite"); create = g_object_get_data(G_OBJECT(dialog), "create"); ags_machine_open_files(machine, filenames, GTK_TOGGLE_BUTTON(overwrite)->active, GTK_TOGGLE_BUTTON(create)->active); } gtk_widget_destroy(GTK_WIDGET(file_chooser)); }
static void spektro_activate_cb(GtkApplication *app, gpointer user_data) { GtkBuilder *builder = gtk_builder_new_from_file("spektro.ui"); GtkApplicationWindow *app_window = GTK_APPLICATION_WINDOW( gtk_builder_get_object(builder, "main-window")); g_object_set(G_OBJECT(app_window), "application", app, NULL); gtk_application_window_set_show_menubar(app_window, FALSE); GtkGrid *grid = GTK_GRID(gtk_builder_get_object(builder, "grid")); // set up area where the spectrograph is displayed GtkScrolledWindow *scroll =GTK_SCROLLED_WINDOW( gtk_builder_get_object(builder, "scrolledwindow")); GtkImage *canvas = GTK_IMAGE(gtk_builder_get_object(builder, "canvas")); // file menu GtkFileChooserDialog *file_chooser = GTK_FILE_CHOOSER_DIALOG(gtk_builder_get_object(builder, "file-chooser-dialog")); GtkMenuItem *menu_open = GTK_MENU_ITEM(gtk_builder_get_object(builder, "menu-file-open")); g_signal_connect(G_OBJECT(menu_open), "activate", G_CALLBACK(open_cb), builder); GtkMenuItem *menu_quit = GTK_MENU_ITEM(gtk_builder_get_object(builder, "menu-file-quit")); g_signal_connect(G_OBJECT(menu_quit), "activate", G_CALLBACK(quit_cb), app); // open preferences window with menu GtkDialog *prefs = GTK_DIALOG(gtk_builder_get_object(builder, "preferences-dialog")); GtkMenuItem *menu_prefs = GTK_MENU_ITEM(gtk_builder_get_object(builder, "menu-edit-prefs")); g_signal_connect(G_OBJECT(menu_prefs), "activate", G_CALLBACK(prefs_cb), builder); // about dialog GtkAboutDialog *about = GTK_ABOUT_DIALOG(gtk_builder_get_object(builder, "about-dialog")); GtkMenuItem *menu_about = GTK_MENU_ITEM(gtk_builder_get_object(builder, "menu-help-about")); g_signal_connect(G_OBJECT(menu_about), "activate", G_CALLBACK(about_cb), about); return; }
static int save_file (GtkamSave *save, const char *filename, CameraFile *file, CameraFileType type, guint n) { gchar *full_path, *full_filename, *dirname, *msg, *number_filename; const char *mime_type; const gchar *fsel_filename, *fsel_path, *prefix, *suffix; GtkWidget *dialog; int result; gp_file_get_mime_type (file, &mime_type); fsel_path = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER_DIALOG (save)); if ((save->priv->toggle_filename_camera->active) || (g_slist_length (save->priv->data) == 1)) { /* Use filename provided by the CameraFile */ full_filename = create_full_filename (filename, type); if (g_slist_length (save->priv->data) == 1) full_path = g_strdup(fsel_path); else full_path = concat_dir_and_file (fsel_path, full_filename); g_free (full_filename); } else { /* Use filename in prefix */ prefix = g_locale_from_utf8 (gtk_entry_get_text (GTK_ENTRY (save->priv->prefix_entry)), -1, NULL, NULL, NULL); suffix = strrchr (mime_type, '/'); suffix++; number_filename = g_strdup_printf ("%s%04i.%s", prefix, n, suffix); full_filename = create_full_filename (number_filename, type); g_free (number_filename); full_path = concat_dir_and_file (fsel_path, full_filename); g_free (full_filename); } /* FIXME Check which is user, and prompt the user */ if (!save->priv->quiet && file_exists (full_path)) { msg = g_strdup_printf (_("The file '%s' already exists."), full_path); if (!save->priv->err_shown) { dialog = gtkam_error_new (GP_ERROR_FILE_EXISTS, NULL, GTK_WIDGET (save), msg); gtk_window_set_transient_for (GTK_WINDOW (dialog), save->priv->main_window); gtk_widget_show (dialog); g_free (msg); g_free (full_path); save->priv->err_shown = TRUE; } return -1; } /* FIXME Check for sufficient disk space for this file, or calculate total disk space required for all files before save process starts */ result = gp_file_save (file, full_path); if (result < 0) { if (!save->priv->err_shown) { dialog = gtkam_error_new (result, NULL, GTK_WIDGET (save), _("Could not save file to '%s'."), full_path); gtk_widget_show (dialog); save->priv->err_shown = TRUE; } } else { /* Add the file to the list of files to be opened with the specified external program */ if (!save->priv->filelist) save->priv->filelist = g_string_new (""); g_string_append_printf (save->priv->filelist, " %s", full_path); } g_free (full_path); return result; }
void ags_ffplayer_open_dialog_response_callback(GtkWidget *widget, gint response, AgsMachine *machine) { AgsWindow *window; AgsFFPlayer *ffplayer; GtkFileChooserDialog *file_chooser; AgsSoundcard *soundcard; window = AGS_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(machine))); ffplayer = AGS_FFPLAYER(machine); file_chooser = GTK_FILE_CHOOSER_DIALOG(widget); if(response == GTK_RESPONSE_ACCEPT){ gchar *filename; filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(widget)); if(g_str_has_suffix(filename, ".sf2\0")){ AgsIpatch *ipatch; AgsPlayable *playable; gchar **preset; GError *error; /* clear preset and instrument */ ags_combo_box_text_remove_all(ffplayer->preset); ags_combo_box_text_remove_all(ffplayer->instrument); /* Ipatch related */ ipatch = g_object_new(AGS_TYPE_IPATCH, "mode\0", AGS_IPATCH_READ, NULL); g_object_set(ipatch, "filename\0", filename, NULL); ffplayer->ipatch = ipatch; ipatch->soundcard = window->soundcard; playable = AGS_PLAYABLE(ipatch); error = NULL; ags_playable_level_select(playable, 0, filename, &error); /* select first preset */ ipatch->nth_level = 1; preset = ags_playable_sublevel_names(playable); error = NULL; ags_playable_level_select(playable, 1, *preset, &error); /* fill ffplayer->preset */ while(preset != NULL && preset[0] != NULL){ gtk_combo_box_text_append_text(ffplayer->preset, *preset); preset++; } } gtk_combo_box_set_active(GTK_COMBO_BOX(ffplayer->preset), 0); } gtk_widget_destroy(widget); }