Blame ui/frob-gnupg-selector.c

Packit b00eeb
/*
Packit b00eeb
 * gnome-keyring
Packit b00eeb
 *
Packit b00eeb
 * Copyright (C) 2011 Collabora Ltd.
Packit b00eeb
 *
Packit b00eeb
 * This program is free software; you can redistribute it and/or modify
Packit b00eeb
 * it under the terms of the GNU Lesser General Public License as
Packit b00eeb
 * published by the Free Software Foundation; either version 2.1 of
Packit b00eeb
 * the License, or (at your option) any later version.
Packit b00eeb
 *
Packit b00eeb
 * This program is distributed in the hope that it will be useful, but
Packit b00eeb
 * WITHOUT ANY WARRANTY; without even the implied warranty of
Packit b00eeb
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit b00eeb
 * Lesser General Public License for more details.
Packit b00eeb
 *
Packit b00eeb
 * You should have received a copy of the GNU Lesser General Public
Packit b00eeb
 * License along with this program; if not, see <http://www.gnu.org/licenses/>.
Packit b00eeb
 *
Packit b00eeb
 * Author: Stef Walter <stefw@collabora.co.uk>
Packit b00eeb
 */
Packit b00eeb
Packit b00eeb
#include "config.h"
Packit b00eeb
Packit b00eeb
#include "gcr/gcr.h"
Packit b00eeb
#include "gcr/gcr-gnupg-collection.h"
Packit b00eeb
#include "gcr/gcr-gnupg-key.h"
Packit b00eeb
Packit b00eeb
#include "ui/gcr-live-search.h"
Packit b00eeb
#include "ui/gcr-list-selector-private.h"
Packit b00eeb
Packit b00eeb
#include <gtk/gtk.h>
Packit b00eeb
Packit b00eeb
#include <unistd.h>
Packit b00eeb
#include <string.h>
Packit b00eeb
#include <errno.h>
Packit b00eeb
Packit b00eeb
static void
Packit b00eeb
on_collection_loaded (GObject *source, GAsyncResult *result, gpointer unused)
Packit b00eeb
{
Packit b00eeb
	GError *error = NULL;
Packit b00eeb
Packit b00eeb
	_gcr_gnupg_collection_load_finish (GCR_GNUPG_COLLECTION (source), result, &error);
Packit b00eeb
	if (error) {
Packit b00eeb
		g_warning ("collection load failed: %s", error->message);
Packit b00eeb
		g_clear_error (&error);
Packit b00eeb
	}
Packit b00eeb
}
Packit b00eeb
Packit b00eeb
int
Packit b00eeb
main (int argc, char *argv[])
Packit b00eeb
{
Packit b00eeb
	GcrCollection *collection;
Packit b00eeb
	GcrListSelector *selector;
Packit b00eeb
	GtkWidget *scroll;
Packit b00eeb
	GtkDialog *dialog;
Packit b00eeb
	GtkWidget *search;
Packit b00eeb
	GtkBox *box;
Packit b00eeb
Packit b00eeb
	gtk_init (&argc, &argv);
Packit b00eeb
Packit b00eeb
	dialog = GTK_DIALOG (gtk_dialog_new ());
Packit b00eeb
	g_object_ref_sink (dialog);
Packit b00eeb
Packit b00eeb
	collection = _gcr_gnupg_collection_new (NULL);
Packit b00eeb
	selector = gcr_list_selector_new (collection);
Packit b00eeb
	search = _gcr_live_search_new (GTK_WIDGET (selector));
Packit b00eeb
	_gcr_list_selector_set_live_search (selector, GCR_LIVE_SEARCH (search));
Packit b00eeb
Packit b00eeb
	scroll = gtk_scrolled_window_new (NULL, NULL);
Packit b00eeb
	gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scroll), GTK_SHADOW_ETCHED_IN);
Packit b00eeb
	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
Packit b00eeb
	gtk_container_add (GTK_CONTAINER (scroll), GTK_WIDGET (selector));
Packit b00eeb
Packit b00eeb
	box = GTK_BOX (gtk_dialog_get_content_area (dialog));
Packit b00eeb
	gtk_box_pack_start (box, GTK_WIDGET (scroll), TRUE, TRUE, 0);
Packit b00eeb
	gtk_box_pack_end (box, search, FALSE, TRUE, 0);
Packit b00eeb
Packit b00eeb
	gtk_widget_show (GTK_WIDGET (selector));
Packit b00eeb
	gtk_widget_show (scroll);
Packit b00eeb
Packit b00eeb
	_gcr_gnupg_collection_load_async (GCR_GNUPG_COLLECTION (collection), NULL,
Packit b00eeb
	                                  on_collection_loaded, NULL);
Packit b00eeb
Packit b00eeb
	gtk_window_set_default_size (GTK_WINDOW (dialog), 550, 400);
Packit b00eeb
	gtk_container_set_border_width (GTK_CONTAINER (dialog), 20);
Packit b00eeb
Packit b00eeb
	g_object_unref (collection);
Packit b00eeb
Packit b00eeb
	gtk_dialog_run (dialog);
Packit b00eeb
	gtk_widget_destroy (GTK_WIDGET (dialog));
Packit b00eeb
	g_object_unref (dialog);
Packit b00eeb
Packit b00eeb
	return 0;
Packit b00eeb
}