+ if (priv->action_path != NULL) {
+ action = modest_window_get_action (priv->win, priv->action_path);
+ if (action != NULL)
+ gtk_action_set_sensitive (action, !dimmed);
+ 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 (dimmed)
+ gtk_widget_hide (priv->widget);
+ else
+ gtk_widget_show (priv->widget);
+ }
+#else
+ gtk_widget_set_sensitive (priv->widget, !dimmed);
+#endif
+ }
+}
+
+void
+modest_dimming_rule_set_group (ModestDimmingRule *rule,
+ ModestDimmingRulesGroup *group)
+{
+ ModestDimmingRulePrivate *priv = NULL;
+
+ g_return_if_fail (MODEST_IS_DIMMING_RULE (rule));
+ g_return_if_fail (MODEST_IS_DIMMING_RULES_GROUP (group));
+ priv = MODEST_DIMMING_RULE_GET_PRIVATE(rule);
+
+ if (priv->group == group)
+ return;
+ if (priv->group != NULL)
+ g_object_unref (priv->group);
+ priv->group = g_object_ref (group);
+}
+
+ModestDimmingRulesGroup *
+modest_dimming_rule_get_group (ModestDimmingRule *rule)
+{
+ ModestDimmingRulePrivate *priv = NULL;
+
+ g_return_val_if_fail (MODEST_IS_DIMMING_RULE (rule), NULL);
+ priv = MODEST_DIMMING_RULE_GET_PRIVATE(rule);
+ g_return_val_if_fail (MODEST_IS_DIMMING_RULES_GROUP (priv->group), NULL);
+
+ return g_object_ref(priv->group);
+}
+
+void
+modest_dimming_rule_set_notification (ModestDimmingRule *rule,
+ const gchar *notification)
+{
+ ModestDimmingRulePrivate *priv = NULL;
+
+ g_return_if_fail (MODEST_IS_DIMMING_RULE (rule));
+ priv = MODEST_DIMMING_RULE_GET_PRIVATE(rule);
+
+ /* Free previous notification */
+ if (priv->notification != NULL) {
+ g_free(priv->notification);
+ priv->notification = NULL;
+ }
+
+ /* Set new notification message */
+ if (notification != NULL)
+ priv->notification = g_strdup(notification);
+}
+
+gchar *
+modest_dimming_rule_get_notification (ModestDimmingRule *rule)
+{
+ ModestDimmingRulePrivate *priv = NULL;
+
+ g_return_val_if_fail (MODEST_IS_DIMMING_RULE (rule), NULL);
+ priv = MODEST_DIMMING_RULE_GET_PRIVATE(rule);
+
+ return g_strdup(priv->notification);
+}
+
+GtkWidget *
+modest_dimming_rule_get_widget (ModestDimmingRule *rule)
+{
+ ModestDimmingRulePrivate *priv = NULL;
+
+ g_return_val_if_fail (MODEST_IS_DIMMING_RULE (rule), NULL);
+ priv = MODEST_DIMMING_RULE_GET_PRIVATE(rule);
+
+ if (priv->action_path != NULL)
+ return modest_window_get_action_widget (MODEST_WINDOW (priv->win), priv->action_path);
+ else
+ return priv->widget;
+}
+
+const gchar *
+modest_dimming_rule_get_action_path (ModestDimmingRule *rule)
+{
+ ModestDimmingRulePrivate *priv = NULL;
+
+ g_return_val_if_fail (MODEST_IS_DIMMING_RULE (rule), NULL);
+ priv = MODEST_DIMMING_RULE_GET_PRIVATE(rule);
+
+ return priv->action_path;