JNIEXPORT jboolean JNICALL Java_org_gnome_gtk_GtkFileChooser_gtk_1file_1chooser_1add_1shortcut_1folder_1uri ( JNIEnv* env, jclass cls, jlong _self, jstring _uri ) { gboolean result; jboolean _result; GtkFileChooser* self; const char* uri; GError* error = NULL; // convert parameter self self = (GtkFileChooser*) _self; // convert parameter uri uri = (const char*) bindings_java_getString(env, _uri); if (uri == NULL) { return JNI_FALSE; // Java Exception already thrown } // call function result = gtk_file_chooser_add_shortcut_folder_uri(self, uri, &error); // cleanup parameter self // cleanup parameter uri bindings_java_releaseString(uri); // check for error if (error) { bindings_java_throwGlibException(env, error); return JNI_FALSE; } // translate return value to JNI type _result = (jboolean) result; // and finally return _result; }
int clip_GTK_FILECHOOSERADDSHORTCUTFOLDERURI(ClipMachine * ClipMachineMemory) { C_object *cchooser = _fetch_co_arg(ClipMachineMemory); gchar *name = _clip_parc(ClipMachineMemory, 2); GError *error; CHECKCOBJ(cchooser, GTK_IS_FILE_CHOOSER(cchooser->object)); CHECKARG(2, CHARACTER_type_of_ClipVarType); LOCALE_TO_UTF(name); _clip_retl(ClipMachineMemory, gtk_file_chooser_add_shortcut_folder_uri(GTK_FILE_CHOOSER(cchooser->object), name, &error)); FREE_TEXT(name); return 0; err: return 1; }
static void copy_to_folder_dialog (GthBrowser *browser, GList *files, gboolean move) { GSettings *settings; GtkWidget *dialog; char *start_uri; GList *history; GList *scan; GtkWidget *box; GtkWidget *view_destination_button; settings = g_settings_new (GTHUMB_FILE_MANAGER_SCHEMA); dialog = gtk_file_chooser_dialog_new (move ? _("Move To") : _("Copy To"), GTK_WINDOW (browser), GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, _GTK_LABEL_CANCEL, GTK_RESPONSE_CANCEL, (move ? _("Move") : _("Copy")), GTK_RESPONSE_ACCEPT, NULL); _gtk_dialog_add_class_to_response (GTK_DIALOG (dialog), GTK_RESPONSE_ACCEPT, GTK_STYLE_CLASS_SUGGESTED_ACTION); start_uri = g_settings_get_string (settings, PREF_FILE_MANAGER_COPY_LAST_FOLDER); if ((start_uri == NULL) || (strcmp (start_uri, "") == 0)) { g_free (start_uri); start_uri = g_strdup (get_home_uri ()); } gtk_file_chooser_set_uri (GTK_FILE_CHOOSER (dialog), start_uri); g_free(start_uri); history = _g_settings_get_string_list (settings, PREF_FILE_MANAGER_COPY_HISTORY); for (scan = history; scan; scan = scan->next) { char *uri = scan->data; gtk_file_chooser_add_shortcut_folder_uri (GTK_FILE_CHOOSER (dialog), uri, NULL); } box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); gtk_container_set_border_width (GTK_CONTAINER (box), 6); gtk_widget_show (box); view_destination_button = gtk_check_button_new_with_mnemonic (_("_View the destination")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (view_destination_button), g_settings_get_boolean (settings, PREF_FILE_MANAGER_COPY_VIEW_DESTINATION)); gtk_widget_show (view_destination_button); gtk_box_pack_start (GTK_BOX (box), view_destination_button, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), box, FALSE, FALSE, 0); if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) { char *destination_uri; destination_uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (dialog)); if (destination_uri != NULL) { gboolean view_destination; /* save the options */ view_destination = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (view_destination_button)); g_settings_set_boolean (settings, PREF_FILE_MANAGER_COPY_VIEW_DESTINATION, view_destination); g_settings_set_string (settings, PREF_FILE_MANAGER_COPY_LAST_FOLDER, destination_uri); /* save the destination in the history list, prevent * the list from growing without limit. */ history = g_list_prepend (history, g_strdup (destination_uri)); while (g_list_length (history) > MAX_HISTORY_LENGTH) { GList *link = g_list_last (history); history = g_list_remove_link (history, link); _g_string_list_free (link); } _g_settings_set_string_list (settings, PREF_FILE_MANAGER_COPY_HISTORY, history); /* copy / move the files */ copy_files_to_folder (browser, files, move, destination_uri, view_destination); } g_free (destination_uri); } _g_string_list_free (history); gtk_widget_destroy (dialog); g_object_unref (settings); }
int main (int argc, char **argv) { GtkWidget *control_window; GtkWidget *vbbox; GtkWidget *button; GtkWidget *dialog; GtkWidget *prop_editor; GtkFileSystem *file_system; GtkFileFilter *filter; GtkWidget *preview_vbox; GtkWidget *extra; gtk_init (&argc, &argv); #ifdef USE_GNOME_VFS file_system = gtk_file_system_gnome_vfs_new (); #else file_system = gtk_file_system_unix_new (); #endif dialog = g_object_new (GTK_TYPE_FILE_CHOOSER_DIALOG, "action", GTK_FILE_CHOOSER_ACTION_OPEN, "file-system", file_system, "title", "Select a file", NULL); gtk_dialog_add_buttons (GTK_DIALOG (dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_OK, NULL); gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); g_signal_connect (dialog, "selection-changed", G_CALLBACK (print_selected), NULL); g_signal_connect (dialog, "current-folder-changed", G_CALLBACK (print_current_folder), NULL); g_signal_connect (dialog, "response", G_CALLBACK (response_cb), NULL); /* Filters */ 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); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "No backup files"); gtk_file_filter_add_custom (filter, GTK_FILE_FILTER_DISPLAY_NAME, no_backup_files_filter, NULL, NULL); gtk_file_filter_add_mime_type (filter, "image/png"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter); /* Make this filter the default */ gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (dialog), filter); filter = gtk_file_filter_new (); gtk_file_filter_set_name (filter, "PNG and JPEG"); gtk_file_filter_add_mime_type (filter, "image/jpeg"); gtk_file_filter_add_mime_type (filter, "image/png"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter); /* Preview widget */ preview_vbox = gtk_vbox_new (0, FALSE); gtk_file_chooser_set_preview_widget (GTK_FILE_CHOOSER (dialog), preview_vbox); preview_label = gtk_label_new (NULL); gtk_box_pack_start (GTK_BOX (preview_vbox), preview_label, TRUE, TRUE, 0); gtk_misc_set_padding (GTK_MISC (preview_label), 6, 6); preview_image = gtk_image_new (); gtk_box_pack_start (GTK_BOX (preview_vbox), preview_image, TRUE, TRUE, 0); gtk_misc_set_padding (GTK_MISC (preview_image), 6, 6); update_preview_cb (GTK_FILE_CHOOSER (dialog)); g_signal_connect (dialog, "update-preview", G_CALLBACK (update_preview_cb), NULL); /* Extra widget */ extra = gtk_check_button_new_with_mnemonic ("Lar_t whoever asks about this button"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (extra), TRUE); gtk_file_chooser_set_extra_widget (GTK_FILE_CHOOSER (dialog), extra); /* Shortcuts */ gtk_file_chooser_add_shortcut_folder_uri (GTK_FILE_CHOOSER (dialog), "file:///usr/share/pixmaps", NULL); /* Done with the dialog */ gtk_window_set_default_size (GTK_WINDOW (dialog), 600, 400); /* show_all() to reveal bugs in composite widget handling */ gtk_widget_show_all (dialog); /* Extra controls for manipulating the test environment */ prop_editor = create_prop_editor (G_OBJECT (dialog), GTK_TYPE_FILE_CHOOSER); control_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); vbbox = gtk_vbutton_box_new (); gtk_container_add (GTK_CONTAINER (control_window), vbbox); button = gtk_button_new_with_mnemonic ("_Select all"); gtk_container_add (GTK_CONTAINER (vbbox), button); g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_file_chooser_select_all), dialog); button = gtk_button_new_with_mnemonic ("_Unselect all"); gtk_container_add (GTK_CONTAINER (vbbox), button); g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_file_chooser_unselect_all), dialog); gtk_widget_show_all (control_window); gtk_main (); return 0; }
char * totem_add_subtitle (GtkWindow *parent, const char *uri) { GtkWidget *fs; GSettings *settings; char *new_path; char *subtitle = NULL; gboolean folder_set; fs = gtk_file_chooser_dialog_new (_("Select Text Subtitles"), parent, GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); gtk_dialog_set_default_response (GTK_DIALOG (fs), GTK_RESPONSE_ACCEPT); gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (fs), FALSE); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (fs), filter_all); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (fs), filter_subs); gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (fs), filter_subs); settings = g_settings_new (TOTEM_GSETTINGS_SCHEMA); folder_set = FALSE; /* Add the subtitles cache dir as a shortcut */ new_path = g_build_filename (g_get_user_cache_dir (), "totem", "subtitles", NULL); gtk_file_chooser_add_shortcut_folder_uri (GTK_FILE_CHOOSER (fs), new_path, NULL); g_free (new_path); /* Add the last open path as a shortcut */ new_path = g_settings_get_string (settings, "open-uri"); if (*new_path != '\0') gtk_file_chooser_add_shortcut_folder_uri (GTK_FILE_CHOOSER (fs), new_path, NULL); g_free (new_path); /* Try to set the passed path as the current folder */ if (uri != NULL) { folder_set = gtk_file_chooser_set_current_folder_uri (GTK_FILE_CHOOSER (fs), uri); gtk_file_chooser_add_shortcut_folder_uri (GTK_FILE_CHOOSER (fs), uri, NULL); } /* And set it as home if it fails */ if (folder_set == FALSE) { gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (fs), g_get_home_dir ()); } totem_add_default_dirs (GTK_FILE_CHOOSER (fs)); if (gtk_dialog_run (GTK_DIALOG (fs)) == GTK_RESPONSE_ACCEPT) { subtitle = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (fs)); } gtk_widget_destroy (fs); g_object_unref (settings); return subtitle; }
void ags_drum_input_pad_open_callback(GtkWidget *widget, AgsDrumInputPad *drum_input_pad) { GtkFileChooserDialog *file_chooser; GtkHBox *hbox; GtkLabel *label; GtkSpinButton *spin_button; GtkToggleButton *play; if(drum_input_pad->file_chooser != NULL) return; drum_input_pad->file_chooser = file_chooser = (GtkFileChooserDialog *) gtk_file_chooser_dialog_new(i18n("Open File"), (GtkWindow *) gtk_widget_get_toplevel((GtkWidget *) drum_input_pad), GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); gtk_file_chooser_add_shortcut_folder_uri(GTK_FILE_CHOOSER(file_chooser), "file:///usr/share/hydrogen/data/drumkits", NULL); gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(file_chooser), FALSE); g_object_set_data((GObject *) file_chooser, (char *) g_type_name(AGS_TYPE_AUDIO_FILE), NULL); g_object_set_data((GObject *) file_chooser, AGS_DRUM_INPUT_PAD_OPEN_AUDIO_FILE_NAME, NULL); hbox = (GtkHBox *) gtk_hbox_new(FALSE, 0); gtk_file_chooser_set_extra_widget((GtkFileChooser *) file_chooser, (GtkWidget *) hbox); label = (GtkLabel *) gtk_label_new(i18n("channel: ")); gtk_box_pack_start((GtkBox *) hbox, (GtkWidget *) label, FALSE, FALSE, 0); spin_button = (GtkSpinButton *) gtk_spin_button_new_with_range(0.0, AGS_AUDIO(AGS_PAD(drum_input_pad)->channel->audio)->audio_channels - 1, 1.0); g_object_set_data((GObject *) file_chooser, AGS_DRUM_INPUT_PAD_OPEN_SPIN_BUTTON, spin_button); gtk_box_pack_start((GtkBox *) hbox, (GtkWidget *) spin_button, FALSE, FALSE, 0); if(drum_input_pad->pad.group->active){ gtk_widget_set_sensitive((GtkWidget *) spin_button, FALSE); } #if 0 play = (GtkToggleButton *) g_object_new(GTK_TYPE_TOGGLE_BUTTON, "label", GTK_STOCK_MEDIA_PLAY, "use-stock", TRUE, "use-underline", TRUE, NULL); gtk_box_pack_start((GtkBox *) GTK_DIALOG(file_chooser)->action_area, (GtkWidget *) play, FALSE, FALSE, 0); gtk_box_reorder_child((GtkBox *) GTK_DIALOG(file_chooser)->action_area, (GtkWidget *) play, 0); #endif gtk_widget_show_all((GtkWidget *) file_chooser); g_signal_connect((GObject *) file_chooser, "response", G_CALLBACK(ags_drum_input_pad_open_response_callback), (gpointer) drum_input_pad); }