/*
* Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 2002-2011 Hiroyuki Yamamoto & the Claws Mail team
+ * Copyright (C) 2002-2013 Hiroyuki Yamamoto & the Claws Mail team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
#ifdef HAVE_CONFIG_H
# include "config.h"
+#include "claws-features.h"
#endif
#include "defs.h"
#include "mainwindow.h"
#include "alertpanel.h"
#include "prefs_common.h"
+#include "prefs_actions.h"
#include "utils.h"
#include "prefswindow.h"
#include "prefs_gtk.h"
#include "plugin.h"
+#include "messageview.h"
enum
{
static void prefs_toolbar_create_widget(PrefsPage *_page, GtkWindow *window, gpointer data)
{
ToolbarPage *prefs_toolbar = (ToolbarPage *) _page;
- gchar *win_titles[3];
- win_titles[TOOLBAR_MAIN] = _("Main toolbar configuration");
- win_titles[TOOLBAR_COMPOSE] = _("Compose toolbar configuration");
- win_titles[TOOLBAR_MSGVIEW] = _("Message view toolbar configuration");
prefs_toolbar->window = GTK_WIDGET(window);
item->index = toolbar_ret_val_from_descr(event);
g_free(event);
- /* TODO: save A_CLAWS_ACTIONS only if they are still active */
toolbar_set_list_item(item, prefs_toolbar->source);
g_free(item->file);
static void add_item_to_plugin_combo(gpointer key, gpointer data, gpointer combo_box)
{
+#if !GTK_CHECK_VERSION(2, 24, 0)
gtk_combo_box_append_text(GTK_COMBO_BOX(combo_box), (const gchar*)key);
+#else
+ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_box), (const gchar*)key);
+#endif
}
static void prefs_toolbar_populate(ToolbarPage *prefs_toolbar)
GHashTable **hash;
prefs_toolbar->combo_action_list = toolbar_get_action_items(prefs_toolbar->source);
+#if !GTK_CHECK_VERSION(2, 24, 0)
combobox_set_popdown_strings(GTK_COMBO_BOX(prefs_toolbar->item_func_combo),
prefs_toolbar->combo_action_list);
+#else
+ combobox_set_popdown_strings(GTK_COMBO_BOX_TEXT(prefs_toolbar->item_func_combo),
+ prefs_toolbar->combo_action_list);
+#endif
/* get currently defined sylpheed actions */
if (prefs_common.actions_list != NULL) {
act = (gchar *)cur->data;
get_action_name(act, &act_name);
+#if !GTK_CHECK_VERSION(2, 24, 0)
gtk_combo_box_append_text(
GTK_COMBO_BOX(prefs_toolbar->item_action_combo),
+#else
+ gtk_combo_box_text_append_text(
+ GTK_COMBO_BOX_TEXT(prefs_toolbar->item_action_combo),
+#endif
act_name);
g_free(act_name);
}
if (item_type == ITEM_FUNCTION) {
+#if !GTK_CHECK_VERSION(2, 24, 0)
event = gtk_combo_box_get_active_text(GTK_COMBO_BOX(
+#else
+ event = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(
+#endif
prefs_toolbar->item_func_combo));
if (is_duplicate(prefs_toolbar, event)) {
-1);
if (item_type == ITEM_FUNCTION) {
+#if !GTK_CHECK_VERSION(2, 24, 0)
icon_event = gtk_combo_box_get_active_text(GTK_COMBO_BOX(
+#else
+ icon_event = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(
+#endif
prefs_toolbar->item_func_combo));
if (is_duplicate(prefs_toolbar, icon_event)
static void action_selection_changed(GtkComboBox *action_combo,
ToolbarPage *prefs_toolbar)
{
+#if !GTK_CHECK_VERSION(2, 24, 0)
gchar *text = gtk_combo_box_get_active_text(GTK_COMBO_BOX(
+#else
+ gchar *text = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(
+#endif
prefs_toolbar->item_action_combo));
if(text != NULL) { /* action */
static void plugin_selection_changed(GtkComboBox *action_combo,
ToolbarPage *prefs_toolbar)
{
+#if !GTK_CHECK_VERSION(2, 24, 0)
gchar *text = gtk_combo_box_get_active_text(GTK_COMBO_BOX(prefs_toolbar->item_plugin_combo));
+#else
+ gchar *text = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(prefs_toolbar->item_plugin_combo));
+#endif
if (text != NULL) { /* action */
gtk_entry_set_text(GTK_ENTRY(prefs_toolbar->item_text_entry), text);
static void func_selection_changed(GtkComboBox *action_combo,
ToolbarPage *prefs_toolbar)
{
+#if !GTK_CHECK_VERSION(2, 24, 0)
gchar *text = gtk_combo_box_get_active_text(GTK_COMBO_BOX(
+#else
+ gchar *text = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(
+#endif
prefs_toolbar->item_func_combo));
if(text != NULL) { /* action */
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
+#if !GTK_CHECK_VERSION(2, 24, 0)
item_action_combo = gtk_combo_box_new_text();
+#else
+ item_action_combo = gtk_combo_box_text_new();
+#endif
gtk_widget_set_size_request(item_action_combo, 200, -1);
gtk_table_attach (GTK_TABLE (table), item_action_combo, 1, 3, 1, 2,
(GtkAttachOptions) (GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
/* available internal functions */
+#if !GTK_CHECK_VERSION(2, 24, 0)
item_func_combo = gtk_combo_box_new_text();
+#else
+ item_func_combo = gtk_combo_box_text_new();
+#endif
gtk_widget_set_size_request(item_func_combo, 200, -1);
gtk_table_attach (GTK_TABLE (table), item_func_combo, 1, 3, 1, 2,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
/* plugin-registered items */
+#if !GTK_CHECK_VERSION(2, 24, 0)
item_plugin_combo = gtk_combo_box_new_text();
+#else
+ item_plugin_combo = gtk_combo_box_text_new();
+#endif
gtk_widget_set_size_request(item_plugin_combo, 200, -1);
gtk_table_attach(GTK_TABLE(table), item_plugin_combo, 1, 3, 1, 2,
(GtkAttachOptions) (GTK_FILL),
btn_hbox = gtk_hbox_new(TRUE, 4);
gtk_box_pack_start(GTK_BOX(reg_hbox), btn_hbox, FALSE, FALSE, 0);
- reg_btn = gtk_button_new_from_stock(GTK_STOCK_ADD);
+ reg_btn = gtk_button_new_with_mnemonic (_("A_dd"));
+ gtk_button_set_image(GTK_BUTTON(reg_btn),
+ gtk_image_new_from_stock(GTK_STOCK_ADD,GTK_ICON_SIZE_BUTTON));
gtk_box_pack_start(GTK_BOX(btn_hbox), reg_btn, FALSE, TRUE, 0);
g_signal_connect(G_OBJECT(reg_btn), "clicked",
G_CALLBACK(prefs_toolbar_register),
prefs_toolbar);
- subst_btn = gtkut_get_replace_btn(_("Replace"));
+ subst_btn = gtkut_get_replace_btn(_("_Replace"));
gtk_box_pack_start(GTK_BOX(btn_hbox), subst_btn, FALSE, TRUE, 0);
g_signal_connect(G_OBJECT(subst_btn), "clicked",
G_CALLBACK(prefs_toolbar_substitute),
prefs_toolbar);
- del_btn = gtk_button_new_from_stock(GTK_STOCK_DELETE);
+ del_btn = gtk_button_new_with_mnemonic (_("Re_move"));
+ gtk_button_set_image(GTK_BUTTON(del_btn),
+ gtk_image_new_from_stock(GTK_STOCK_REMOVE,GTK_ICON_SIZE_BUTTON));
gtk_box_pack_start(GTK_BOX(btn_hbox), del_btn, FALSE, TRUE, 0);
g_signal_connect(G_OBJECT(del_btn), "clicked",
G_CALLBACK(prefs_toolbar_delete),
g_free(prefs_toolbar_messageview);
}
+void prefs_toolbar_update_action_btns(void)
+{
+ if (toolbar_check_action_btns(TOOLBAR_MAIN)) {
+ toolbar_save_config_file(TOOLBAR_MAIN);
+ toolbar_update(TOOLBAR_MAIN, mainwindow_get_mainwindow());
+ }
+
+ if (toolbar_check_action_btns(TOOLBAR_COMPOSE)) {
+ toolbar_save_config_file(TOOLBAR_COMPOSE);
+ compose_reflect_prefs_pixmap_theme();
+ }
+
+ if (toolbar_check_action_btns(TOOLBAR_MSGVIEW)) {
+ toolbar_save_config_file(TOOLBAR_MSGVIEW);
+ messageview_reflect_prefs_pixmap_theme();
+ }
+}
+
static void set_visible_if_not_text(GtkTreeViewColumn *col,
GtkCellRenderer *renderer,
GtkTreeModel *model,
static gboolean icon_chooser_key_pressed(GtkWidget *widget, GdkEventKey *event,
ToolbarPage *prefs_toolbar)
{
- if (event && event->keyval == GDK_Escape) {
+ if (event && event->keyval == GDK_KEY_Escape) {
icon_chooser_cancel_clicked(NULL, prefs_toolbar);
return TRUE;
}
ToolbarPage *prefs_toolbar)
{
if (event) {
- if (event->keyval == GDK_KP_Enter ||
- event->keyval == GDK_Return ||
- event->keyval == GDK_space) {
+ if (event->keyval == GDK_KEY_KP_Enter ||
+ event->keyval == GDK_KEY_Return ||
+ event->keyval == GDK_KEY_space) {
icon_chooser_ok_clicked(NULL, prefs_toolbar);
return TRUE;
}
GdkEventButton *event,
ToolbarPage *prefs_toolbar )
{
- GtkWidget *event_widget, *button;
+ GtkWidget *event_widget;
gboolean restore = TRUE;
- button = prefs_toolbar->icon_button;
-
/* Test where mouse was clicked */
event_widget = gtk_get_event_widget((GdkEvent *)event);
if (event_widget != widget) {
icon_chooser_win = gtkut_window_new(GTK_WINDOW_TOPLEVEL, "prefs_toolbar");
gtk_window_set_title(GTK_WINDOW(icon_chooser_win), _("Toolbar item icon"));
-#ifndef MAEMO
gtk_window_set_decorated(GTK_WINDOW(icon_chooser_win), FALSE);
-#endif
gdk_window_get_origin(gtk_widget_get_window(
GTK_WIDGET(prefs_toolbar->icon_button)),
&x, &y);