static VALUE rg_initialize(int argc, VALUE *argv, VALUE self) { VALUE options, rb_title, rb_parent, rb_manager, rb_button_ary; const gchar *title; GtkWindow *parent; GtkRecentManager *manager; GtkWidget *dialog; rb_scan_args(argc, argv, "01", &options); rbg_scan_options(options, "title", &rb_title, "parent", &rb_parent, "manager", &rb_manager, "buttons", &rb_button_ary, NULL); title = RVAL2CSTR_ACCEPT_NIL(rb_title); parent = NIL_P(rb_parent) ? NULL : RVAL2GTKWINDOW(rb_parent); manager = NIL_P(rb_manager) ? NULL : RVAL2GTKRECENTMANAGER(rb_manager); if (manager) { dialog = gtk_recent_chooser_dialog_new_for_manager(title, parent, manager, NULL, NULL); } else { dialog = gtk_recent_chooser_dialog_new(title, parent, NULL, NULL); } RBGTK_INITIALIZE(self, dialog); if (!NIL_P(rb_button_ary)) rb_funcall2(self, rb_intern("add_buttons"), RARRAY_LEN(rb_button_ary), RARRAY_PTR(rb_button_ary)); return Qnil; }
int main(int argc, char *argv[]) { gtk_init(&argc, &argv); GtkWidget *recentchooserdialog = gtk_recent_chooser_dialog_new("RecentChooserDialog", NULL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_OK, NULL); gtk_dialog_run(GTK_DIALOG(recentchooserdialog)); gtk_widget_destroy(recentchooserdialog); return 0; }
static void recent_cb (GSimpleAction *action, GVariant *parameter, gpointer app) { GtkWidget *dialog; GtkWindow *win; GtkRecentInfo *info; GtkRecentChooser *chooser; GtkRecentFilter *filter; GtkRecentFilter *filter_all; const gchar *uri = NULL; win = gtk_application_get_active_window (app); dialog = gtk_recent_chooser_dialog_new ( _("Recent Files"), win, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_Open"), GTK_RESPONSE_ACCEPT, NULL); gtk_recent_chooser_set_sort_type (GTK_RECENT_CHOOSER (dialog), GTK_RECENT_SORT_MRU); /* Most Recently Used first */ gtk_recent_chooser_set_show_icons (GTK_RECENT_CHOOSER (dialog), TRUE); filter = gtk_recent_filter_new (); gtk_recent_filter_set_name (filter, _("Parlatype")); gtk_recent_filter_add_application (filter, "parlatype"); gtk_recent_filter_add_mime_type (filter, "audio/*"); gtk_recent_chooser_add_filter (GTK_RECENT_CHOOSER (dialog), filter); filter_all = gtk_recent_filter_new (); gtk_recent_filter_set_name (filter_all, _("All files")); gtk_recent_filter_add_pattern (filter_all, "*"); gtk_recent_chooser_add_filter (GTK_RECENT_CHOOSER (dialog), filter_all); gtk_recent_chooser_set_filter (GTK_RECENT_CHOOSER (dialog), filter); if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) { chooser = GTK_RECENT_CHOOSER (dialog); info = gtk_recent_chooser_get_current_item (chooser); uri = gtk_recent_info_get_uri (info); } gtk_widget_destroy (dialog); if (uri) { /* GStreamer has problems with uris from recent chooser, as a workaround use GFile magic */ GFile *file = g_file_new_for_uri (uri); gchar *tmp = g_file_get_uri (file); pt_window_open_file (PT_WINDOW (win), tmp); g_free (tmp); g_object_unref (file); gtk_recent_info_unref (info); } }
JNIEXPORT jlong JNICALL Java_org_gnome_gtk_GtkRecentChooserDialog_gtk_1recent_1chooser_1dialog_1new ( JNIEnv* env, jclass cls, jstring _title, jlong _parent, jstring _firstButtonText ) { GtkWidget* result; jlong _result; const gchar* title; GtkWindow* parent; const gchar* firstButtonText; // convert parameter title title = (const gchar*) bindings_java_getString(env, _title); if (title == NULL) { return 0L; // Java Exception already thrown } // convert parameter parent parent = (GtkWindow*) _parent; // convert parameter firstButtonText firstButtonText = (const gchar*) bindings_java_getString(env, _firstButtonText); if (firstButtonText == NULL) { return 0L; // Java Exception already thrown } // call function result = gtk_recent_chooser_dialog_new(title, parent, firstButtonText, NULL); // cleanup parameter title bindings_java_releaseString(title); // cleanup parameter parent // cleanup parameter firstButtonText bindings_java_releaseString(firstButtonText); // translate return value to JNI type _result = (jlong) result; // cleanup return value if (result != NULL) { bindings_java_memory_cleanup((GObject*)result, FALSE); } // and finally return _result; }
gint main (gint argc, gchar **argv) { GtkWidget *window; GtkWidget *widget; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "Toplevel widget embedding example"); g_signal_connect (window, "destroy", gtk_main_quit, NULL); notebook = gtk_notebook_new (); gtk_notebook_set_scrollable (GTK_NOTEBOOK (notebook), TRUE); gtk_container_add (GTK_CONTAINER (window), notebook); gtk_widget_realize (notebook); widget = gtk_about_dialog_new (); toplevel_delete_event (widget, NULL, NULL); g_signal_connect (widget, "delete-event", G_CALLBACK (toplevel_delete_event), NULL); widget = gtk_file_chooser_dialog_new ("the chooser", NULL, GTK_FILE_CHOOSER_ACTION_OPEN, NULL, NULL); toplevel_delete_event (widget, NULL, NULL); g_signal_connect (widget, "delete-event", G_CALLBACK (toplevel_delete_event), NULL); widget = gtk_color_chooser_dialog_new ("the colorsel", NULL); toplevel_delete_event (widget, NULL, NULL); g_signal_connect (widget, "delete-event", G_CALLBACK (toplevel_delete_event), NULL); widget = gtk_font_chooser_dialog_new ("the fontsel", NULL); toplevel_delete_event (widget, NULL, NULL); g_signal_connect (widget, "delete-event", G_CALLBACK (toplevel_delete_event), NULL); widget = gtk_recent_chooser_dialog_new ("the recent chooser", NULL, "_Cancel", GTK_RESPONSE_CANCEL, "_Open", GTK_RESPONSE_ACCEPT, NULL); toplevel_delete_event (widget, NULL, NULL); g_signal_connect (widget, "delete-event", G_CALLBACK (toplevel_delete_event), NULL); widget = gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, "Do you have any questions ?"); toplevel_delete_event (widget, NULL, NULL); g_signal_connect (widget, "delete-event", G_CALLBACK (toplevel_delete_event), NULL); gtk_widget_show_all (window); gtk_main (); return 0; }