2007-02-01 [colin] 2.7.2cvs10
[claws.git] / src / addressadd.c
index 6ba6eef3901c1d75cffd16ff1974ccc99e5e38f2..f3e4a05d93f1e48568a8f06c8afb97039df4719c 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 2001 Match Grun
+ * Copyright (C) 2001-2007 Match Grun 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
@@ -14,7 +14,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  */
 
 /*
@@ -28,6 +28,7 @@
 #include "defs.h"
 
 #include <glib.h>
+#include <glib/gi18n.h>
 #include <gdk/gdkkeysyms.h>
 #include <gtk/gtkwindow.h>
 #include <gtk/gtksignal.h>
@@ -37,7 +38,6 @@
 #include <gtk/gtkhbbox.h>
 #include <gtk/gtkbutton.h>
 
-#include "intl.h"
 #include "gtkutils.h"
 #include "stock_pixmap.h"
 #include "prefs_common.h"
@@ -141,6 +141,15 @@ static gboolean addressadd_tree_button( GtkCTree *ctree, GdkEventButton *event,
        return FALSE;
 }
 
+static void addressadd_size_allocate_cb(GtkWidget *widget,
+                                        GtkAllocation *allocation)
+{
+       g_return_if_fail(allocation != NULL);
+
+       prefs_common.addressaddwin_width = allocation->width;
+       prefs_common.addressaddwin_height = allocation->height;
+}
+
 static void addressadd_create( void ) {
        GtkWidget *window;
        GtkWidget *vbox;
@@ -158,9 +167,9 @@ static void addressadd_create( void ) {
        GtkWidget *hsbox;
        GtkWidget *statusbar;
        gint top;
+       static GdkGeometry geometry;
 
        window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-       gtk_widget_set_size_request( window, 300, 400 );
        gtk_container_set_border_width( GTK_CONTAINER(window), 0 );
        gtk_window_set_title( GTK_WINDOW(window), _("Add to address book") );
        gtk_window_set_position( GTK_WINDOW(window), GTK_WIN_POS_MOUSE );
@@ -169,6 +178,8 @@ static void addressadd_create( void ) {
                          G_CALLBACK(addressadd_delete_event), NULL );
        g_signal_connect( G_OBJECT(window), "key_press_event",
                          G_CALLBACK(addressadd_key_pressed), NULL );
+       g_signal_connect(G_OBJECT(window), "size_allocate",
+                        G_CALLBACK(addressadd_size_allocate_cb), NULL);
 
        vbox = gtk_vbox_new(FALSE, 8);
        gtk_container_add(GTK_CONTAINER(window), vbox);
@@ -240,8 +251,8 @@ static void addressadd_create( void ) {
        gtk_box_pack_start(GTK_BOX(hsbox), statusbar, TRUE, TRUE, BORDER_WIDTH);
 
        /* Button panel */
-       gtkut_stock_button_set_create(&hbbox, &ok_btn, GTK_STOCK_OK,
-                                     &cancel_btn, GTK_STOCK_CANCEL,
+       gtkut_stock_button_set_create(&hbbox, &cancel_btn, GTK_STOCK_CANCEL,
+                                     &ok_btn, GTK_STOCK_OK,
                                      NULL, NULL);
        gtk_box_pack_end(GTK_BOX(vbox), hbbox, FALSE, FALSE, 0);
        gtk_container_set_border_width( GTK_CONTAINER(hbbox), 0 );
@@ -256,6 +267,16 @@ static void addressadd_create( void ) {
        g_signal_connect(G_OBJECT(tree_folder), "button_press_event",
                         G_CALLBACK(addressadd_tree_button), NULL);
 
+       if (!geometry.min_height) {
+               geometry.min_width = 300;
+               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.addressaddwin_width,
+                                   prefs_common.addressaddwin_height);
+
        gtk_widget_show_all(vbox);
 
        addressadd_dlg.window        = window;
@@ -291,7 +312,7 @@ static void addressadd_load_folder( GtkCTreeNode *parentNode, ItemFolder *parent
                folder = list->data;
                fName = g_strdup( ADDRITEM_NAME(folder) );
                name = &fName;
-               node = gtk_ctree_insert_node( tree, parentNode, NULL, name, FOLDER_SPACING,
+               node = gtk_sctree_insert_node( tree, parentNode, NULL, name, FOLDER_SPACING,
                                folderXpm, folderXpmMask, folderXpm, folderXpmMask,
                                FALSE, TRUE );
                g_free( fName );