/* Set/get properties */ static void _xfdashboard_stage_interface_set_property(GObject *inObject, guint inPropID, const GValue *inValue, GParamSpec *inSpec) { XfdashboardStageInterface *self=XFDASHBOARD_STAGE_INTERFACE(inObject); switch(inPropID) { case PROP_MONITOR: xfdashboard_stage_interface_set_monitor(self, XFDASHBOARD_WINDOW_TRACKER_MONITOR(g_value_get_object(inValue))); break; case PROP_BACKGROUND_IMAGE_TYPE: xfdashboard_stage_interface_set_background_image_type(self, g_value_get_enum(inValue)); break; case PROP_BACKGROUND_COLOR: xfdashboard_stage_interface_set_background_color(self, clutter_value_get_color(inValue)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(inObject, inPropID, inSpec); break; } }
void xfdashboard_stage_interface_set_monitor(XfdashboardStageInterface *self, XfdashboardWindowTrackerMonitor *inMonitor) { XfdashboardStageInterfacePrivate *priv; g_return_if_fail(XFDASHBOARD_IS_STAGE_INTERFACE(self)); g_return_if_fail(XFDASHBOARD_IS_WINDOW_TRACKER_MONITOR(inMonitor)); priv=self->priv; /* Set value if changed */ if(priv->monitor!=inMonitor) { /* Set value */ if(priv->monitor) { if(priv->geometryChangedID) { g_signal_handler_disconnect(priv->monitor, priv->geometryChangedID); priv->geometryChangedID=0; } if(priv->primaryChangedID) { g_signal_handler_disconnect(priv->monitor, priv->primaryChangedID); priv->primaryChangedID=0; } g_object_unref(priv->monitor); priv->monitor=NULL; } priv->monitor=XFDASHBOARD_WINDOW_TRACKER_MONITOR(g_object_ref(inMonitor)); /* Connect signals */ priv->geometryChangedID=g_signal_connect_swapped(priv->monitor, "geometry-changed", G_CALLBACK(_xfdashboard_stage_interface_on_geometry_changed), self); priv->primaryChangedID=g_signal_connect_swapped(priv->monitor, "primary-changed", G_CALLBACK(_xfdashboard_stage_interface_on_primary_changed), self); /* Resize actor to new monitor */ _xfdashboard_stage_interface_on_geometry_changed(self, priv->monitor); /* Update actor from primary state */ _xfdashboard_stage_interface_on_primary_changed(self, priv->monitor); /* Notify about property change */ g_object_notify_by_pspec(G_OBJECT(self), XfdashboardStageInterfaceProperties[PROP_MONITOR]); } }
/* Dispose this object */ static void _xfdashboard_window_tracker_monitor_dispose(GObject *inObject) { XfdashboardWindowTrackerMonitor *self=XFDASHBOARD_WINDOW_TRACKER_MONITOR(inObject); XfdashboardWindowTrackerMonitorPrivate *priv=self->priv; /* Release allocated resources */ if(priv->screen) { g_signal_handlers_disconnect_by_data(priv->screen, self); priv->screen=NULL; } /* Call parent's class dispose method */ G_OBJECT_CLASS(xfdashboard_window_tracker_monitor_parent_class)->dispose(inObject); }
/* Set/get properties */ static void _xfdashboard_window_tracker_monitor_set_property(GObject *inObject, guint inPropID, const GValue *inValue, GParamSpec *inSpec) { XfdashboardWindowTrackerMonitor *self=XFDASHBOARD_WINDOW_TRACKER_MONITOR(inObject); switch(inPropID) { case PROP_MONITOR_INDEX: _xfdashboard_window_tracker_monitor_set_index(self, g_value_get_int(inValue)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(inObject, inPropID, inSpec); break; } }
static void _xfdashboard_window_tracker_monitor_get_property(GObject *inObject, guint inPropID, GValue *outValue, GParamSpec *inSpec) { XfdashboardWindowTrackerMonitor *self=XFDASHBOARD_WINDOW_TRACKER_MONITOR(inObject); XfdashboardWindowTrackerMonitorPrivate *priv=self->priv; switch(inPropID) { case PROP_IS_PRIMARY: g_value_set_boolean(outValue, priv->isPrimary); break; case PROP_MONITOR_INDEX: g_value_set_uint(outValue, priv->monitorIndex); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(inObject, inPropID, inSpec); break; } }