[nautilus] slot: make the NautilusWindow a construct property
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus] slot: make the NautilusWindow a construct property
- Date: Fri, 31 Aug 2012 16:53:45 +0000 (UTC)
commit 5dd2e1f974b969be9e270e8b219ce243b775da52
Author: Cosimo Cecchi <cosimoc gnome org>
Date: Fri Aug 31 12:51:42 2012 -0400
slot: make the NautilusWindow a construct property
Instead of setting it in _new(). This makes code more robust.
src/nautilus-window-slot.c | 74 +++++++++++++++++++++++++++++++++++++++----
1 files changed, 67 insertions(+), 7 deletions(-)
---
diff --git a/src/nautilus-window-slot.c b/src/nautilus-window-slot.c
index def4fe9..c680f18 100644
--- a/src/nautilus-window-slot.c
+++ b/src/nautilus-window-slot.c
@@ -50,7 +50,13 @@ enum {
LAST_SIGNAL
};
+enum {
+ PROP_WINDOW = 1,
+ NUM_PROPERTIES
+};
+
static guint signals[LAST_SIGNAL] = { 0 };
+static GParamSpec *properties[NUM_PROPERTIES] = { NULL, };
gboolean
nautilus_window_slot_handle_event (NautilusWindowSlot *slot,
@@ -286,10 +292,49 @@ floating_bar_action_cb (NautilusFloatingBar *floating_bar,
}
static void
-nautilus_window_slot_init (NautilusWindowSlot *slot)
+nautilus_window_slot_set_property (GObject *object,
+ guint property_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ NautilusWindowSlot *slot = NAUTILUS_WINDOW_SLOT (object);
+
+ switch (property_id) {
+ case PROP_WINDOW:
+ slot->window = g_value_get_object (value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+
+static void
+nautilus_window_slot_get_property (GObject *object,
+ guint property_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ NautilusWindowSlot *slot = NAUTILUS_WINDOW_SLOT (object);
+
+ switch (property_id) {
+ case PROP_WINDOW:
+ g_value_set_object (value, slot->window);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+
+static void
+nautilus_window_slot_constructed (GObject *object)
{
+ NautilusWindowSlot *slot = NAUTILUS_WINDOW_SLOT (object);
GtkWidget *extras_vbox;
+ G_OBJECT_CLASS (nautilus_window_slot_parent_class)->constructed (object);
+
gtk_orientable_set_orientation (GTK_ORIENTABLE (slot),
GTK_ORIENTATION_VERTICAL);
gtk_widget_show (GTK_WIDGET (slot));
@@ -324,6 +369,12 @@ nautilus_window_slot_init (NautilusWindowSlot *slot)
}
static void
+nautilus_window_slot_init (NautilusWindowSlot *slot)
+{
+ /* do nothing */
+}
+
+static void
nautilus_window_slot_dispose (GObject *object)
{
NautilusWindowSlot *slot;
@@ -400,6 +451,9 @@ nautilus_window_slot_class_init (NautilusWindowSlotClass *klass)
klass->inactive = real_inactive;
oclass->dispose = nautilus_window_slot_dispose;
+ oclass->constructed = nautilus_window_slot_constructed;
+ oclass->set_property = nautilus_window_slot_set_property;
+ oclass->get_property = nautilus_window_slot_get_property;
signals[ACTIVE] =
g_signal_new ("active",
@@ -428,6 +482,15 @@ nautilus_window_slot_class_init (NautilusWindowSlotClass *klass)
G_TYPE_NONE, 2,
G_TYPE_STRING,
G_TYPE_STRING);
+
+ properties[PROP_WINDOW] =
+ g_param_spec_object ("window",
+ "The NautilusWindow",
+ "The NautilusWindow this slot is part of",
+ NAUTILUS_TYPE_WINDOW,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
+
+ g_object_class_install_properties (oclass, NUM_PROPERTIES, properties);
}
GFile *
@@ -781,10 +844,7 @@ nautilus_window_slot_should_close_with_mount (NautilusWindowSlot *slot,
NautilusWindowSlot *
nautilus_window_slot_new (NautilusWindow *window)
{
- NautilusWindowSlot *slot;
-
- slot = g_object_new (NAUTILUS_TYPE_WINDOW_SLOT, NULL);
- slot->window = window;
-
- return slot;
+ return g_object_new (NAUTILUS_TYPE_WINDOW_SLOT,
+ "window", window,
+ NULL);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]