2005-06-26 [paul] 1.9.11cvs104
[claws.git] / src / prefs_filtering.c
index 91fb5588be3ecde0c95816d4b1096d99140f2a3b..c54a25b0dcc1ac455b528441c11f3e2b297002c9 100644 (file)
@@ -158,6 +158,15 @@ void prefs_filtering_open(GSList ** p_processing,
        start_address_completion();
 }
 
+static void prefs_filtering_size_allocate_cb(GtkWidget *widget,
+                                        GtkAllocation *allocation)
+{
+       g_return_if_fail(allocation != NULL);
+
+       prefs_common.filteringwin_width = allocation->width;
+       prefs_common.filteringwin_height = allocation->height;
+}
+
 /* prefs_filtering_close() - just to have one common exit point */
 static void prefs_filtering_close(void)
 {
@@ -202,8 +211,7 @@ static void prefs_filtering_create(void)
        GtkWidget *up_btn;
        GtkWidget *down_btn;
        GtkWidget *bottom_btn;
-
-       gchar *title[1];
+       static GdkGeometry geometry;
 
        debug_print("Creating filtering configuration window...\n");
 
@@ -228,6 +236,8 @@ static void prefs_filtering_create(void)
 
        g_signal_connect(G_OBJECT(window), "delete_event",
                         G_CALLBACK(prefs_filtering_deleted), NULL);
+       g_signal_connect(G_OBJECT(window), "size_allocate",
+                        G_CALLBACK(prefs_filtering_size_allocate_cb), NULL);
        g_signal_connect(G_OBJECT(window), "key_press_event",
                         G_CALLBACK(prefs_filtering_key_pressed), NULL);
        MANAGE_WINDOW_SIGNALS_CONNECT (window);
@@ -292,7 +302,7 @@ static void prefs_filtering_create(void)
        arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_OUT);
        gtk_widget_show (arrow);
        gtk_box_pack_start (GTK_BOX (reg_hbox), arrow, FALSE, FALSE, 0);
-       gtk_widget_set_usize (arrow, -1, 16);
+       gtk_widget_set_size_request (arrow, -1, 16);
 
        btn_hbox = gtk_hbox_new (TRUE, 4);
        gtk_widget_show (btn_hbox);
@@ -311,7 +321,7 @@ static void prefs_filtering_create(void)
                         G_CALLBACK(prefs_filtering_substitute_cb),
                         NULL);
 
-       del_btn = gtk_button_new_from_stock (GTK_STOCK_REMOVE);
+       del_btn = gtk_button_new_from_stock (GTK_STOCK_DELETE);
        gtk_widget_show (del_btn);
        gtk_box_pack_start (GTK_BOX (btn_hbox), del_btn, FALSE, TRUE, 0);
        g_signal_connect(G_OBJECT (del_btn), "clicked",
@@ -323,7 +333,7 @@ static void prefs_filtering_create(void)
 
        cond_scrolledwin = gtk_scrolled_window_new (NULL, NULL);
        gtk_widget_show (cond_scrolledwin);
-       gtk_widget_set_usize (cond_scrolledwin, -1, 150);
+       gtk_widget_set_size_request (cond_scrolledwin, -1, 150);
        gtk_box_pack_start (GTK_BOX (cond_hbox), cond_scrolledwin,
                            TRUE, TRUE, 0);
        gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (cond_scrolledwin),
@@ -366,7 +376,15 @@ static void prefs_filtering_create(void)
        g_signal_connect(G_OBJECT (bottom_btn), "clicked",
                         G_CALLBACK(prefs_filtering_bottom), NULL);
 
-       gtk_widget_set_usize(window, 500, -1);
+       if (!geometry.min_height) {
+               geometry.min_width = 500;
+               geometry.min_height = 400;
+       }
+
+       gtk_window_set_geometry_hints(GTK_WINDOW(window), NULL, &geometry,
+                                     GDK_HINT_MIN_SIZE);
+       gtk_widget_set_size_request(window, prefs_common.filteringwin_width,
+                                   prefs_common.filteringwin_height);
 
        gtk_widget_show_all(window);
 
@@ -592,7 +610,6 @@ static void prefs_filtering_set_dialog(const gchar *header, const gchar *key)
        GSList *cur;
        GSList * prefs_filtering;
        gchar *cond_str;
-       gint row;
        GtkListStore *list_store;
        
        list_store = GTK_LIST_STORE(gtk_tree_view_get_model(list_view));
@@ -1124,7 +1141,8 @@ static GtkWidget *prefs_filtering_list_view_create(void)
        list_view = GTK_TREE_VIEW(gtk_tree_view_new_with_model(GTK_TREE_MODEL
                (prefs_filtering_create_data_store())));
        
-       gtk_tree_view_set_rules_hint(list_view, TRUE);
+       gtk_tree_view_set_rules_hint(list_view, prefs_common.enable_rules_hint);
+       gtk_tree_view_set_reorderable(list_view, TRUE);
        
        selector = gtk_tree_view_get_selection(list_view);
        gtk_tree_selection_set_mode(selector, GTK_SELECTION_BROWSE);