remove gtk_window_set_wmclass()
[claws.git] / src / prefs_matcher.c
index 570f36a45de2f4855338fea17accaee28ed38fc4..3d981392e33f07ecf414fb2bf37053ee7fb04e04 100644 (file)
@@ -78,7 +78,7 @@ static struct Matcher {
        GtkWidget *regexp_chkbtn;
        GtkWidget *color_optmenu;
 
-       GtkWidget *exec_btn;
+       GtkWidget *test_btn;
 
        GtkWidget *cond_clist;
 
@@ -128,11 +128,13 @@ enum {
        CRITERIA_SCORE_LOWER = 25,
        CRITERIA_SCORE_EQUAL = 26,
 
-       CRITERIA_EXECUTE = 27,
+       CRITERIA_TEST = 27,
 
        CRITERIA_SIZE_GREATER = 28,
        CRITERIA_SIZE_SMALLER = 29,
-       CRITERIA_SIZE_EQUAL   = 30
+       CRITERIA_SIZE_EQUAL   = 30,
+       
+       CRITERIA_PARTIAL = 31
 };
 
 /*!
@@ -153,7 +155,7 @@ static const gchar *criteria_text [] = {
        N_("Ignore thread"),
        N_("Score greater than"), N_("Score lower than"),
        N_("Score equal to"),
-       N_("Execute"),
+       N_("Test"),
        N_("Size greater than"), 
        N_("Size smaller than"),
        N_("Size exactly")
@@ -232,7 +234,7 @@ static void prefs_matcher_select    (GtkCList       *clist,
                                         gint            row,
                                         gint            column,
                                         GdkEvent       *event);
-static void prefs_matcher_key_pressed  (GtkWidget      *widget,
+static gboolean prefs_matcher_key_pressed(GtkWidget    *widget,
                                         GdkEventKey    *event,
                                         gpointer        data);
 static void prefs_matcher_ok           (void);
@@ -346,7 +348,7 @@ static void prefs_matcher_create(void)
        GtkWidget *up_btn;
        GtkWidget *down_btn;
 
-       GtkWidget *exec_btn;
+       GtkWidget *test_btn;
 
        GtkWidget *color_optmenu;
 
@@ -359,9 +361,9 @@ static void prefs_matcher_create(void)
 
        window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        gtk_container_set_border_width(GTK_CONTAINER(window), 8);
-       gtk_window_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
+       gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
        gtk_window_set_modal(GTK_WINDOW(window), TRUE);
-       gtk_window_set_policy(GTK_WINDOW(window), FALSE, TRUE, FALSE);
+       gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
 
        vbox = gtk_vbox_new(FALSE, 6);
        gtk_widget_show(vbox);
@@ -375,15 +377,15 @@ static void prefs_matcher_create(void)
 
        gtk_window_set_title(GTK_WINDOW(window),
                             _("Condition configuration"));
-       gtk_signal_connect(GTK_OBJECT(window), "delete_event",
-                          GTK_SIGNAL_FUNC(prefs_matcher_deleted), NULL);
-       gtk_signal_connect(GTK_OBJECT(window), "key_press_event",
-                          GTK_SIGNAL_FUNC(prefs_matcher_key_pressed), NULL);
+       g_signal_connect(G_OBJECT(window), "delete_event",
+                        G_CALLBACK(prefs_matcher_deleted), NULL);
+       g_signal_connect(G_OBJECT(window), "key_press_event",
+                        G_CALLBACK(prefs_matcher_key_pressed), NULL);
        MANAGE_WINDOW_SIGNALS_CONNECT(window);
-       gtk_signal_connect(GTK_OBJECT(ok_btn), "clicked",
-                          GTK_SIGNAL_FUNC(prefs_matcher_ok), NULL);
-       gtk_signal_connect(GTK_OBJECT(cancel_btn), "clicked",
-                          GTK_SIGNAL_FUNC(prefs_matcher_cancel), NULL);
+       g_signal_connect(G_OBJECT(ok_btn), "clicked",
+                        G_CALLBACK(prefs_matcher_ok), NULL);
+       g_signal_connect(G_OBJECT(cancel_btn), "clicked",
+                        G_CALLBACK(prefs_matcher_cancel), NULL);
 
        vbox1 = gtk_vbox_new(FALSE, VSPACING);
        gtk_widget_show(vbox1);
@@ -422,9 +424,9 @@ static void prefs_matcher_create(void)
        gtk_table_attach(GTK_TABLE(criteria_table), criteria_combo, 0, 1, 1, 2,
                          0, 0, 0, 0);
        criteria_list = GTK_COMBO(criteria_combo)->list;
-       gtk_signal_connect(GTK_OBJECT(criteria_list), "select-child",
-                          GTK_SIGNAL_FUNC(prefs_matcher_criteria_select),
-                          NULL);
+       g_signal_connect(G_OBJECT(criteria_list), "select-child",
+                        G_CALLBACK(prefs_matcher_criteria_select),
+                        NULL);
 
        gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(criteria_combo)->entry),
                               FALSE);
@@ -464,13 +466,13 @@ static void prefs_matcher_create(void)
        gtk_table_attach(GTK_TABLE(criteria_table), value_entry, 2, 3, 1, 2,
                         GTK_FILL | GTK_SHRINK | GTK_EXPAND, 0, 0, 0);
 
-       exec_btn = gtk_button_new_with_label(_("Info ..."));
-       gtk_widget_show(exec_btn);
-       gtk_table_attach(GTK_TABLE (criteria_table), exec_btn, 3, 4, 1, 2,
+       test_btn = gtk_button_new_with_label(_("Info ..."));
+       gtk_widget_show(test_btn);
+       gtk_table_attach(GTK_TABLE (criteria_table), test_btn, 3, 4, 1, 2,
                         GTK_FILL | GTK_SHRINK | GTK_EXPAND, 0, 0, 0);
-       gtk_signal_connect(GTK_OBJECT (exec_btn), "clicked",
-                          GTK_SIGNAL_FUNC (prefs_matcher_exec_info),
-                          NULL);
+       g_signal_connect(G_OBJECT (test_btn), "clicked",
+                        G_CALLBACK(prefs_matcher_test_info),
+                        NULL);
 
        color_optmenu = gtk_option_menu_new();
        gtk_option_menu_set_menu(GTK_OPTION_MENU(color_optmenu),
@@ -557,21 +559,21 @@ static void prefs_matcher_create(void)
        reg_btn = gtk_button_new_with_label(_("Add"));
        gtk_widget_show(reg_btn);
        gtk_box_pack_start(GTK_BOX(btn_hbox), reg_btn, FALSE, TRUE, 0);
-       gtk_signal_connect(GTK_OBJECT(reg_btn), "clicked",
-                          GTK_SIGNAL_FUNC(prefs_matcher_register_cb), NULL);
+       g_signal_connect(G_OBJECT(reg_btn), "clicked",
+                        G_CALLBACK(prefs_matcher_register_cb), NULL);
 
        subst_btn = gtk_button_new_with_label(_("  Replace  "));
        gtk_widget_show(subst_btn);
        gtk_box_pack_start(GTK_BOX(btn_hbox), subst_btn, FALSE, TRUE, 0);
-       gtk_signal_connect(GTK_OBJECT(subst_btn), "clicked",
-                          GTK_SIGNAL_FUNC(prefs_matcher_substitute_cb),
-                          NULL);
+       g_signal_connect(G_OBJECT(subst_btn), "clicked",
+                        G_CALLBACK(prefs_matcher_substitute_cb),
+                        NULL);
 
        del_btn = gtk_button_new_with_label(_("Delete"));
        gtk_widget_show(del_btn);
        gtk_box_pack_start(GTK_BOX(btn_hbox), del_btn, FALSE, TRUE, 0);
-       gtk_signal_connect(GTK_OBJECT(del_btn), "clicked",
-                          GTK_SIGNAL_FUNC(prefs_matcher_delete_cb), NULL);
+       g_signal_connect(G_OBJECT(del_btn), "clicked",
+                        G_CALLBACK(prefs_matcher_delete_cb), NULL);
 
        /* boolean operation */
 
@@ -623,8 +625,8 @@ static void prefs_matcher_create(void)
                                     GTK_SELECTION_BROWSE);
        GTK_WIDGET_UNSET_FLAGS(GTK_CLIST(cond_clist)->column[0].button,
                               GTK_CAN_FOCUS);
