gpointer data);
static void activate_compose_button (MainWindow *mainwin,
+ ToolbarStyle style,
ComposeButtonType type);
#define SEPARATE_ACTION 667
GtkWidget *getall_btn;
GtkWidget *compose_mail_btn;
GtkWidget *compose_news_btn;
+ GtkWidget *compose_mail_btn_plain;
+ GtkWidget *compose_news_btn_plain;
GtkWidget *reply_btn;
GtkWidget *replyall_btn;
GtkWidget *replysender_btn;
GtkWidget *next_btn;
GtkWidget *delete_btn;
GtkWidget *exec_btn;
-
GtkWidget *compose_type_btn;
GtkWidget *compose_type_arrow;
GtkWidget *compose_box;
toolbar_send_cb,
mainwin);
+ /* to implement Leandro's "combined" compose buttons, we create
+ * two sets of compose buttons, one for normal (text + icon)
+ * toolbar, and one for both text-only and icon-only toolbar;
+ * we switch between those sets. */
+
/* insert compose mail button widget */
compose_mail_btn = gtk_button_new();
gtk_button_set_relief(GTK_BUTTON(compose_news_btn), GTK_RELIEF_NONE);
gtk_toolbar_append_widget(GTK_TOOLBAR(toolbar), compose_news_btn,
NULL, NULL);
+
+ /* insert compose btn plain */
+
+ CREATE_TOOLBAR_ICON(stock_mail_compose_xpm);
+ compose_mail_btn_plain = gtk_toolbar_append_item(GTK_TOOLBAR(toolbar),
+ _("Compose email"),
+ _("Compose an email message"),
+ "New",
+ icon_wid,
+ toolbar_compose_mail_cb,
+ mainwin);
+
+ /* insert compose btn plain */
+
+ CREATE_TOOLBAR_ICON(stock_news_compose_xpm);
+ compose_news_btn_plain = gtk_toolbar_append_item(GTK_TOOLBAR(toolbar),
+ _("Compose news"),
+ _("Compose a news message"),
+ "New",
+ icon_wid,
+ toolbar_compose_news_cb,
+ mainwin);
/* insert compose button type widget */
mainwin->getall_btn = getall_btn;
mainwin->compose_mail_btn = compose_mail_btn;
mainwin->compose_news_btn = compose_news_btn;
+ mainwin->compose_mail_btn_plain = compose_mail_btn_plain;
+ mainwin->compose_news_btn_plain = compose_news_btn_plain;
mainwin->reply_btn = reply_btn;
mainwin->replyall_btn = replyall_btn;
mainwin->replysender_btn = replysender_btn;
gtk_widget_show_all(toolbar);
- activate_compose_button(mainwin, COMPOSEBUTTON_MAIL);
+ /* activate Leandro menu system */
+ activate_compose_button(mainwin,
+ prefs_common.toolbar_style,
+ mainwin->compose_btn_type);
}
/* callback functions */
mainwindow->compose_btn_type = compose_type;
- activate_compose_button(mainwindow, mainwindow->compose_btn_type);
+ activate_compose_button(mainwindow, prefs_common.toolbar_style, mainwindow->compose_btn_type);
}
static void toolbar_inc_cb (GtkWidget *widget,
static void toggle_toolbar_cb(MainWindow *mainwin, guint action,
GtkWidget *widget)
{
+ activate_compose_button(mainwin, (ToolbarStyle)action,
+ mainwin->compose_btn_type);
+
switch ((ToolbarStyle)action) {
case TOOLBAR_NONE:
gtk_widget_hide(mainwin->handlebox);
}
static void activate_compose_button (MainWindow *mainwin,
+ ToolbarStyle style,
ComposeButtonType type)
{
- gtk_widget_hide(type == COMPOSEBUTTON_NEWS ? mainwin->compose_mail_btn
- : mainwin->compose_news_btn);
- gtk_widget_show(type == COMPOSEBUTTON_NEWS ? mainwin->compose_news_btn
- : mainwin->compose_mail_btn);
- mainwin->compose_btn_type = type;
+ if (style == TOOLBAR_NONE)
+ return;
+
+ if (style == TOOLBAR_BOTH) {
+ gtk_widget_hide(mainwin->compose_mail_btn_plain);
+ gtk_widget_hide(mainwin->compose_news_btn_plain);
+ gtk_widget_hide(type == COMPOSEBUTTON_NEWS ? mainwin->compose_mail_btn
+ : mainwin->compose_news_btn);
+ gtk_widget_show(type == COMPOSEBUTTON_NEWS ? mainwin->compose_news_btn
+ : mainwin->compose_mail_btn);
+ mainwin->compose_btn_type = type;
+ }
+ else {
+ gtk_widget_hide(mainwin->compose_news_btn);
+ gtk_widget_hide(mainwin->compose_mail_btn);
+ gtk_widget_hide(type == COMPOSEBUTTON_NEWS ? mainwin->compose_mail_btn_plain
+ : mainwin->compose_news_btn_plain);
+ gtk_widget_show(type == COMPOSEBUTTON_NEWS ? mainwin->compose_news_btn_plain
+ : mainwin->compose_mail_btn_plain);
+ mainwin->compose_btn_type = type;
+ }
}