Use new widget dimming mode API for only hiding app menu items
authorJose Dapena Paz <jdapena@igalia.com>
Mon, 27 Apr 2009 14:46:25 +0000 (14:46 +0000)
committerJose Dapena Paz <jdapena@igalia.com>
Mon, 27 Apr 2009 14:46:25 +0000 (14:46 +0000)
pmo-trunk-r9183

src/hildon2/modest-hildon2-window.c
src/modest-dimming-rule.c

index 6a7168c..bb9a376 100644 (file)
@@ -256,6 +256,9 @@ modest_hildon2_window_add_button_to_menu (ModestHildon2Window *self,
        g_return_if_fail (GTK_IS_BUTTON (button));
        priv = MODEST_HILDON2_WINDOW_GET_PRIVATE (self);
 
+       modest_ui_dimming_manager_set_widget_dimming_mode (GTK_WIDGET (button),
+                                                          MODEST_UI_DIMMING_MODE_HIDE);
+
        if (dimming_callback)
                modest_dimming_rules_group_add_widget_rule (priv->app_menu_dimming_group,
                                                            GTK_WIDGET (button),
index 7e5595a..7e834be 100644 (file)
@@ -28,6 +28,7 @@
  */
 
 #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);
@@ -187,22 +188,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)) {
+               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_show (GTK_WIDGET (priv->widget));
+                       }
+                       break;
+               case MODEST_UI_DIMMING_MODE_DIM:
+               default:
                        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); */
-/*                     } else { */
-                               gtk_widget_set_sensitive (priv->widget, !dimmed);
-/*                     } */
+                       break;
                }
-#else
-               gtk_widget_set_sensitive (priv->widget, !dimmed);
-#endif
        }
 }