-       gtk_signal_connect(GTK_OBJECT(cond_clist), "select_row",
-                          GTK_SIGNAL_FUNC(prefs_matcher_select), NULL);
+       g_signal_connect(G_OBJECT(cond_clist), "select_row",
+                        G_CALLBACK(prefs_matcher_select), NULL);
 
        btn_vbox = gtk_vbox_new(FALSE, 8);
        gtk_widget_show(btn_vbox);
@@ -633,14 +635,14 @@ static void prefs_matcher_create(void)
        up_btn = gtk_button_new_with_label(_("Up"));
        gtk_widget_show(up_btn);
        gtk_box_pack_start(GTK_BOX(btn_vbox), up_btn, FALSE, FALSE, 0);
-       gtk_signal_connect(GTK_OBJECT(up_btn), "clicked",
-                          GTK_SIGNAL_FUNC(prefs_matcher_up), NULL);
+       g_signal_connect(G_OBJECT(up_btn), "clicked",
+                        G_CALLBACK(prefs_matcher_up), NULL);
 
        down_btn = gtk_button_new_with_label(_("Down"));
        gtk_widget_show(down_btn);
        gtk_box_pack_start(GTK_BOX(btn_vbox), down_btn, FALSE, FALSE, 0);
-       gtk_signal_connect(GTK_OBJECT(down_btn), "clicked",
-                          GTK_SIGNAL_FUNC(prefs_matcher_down), NULL);
+       g_signal_connect(G_OBJECT(down_btn), "clicked",
+                        G_CALLBACK(prefs_matcher_down), NULL);
 
        gtk_widget_show_all(window);
 
