static void attachment_bar_set_store (EAttachmentBar *bar, EAttachmentStore *store) { g_return_if_fail (E_IS_ATTACHMENT_STORE (store)); bar->priv->model = g_object_ref (store); gtk_icon_view_set_model ( GTK_ICON_VIEW (bar->priv->icon_view), bar->priv->model); gtk_tree_view_set_model ( GTK_TREE_VIEW (bar->priv->tree_view), bar->priv->model); e_signal_connect_notify_object ( bar->priv->model, "notify::num-attachments", G_CALLBACK (attachment_bar_update_status), bar, G_CONNECT_SWAPPED); e_signal_connect_notify_object ( bar->priv->model, "notify::total-size", G_CALLBACK (attachment_bar_update_status), bar, G_CONNECT_SWAPPED); /* Initialize */ attachment_bar_update_status (bar); }
static void send_receive_add_to_menu (SendReceiveData *data, CamelService *service, gint position) { GtkWidget *menu_item; CamelProvider *provider; if (send_receive_find_menu_item (data, service) != NULL) return; provider = camel_service_get_provider (service); menu_item = gtk_menu_item_new (); gtk_widget_show (menu_item); e_binding_bind_property ( service, "display-name", menu_item, "label", G_BINDING_SYNC_CREATE); if (provider && (provider->flags & CAMEL_PROVIDER_IS_REMOTE) != 0) { gpointer object; if (CAMEL_IS_OFFLINE_STORE (service)) object = g_object_ref (service); else object = camel_service_ref_session (service); e_signal_connect_notify_object ( object, "notify::online", G_CALLBACK (service_online_state_changed_cb), menu_item, 0); g_object_unref (object); } g_hash_table_insert ( data->menu_items, menu_item, g_object_ref (service)); g_signal_connect ( menu_item, "activate", G_CALLBACK (send_receive_account_item_activate_cb), data); /* Position is with respect to the sorted list of CamelService-s, * not menu item position. */ if (position < 0) gtk_menu_shell_append (data->menu, menu_item); else gtk_menu_shell_insert (data->menu, menu_item, position + 4); }