+/* TODO: This should be in _init(), with the parameters as properties. */
+static void
+modest_msg_view_window_construct (ModestMsgViewWindow *self,
+ const gchar *modest_account_name,
+ const gchar *msg_uid)
+{
+ GObject *obj = NULL;
+ ModestMsgViewWindowPrivate *priv = NULL;
+ ModestWindowPrivate *parent_priv = NULL;
+ ModestDimmingRulesGroup *menu_rules_group = NULL;
+ ModestDimmingRulesGroup *toolbar_rules_group = NULL;
+ ModestDimmingRulesGroup *clipboard_rules_group = NULL;
+
+ obj = G_OBJECT (self);
+ priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE(obj);
+ parent_priv = MODEST_WINDOW_GET_PRIVATE(obj);
+
+ priv->msg_uid = g_strdup (msg_uid);
+
+ /* Menubar */
+ parent_priv->menubar = modest_maemo_utils_get_manager_menubar_as_menu (parent_priv->ui_manager, "/MenuBar");
+ hildon_window_set_menu (HILDON_WINDOW(obj), GTK_MENU(parent_priv->menubar));
+ gtk_widget_show (parent_priv->menubar);
+ parent_priv->ui_dimming_manager = modest_ui_dimming_manager_new();
+
+ menu_rules_group = modest_dimming_rules_group_new (MODEST_DIMMING_RULES_MENU, FALSE);
+ toolbar_rules_group = modest_dimming_rules_group_new (MODEST_DIMMING_RULES_TOOLBAR, TRUE);
+ clipboard_rules_group = modest_dimming_rules_group_new (MODEST_DIMMING_RULES_CLIPBOARD, FALSE);
+
+ /* Add common dimming rules */
+ modest_dimming_rules_group_add_rules (menu_rules_group,
+ modest_msg_view_menu_dimming_entries,
+ G_N_ELEMENTS (modest_msg_view_menu_dimming_entries),
+ MODEST_WINDOW (self));
+ modest_dimming_rules_group_add_rules (toolbar_rules_group,
+ modest_msg_view_toolbar_dimming_entries,
+ G_N_ELEMENTS (modest_msg_view_toolbar_dimming_entries),
+ MODEST_WINDOW (self));
+ modest_dimming_rules_group_add_rules (clipboard_rules_group,
+ modest_msg_view_clipboard_dimming_entries,
+ G_N_ELEMENTS (modest_msg_view_clipboard_dimming_entries),
+ MODEST_WINDOW (self));
+
+ /* Insert dimming rules group for this window */
+ modest_ui_dimming_manager_insert_rules_group (parent_priv->ui_dimming_manager, menu_rules_group);
+ modest_ui_dimming_manager_insert_rules_group (parent_priv->ui_dimming_manager, toolbar_rules_group);
+ modest_ui_dimming_manager_insert_rules_group (parent_priv->ui_dimming_manager, clipboard_rules_group);
+ g_object_unref (menu_rules_group);
+ g_object_unref (toolbar_rules_group);
+ g_object_unref (clipboard_rules_group);
+
+ restore_settings (MODEST_MSG_VIEW_WINDOW(obj));
+
+ /* g_signal_connect (G_OBJECT(obj), "delete-event", G_CALLBACK(on_delete_event), obj); */
+
+ priv->clipboard_change_handler = g_signal_connect (G_OBJECT (gtk_clipboard_get (GDK_SELECTION_PRIMARY)), "owner-change", G_CALLBACK (modest_msg_view_window_clipboard_owner_change), obj);
+ g_signal_connect (G_OBJECT(priv->msg_view), "activate_link",
+ G_CALLBACK (modest_ui_actions_on_msg_link_clicked), obj);
+ g_signal_connect (G_OBJECT(priv->msg_view), "link_hover",
+ G_CALLBACK (modest_ui_actions_on_msg_link_hover), obj);
+ g_signal_connect (G_OBJECT(priv->msg_view), "attachment_clicked",
+ G_CALLBACK (modest_ui_actions_on_msg_attachment_clicked), obj);
+ g_signal_connect (G_OBJECT(priv->msg_view), "recpt_activated",
+ G_CALLBACK (modest_ui_actions_on_msg_recpt_activated), obj);
+ g_signal_connect (G_OBJECT(priv->msg_view), "link_contextual",
+ G_CALLBACK (modest_ui_actions_on_msg_link_contextual), obj);
+ g_signal_connect (G_OBJECT (priv->msg_view), "fetch_image",
+ G_CALLBACK (on_fetch_image), obj);
+
+ g_signal_connect (G_OBJECT (obj), "key-release-event",
+ G_CALLBACK (modest_msg_view_window_key_event),
+ NULL);
+
+ g_signal_connect (G_OBJECT (obj), "key-press-event",
+ G_CALLBACK (modest_msg_view_window_key_event),
+ NULL);
+
+ g_signal_connect (G_OBJECT (obj), "window-state-event",
+ G_CALLBACK (modest_msg_view_window_window_state_event),
+ NULL);
+
+ g_signal_connect (G_OBJECT (obj), "move-focus",
+ G_CALLBACK (on_move_focus), obj);
+
+ /* Mail Operation Queue */
+ priv->queue_change_handler = g_signal_connect (G_OBJECT (modest_runtime_get_mail_operation_queue ()),
+ "queue-changed",
+ G_CALLBACK (on_queue_changed),
+ obj);
+
+ /* Account manager */
+ priv->account_removed_handler = g_signal_connect (G_OBJECT (modest_runtime_get_account_store ()),
+ "account_removed",
+ G_CALLBACK(on_account_removed),
+ obj);
+
+ modest_window_set_active_account (MODEST_WINDOW(obj), modest_account_name);
+
+ g_signal_connect (G_OBJECT (priv->find_toolbar), "close", G_CALLBACK (modest_msg_view_window_find_toolbar_close), obj);
+ g_signal_connect (G_OBJECT (priv->find_toolbar), "search", G_CALLBACK (modest_msg_view_window_find_toolbar_search), obj);
+ priv->last_search = NULL;
+
+ /* Init the clipboard actions dim status */
+ modest_msg_view_grab_focus(MODEST_MSG_VIEW (priv->msg_view));
+
+ update_window_title (MODEST_MSG_VIEW_WINDOW (obj));
+
+
+}
+
+/* FIXME: parameter checks */