@@ -662,7 +664,7 @@ static void prefs_matcher_create(void)
        matcher.case_chkbtn = case_chkbtn;
        matcher.regexp_chkbtn = regexp_chkbtn;
        matcher.bool_op_list = bool_op_list;
-       matcher.exec_btn = exec_btn;
+       matcher.test_btn = test_btn;
        matcher.color_optmenu = color_optmenu;
        matcher.criteria_table = criteria_table;
 
@@ -828,6 +830,9 @@ static gint prefs_matcher_get_criteria_from_matching(gint matching_id)
        case MATCHCRITERIA_LOCKED:
        case MATCHCRITERIA_NOT_LOCKED:
                return CRITERIA_LOCKED;
+       case MATCHCRITERIA_PARTIAL:
+       case MATCHCRITERIA_NOT_PARTIAL:
+               return CRITERIA_PARTIAL;
        case MATCHCRITERIA_COLORLABEL:
        case MATCHCRITERIA_NOT_COLORLABEL:
                return CRITERIA_COLORLABEL;
@@ -881,9 +886,9 @@ static gint prefs_matcher_get_criteria_from_matching(gint matching_id)
                return CRITERIA_SCORE_LOWER;
        case MATCHCRITERIA_SCORE_EQUAL:
                return CRITERIA_SCORE_EQUAL;
-       case MATCHCRITERIA_NOT_EXECUTE:
-       case MATCHCRITERIA_EXECUTE:
-               return CRITERIA_EXECUTE;
+       case MATCHCRITERIA_NOT_TEST:
+       case MATCHCRITERIA_TEST:
+               return CRITERIA_TEST;
        case MATCHCRITERIA_SIZE_GREATER:
                return CRITERIA_SIZE_GREATER;
        case MATCHCRITERIA_SIZE_SMALLER:
