/*
* Claws Mail -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 2003-2007 the Claws Mail team
+ * Copyright (C) 2003-2011 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
#include <string.h>
#include <errno.h>
+#if !GTK_CHECK_VERSION(3, 0, 0)
#include "gtkcmoptionmenu.h"
+#endif
#include "main.h"
#include "prefs_gtk.h"
#include "prefs_filtering_action.h"
static void prefs_filtering_action_type_selection_changed(GtkWidget *widget,
gpointer user_data);
static void prefs_filtering_action_select_dest(void);
+#ifndef USE_NEW_ADDRBOOK
static void prefs_filtering_action_select_addressbook(void);
+#endif
static void prefs_filtering_action_up(void);
static void prefs_filtering_action_down(void);
static void prefs_filtering_action_set_dialog(GSList *action_list);
GtkWidget *dest_entry;
GtkWidget *dest_btn;
GtkWidget *exec_btn;
+#if !GTK_CHECK_VERSION(3, 0, 0)
GtkWidget *color_optmenu;
+#endif
GtkWidget *header_combo;
GtkWidget *header_entry;
GtkWidget *addressbook_btn;
{ N_("Message flags"), N_("Mark as spam"), ACTION_MARK_AS_SPAM },
{ N_("Message flags"), N_("Mark as ham"), ACTION_MARK_AS_HAM },
{ NULL, N_("Execute"), ACTION_EXECUTE },
+#if !GTK_CHECK_VERSION(3, 0, 0)
{ NULL, N_("Color label"), ACTION_COLOR },
+#endif
{ N_("Resend"), N_("Forward"), ACTION_FORWARD },
{ N_("Resend"), N_("Forward as attachment"), ACTION_FORWARD_AS_ATTACHMENT },
{ N_("Resend"), N_("Redirect"), ACTION_REDIRECT },
if (!filtering_action.window) {
prefs_filtering_action_create();
} else {
+#if !GTK_CHECK_VERSION(3, 0, 0)
/* update color label menu */
gtk_cmoption_menu_set_menu(GTK_CMOPTION_MENU(filtering_action.color_optmenu),
colorlabel_create_color_menu());
+#endif
}
manage_window_set_transient(GTK_WINDOW(filtering_action.window));
static void prefs_filtering_action_size_allocate_cb(GtkWidget *widget,
GtkAllocation *allocation)
{
- g_return_if_fail(allocation != NULL);
+ cm_return_if_fail(allocation != NULL);
prefs_common.filteringactionwin_width = allocation->width;
prefs_common.filteringactionwin_height = allocation->height;
GtkWidget *exec_btn;
+#if !GTK_CHECK_VERSION(3, 0, 0)
GtkWidget *color_optmenu;
+#endif
static GdkGeometry geometry;
score_entry = gtk_spin_button_new_with_range(-1000, 1000, 1);
gtk_box_pack_start(GTK_BOX(hbox1), score_entry, FALSE, FALSE, 0);
+#if !GTK_CHECK_VERSION(3, 0, 0)
color_optmenu = gtk_cmoption_menu_new();
gtk_size_group_add_widget(size_action, color_optmenu);
gtk_cmoption_menu_set_menu(GTK_CMOPTION_MENU(color_optmenu),
colorlabel_create_color_menu());
prefs_filtering_action_check_widget_width(color_optmenu);
gtk_box_pack_start(GTK_BOX(hbox1), color_optmenu, FALSE, FALSE, 0);
+#endif
tags_combo = gtk_combo_box_new_text ();
gtk_size_group_add_widget(size_action, tags_combo);
addressbook_btn = gtk_button_new_with_label (_("Select ..."));
gtk_box_pack_start (GTK_BOX (hbox1), addressbook_btn, FALSE, FALSE, 0);
+#ifndef USE_NEW_ADDRBOOK
g_signal_connect (G_OBJECT (addressbook_btn), "clicked",
G_CALLBACK(prefs_filtering_action_select_addressbook),
NULL);
-
-#if GTK_CHECK_VERSION(2, 8, 0)
- exec_btn = gtk_button_new_from_stock(GTK_STOCK_INFO);
#else
- exec_btn = gtk_button_new_with_label (_("Info..."));
+ gtk_widget_set_sensitive(GTK_WIDGET(addressbook_btn), FALSE);
#endif
+ exec_btn = gtk_button_new_from_stock(GTK_STOCK_INFO);
gtk_box_pack_start (GTK_BOX (hbox1), exec_btn, FALSE, FALSE, 0);
g_signal_connect (G_OBJECT (exec_btn), "clicked",
G_CALLBACK(prefs_filtering_action_exec_info),
filtering_action.dest_entry = dest_entry;
filtering_action.dest_btn = dest_btn;
filtering_action.exec_btn = exec_btn;
+#if !GTK_CHECK_VERSION(3, 0, 0)
filtering_action.color_optmenu = color_optmenu;
+#endif
filtering_action.score_entry = score_entry;
filtering_action.header_combo = header_combo;
filtering_action.header_entry = header_entry;
+#ifndef USE_NEW_ADDRBOOK
filtering_action.addressbook_btn = addressbook_btn;
+#endif
filtering_action.ok_btn = ok_btn;
filtering_action.action_list_view = action_list_view;
static void prefs_filtering_action_list_view_set_row(GtkTreeIter *row,
FilteringAction *action)
{
- gchar buf[256];
+ gchar *buf;
if (row == NULL && action == NULL) {
prefs_filtering_action_list_view_insert_action
return;
}
- filteringaction_to_string(buf, sizeof buf, action);
+ buf = filteringaction_to_string(action);
prefs_filtering_action_list_view_insert_action
(filtering_action.action_list_view,
row, buf, TRUE);
+ g_free(buf);
}
/*!
return MATCHACTION_REDIRECT;
case ACTION_EXECUTE:
return MATCHACTION_EXECUTE;
+#if !GTK_CHECK_VERSION(3, 0, 0)
case ACTION_COLOR:
return MATCHACTION_COLOR;
+#endif
case ACTION_HIDE:
return MATCHACTION_HIDE;
case ACTION_IGNORE:
return NULL;
}
break;
+#if !GTK_CHECK_VERSION(3, 0, 0)
case ACTION_COLOR:
labelcolor = colorlabel_get_color_menu_active_item(
gtk_cmoption_menu_get_menu(GTK_CMOPTION_MENU(filtering_action.color_optmenu)));
destination = NULL;
break;
+#endif
case ACTION_CHANGE_SCORE:
case ACTION_SET_SCORE:
score = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(
static gboolean prefs_filtering_action_key_pressed(GtkWidget *widget,
GdkEventKey *event, gpointer data)
{
- if (event && event->keyval == GDK_Escape) {
+ if (event && event->keyval == GDK_KEY_Escape) {
prefs_filtering_action_cancel();
return TRUE;
}
g_free(path);
}
+#ifndef USE_NEW_ADDRBOOK
static void prefs_filtering_action_select_addressbook(void)
{
const gchar *folderpath = NULL;
g_free(new_path);
}
}
+#endif
static void prefs_filtering_action_enable_widget(GtkWidget* widget, const gboolean enable)
{
- g_return_if_fail(widget != NULL);
+ cm_return_if_fail(widget != NULL);
if(enable == TRUE)
{
+#if !GTK_CHECK_VERSION(2,24,0)
if(GTK_IS_COMBO_BOX(widget) || GTK_IS_COMBO_BOX_ENTRY(widget))
+#else
+ if(GTK_IS_COMBO_BOX(widget))
+#endif
gtk_combo_box_set_active(GTK_COMBO_BOX(widget), 0);
else if(GTK_IS_SPIN_BUTTON(widget))
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), 0);
prefs_filtering_action_enable_widget(filtering_action.exec_btn,
(value == ACTION_EXECUTE));
+#if !GTK_CHECK_VERSION(3, 0, 0)
prefs_filtering_action_enable_widget(filtering_action.color_optmenu,
(value == ACTION_COLOR));
+#endif
prefs_filtering_action_enable_widget(filtering_action.header_combo,
(value == ACTION_ADD_TO_ADDRESSBOOK));
case ACTION_MOVE:
gtk_label_set_text(GTK_LABEL(filtering_action.label3), _("Destination"));
break;
+#if !GTK_CHECK_VERSION(3, 0, 0)
case ACTION_COLOR:
gtk_label_set_text(GTK_LABEL(filtering_action.label3), _("Color"));
break;
+#endif
case ACTION_EXECUTE:
gtk_label_set_text(GTK_LABEL(filtering_action.label3), _("Execute"));
break;
gint list_id;
GtkTreeIter iter;
gboolean is_valid;
+ GtkWidget *menu;
if (currently_selected)
return TRUE;
combobox_select_by_data(GTK_COMBO_BOX(filtering_action.action_combo),
ACTION_EXECUTE);
break;
+#if !GTK_CHECK_VERSION(3, 0, 0)
case MATCHACTION_COLOR:
combobox_select_by_data(GTK_COMBO_BOX(filtering_action.action_combo),
ACTION_COLOR);
gtk_cmoption_menu_set_history(GTK_CMOPTION_MENU(filtering_action.color_optmenu),
- action->labelcolor);
+ action->labelcolor + 1);
+ menu = gtk_cmoption_menu_get_menu(GTK_CMOPTION_MENU(
+ filtering_action.color_optmenu));
+ g_signal_emit_by_name(G_OBJECT(menu), "selection-done", menu);
break;
+#endif
case MATCHACTION_CHANGE_SCORE:
combobox_select_by_data(GTK_COMBO_BOX(filtering_action.action_combo),
ACTION_CHANGE_SCORE);