From adeda41eb895e75bb3884c14e123509d792635fc Mon Sep 17 00:00:00 2001 From: "Javier S. Pedro" Date: Fri, 14 Jan 2011 21:02:31 +0100 Subject: implementing presets --- preset_list.c | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) (limited to 'preset_list.c') diff --git a/preset_list.c b/preset_list.c index 0fef49b..5621f9f 100644 --- a/preset_list.c +++ b/preset_list.c @@ -2,10 +2,11 @@ * GPL 2 */ -#include #include +#include #include "presets.h" +#include "preset_renderer.h" #include "preset_list.h" G_DEFINE_TYPE(CFmPresetList, cfm_preset_list, HILDON_TYPE_STACKABLE_WINDOW); @@ -18,6 +19,7 @@ G_DEFINE_TYPE(CFmPresetList, cfm_preset_list, HILDON_TYPE_STACKABLE_WINDOW); struct _CFmPresetListPrivate { HildonTouchSelector *sel; HildonTouchSelectorColumn *col; + GtkCellRenderer *renderer; }; enum { @@ -83,6 +85,21 @@ static void cfm_preset_list_get_property(GObject *object, guint property_id, } } +static void cfm_preset_list_dispose(GObject *object) +{ + CFmPresetList *self = CFM_PRESET_LIST(object); + CFmPresetListPrivate *priv = self->priv; + + if (priv->sel) g_object_unref(priv->sel); + priv->sel = NULL; + /* Col is owned by sel */ + priv->col = NULL; + if (priv->renderer) g_object_unref(priv->renderer); + priv->renderer = NULL; + + G_OBJECT_CLASS(cfm_preset_list_parent_class)->dispose(object); +} + static void cfm_preset_list_init(CFmPresetList *self) { CFmPresetListPrivate *priv; @@ -92,13 +109,16 @@ static void cfm_preset_list_init(CFmPresetList *self) /* Empty model for now */ GtkTreeModel *model = GTK_TREE_MODEL(gtk_list_store_new(2, G_TYPE_FLOAT, G_TYPE_STRING)); - gtk_window_set_title(GTK_WINDOW(self), "Presets"); + gtk_window_set_title(GTK_WINDOW(self), _("Presets")); hildon_gtk_window_set_portrait_flags(GTK_WINDOW(self), HILDON_PORTRAIT_MODE_SUPPORT); priv->sel = HILDON_TOUCH_SELECTOR(hildon_touch_selector_new()); - priv->col = hildon_touch_selector_append_text_column(priv->sel, model, FALSE); - hildon_touch_selector_column_set_text_column(priv->col, 1); + priv->renderer = cfm_preset_renderer_new(); + g_object_set(G_OBJECT(priv->renderer), "xpad", HILDON_MARGIN_DEFAULT, NULL); + priv->col = hildon_touch_selector_append_column(priv->sel, model, + priv->renderer, "frequency", 0, "name", 1); + hildon_touch_selector_column_set_text_column(priv->col, 0); gtk_container_add(GTK_CONTAINER(self), GTK_WIDGET(priv->sel)); @@ -115,6 +135,7 @@ static void cfm_preset_list_class_init(CFmPresetListClass *klass) gobject_class->set_property = cfm_preset_list_set_property; gobject_class->get_property = cfm_preset_list_get_property; + gobject_class->dispose = cfm_preset_list_dispose; g_type_class_add_private(klass, sizeof(CFmPresetListPrivate)); -- cgit v1.2.3