@@ -922,6 +927,8 @@ static gint prefs_matcher_get_matching_from_criteria(gint criteria_id)
                return MATCHCRITERIA_FORWARDED;
        case CRITERIA_LOCKED:
                return MATCHCRITERIA_LOCKED;
+       case CRITERIA_PARTIAL:
+               return MATCHCRITERIA_PARTIAL;
        case CRITERIA_COLORLABEL:
                return MATCHCRITERIA_COLORLABEL;
        case CRITERIA_IGNORE_THREAD:
@@ -960,8 +967,8 @@ static gint prefs_matcher_get_matching_from_criteria(gint criteria_id)
                return MATCHCRITERIA_BODY_PART;
        case CRITERIA_MESSAGE:
                return MATCHCRITERIA_MESSAGE;
-       case CRITERIA_EXECUTE:
-               return MATCHCRITERIA_EXECUTE;
+       case CRITERIA_TEST:
+               return MATCHCRITERIA_TEST;
        case CRITERIA_SIZE_GREATER:
                return MATCHCRITERIA_SIZE_GREATER;
        case CRITERIA_SIZE_SMALLER:
@@ -998,6 +1005,8 @@ static gint prefs_matcher_not_criteria(gint matcher_criteria)
                return MATCHCRITERIA_NOT_FORWARDED;
        case MATCHCRITERIA_LOCKED:
                return MATCHCRITERIA_NOT_LOCKED;
+       case MATCHCRITERIA_PARTIAL:
+               return MATCHCRITERIA_NOT_PARTIAL;
        case MATCHCRITERIA_COLORLABEL:
                return MATCHCRITERIA_NOT_COLORLABEL;
        case MATCHCRITERIA_IGNORE_THREAD:
@@ -1024,8 +1033,8 @@ static gint prefs_matcher_not_criteria(gint matcher_criteria)
                return MATCHCRITERIA_NOT_HEADERS_PART;
        case MATCHCRITERIA_MESSAGE:
                return MATCHCRITERIA_NOT_MESSAGE;
-       case MATCHCRITERIA_EXECUTE:
-               return MATCHCRITERIA_NOT_EXECUTE;
+       case MATCHCRITERIA_TEST:
+               return MATCHCRITERIA_NOT_TEST;
        case MATCHCRITERIA_BODY_PART:
                return MATCHCRITERIA_NOT_BODY_PART;
        default:
@@ -1072,7 +1081,8 @@ static MatcherProp *prefs_matcher_dialog_to_matcher(void)
        case CRITERIA_REPLIED:
        case CRITERIA_FORWARDED:
        case CRITERIA_LOCKED:
-       case CRITERIA_EXECUTE:
+       case CRITERIA_PARTIAL:
+       case CRITERIA_TEST:
        case CRITERIA_COLORLABEL:
        case CRITERIA_IGNORE_THREAD:
                if (value_pred_flag == PREDICATE_FLAG_DISABLED)
@@ -1123,6 +1133,7 @@ static MatcherProp *prefs_matcher_dialog_to_matcher(void)
        case CRITERIA_REPLIED:
        case CRITERIA_FORWARDED:
        case CRITERIA_LOCKED:
+       case CRITERIA_PARTIAL:
        case CRITERIA_IGNORE_THREAD:
                break;
 
@@ -1137,7 +1148,7 @@ static MatcherProp *prefs_matcher_dialog_to_matcher(void)
        case CRITERIA_HEADERS_PART:
        case CRITERIA_BODY_PART:
        case CRITERIA_MESSAGE:
-       case CRITERIA_EXECUTE:
+       case CRITERIA_TEST:
                expr = gtk_entry_get_text(GTK_ENTRY(matcher.value_entry));
                break;
 
