diff options
author | David Zeuthen <davidz@redhat.com> | 2009-03-31 17:14:03 -0400 |
---|---|---|
committer | David Zeuthen <davidz@redhat.com> | 2009-03-31 17:14:03 -0400 |
commit | 205ce577f49e5ffeb162063d7a75fe8702922ca3 (patch) | |
tree | c3a63929592186cc4002633bf74c821a5334f39a | |
parent | 1c2c67959f76ac5f0262d7d4dd198540a4055e26 (diff) | |
download | gnome-disk-utility-205ce577f49e5ffeb162063d7a75fe8702922ca3.tar.gz gnome-disk-utility-205ce577f49e5ffeb162063d7a75fe8702922ca3.tar.xz gnome-disk-utility-205ce577f49e5ffeb162063d7a75fe8702922ca3.zip |
forgot to add gdu-grid-details.[ch]
-rw-r--r-- | src/playground/grid/gdu-grid-details.c | 129 | ||||
-rw-r--r-- | src/playground/grid/gdu-grid-details.h | 38 |
2 files changed, 167 insertions, 0 deletions
diff --git a/src/playground/grid/gdu-grid-details.c b/src/playground/grid/gdu-grid-details.c new file mode 100644 index 0000000..390a91c --- /dev/null +++ b/src/playground/grid/gdu-grid-details.c @@ -0,0 +1,129 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */ + +#include <glib/gi18n.h> + +#include "gdu-grid-view.h" +#include "gdu-grid-details.h" + +struct GduGridDetailsPrivate +{ + GduGridView *view; + + GtkWidget *notebook; +}; + +enum +{ + PROP_0, + PROP_VIEW, +}; + +G_DEFINE_TYPE (GduGridDetails, gdu_grid_details, GTK_TYPE_VBOX) + +static void +gdu_grid_details_finalize (GObject *object) +{ + GduGridDetails *details = GDU_GRID_DETAILS (object); + + g_object_unref (details->priv->view); + + if (G_OBJECT_CLASS (gdu_grid_details_parent_class)->finalize != NULL) + G_OBJECT_CLASS (gdu_grid_details_parent_class)->finalize (object); +} + +static void +gdu_grid_details_get_property (GObject *object, + guint property_id, + GValue *value, + GParamSpec *pspec) +{ + GduGridDetails *details = GDU_GRID_DETAILS (object); + + switch (property_id) { + case PROP_VIEW: + g_value_set_object (value, details->priv->view); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } +} + +static void +gdu_grid_details_set_property (GObject *object, + guint property_id, + const GValue *value, + GParamSpec *pspec) +{ + GduGridDetails *details = GDU_GRID_DETAILS (object); + + switch (property_id) { + case PROP_VIEW: + details->priv->view = g_value_dup_object (value); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } +} + +static void +gdu_grid_details_constructed (GObject *object) +{ + GduGridDetails *details = GDU_GRID_DETAILS (object); + GtkWidget *notebook; + GtkWidget *no_media_page; + GtkWidget *label; + + no_media_page = gtk_alignment_new (0.5, 0.5, 0, 0); + label = gtk_label_new (_("No media detected")); + gtk_container_add (GTK_CONTAINER (no_media_page), label); + + notebook = gtk_notebook_new (); + gtk_notebook_append_page (GTK_NOTEBOOK (notebook), + no_media_page, + NULL); + details->priv->notebook = notebook; + + gtk_container_add (GTK_CONTAINER (details), notebook); + + if (G_OBJECT_CLASS (gdu_grid_details_parent_class)->constructed != NULL) + G_OBJECT_CLASS (gdu_grid_details_parent_class)->constructed (object); +} + +static void +gdu_grid_details_class_init (GduGridDetailsClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + g_type_class_add_private (klass, sizeof (GduGridDetailsPrivate)); + + object_class->get_property = gdu_grid_details_get_property; + object_class->set_property = gdu_grid_details_set_property; + object_class->constructed = gdu_grid_details_constructed; + object_class->finalize = gdu_grid_details_finalize; + + g_object_class_install_property (object_class, + PROP_VIEW, + g_param_spec_object ("view", + _("View"), + _("The view to show details for"), + GDU_TYPE_GRID_VIEW, + G_PARAM_READABLE | + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY)); +} + +static void +gdu_grid_details_init (GduGridDetails *details) +{ + details->priv = G_TYPE_INSTANCE_GET_PRIVATE (details, GDU_TYPE_GRID_DETAILS, GduGridDetailsPrivate); +} + +GtkWidget * +gdu_grid_details_new (GduGridView *view) +{ + return GTK_WIDGET (g_object_new (GDU_TYPE_GRID_DETAILS, + "view", view, + NULL)); +} diff --git a/src/playground/grid/gdu-grid-details.h b/src/playground/grid/gdu-grid-details.h new file mode 100644 index 0000000..9c41d13 --- /dev/null +++ b/src/playground/grid/gdu-grid-details.h @@ -0,0 +1,38 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */ + +#ifndef __GDU_GRID_DETAILS_H +#define __GDU_GRID_DETAILS_H + +#include "gdu-grid-types.h" + +G_BEGIN_DECLS + +#define GDU_TYPE_GRID_DETAILS gdu_grid_details_get_type() +#define GDU_GRID_DETAILS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDU_TYPE_GRID_DETAILS, GduGridDetails)) +#define GDU_GRID_DETAILS_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GDU_TYPE_GRID_DETAILS, GduGridDetailsClass)) +#define GDU_IS_GRID_DETAILS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDU_TYPE_GRID_DETAILS)) +#define GDU_IS_GRID_DETAILS_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GDU_TYPE_GRID_DETAILS)) +#define GDU_GRID_DETAILS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDU_TYPE_GRID_DETAILS, GduGridDetailsClass)) + +typedef struct GduGridDetailsClass GduGridDetailsClass; +typedef struct GduGridDetailsPrivate GduGridDetailsPrivate; + +struct GduGridDetails +{ + GtkVBox parent; + + /*< private >*/ + GduGridDetailsPrivate *priv; +}; + +struct GduGridDetailsClass +{ + GtkVBoxClass parent_class; +}; + +GType gdu_grid_details_get_type (void) G_GNUC_CONST; +GtkWidget *gdu_grid_details_new (GduGridView *view); + +G_END_DECLS + +#endif /* __GDU_GRID_DETAILS_H */ |