gchar *path;
GnomeVFSMonitorHandle *monitor;
GHashTable *connections;
+ GtkTreeModel *model;
};
G_DEFINE_TYPE (StrongswanConnections, strongswan_connections, G_TYPE_OBJECT);
strongswan_connections_load_connections (StrongswanConnections *connections)
{
StrongswanConnectionsPrivate *priv = connections->priv;
+ GHashTableIter iter;
+ gpointer key, value;
gchar **groups;
guint i;
}
}
g_strfreev (groups);
+
+ gtk_list_store_clear (GTK_LIST_STORE (priv->model));
+ g_hash_table_iter_init (&iter, priv->connections);
+ while (g_hash_table_iter_next (&iter, &key, &value))
+ {
+ gtk_list_store_insert_with_values (GTK_LIST_STORE (priv->model),
+ NULL,
+ -1,
+ 0, key,
+ -1);
+ }
}
static void
g_free,
g_object_unref);
+ priv->model = GTK_TREE_MODEL (gtk_list_store_new (2,
+ G_TYPE_STRING,
+ G_TYPE_STRING));
+ gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (priv->model),
+ 0,
+ GTK_SORT_ASCENDING);
}
static void
g_return_if_fail (STRONGSWAN_IS_CONNECTIONS (object));
priv = STRONGSWAN_CONNECTIONS (object)->priv;
+ if (priv->model)
+ {
+ priv->model = (g_object_unref (priv->model), NULL);
+ }
+
G_OBJECT_CLASS (strongswan_connections_parent_class)->dispose (object);
}
g_type_class_add_private (klass, sizeof (StrongswanConnectionsPrivate));
}
+GtkTreeModel *
+strongswan_connections_get_model (StrongswanConnections *self)
+{
+ StrongswanConnectionsPrivate *priv = self->priv;
+ return g_object_ref (priv->model);
+}
+
+void
+strongswan_connections_setup_column_renderers (StrongswanConnections *self,
+ GtkCellLayout *layout)
+{
+ GtkCellRenderer *renderer;
+ renderer = gtk_cell_renderer_text_new ();
+ gtk_cell_layout_pack_start (layout,
+ renderer,
+ TRUE);
+ gtk_cell_layout_add_attribute (layout,
+ renderer,
+ "text", 0);
+}
+
StrongswanConnections *
strongswan_connections_new (void)
{
#ifndef __STRONGSWAN_CONNECTIONS_H__
#define __STRONGSWAN_CONNECTIONS_H__
+#include <gtk/gtk.h>
+
#include "strongswan-connection.h"
G_BEGIN_DECLS
StrongswanConnections *strongswan_connections_new (void);
+GtkTreeModel *strongswan_connections_get_model (StrongswanConnections *connections);
+void strongswan_connections_setup_column_renderers (StrongswanConnections *connections, GtkCellLayout *layout);
+
StrongswanConnection *strongswan_connections_get_connection (StrongswanConnections *self, const gchar *name);
void strongswan_connections_save_connection (StrongswanConnections *self, StrongswanConnection *conn);
void strongswan_connections_remove_connection (StrongswanConnections *self, const gchar *name);