diff options
author | Ettore Perazzoli <ettore@src.gnome.org> | 2000-09-12 22:30:49 +0800 |
---|---|---|
committer | Ettore Perazzoli <ettore@src.gnome.org> | 2000-09-12 22:30:49 +0800 |
commit | 395a311fe36286101e2d82c13d2ad1227df3e8bb (patch) | |
tree | 882c8e6cce944212f2117baa118d4a15b56f4994 /mail/folder-browser-factory.c | |
parent | 64b4dcdffa1ae23a39b92fa71520269777fdc451 (diff) | |
download | gsoc2013-evolution-395a311fe36286101e2d82c13d2ad1227df3e8bb.tar.gz gsoc2013-evolution-395a311fe36286101e2d82c13d2ad1227df3e8bb.tar.zst gsoc2013-evolution-395a311fe36286101e2d82c13d2ad1227df3e8bb.zip |
Cool Hack of the Day: right-click menu item to autodetect what mailing
list a message comes from and create the rule for it on the fly.
(Many thanks to Joakim for suggesting the way to implement this.)
Also, use the new shiny toolbar icons from TigerT and mark some
strings for translation.
svn path=/trunk/; revision=5362
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; |