Modified webpage: now tinymail repository is in gitorious.
[modest] / src / modest-dimming-rule.c
index 0bbdd09..4595164 100644 (file)
  */
 
 #include "modest-dimming-rule.h"
+#include "modest-ui-dimming-manager.h"
 
 static void modest_dimming_rule_class_init (ModestDimmingRuleClass *klass);
 static void modest_dimming_rule_init       (ModestDimmingRule *obj);
 static void modest_dimming_rule_finalize   (GObject *obj);
+static void modest_dimming_rule_dispose    (GObject *obj);
 
 typedef struct _ModestDimmingRulePrivate ModestDimmingRulePrivate;
 struct _ModestDimmingRulePrivate {
@@ -82,6 +84,7 @@ modest_dimming_rule_class_init (ModestDimmingRuleClass *klass)
 
        parent_class            = g_type_class_peek_parent (klass);
        gobject_class->finalize = modest_dimming_rule_finalize;
+       gobject_class->dispose  = modest_dimming_rule_dispose;
 
        g_type_class_add_private (gobject_class, sizeof(ModestDimmingRulePrivate));
 }
@@ -117,6 +120,21 @@ modest_dimming_rule_finalize (GObject *obj)
        G_OBJECT_CLASS(parent_class)->finalize (obj);
 }
 
+static void
+modest_dimming_rule_dispose (GObject *obj)
+{
+       ModestDimmingRulePrivate *priv;
+
+       priv = MODEST_DIMMING_RULE_GET_PRIVATE(obj);
+
+       if (priv->group != NULL) {
+               g_object_unref (priv->group);
+               priv->group = NULL;
+       }
+
+       G_OBJECT_CLASS(parent_class)->dispose (obj);
+}
+
 
 ModestDimmingRule*
 modest_dimming_rule_new(ModestWindow *win,
@@ -187,22 +205,22 @@ modest_dimming_rule_process (ModestDimmingRule *self)
                else
                        g_printerr ("modest: action path '%s' has not associatd action\n", priv->action_path);
        } else if (priv->widget != NULL) {
-#ifdef MODEST_TOOLKIT_HILDON2
-               if (GTK_IS_TOOL_ITEM (priv->widget)) {
-                       gtk_widget_set_sensitive (priv->widget, !dimmed);
-               } else {
-                       if (gtk_widget_get_ancestor (priv->widget, HILDON_TYPE_APP_MENU)) {
-                               if (dimmed)
-                                       gtk_widget_hide (priv->widget);
-                               else
-                                       gtk_widget_show (priv->widget);
+               ModestUIDimmingMode mode;
+
+               mode = modest_ui_dimming_manager_get_widget_dimming_mode (priv->widget);
+               switch (mode) {
+               case MODEST_UI_DIMMING_MODE_HIDE:
+                       if (dimmed) {
+                               gtk_widget_hide (GTK_WIDGET (priv->widget));
                        } else {
-                               gtk_widget_set_sensitive (priv->widget, !dimmed);
+                               gtk_widget_show (GTK_WIDGET (priv->widget));
                        }
+                       break;
+               case MODEST_UI_DIMMING_MODE_DIM:
+               default:
+                       gtk_widget_set_sensitive (priv->widget, !dimmed);
+                       break;
                }
-#else
-               gtk_widget_set_sensitive (priv->widget, !dimmed);
-#endif
        }
 }