diff options
Diffstat (limited to 'mail/folder-browser-factory.c')
-rw-r--r-- | mail/folder-browser-factory.c | 106 |
1 files changed, 77 insertions, 29 deletions
diff --git a/mail/folder-browser-factory.c b/mail/folder-browser-factory.c index a3f6095c03..ef8777cffd 100644 --- a/mail/folder-browser-factory.c +++ b/mail/folder-browser-factory.c @@ -29,30 +29,6 @@ /* The FolderBrowser BonoboControls we have. */ static GList *control_list = NULL; -static GnomeUIInfo gnome_toolbar [] = { - GNOMEUIINFO_ITEM_STOCK (N_("Get Mail"), N_("Send queued mail and retrieve new mail"), - send_receieve_mail, GNOME_STOCK_PIXMAP_MAIL_RCV), - GNOMEUIINFO_ITEM_STOCK (N_("Compose"), N_("Compose a new message"), compose_msg, GNOME_STOCK_PIXMAP_MAIL_NEW), - - GNOMEUIINFO_SEPARATOR, - - GNOMEUIINFO_ITEM_STOCK (N_("Reply"), N_("Reply to the sender of this message"), reply_to_sender, GNOME_STOCK_PIXMAP_MAIL_RPL), - GNOMEUIINFO_ITEM_STOCK (N_("Reply to All"), N_("Reply to all recipients of this message"), reply_to_all, GNOME_STOCK_PIXMAP_MAIL_RPL), - - GNOMEUIINFO_ITEM_STOCK (N_("Forward"), N_("Forward this message"), forward_msg, GNOME_STOCK_PIXMAP_MAIL_FWD), - - GNOMEUIINFO_SEPARATOR, - - GNOMEUIINFO_ITEM_STOCK (N_("Move"), N_("Move message to a new folder"), move_msg, GNOME_STOCK_PIXMAP_MAIL_SND), - GNOMEUIINFO_ITEM_STOCK (N_("Copy"), N_("Copy message to a new folder"), copy_msg, GNOME_STOCK_PIXMAP_MAIL_SND), - - GNOMEUIINFO_ITEM_STOCK (N_("Print"), N_("Print the selected message"), print_msg, GNOME_STOCK_PIXMAP_PRINT), - - GNOMEUIINFO_ITEM_STOCK (N_("Delete"), N_("Delete this message"), delete_msg, GNOME_STOCK_PIXMAP_TRASH), - - GNOMEUIINFO_END -}; - static void register_ondemand (RuleContext *f, FilterRule *rule, gpointer data) { @@ -109,6 +85,82 @@ remove_ondemand_hooks (FolderBrowser *fb, BonoboUIHandler *uih) } static void +add_button_to_toolbar (GtkToolbar *toolbar, + const char *label, + const char *hint, + const char *icon, + GtkSignalFunc callback, + void *data) +{ + GtkWidget *pixmap; + GtkWidget *widget; + char *path; + + path = g_concat_dir_and_file (EVOLUTION_DATADIR "/images/evolution/buttons", icon); + pixmap = gnome_pixmap_new_from_file (path); + g_free (path); + + gtk_widget_show (pixmap); + + widget = gtk_toolbar_append_element (toolbar, GTK_TOOLBAR_CHILD_BUTTON, NULL, label, hint, NULL, pixmap, NULL, NULL); + gtk_signal_connect (GTK_OBJECT (widget), "clicked", callback, data); +} + +static void +add_stock_button_to_toolbar (GtkToolbar *toolbar, + const char *label, + const char *hint, + const char *icon, + GtkSignalFunc callback, + void *data) +{ + GtkWidget *pixmap; + GtkWidget *widget; + + pixmap = gnome_stock_pixmap_widget_new (GTK_WIDGET (toolbar), icon); + gtk_widget_show (pixmap); + + widget = gtk_toolbar_append_element (toolbar, GTK_TOOLBAR_CHILD_BUTTON, NULL, label, hint, NULL, pixmap, NULL, NULL); + gtk_signal_connect (GTK_OBJECT (widget), "clicked", callback, data); +} + +static void +fill_toolbar (FolderBrowser *folder_browser, + GtkToolbar *toolbar) +{ + add_button_to_toolbar (toolbar, _("Get Mail"), _("Send queued mail and retrieve new mail"), + "fetch-mail.png", send_receieve_mail, folder_browser); + add_button_to_toolbar (toolbar, _("Compose"), _("Compose a new message"), + "compose-message.png", compose_msg, folder_browser); + + gtk_toolbar_append_space (toolbar); + add_button_to_toolbar (toolbar, _("Reply"), _("Reply to the sender of this message"), + "reply.png", reply_to_sender, folder_browser); + add_button_to_toolbar (toolbar, _("Reply to All"), _("Reply to all recipients of this message"), + "reply-to-all.png", reply_to_all, folder_browser); + add_button_to_toolbar (toolbar, _("Forward"), _("Forward this message"), + "forward.png", forward_msg, folder_browser); + + gtk_toolbar_append_space (toolbar); + + add_button_to_toolbar (toolbar, _("Move"), _("Move message to a new folder"), + "move-message.png", move_msg, folder_browser); + add_button_to_toolbar (toolbar, _("Copy"), _("Move message to a new folder"), + "copy-message.png", move_msg, folder_browser); + + gtk_toolbar_append_space (toolbar); + + add_stock_button_to_toolbar (toolbar, _("Print"), _("Print the selected message"), + GNOME_STOCK_PIXMAP_PRINT, print_msg, folder_browser); + add_stock_button_to_toolbar (toolbar, _("Delete"), _("Delete this message"), + GNOME_STOCK_PIXMAP_TRASH, delete_msg, folder_browser); + + gtk_toolbar_set_style (toolbar, GTK_TOOLBAR_BOTH); + gtk_toolbar_set_button_relief (toolbar, GTK_RELIEF_NONE); + gtk_widget_show_all (GTK_WIDGET (toolbar)); +} + +static void control_activate (BonoboControl *control, BonoboUIHandler *uih, FolderBrowser *fb) { @@ -289,11 +341,7 @@ control_activate (BonoboControl *control, BonoboUIHandler *uih, toolbar = gtk_toolbar_new (GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_BOTH); - gnome_app_fill_toolbar_with_data (GTK_TOOLBAR (toolbar), - gnome_toolbar, - NULL, folder_browser); - - gtk_widget_show_all (toolbar); + fill_toolbar (FOLDER_BROWSER (folder_browser), GTK_TOOLBAR (toolbar)); behavior = GNOME_DOCK_ITEM_BEH_EXCLUSIVE | GNOME_DOCK_ITEM_BEH_NEVER_VERTICAL; |