@@ -1330,6 +1341,7 @@ static void prefs_matcher_select(GtkCList *clist, gint row, gint column,
        case MATCHCRITERIA_NOT_REPLIED:
        case MATCHCRITERIA_NOT_FORWARDED:
        case MATCHCRITERIA_NOT_LOCKED:
+       case MATCHCRITERIA_NOT_PARTIAL:
        case MATCHCRITERIA_NOT_COLORLABEL:
        case MATCHCRITERIA_NOT_IGNORE_THREAD:
        case MATCHCRITERIA_NOT_SUBJECT:
@@ -1374,7 +1386,7 @@ static void prefs_matcher_select(GtkCList *clist, gint row, gint column,
        case MATCHCRITERIA_HEADERS_PART:
        case MATCHCRITERIA_BODY_PART:
        case MATCHCRITERIA_MESSAGE:
-       case MATCHCRITERIA_EXECUTE:
+       case MATCHCRITERIA_TEST:
                gtk_entry_set_text(GTK_ENTRY(matcher.value_entry), prop->expr);
                break;
 
@@ -1494,7 +1506,7 @@ static void prefs_matcher_criteria_select(GtkList *list,
                gtk_widget_show(matcher.predicate_flag_combo);
                gtk_widget_set_sensitive(matcher.case_chkbtn, FALSE);
                gtk_widget_set_sensitive(matcher.regexp_chkbtn, FALSE);
-               gtk_widget_set_sensitive(matcher.exec_btn, FALSE);
+               gtk_widget_set_sensitive(matcher.test_btn, FALSE);
                break;
 
        case CRITERIA_UNREAD:
@@ -1504,6 +1516,7 @@ static void prefs_matcher_criteria_select(GtkList *list,
        case CRITERIA_REPLIED:
        case CRITERIA_FORWARDED:
        case CRITERIA_LOCKED:
+       case CRITERIA_PARTIAL:
        case CRITERIA_IGNORE_THREAD:
                gtk_widget_set_sensitive(matcher.header_combo, FALSE);
                gtk_widget_set_sensitive(matcher.header_label, FALSE);
@@ -1516,7 +1529,7 @@ static void prefs_matcher_criteria_select(GtkList *list,
                gtk_widget_show(matcher.predicate_flag_combo);
                gtk_widget_set_sensitive(matcher.case_chkbtn, FALSE);
                gtk_widget_set_sensitive(matcher.regexp_chkbtn, FALSE);
-               gtk_widget_set_sensitive(matcher.exec_btn, FALSE);
+               gtk_widget_set_sensitive(matcher.test_btn, FALSE);
                break;
                
        case CRITERIA_COLORLABEL:
@@ -1530,7 +1543,7 @@ static void prefs_matcher_criteria_select(GtkList *list,
                gtk_widget_show(matcher.predicate_flag_combo);
                gtk_widget_set_sensitive(matcher.case_chkbtn, FALSE);
                gtk_widget_set_sensitive(matcher.regexp_chkbtn, FALSE);
-               gtk_widget_set_sensitive(matcher.exec_btn, FALSE);
+               gtk_widget_set_sensitive(matcher.test_btn, FALSE);
                break;
 
        case CRITERIA_SUBJECT:
@@ -1555,10 +1568,10 @@ static void prefs_matcher_criteria_select(GtkList *list,
                gtk_widget_hide(matcher.predicate_flag_combo);
                gtk_widget_set_sensitive(matcher.case_chkbtn, TRUE);
                gtk_widget_set_sensitive(matcher.regexp_chkbtn, TRUE);
-               gtk_widget_set_sensitive(matcher.exec_btn, FALSE);
+               gtk_widget_set_sensitive(matcher.test_btn, FALSE);
                break;
 
-       case CRITERIA_EXECUTE:
+       case CRITERIA_TEST:
                gtk_widget_set_sensitive(matcher.header_combo, FALSE);
                gtk_widget_set_sensitive(matcher.header_label, FALSE);
                gtk_widget_set_sensitive(matcher.value_label, TRUE);
@@ -1570,7 +1583,7 @@ static void prefs_matcher_criteria_select(GtkList *list,
                gtk_widget_show(matcher.predicate_flag_combo);
                gtk_widget_set_sensitive(matcher.case_chkbtn, FALSE);
                gtk_widget_set_sensitive(matcher.regexp_chkbtn, FALSE);
-               gtk_widget_set_sensitive(matcher.exec_btn, TRUE);
+               gtk_widget_set_sensitive(matcher.test_btn, TRUE);
                break;
 
        case CRITERIA_AGE_GREATER:
@@ -1592,7 +1605,7 @@ static void prefs_matcher_criteria_select(GtkList *list,
                gtk_widget_hide(matcher.predicate_flag_combo);
                gtk_widget_set_sensitive(matcher.case_chkbtn, FALSE);
                gtk_widget_set_sensitive(matcher.regexp_chkbtn, FALSE);
-               gtk_widget_set_sensitive(matcher.exec_btn, FALSE);
+               gtk_widget_set_sensitive(matcher.test_btn, FALSE);
                break;
 
        case CRITERIA_HEADER:
@@ -1607,7 +1620,7 @@ static void prefs_matcher_criteria_select(GtkList *list,
                gtk_widget_hide(matcher.predicate_flag_combo);
                gtk_widget_set_sensitive(matcher.case_chkbtn, TRUE);
                gtk_widget_set_sensitive(matcher.regexp_chkbtn, TRUE);
-               gtk_widget_set_sensitive(matcher.exec_btn, FALSE);
+               gtk_widget_set_sensitive(matcher.test_btn, FALSE);
                break;
        }
 }
@@ -1619,11 +1632,14 @@ static void prefs_matcher_criteria_select(GtkList *list,
  *\param       event Key event
  *\param       data User data
  */
-static void prefs_matcher_key_pressed(GtkWidget *widget, GdkEventKey *event,
+static gboolean prefs_matcher_key_pressed(GtkWidget *widget, GdkEventKey *event,
                                     gpointer data)
 {
-       if (event && event->keyval == GDK_Escape)
+       if (event && event->keyval == GDK_Escape) {
                prefs_matcher_cancel();
+               return TRUE;            
+       }
+       return FALSE;
 }
 
 /*!
@@ -1697,11 +1713,15 @@ static gint prefs_matcher_deleted(GtkWidget *widget, GdkEventAny *event,
 }
 
 /*
- * Strings describing exec format strings
+ * Strings describing test format strings
  * 
  * When adding new lines, remember to put 2 strings for each line
  */
-static gchar *exec_desc_strings[] = {
+static gchar *test_desc_strings[] = {
+       N_("'Test' allows you to test a message or message element"), NULL,
+       N_("using an external program or script. The program will"), NULL,
+       N_("return either 0 or 1"), NULL,
+       N_("The following symbols can be used:"), NULL,
        "%%",   "%",
        "%s",   N_("Subject"),
        "%f",   N_("From"),
@@ -1714,24 +1734,24 @@ static gchar *exec_desc_strings[] = {
        "%F",   N_("Filename - should not be modified"),
        "\\n",  N_("new line"),
        "\\",   N_("escape character for quotes"),
-       "\\\"",N_("quote character"),
-       NULL, NULL
+       "\\\"", N_("quote character"),
+       NULL,   NULL
 };
 
-static DescriptionWindow exec_desc_win = { 
+static DescriptionWindow test_desc_win = { 
         NULL, 
         2,
-        N_("Description of symbols"),
-        exec_desc_strings
+        N_("Match Type: 'Test'"),
+        test_desc_strings
 };
 
 
 
 /*!
- *\brief       Show Execute action's info
+ *\brief       Show Test action's info
  */
-void prefs_matcher_exec_info(void)
+void prefs_matcher_test_info(void)
 {
-       description_window_create(&exec_desc_win);
+       description_window_create(&test_desc_win);
 }