|
@@ -1,267 +0,0 @@
|
|
|
-diff -urNd ../gtk+-2.4.4-r5/gtk+-2.4.4/gtk/gtkfilesel.c gtk+-2.4.4/gtk/gtkfilesel.c
|
|
|
---- ../gtk+-2.4.4-r5/gtk+-2.4.4/gtk/gtkfilesel.c 2004-07-10 05:02:10.000000000 +0100
|
|
|
-+++ gtk+-2.4.4/gtk/gtkfilesel.c 2004-09-13 13:40:09.000000000 +0100
|
|
|
-@@ -68,6 +68,7 @@
|
|
|
- #include "gtkprivate.h"
|
|
|
- #include "gtkscrolledwindow.h"
|
|
|
- #include "gtkstock.h"
|
|
|
-+#include "gtksignal.h"
|
|
|
- #include "gtktreeselection.h"
|
|
|
- #include "gtktreeview.h"
|
|
|
- #include "gtkvbox.h"
|
|
|
-@@ -77,6 +78,7 @@
|
|
|
- #include "gtkmessagedialog.h"
|
|
|
- #include "gtkdnd.h"
|
|
|
- #include "gtkeventbox.h"
|
|
|
-+#include "gtkimage.h"
|
|
|
-
|
|
|
- #undef GTK_DISABLE_DEPRECATED
|
|
|
- #include "gtkoptionmenu.h"
|
|
|
-@@ -245,7 +247,8 @@
|
|
|
- };
|
|
|
-
|
|
|
- enum {
|
|
|
-- DIR_COLUMN
|
|
|
-+ DIR_COLUMN,
|
|
|
-+ ISFILE_COLUMN
|
|
|
- };
|
|
|
-
|
|
|
- enum {
|
|
|
-@@ -400,6 +403,12 @@
|
|
|
- GtkTreePath *path,
|
|
|
- GtkTreeViewColumn *column,
|
|
|
- gpointer user_data);
|
|
|
-+
|
|
|
-+static void gtk_file_selection_activate (GtkTreeView *tree_view,
|
|
|
-+ GtkTreePath *path,
|
|
|
-+ GtkTreeViewColumn *column,
|
|
|
-+ gpointer user_data);
|
|
|
-+
|
|
|
- static void gtk_file_selection_file_changed (GtkTreeSelection *selection,
|
|
|
- gpointer user_data);
|
|
|
- static void gtk_file_selection_dir_activate (GtkTreeView *tree_view,
|
|
|
-@@ -419,6 +428,7 @@
|
|
|
- static void gtk_file_selection_create_dir (GtkWidget *widget, gpointer data);
|
|
|
- static void gtk_file_selection_delete_file (GtkWidget *widget, gpointer data);
|
|
|
- static void gtk_file_selection_rename_file (GtkWidget *widget, gpointer data);
|
|
|
-+static void gtk_file_selection_style_set (GtkWidget *widget, GtkStyle *prev_style);
|
|
|
-
|
|
|
- static void free_selected_names (GPtrArray *names);
|
|
|
-
|
|
|
-@@ -578,6 +588,23 @@
|
|
|
- G_PARAM_WRITABLE));
|
|
|
- object_class->destroy = gtk_file_selection_destroy;
|
|
|
- widget_class->map = gtk_file_selection_map;
|
|
|
-+ widget_class->style_set = gtk_file_selection_style_set;
|
|
|
-+
|
|
|
-+ gtk_widget_class_install_style_property (widget_class,
|
|
|
-+ g_param_spec_boolean ("show_fileops_default",
|
|
|
-+ _("Show fileop buttons by default"),
|
|
|
-+ _("Whether file operation buttons are shown by default"),
|
|
|
-+ TRUE,
|
|
|
-+ G_PARAM_READABLE));
|
|
|
-+
|
|
|
-+ gtk_widget_class_install_style_property (widget_class,
|
|
|
-+ g_param_spec_int ("border_width",
|
|
|
-+ _("Border width"),
|
|
|
-+ _("Width of border around the main dialog area"),
|
|
|
-+ 0,
|
|
|
-+ G_MAXINT,
|
|
|
-+ 10,
|
|
|
-+ G_PARAM_READABLE));
|
|
|
- }
|
|
|
-
|
|
|
- static void gtk_file_selection_set_property (GObject *object,
|
|
|
-@@ -649,7 +676,29 @@
|
|
|
- gtk_widget_grab_default (widget);
|
|
|
- return FALSE;
|
|
|
- }
|
|
|
--
|
|
|
-+
|
|
|
-+static void
|
|
|
-+gtk_file_selection_style_set (GtkWidget *filesel,
|
|
|
-+ GtkStyle *prev_style)
|
|
|
-+{
|
|
|
-+ gboolean show_fileops;
|
|
|
-+ gint border_width;
|
|
|
-+
|
|
|
-+ gtk_widget_style_get (filesel,
|
|
|
-+ "show_fileops_default",
|
|
|
-+ &show_fileops,
|
|
|
-+ "border_width",
|
|
|
-+ &border_width,
|
|
|
-+ NULL);
|
|
|
-+
|
|
|
-+ gtk_container_set_border_width (GTK_CONTAINER (filesel), border_width);
|
|
|
-+
|
|
|
-+ if (show_fileops)
|
|
|
-+ gtk_file_selection_show_fileop_buttons (GTK_FILE_SELECTION (filesel));
|
|
|
-+ else
|
|
|
-+ gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION (filesel));
|
|
|
-+}
|
|
|
-+
|
|
|
- static void
|
|
|
- gtk_file_selection_init (GtkFileSelection *filesel)
|
|
|
- {
|
|
|
-@@ -674,17 +723,15 @@
|
|
|
-
|
|
|
- /* The dialog-sized vertical box */
|
|
|
- filesel->main_vbox = dialog->vbox;
|
|
|
-- gtk_container_set_border_width (GTK_CONTAINER (filesel), 10);
|
|
|
-
|
|
|
- /* The horizontal box containing create, rename etc. buttons */
|
|
|
- filesel->button_area = gtk_hbutton_box_new ();
|
|
|
- gtk_button_box_set_layout (GTK_BUTTON_BOX (filesel->button_area), GTK_BUTTONBOX_START);
|
|
|
-- gtk_box_set_spacing (GTK_BOX (filesel->button_area), 0);
|
|
|
- gtk_box_pack_start (GTK_BOX (filesel->main_vbox), filesel->button_area,
|
|
|
- FALSE, FALSE, 0);
|
|
|
- gtk_widget_show (filesel->button_area);
|
|
|
-
|
|
|
-- gtk_file_selection_show_fileop_buttons (filesel);
|
|
|
-+ gtk_file_selection_style_set (GTK_WIDGET (filesel), NULL);
|
|
|
-
|
|
|
- /* hbox for pulldown menu */
|
|
|
- pulldown_hbox = gtk_hbox_new (TRUE, 5);
|
|
|
-@@ -723,25 +770,32 @@
|
|
|
-
|
|
|
- /* The directories list */
|
|
|
-
|
|
|
-- model = gtk_list_store_new (1, G_TYPE_STRING);
|
|
|
-+ model = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_BOOLEAN); /* MA */
|
|
|
- filesel->dir_list = gtk_tree_view_new_with_model (GTK_TREE_MODEL (model));
|
|
|
- g_object_unref (model);
|
|
|
-
|
|
|
-- column = gtk_tree_view_column_new_with_attributes (_("Folders"),
|
|
|
-+ column = gtk_tree_view_column_new_with_attributes (/*_("Folders")*/ NULL,
|
|
|
- gtk_cell_renderer_text_new (),
|
|
|
- "text", DIR_COLUMN,
|
|
|
- NULL);
|
|
|
- label = gtk_label_new_with_mnemonic (_("Fol_ders"));
|
|
|
- gtk_label_set_mnemonic_widget (GTK_LABEL (label), filesel->dir_list);
|
|
|
- gtk_widget_show (label);
|
|
|
-- gtk_tree_view_column_set_widget (column, label);
|
|
|
-+
|
|
|
-+ /* gtk_tree_view_column_set_widget (column, label); */
|
|
|
-+ gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (filesel->dir_list), FALSE);
|
|
|
-+
|
|
|
- gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
|
|
|
- gtk_tree_view_append_column (GTK_TREE_VIEW (filesel->dir_list), column);
|
|
|
-
|
|
|
- gtk_widget_set_size_request (filesel->dir_list,
|
|
|
- DIR_LIST_WIDTH, DIR_LIST_HEIGHT);
|
|
|
- g_signal_connect (filesel->dir_list, "row_activated",
|
|
|
-- G_CALLBACK (gtk_file_selection_dir_activate), filesel);
|
|
|
-+ G_CALLBACK (gtk_file_selection_activate), filesel);
|
|
|
-+
|
|
|
-+ g_signal_connect (gtk_tree_view_get_selection (GTK_TREE_VIEW (filesel->dir_list)), "changed",
|
|
|
-+ G_CALLBACK (gtk_file_selection_file_changed), filesel);
|
|
|
-+
|
|
|
-
|
|
|
- /* gtk_clist_column_titles_passive (GTK_CLIST (filesel->dir_list)); */
|
|
|
-
|
|
|
-@@ -758,41 +812,6 @@
|
|
|
- gtk_widget_show (filesel->dir_list);
|
|
|
- gtk_widget_show (scrolled_win);
|
|
|
-
|
|
|
-- /* The files list */
|
|
|
-- model = gtk_list_store_new (1, G_TYPE_STRING);
|
|
|
-- filesel->file_list = gtk_tree_view_new_with_model (GTK_TREE_MODEL (model));
|
|
|
-- g_object_unref (model);
|
|
|
--
|
|
|
-- column = gtk_tree_view_column_new_with_attributes (_("Files"),
|
|
|
-- gtk_cell_renderer_text_new (),
|
|
|
-- "text", FILE_COLUMN,
|
|
|
-- NULL);
|
|
|
-- label = gtk_label_new_with_mnemonic (_("_Files"));
|
|
|
-- gtk_label_set_mnemonic_widget (GTK_LABEL (label), filesel->file_list);
|
|
|
-- gtk_widget_show (label);
|
|
|
-- gtk_tree_view_column_set_widget (column, label);
|
|
|
-- gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
|
|
|
-- gtk_tree_view_append_column (GTK_TREE_VIEW (filesel->file_list), column);
|
|
|
--
|
|
|
-- gtk_widget_set_size_request (filesel->file_list,
|
|
|
-- FILE_LIST_WIDTH, FILE_LIST_HEIGHT);
|
|
|
-- g_signal_connect (filesel->file_list, "row_activated",
|
|
|
-- G_CALLBACK (gtk_file_selection_file_activate), filesel);
|
|
|
-- g_signal_connect (gtk_tree_view_get_selection (GTK_TREE_VIEW (filesel->file_list)), "changed",
|
|
|
-- G_CALLBACK (gtk_file_selection_file_changed), filesel);
|
|
|
--
|
|
|
-- /* gtk_clist_column_titles_passive (GTK_CLIST (filesel->file_list)); */
|
|
|
--
|
|
|
-- scrolled_win = gtk_scrolled_window_new (NULL, NULL);
|
|
|
-- gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_win), GTK_SHADOW_IN);
|
|
|
-- gtk_container_add (GTK_CONTAINER (scrolled_win), filesel->file_list);
|
|
|
-- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
|
|
|
-- GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
|
|
|
-- gtk_container_set_border_width (GTK_CONTAINER (scrolled_win), 0);
|
|
|
-- gtk_container_add (GTK_CONTAINER (list_container), scrolled_win);
|
|
|
-- gtk_widget_show (filesel->file_list);
|
|
|
-- gtk_widget_show (scrolled_win);
|
|
|
--
|
|
|
- /* action area for packing buttons into. */
|
|
|
- filesel->action_area = gtk_hbox_new (TRUE, 0);
|
|
|
- gtk_box_pack_start (GTK_BOX (filesel->main_vbox), filesel->action_area,
|
|
|
-@@ -2008,6 +2027,23 @@
|
|
|
- }
|
|
|
-
|
|
|
- static void
|
|
|
-+gtk_file_selection_activate (GtkTreeView *tree_view,
|
|
|
-+ GtkTreePath *path,
|
|
|
-+ GtkTreeViewColumn *column,
|
|
|
-+ gpointer user_data)
|
|
|
-+{
|
|
|
-+ GtkTreeModel *model = gtk_tree_view_get_model (tree_view);
|
|
|
-+ GtkTreeIter iter;
|
|
|
-+ gboolean is_file;
|
|
|
-+
|
|
|
-+ gtk_tree_model_get_iter (model, &iter, path);
|
|
|
-+ gtk_tree_model_get (model, &iter, ISFILE_COLUMN, &is_file, -1);
|
|
|
-+
|
|
|
-+ if (! is_file)
|
|
|
-+ gtk_file_selection_dir_activate (tree_view, path, column, user_data);
|
|
|
-+}
|
|
|
-+
|
|
|
-+static void
|
|
|
- gtk_file_selection_file_activate (GtkTreeView *tree_view,
|
|
|
- GtkTreePath *path,
|
|
|
- GtkTreeViewColumn *column,
|
|
|
-@@ -2103,7 +2139,6 @@
|
|
|
- PossibleCompletion* poss;
|
|
|
- GtkTreeIter iter;
|
|
|
- GtkListStore *dir_model;
|
|
|
-- GtkListStore *file_model;
|
|
|
- gchar* filename;
|
|
|
- gchar* rem_path = rel_path;
|
|
|
- gchar* sel_text;
|
|
|
-@@ -2125,10 +2160,8 @@
|
|
|
- g_assert (cmpl_state->reference_dir);
|
|
|
-
|
|
|
- dir_model = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (fs->dir_list)));
|
|
|
-- file_model = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (fs->file_list)));
|
|
|
-
|
|
|
- gtk_list_store_clear (dir_model);
|
|
|
-- gtk_list_store_clear (file_model);
|
|
|
-
|
|
|
- /* Set the dir list to include ./ and ../ */
|
|
|
- gtk_list_store_append (dir_model, &iter);
|
|
|
-@@ -2150,13 +2183,17 @@
|
|
|
- strcmp (filename, ".." G_DIR_SEPARATOR_S) != 0)
|
|
|
- {
|
|
|
- gtk_list_store_append (dir_model, &iter);
|
|
|
-- gtk_list_store_set (dir_model, &iter, DIR_COLUMN, filename, -1);
|
|
|
-+ gtk_list_store_set (dir_model, &iter,
|
|
|
-+ DIR_COLUMN, filename,
|
|
|
-+ ISFILE_COLUMN, FALSE, -1);
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
-- gtk_list_store_append (file_model, &iter);
|
|
|
-- gtk_list_store_set (file_model, &iter, DIR_COLUMN, filename, -1);
|
|
|
-+ gtk_list_store_append (dir_model, &iter);
|
|
|
-+ gtk_list_store_set (dir_model, &iter,
|
|
|
-+ DIR_COLUMN, filename,
|
|
|
-+ ISFILE_COLUMN, TRUE, -1);
|
|
|
- }
|
|
|
- }
|
|
|
-
|