From: Denis M. <de...@li...> - 2000-11-02 16:53:28
|
This patch change filer.h and filer.c providing a function to set the filer window size in item_width/item_height units and makes the width setting indipendent from the scrollbar width. *** /home/mds/prj/roxcvs/rox/ROX-Filer/src/filer.h Sun Oct 15 18:52:56 2000 --- filer.h Wed Nov 1 15:51:43 2000 *************** *** 66,71 **** --- 66,72 ---- GtkWidget *toolbar_frame; GtkWidget *toolbar_text; + GtkWidget *scrollbar; }; extern FilerWindow *window_with_focus; *** /home/mds/prj/roxcvs/rox/ROX-Filer/src/filer.c Sun Oct 15 18:52:56 2000 --- filer.c Wed Nov 1 16:37:59 2000 *************** *** 168,173 **** --- 168,189 ---- g_warning("Failed to find '%s'\n", item->leafname); } + + + static void filer_window_set_size(FilerWindow *filer, int w, int h) + + { + if (w <= 0) w = 1; + if (h <= 0) h = 1; + w *= filer->collection->item_width; + h *= filer->collection->item_height; + if (filer->scrollbar) w += filer->scrollbar->allocation.width; + if (o_toolbar != TOOLBAR_NONE) h += filer->toolbar_frame->allocation.height; + gtk_window_set_default_size(GTK_WINDOW(filer->window), w, h); + } + + + static void update_display(Directory *dir, DirAction action, GPtrArray *items, *************** *** 876,883 **** */ static void filer_add_widgets(FilerWindow *filer_window) { ! GtkWidget *hbox, *vbox, *scrollbar, *collection; ! int col_height = ROW_HEIGHT_LARGE * o_initial_window_height; /* Create the top-level window widget */ filer_window->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); --- 892,898 ---- */ static void filer_add_widgets(FilerWindow *filer_window) { ! GtkWidget *hbox, *vbox, *collection; /* Create the top-level window widget */ filer_window->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); *************** *** 939,946 **** FALSE, TRUE, 0); /* Put the scrollbar on the left of everything else... */ ! scrollbar = gtk_vscrollbar_new(COLLECTION(collection)->vadj); ! gtk_box_pack_start(GTK_BOX(hbox), scrollbar, FALSE, TRUE, 0); /* Connect the menu's accelerator group to the window */ gtk_accel_group_attach(filer_keys, GTK_OBJECT(filer_window->window)); --- 954,961 ---- FALSE, TRUE, 0); /* Put the scrollbar on the left of everything else... */ ! filer_window->scrollbar = gtk_vscrollbar_new(COLLECTION(collection)->vadj); ! gtk_box_pack_start(GTK_BOX(hbox), filer_window->scrollbar, FALSE, TRUE, 0); /* Connect the menu's accelerator group to the window */ gtk_accel_group_attach(filer_keys, GTK_OBJECT(filer_window->window)); *************** *** 949,965 **** gtk_widget_show(hbox); gtk_widget_show(vbox); ! gtk_widget_show(scrollbar); gtk_widget_show(collection); gtk_widget_realize(filer_window->window); ! if (o_toolbar != TOOLBAR_NONE) ! col_height += filer_window->toolbar_frame->allocation.height; ! ! gtk_window_set_default_size(GTK_WINDOW(filer_window->window), ! filer_window->display_style == LARGE_ICONS ? 400 : 512, ! col_height); } static void filer_add_signals(FilerWindow *filer_window) --- 964,977 ---- gtk_widget_show(hbox); gtk_widget_show(vbox); ! gtk_widget_show(filer_window->scrollbar); gtk_widget_show(collection); gtk_widget_realize(filer_window->window); ! filer_window_set_size(filer_window, ! filer_window->display_style == LARGE_ICONS ? 6 : 8, ! o_initial_window_height); } static void filer_add_signals(FilerWindow *file |