Modified webpage: now tinymail repository is in gitorious.
[modest] / src / modest-ui-dimming-manager.c
index f7e82d1..7aa5847 100644 (file)
@@ -38,6 +38,8 @@ static void modest_ui_dimming_manager_dispose    (GObject *obj);
 
 static void _process_all_rules (gpointer key, gpointer value, gpointer user_data);
 
+#define WIDGET_DIMMING_MODE "widget-dimming-mode"
+
 
 typedef struct _ModestUIDimmingManagerPrivate ModestUIDimmingManagerPrivate;
 struct _ModestUIDimmingManagerPrivate {
@@ -138,6 +140,15 @@ modest_ui_dimming_manager_finalize (GObject *obj)
 }
 
 static void
+dispose_objects  (gpointer key,
+                 gpointer value,
+                 gpointer user_data)
+{
+       if (G_IS_OBJECT (value))
+           g_object_run_dispose (value);
+}
+
+static void
 modest_ui_dimming_manager_dispose (GObject *obj)
 {
        ModestUIDimmingManagerPrivate *priv;
@@ -152,6 +163,12 @@ modest_ui_dimming_manager_dispose (GObject *obj)
                g_hash_table_remove_all (priv->delayed_calls);
        }
 
+       if (priv->groups_map) {
+               g_hash_table_foreach (priv->groups_map, dispose_objects, NULL);
+               g_hash_table_unref (priv->groups_map);
+               priv->groups_map = NULL;
+       }
+
        G_OBJECT_CLASS(parent_class)->dispose (obj);
 }
 
@@ -305,3 +322,20 @@ _process_all_rules (gpointer key, gpointer value, gpointer user_data)
        modest_dimming_rules_group_execute (MODEST_DIMMING_RULES_GROUP (value));
 }
 
+void
+modest_ui_dimming_manager_set_widget_dimming_mode (GtkWidget *widget,
+                                                  ModestUIDimmingMode mode)
+{
+       g_return_if_fail (GTK_IS_WIDGET (widget));
+
+       g_object_set_data (G_OBJECT (widget), WIDGET_DIMMING_MODE, GINT_TO_POINTER (mode));
+}
+
+ModestUIDimmingMode
+modest_ui_dimming_manager_get_widget_dimming_mode (GtkWidget *widget)
+{
+       g_return_val_if_fail (GTK_IS_WIDGET (widget), MODEST_UI_DIMMING_MODE_DIM);
+
+       return (ModestUIDimmingMode) GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget), WIDGET_DIMMING_MODE));
+}
+