Make column selector UI like open actions
[claws.git] / src / prefs_summary_column.c
index 43de2b385aeb7f294f6187033ab171fb48ef4dce..7ea7daaf3409c34870132dd2cb1bdac4bfff7dbe 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2007 Hiroyuki Yamamoto and the Claws Mail team
+ * Copyright (C) 1999-2012 Hiroyuki Yamamoto and 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
@@ -19,6 +19,7 @@
 
 #ifdef HAVE_CONFIG_H
 #  include "config.h"
+#include "claws-features.h"
 #endif
 
 #include "defs.h"
@@ -176,13 +177,14 @@ void prefs_summary_column_open(void)
        prefs_summary_column_set_dialog(NULL);
 
        gtk_widget_show(summary_col.window);
+       gtk_window_set_modal(GTK_WINDOW(summary_col.window), TRUE);
 
        summary_col.finished = FALSE;
        while (summary_col.finished == FALSE)
                gtk_main_iteration();
 
        gtk_widget_hide(summary_col.window);
-
+       gtk_window_set_modal(GTK_WINDOW(summary_col.window), FALSE);
        inc_unlock();
 }
 
@@ -219,7 +221,6 @@ static void prefs_summary_column_create(void)
        window = gtkut_window_new(GTK_WINDOW_TOPLEVEL, "prefs_summary_column");
        gtk_container_set_border_width(GTK_CONTAINER(window), 8);
        gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
-       gtk_window_set_modal(GTK_WINDOW(window), TRUE);
        gtk_window_set_resizable(GTK_WINDOW(window), FALSE);
        gtk_window_set_title(GTK_WINDOW(window),
                             _("Message list columns configuration"));
@@ -265,8 +266,9 @@ static void prefs_summary_column_create(void)
        gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwin),
                                       GTK_POLICY_AUTOMATIC,
                                       GTK_POLICY_AUTOMATIC);
+       gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolledwin),
+                                          GTK_SHADOW_IN);
 
-                                      
        stock_list_view = prefs_summary_column_list_view_create
                                (_("Hidden columns"));
        g_signal_connect(G_OBJECT(stock_list_view), "cursor-changed",
@@ -287,6 +289,13 @@ static void prefs_summary_column_create(void)
        g_signal_connect(G_OBJECT(add_btn), "clicked",
                         G_CALLBACK(prefs_summary_column_add), NULL);
 
+       remove_btn = gtk_button_new_from_stock(GTK_STOCK_REMOVE);
+       gtk_widget_show(remove_btn);
+       gtk_box_pack_start(GTK_BOX(btn_vbox), remove_btn, FALSE, TRUE, 0);
+
+       g_signal_connect(G_OBJECT(remove_btn), "clicked",
+                        G_CALLBACK(prefs_summary_column_remove), NULL);
+
        clist_hbox = gtk_hbox_new(FALSE, 8);
        gtk_widget_show(clist_hbox);
        gtk_box_pack_start(GTK_BOX(hbox1), clist_hbox, TRUE, TRUE, 0);
@@ -298,6 +307,8 @@ static void prefs_summary_column_create(void)
        gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwin),
                                       GTK_POLICY_AUTOMATIC,
                                       GTK_POLICY_AUTOMATIC);
+       gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolledwin),
+                                          GTK_SHADOW_IN);
 
        shown_list_view = prefs_summary_column_list_view_create
                                (_("Displayed columns"));
@@ -312,10 +323,6 @@ static void prefs_summary_column_create(void)
        gtk_widget_show(btn_vbox);
        gtk_box_pack_start(GTK_BOX(hbox1), btn_vbox, FALSE, FALSE, 0);
 
-       remove_btn = gtk_button_new_from_stock(GTK_STOCK_REMOVE);
-       gtk_widget_show(remove_btn);
-       gtk_box_pack_start(GTK_BOX(btn_vbox), remove_btn, FALSE, TRUE, 0);
-
        up_btn = gtk_button_new_from_stock(GTK_STOCK_GO_UP);
        gtk_widget_show(up_btn);
        gtk_box_pack_start(GTK_BOX(btn_vbox), up_btn, FALSE, TRUE, 0);
@@ -324,8 +331,6 @@ static void prefs_summary_column_create(void)
        gtk_widget_show(down_btn);
        gtk_box_pack_start(GTK_BOX(btn_vbox), down_btn, FALSE, TRUE, 0);
 
-       g_signal_connect(G_OBJECT(remove_btn), "clicked",
-                        G_CALLBACK(prefs_summary_column_remove), NULL);
        g_signal_connect(G_OBJECT(up_btn), "clicked",
                         G_CALLBACK(prefs_summary_column_up), NULL);
        g_signal_connect(G_OBJECT(down_btn), "clicked",
@@ -387,7 +392,7 @@ SummaryColumnState *prefs_summary_column_get_config(void)
                pos = prefs_common.summary_col_pos[type];
                if (pos < 0 || pos >= N_SUMMARY_COLS ||
                    state[pos].type != -1) {
-                       g_warning("Wrong column position\n");
+                       g_warning("Wrong column position");
                        prefs_summary_column_set_config(default_state);
                        return default_state;
                }
@@ -458,7 +463,7 @@ static void prefs_summary_column_set_view(void)
                (gtk_tree_view_get_model(GTK_TREE_VIEW
                        (summary_col.shown_list_view)), NULL);
 
-       g_return_if_fail
+       cm_return_if_fail
                (stock_n_rows + shown_n_rows == N_SUMMARY_COLS);
 
        for (row = 0; row < stock_n_rows; row++) {
@@ -671,7 +676,7 @@ static gboolean prefs_summary_column_key_pressed(GtkWidget *widget,
                                                 GdkEventKey *event,
                                                 gpointer data)
 {
-       if (event && event->keyval == GDK_Escape)
+       if (event && event->keyval == GDK_KEY_Escape)
                summary_col.finished = TRUE;
        return FALSE;
 }
@@ -806,7 +811,8 @@ static void drag_data_get(GtkTreeView *tree_view, GdkDragContext *context,
                           -1);
 
        /* send the type */
-       gtk_selection_data_set(data, data->target, 8, (gchar *) &type, sizeof type);
+       gtk_selection_data_set(data, gtk_selection_data_get_target(data), 8,
+               (gchar *) &type, sizeof type);
 }
 
 static void drag_data_received(GtkTreeView *tree_view, GdkDragContext *context,
@@ -876,7 +882,7 @@ static void drag_data_received(GtkTreeView *tree_view, GdkDragContext *context,
                gtk_tree_selection_get_selected(gtk_tree_view_get_selection(
                                                GTK_TREE_VIEW(source)),
                                                &sel_model, &isel);
-               type = *((gint *) data->data);
+               type = *((gint *) gtk_selection_data_get_data(data));
                name = gettext(col_name[type]);
                gtk_list_store_remove(GTK_LIST_STORE(sel_model), &isel);