+
+
+static void
+init_signals (ModestWidgetFactory *self)
+{
+
+ TnyDevice *device;
+ ModestWidgetFactoryPrivate *priv;
+
+ priv = MODEST_WIDGET_FACTORY_GET_PRIVATE(self);
+
+ /* folder view */
+ g_signal_connect (G_OBJECT(priv->folder_view), "folder_selected",
+ G_CALLBACK(on_folder_selected), self);
+
+ /* header view */
+ g_signal_connect (G_OBJECT(priv->header_view), "status_update",
+ G_CALLBACK(on_header_status_update), self);
+ g_signal_connect (G_OBJECT(priv->header_view), "message_selected",
+ G_CALLBACK(on_message_selected), self);
+ g_signal_connect (G_OBJECT(priv->header_view), "item_not_found",
+ G_CALLBACK(on_item_not_found), self);
+
+
+ /* msg preview */
+ g_signal_connect (G_OBJECT(priv->msg_preview), "link_clicked",
+ G_CALLBACK(on_msg_link_clicked), self);
+ g_signal_connect (G_OBJECT(priv->msg_preview), "link_hover",
+ G_CALLBACK(on_msg_link_hover), self);
+ g_signal_connect (G_OBJECT(priv->msg_preview), "attachment_clicked",
+ G_CALLBACK(on_msg_attachment_clicked), self);
+
+ /* account store */
+ g_signal_connect (G_OBJECT(priv->account_store), "password_requested",
+ G_CALLBACK(on_password_requested), self);
+
+ /* FIXME: const casting is evil ==> tinymail */
+ device = (TnyDevice*)tny_account_store_get_device
+ (TNY_ACCOUNT_STORE(priv->account_store));
+ if (device) {
+ g_signal_connect (G_OBJECT(device), "connection_changed",
+ G_CALLBACK(on_connection_changed), self);
+ g_signal_connect (G_OBJECT(priv->online_toggle), "toggled",
+ G_CALLBACK(on_online_toggle_toggled), self);
+
+ /* init toggle in correct state */
+ on_connection_changed (device,
+ tny_device_is_online (device),
+ self);
+ }
+}
+
+static gboolean
+init_widgets (ModestWidgetFactory *self)
+{
+ ModestWidgetFactoryPrivate *priv;
+ priv = MODEST_WIDGET_FACTORY_GET_PRIVATE(self);
+
+ /* folder view */
+ if (!(priv->folder_view =
+ MODEST_FOLDER_VIEW(modest_folder_view_new (priv->account_store)))) {
+ g_printerr ("modest: cannot instantiate folder view\n");
+ return FALSE;
+ }
+
+ /* header view */
+ if (!(priv->header_view =
+ MODEST_HEADER_VIEW(modest_header_view_new
+ (NULL, NULL,MODEST_HEADER_VIEW_STYLE_NORMAL)))) {
+ g_printerr ("modest: cannot instantiate header view\n");
+ return FALSE;
+ }
+
+
+ /* msg preview */
+ if (!(priv->msg_preview = MODEST_MSG_VIEW(modest_msg_view_new (NULL)))) {
+ g_printerr ("modest: cannot instantiate header view\n");
+ return FALSE;
+ }
+
+
+
+ /* online/offline combo */
+ priv->online_toggle = gtk_toggle_button_new ();
+
+ /* label with number of items, unread items for
+ the current folder */
+ priv->folder_info_label = gtk_label_new (NULL);
+
+ init_signals (self);
+
+ return TRUE;
+}
+
+