diff options
39 files changed, 171 insertions, 2807 deletions
@@ -1,5 +1,44 @@ 2001-11-08 Darin Adler <darin@bentspoon.com> + * configure.in: + * cut-n-paste-code/widgets/Makefile.am: + * cut-n-paste-code/widgets/e-paned: + * libnautilus-private/Makefile.am: + * libnautilus-private/nautilus-horizontal-splitter.c: + * libnautilus-private/nautilus-horizontal-splitter.h: + * src/nautilus-window.c: (nautilus_window_constructed), + (nautilus_window_set_content_view_widget), + (nautilus_window_hide_sidebar), (nautilus_window_show_sidebar), + (nautilus_window_sidebar_showing): + Remove e-paned. + + * configure.in: + * data/Makefile.am: + * data/linksets/ + * libnautilus-private/Makefile.am: + * libnautilus-private/nautilus-file-utilities.c: + * libnautilus-private/nautilus-link-set.c: + * libnautilus-private/nautilus-link-set.h: + * src/Makefile.am: + * src/nautilus-link-set-window.c: + * src/nautilus-link-set-window.h: + * src/nautilus-sidebar.c: (metadata_button_callback): + Remove link sets. + + * libnautilus-private/nautilus-program-chooser.c: + (launch_mime_capplet_on_ok), + (launch_mime_capplet_and_close_dialog): + * src/nautilus-window-menus.c: (forget_history_if_yes), + (remove_bookmarks_for_uri_if_yes): + Destroy dialogs when done, since GtkDialog doesn't do this for us. + + * src/nautilus-preferences-dialog.c: (preferences_dialog_create): + Get rid of close signal handler, since default close handler does + the same thing as a delete_event, which is what we want. We still + might have to do something fancier on a delete_event. + +2001-11-08 Darin Adler <darin@bentspoon.com> + * NEWS: Remove Nautilus 1 news. This file is empty for now. * RENAMING: Add some renaming ideas. * TODO: Add a tiny porting to-do list. I should take that diff --git a/configure.in b/configure.in index d4853bfad..29bbf7714 100644 --- a/configure.in +++ b/configure.in @@ -575,11 +575,9 @@ components/throbber/Makefile components/tree/Makefile cut-n-paste-code/Makefile cut-n-paste-code/widgets/Makefile -cut-n-paste-code/widgets/e-paned/Makefile cut-n-paste-code/widgets/gimphwrapbox/Makefile data/Makefile data/emblems/Makefile -data/linksets/Makefile data/patterns/Makefile help/Makefile help/nautilus-quick-reference/C/Makefile diff --git a/cut-n-paste-code/widgets/Makefile.am b/cut-n-paste-code/widgets/Makefile.am index 46f787a7b..a99521d8f 100644 --- a/cut-n-paste-code/widgets/Makefile.am +++ b/cut-n-paste-code/widgets/Makefile.am @@ -1,6 +1,5 @@ NULL= SUBDIRS =\ - e-paned \ gimphwrapbox \ $(NULL) diff --git a/cut-n-paste-code/widgets/e-paned/.cvsignore b/cut-n-paste-code/widgets/e-paned/.cvsignore deleted file mode 100644 index 799fc9785..000000000 --- a/cut-n-paste-code/widgets/e-paned/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -.deps -.libs -*.lo -*.la -Makefile -Makefile.in diff --git a/cut-n-paste-code/widgets/e-paned/Makefile.am b/cut-n-paste-code/widgets/e-paned/Makefile.am deleted file mode 100644 index b2595586c..000000000 --- a/cut-n-paste-code/widgets/e-paned/Makefile.am +++ /dev/null @@ -1,14 +0,0 @@ -NULL= - -noinst_LTLIBRARIES = libe-paned.la - -INCLUDES = $(E_PANED_CFLAGS) - -libe_paned_la_SOURCES = \ - e-hpaned.c \ - e-paned.c \ - e-vpaned.c \ - e-hpaned.h \ - e-paned.h \ - e-vpaned.h \ - $(NULL) diff --git a/cut-n-paste-code/widgets/e-paned/README.changes b/cut-n-paste-code/widgets/e-paned/README.changes deleted file mode 100644 index 2e147f267..000000000 --- a/cut-n-paste-code/widgets/e-paned/README.changes +++ /dev/null @@ -1,59 +0,0 @@ - -I had to update this widget to fix an annoying sidebar bug (6294 and -probably 6499). - -This is the patch I applied, so please check this if and when updating -e-paned from it's original source: - - ---- e-paned.c 1997/01/02 07:38:15 1.1 -+++ e-paned.c 2001/02/27 20:17:26 -@@ -606,7 +606,12 @@ e_paned_compute_position(EPaned *paned, - paned->min_position, - paned->max_position); - -- paned->last_allocation = allocation; -+ /* Only remember the last allocation if no position has been set -+ * yet, or the last allocation was already previously stored. Otherwise -+ * the second half of the above if can wrongly move the split -+ */ -+ if (!paned->position_set || paned->last_allocation >= 0) -+ paned->last_allocation = allocation; - } - - gboolean - - -Other previous changes to the files in this directory are: - ---- e-hpaned.c 1997/01/02 07:38:15 1.1 -+++ e-hpaned.c 2000/09/26 00:52:16 1.2 -@@ -111,11 +111,7 @@ e_hpaned_init (EHPaned *hpaned) - GtkWidget * - e_hpaned_new (void) - { -- EHPaned *hpaned; -- -- hpaned = gtk_type_new (E_TYPE_HPANED); -- -- return GTK_WIDGET (hpaned); -+ return gtk_widget_new (E_TYPE_HPANED, NULL); - } - - static void - ---- e-vpaned.c 1997/01/02 07:38:15 1.1 -+++ e-vpaned.c 2000/09/26 00:52:16 1.2 -@@ -111,11 +111,7 @@ e_vpaned_init (EVPaned *vpaned) - GtkWidget * - e_vpaned_new (void) - { -- EVPaned *vpaned; -- -- vpaned = gtk_type_new (E_TYPE_VPANED); -- -- return GTK_WIDGET (vpaned); -+ return gtk_widget_new (E_TYPE_VPANED, NULL); - } - - static void diff --git a/cut-n-paste-code/widgets/e-paned/e-hpaned.c b/cut-n-paste-code/widgets/e-paned/e-hpaned.c deleted file mode 100644 index f6655cc01..000000000 --- a/cut-n-paste-code/widgets/e-paned/e-hpaned.c +++ /dev/null @@ -1,377 +0,0 @@ -/* EPaned - A slightly more advanced paned widget. - * Copyright (C) 2000 Helix Code, Inc. - * - * Author: Christopher James Lahey <clahey@helixcode.com> - * - * based on GtkPaned from Gtk+. Gtk+ Copyright notice follows. - */ - -/* GTK - The GIMP Toolkit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GTK+ Team and others 1997-1999. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -#include "e-hpaned.h" - -static void e_hpaned_class_init (EHPanedClass *klass); -static void e_hpaned_init (EHPaned *hpaned); -static void e_hpaned_size_request (GtkWidget *widget, - GtkRequisition *requisition); -static void e_hpaned_size_allocate (GtkWidget *widget, - GtkAllocation *allocation); -static void e_hpaned_xor_line (EPaned *paned); -static gboolean e_hpaned_button_press (GtkWidget *widget, - GdkEventButton *event); -static gboolean e_hpaned_button_release (GtkWidget *widget, - GdkEventButton *event); -static gboolean e_hpaned_motion (GtkWidget *widget, - GdkEventMotion *event); -static gboolean e_hpaned_handle_shown (EPaned *paned); - -GtkType -e_hpaned_get_type (void) -{ - static GtkType hpaned_type = 0; - - if (!hpaned_type) - { - static const GtkTypeInfo hpaned_info = - { - "EHPaned", - sizeof (EHPaned), - sizeof (EHPanedClass), - (GtkClassInitFunc) e_hpaned_class_init, - (GtkObjectInitFunc) e_hpaned_init, - /* reserved_1 */ NULL, - /* reserved_2 */ NULL, - (GtkClassInitFunc) NULL, - }; - - hpaned_type = gtk_type_unique (E_TYPE_PANED, &hpaned_info); - } - - return hpaned_type; -} - -static void -e_hpaned_class_init (EHPanedClass *klass) -{ - GtkWidgetClass *widget_class; - EPanedClass *paned_class; - - widget_class = (GtkWidgetClass *) klass; - paned_class = E_PANED_CLASS (klass); - - widget_class->size_request = e_hpaned_size_request; - widget_class->size_allocate = e_hpaned_size_allocate; - widget_class->button_press_event = e_hpaned_button_press; - widget_class->button_release_event = e_hpaned_button_release; - widget_class->motion_notify_event = e_hpaned_motion; - - paned_class->handle_shown = e_hpaned_handle_shown; -} - -static void -e_hpaned_init (EHPaned *hpaned) -{ - EPaned *paned; - - g_return_if_fail (hpaned != NULL); - g_return_if_fail (E_IS_PANED (hpaned)); - - paned = E_PANED (hpaned); - - paned->cursor_type = GDK_SB_H_DOUBLE_ARROW; -} - -GtkWidget * -e_hpaned_new (void) -{ - return gtk_widget_new (E_TYPE_HPANED, NULL); -} - -static void -e_hpaned_size_request (GtkWidget *widget, - GtkRequisition *requisition) -{ - EPaned *paned; - GtkRequisition child_requisition; - - g_return_if_fail (widget != NULL); - g_return_if_fail (E_IS_HPANED (widget)); - g_return_if_fail (requisition != NULL); - - paned = E_PANED (widget); - requisition->width = 0; - requisition->height = 0; - - if (paned->child1 && GTK_WIDGET_VISIBLE (paned->child1)) - { - gtk_widget_size_request (paned->child1, &child_requisition); - - requisition->height = child_requisition.height; - requisition->width = child_requisition.width; - } - - if (paned->child2 && GTK_WIDGET_VISIBLE (paned->child2)) - { - gtk_widget_size_request (paned->child2, &child_requisition); - - requisition->height = MAX(requisition->height, child_requisition.height); - requisition->width += child_requisition.width; - } - - - requisition->width += GTK_CONTAINER (paned)->border_width * 2; - requisition->height += GTK_CONTAINER (paned)->border_width * 2; - if (e_paned_handle_shown(paned)) - requisition->width += paned->handle_size; -} - -static void -e_hpaned_size_allocate (GtkWidget *widget, - GtkAllocation *allocation) -{ - EPaned *paned; - GtkRequisition child1_requisition; - GtkRequisition child2_requisition; - GtkAllocation child1_allocation; - GtkAllocation child2_allocation; - gint border_width; - gboolean handle_shown; - - g_return_if_fail (widget != NULL); - g_return_if_fail (E_IS_HPANED (widget)); - g_return_if_fail (allocation != NULL); - - widget->allocation = *allocation; - paned = E_PANED (widget); - border_width = GTK_CONTAINER (paned)->border_width; - - if (paned->child1 && GTK_WIDGET_VISIBLE (paned->child1)) - gtk_widget_get_child_requisition (paned->child1, &child1_requisition); - else - child1_requisition.width = 0; - - if (paned->child2 && GTK_WIDGET_VISIBLE (paned->child2)) - gtk_widget_get_child_requisition (paned->child2, &child2_requisition); - else - child2_requisition.width = 0; - - e_paned_compute_position (paned, - MAX (1, (gint) widget->allocation.width - - 2 * border_width), - child1_requisition.width, - child2_requisition.width); - - /* Move the handle before the children so we don't get extra expose events */ - - if (GTK_WIDGET_REALIZED (widget)) - gdk_window_move_resize (widget->window, - allocation->x, allocation->y, - allocation->width, - allocation->height); - - handle_shown = e_paned_handle_shown(paned); - if (handle_shown) - { - paned->handle_xpos = paned->child1_size + border_width; - paned->handle_ypos = border_width; - paned->handle_width = paned->handle_size; - paned->handle_height = MAX (1, (gint) widget->allocation.height - 2 * border_width); - - if (GTK_WIDGET_REALIZED (widget)) - { - gdk_window_move_resize (paned->handle, - paned->handle_xpos, - paned->handle_ypos, - paned->handle_size, - paned->handle_height); - if (paned->handle) - gdk_window_show(paned->handle); - } - } - else - { - if (paned->handle && GTK_WIDGET_REALIZED (widget)) - gdk_window_hide(paned->handle); - } - - child1_allocation.height = child2_allocation.height = MAX (1, (gint) allocation->height - border_width * 2); - child1_allocation.width = paned->child1_size; - child1_allocation.x = border_width; - child1_allocation.y = child2_allocation.y = border_width; - - if (handle_shown) - child2_allocation.x = child1_allocation.x + child1_allocation.width + paned->handle_width; - else - child2_allocation.x = child1_allocation.x + child1_allocation.width; - child2_allocation.width = MAX (1, (gint) allocation->width - child2_allocation.x - border_width); - - /* Now allocate the childen, making sure, when resizing not to - * overlap the windows */ - if (GTK_WIDGET_MAPPED (widget) && - paned->child1 && GTK_WIDGET_VISIBLE (paned->child1) && - paned->child1->allocation.width < child1_allocation.width) - { - if (paned->child2 && GTK_WIDGET_VISIBLE (paned->child2)) - gtk_widget_size_allocate (paned->child2, &child2_allocation); - gtk_widget_size_allocate (paned->child1, &child1_allocation); - } - else - { - if (paned->child1 && GTK_WIDGET_VISIBLE (paned->child1)) - gtk_widget_size_allocate (paned->child1, &child1_allocation); - if (paned->child2 && GTK_WIDGET_VISIBLE (paned->child2)) - gtk_widget_size_allocate (paned->child2, &child2_allocation); - } -} - -static void -e_hpaned_xor_line (EPaned *paned) -{ - GtkWidget *widget; - GdkGCValues values; - guint16 xpos; - - widget = GTK_WIDGET(paned); - - if (!paned->xor_gc) - { - values.function = GDK_INVERT; - values.subwindow_mode = GDK_INCLUDE_INFERIORS; - paned->xor_gc = gdk_gc_new_with_values (widget->window, - &values, - GDK_GC_FUNCTION | GDK_GC_SUBWINDOW); - } - - gdk_gc_set_line_attributes (paned->xor_gc, 2, GDK_LINE_SOLID, - GDK_CAP_NOT_LAST, GDK_JOIN_BEVEL); - - xpos = paned->child1_size - + GTK_CONTAINER (paned)->border_width + paned->handle_size / 2; - - gdk_draw_line (widget->window, paned->xor_gc, - xpos, - 0, - xpos, - widget->allocation.height - 1); -} - -static gboolean -e_hpaned_button_press (GtkWidget *widget, - GdkEventButton *event) -{ - EPaned *paned; - - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (E_IS_PANED (widget), FALSE); - - paned = E_PANED (widget); - - if (!paned->in_drag && - event->window == paned->handle && event->button == 1) - { - paned->old_child1_size = paned->child1_size; - paned->in_drag = TRUE; - /* We need a server grab here, not gtk_grab_add(), since - * we don't want to pass events on to the widget's children */ - gdk_pointer_grab(paned->handle, FALSE, - GDK_POINTER_MOTION_HINT_MASK - | GDK_BUTTON1_MOTION_MASK - | GDK_BUTTON_RELEASE_MASK, - NULL, NULL, event->time); - paned->child1_size = e_paned_quantized_size(paned, paned->child1_size + event->x - paned->handle_size / 2); - paned->child1_size = CLAMP (paned->child1_size, 0, - widget->allocation.width - - paned->handle_size - - 2 * GTK_CONTAINER (paned)->border_width); - e_hpaned_xor_line (paned); - - return TRUE; - } - - return FALSE; -} - -static gboolean -e_hpaned_button_release (GtkWidget *widget, - GdkEventButton *event) -{ - EPaned *paned; - - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (E_IS_PANED (widget), FALSE); - - paned = E_PANED (widget); - - if (paned->in_drag && (event->button == 1)) - { - e_hpaned_xor_line (paned); - paned->in_drag = FALSE; - paned->position_set = TRUE; - gdk_pointer_ungrab (event->time); - gtk_widget_queue_resize (GTK_WIDGET (paned)); - - return TRUE; - } - - return FALSE; -} - -static gboolean -e_hpaned_motion (GtkWidget *widget, - GdkEventMotion *event) -{ - EPaned *paned; - gint x; - - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (E_IS_PANED (widget), FALSE); - - paned = E_PANED (widget); - - if (event->is_hint || event->window != widget->window) - gtk_widget_get_pointer(widget, &x, NULL); - else - x = event->x; - - if (paned->in_drag) - { - gint size = x - GTK_CONTAINER (paned)->border_width - paned->handle_size / 2; - - e_hpaned_xor_line (paned); - paned->child1_size = CLAMP (e_paned_quantized_size(paned, size), paned->min_position, paned->max_position); - e_hpaned_xor_line (paned); - } - - return TRUE; -} - -static gboolean -e_hpaned_handle_shown (EPaned *paned) -{ - return ((paned->child1 && paned->child2) && - (GTK_WIDGET_VISIBLE (paned->child1) && GTK_WIDGET_VISIBLE (paned->child2))); -} diff --git a/cut-n-paste-code/widgets/e-paned/e-hpaned.h b/cut-n-paste-code/widgets/e-paned/e-hpaned.h deleted file mode 100644 index 8832cf107..000000000 --- a/cut-n-paste-code/widgets/e-paned/e-hpaned.h +++ /dev/null @@ -1,72 +0,0 @@ -/* EPaned - A slightly more advanced paned widget. - * Copyright (C) 2000 Helix Code, Inc. - * - * Author: Christopher James Lahey <clahey@helixcode.com> - * - * based on GtkPaned from Gtk+. Gtk+ Copyright notice follows. - */ - -/* GTK - The GIMP Toolkit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -#ifndef __E_HPANED_H__ -#define __E_HPANED_H__ - -#include "e-paned.h" - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -#define E_TYPE_HPANED (e_hpaned_get_type ()) -#define E_HPANED(obj) (GTK_CHECK_CAST ((obj), E_TYPE_HPANED, EHPaned)) -#define E_HPANED_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), E_TYPE_HPANED, EHPanedClass)) -#define E_IS_HPANED(obj) (GTK_CHECK_TYPE ((obj), E_TYPE_HPANED)) -#define E_IS_HPANED_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), E_TYPE_HPANED)) -#define E_HPANED_GET_CLASS(obj) (GTK_CHECK_GET_CLASS ((obj), E_TYPE_HPANED, EHPanedClass)) - - -typedef struct _EHPaned EHPaned; -typedef struct _EHPanedClass EHPanedClass; - -struct _EHPaned -{ - EPaned paned; -}; - -struct _EHPanedClass -{ - EPanedClass parent_class; -}; - -GtkType e_hpaned_get_type (void); -GtkWidget *e_hpaned_new (void); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __E_HPANED_H__ */ diff --git a/cut-n-paste-code/widgets/e-paned/e-paned.c b/cut-n-paste-code/widgets/e-paned/e-paned.c deleted file mode 100644 index 3c138541e..000000000 --- a/cut-n-paste-code/widgets/e-paned/e-paned.c +++ /dev/null @@ -1,623 +0,0 @@ -/* EPaned - A slightly more advanced paned widget. - * Copyright (C) 2000 Helix Code, Inc. - * - * Author: Christopher James Lahey <clahey@helixcode.com> - * - * based on GtkPaned from Gtk+. Gtk+ Copyright notice follows. - */ - -/* GTK - The GIMP Toolkit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -#include "e-paned.h" - -enum { - ARG_0, - ARG_HANDLE_SIZE, - ARG_QUANTUM, -}; - -static void e_paned_class_init (EPanedClass *klass); -static void e_paned_init (EPaned *paned); - -static GtkContainerClass *parent_class = NULL; - - -GtkType -e_paned_get_type (void) -{ - static GtkType paned_type = 0; - - if (!paned_type) - { - static const GtkTypeInfo paned_info = - { - "EPaned", - sizeof (EPaned), - sizeof (EPanedClass), - (GtkClassInitFunc) e_paned_class_init, - (GtkObjectInitFunc) e_paned_init, - /* reserved_1 */ NULL, - /* reserved_2 */ NULL, - (GtkClassInitFunc) NULL, - }; - - paned_type = gtk_type_unique (GTK_TYPE_CONTAINER, &paned_info); - } - - return paned_type; -} - -static GtkType -e_paned_child_type (GtkContainer *container) -{ - if (!E_PANED (container)->child1 || !E_PANED (container)->child2) - return GTK_TYPE_WIDGET; - else - return G_TYPE_NONE; -} - -static void -e_paned_init (EPaned *paned) -{ - GTK_WIDGET_UNSET_FLAGS (paned, GTK_NO_WINDOW); - - paned->child1 = NULL; - paned->child2 = NULL; - paned->handle = NULL; - paned->xor_gc = NULL; - paned->cursor_type = GDK_CROSS; - - paned->handle_width = 5; - paned->handle_height = 5; - paned->handle_size = 5; - paned->position_set = FALSE; - paned->last_allocation = -1; - paned->in_drag = FALSE; - - paned->handle_xpos = -1; - paned->handle_ypos = -1; - - paned->old_child1_size = 0; - paned->quantum = 1; -} - -static void -e_paned_set_arg (GtkObject *object, - GtkArg *arg, - guint arg_id) -{ - EPaned *paned = E_PANED (object); - - switch (arg_id) - { - case ARG_HANDLE_SIZE: - e_paned_set_handle_size (paned, GTK_VALUE_UINT (*arg)); - break; - case ARG_QUANTUM: - paned->quantum = GTK_VALUE_UINT (*arg); - if (paned->quantum == 0) - paned->quantum = 1; - break; - default: - break; - } -} - -static void -e_paned_get_arg (GtkObject *object, - GtkArg *arg, - guint arg_id) -{ - EPaned *paned = E_PANED (object); - - switch (arg_id) - { - case ARG_HANDLE_SIZE: - GTK_VALUE_UINT (*arg) = paned->handle_size; - break; - case ARG_QUANTUM: - GTK_VALUE_UINT (*arg) = paned->quantum; - break; - default: - arg->type = G_TYPE_INVALID; - break; - } -} - -static void -e_paned_realize (GtkWidget *widget) -{ - EPaned *paned; - GdkWindowAttr attributes; - gint attributes_mask; - - g_return_if_fail (widget != NULL); - g_return_if_fail (E_IS_PANED (widget)); - - GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED); - paned = E_PANED (widget); - - attributes.x = widget->allocation.x; - attributes.y = widget->allocation.y; - attributes.width = widget->allocation.width; - attributes.height = widget->allocation.height; - attributes.window_type = GDK_WINDOW_CHILD; - attributes.wclass = GDK_INPUT_OUTPUT; - attributes.visual = gtk_widget_get_visual (widget); - attributes.colormap = gtk_widget_get_colormap (widget); - attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK; - attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; - - widget->window = gdk_window_new (gtk_widget_get_parent_window(widget), - &attributes, attributes_mask); - gdk_window_set_user_data (widget->window, paned); - - attributes.x = paned->handle_xpos; - attributes.y = paned->handle_ypos; - attributes.width = paned->handle_width; - attributes.height = paned->handle_height; - attributes.cursor = gdk_cursor_new (paned->cursor_type); - attributes.event_mask |= (GDK_BUTTON_PRESS_MASK | - GDK_BUTTON_RELEASE_MASK | - GDK_POINTER_MOTION_MASK | - GDK_POINTER_MOTION_HINT_MASK); - attributes_mask |= GDK_WA_CURSOR; - - paned->handle = gdk_window_new (widget->window, - &attributes, attributes_mask); - gdk_window_set_user_data (paned->handle, paned); - gdk_cursor_destroy (attributes.cursor); - - widget->style = gtk_style_attach (widget->style, widget->window); - - gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL); - gtk_style_set_background (widget->style, paned->handle, GTK_STATE_NORMAL); - - gdk_window_set_back_pixmap (widget->window, NULL, TRUE); - - if (e_paned_handle_shown(paned)) - gdk_window_show (paned->handle); -} - -static void -e_paned_map (GtkWidget *widget) -{ - EPaned *paned; - - g_return_if_fail (widget != NULL); - g_return_if_fail (E_IS_PANED (widget)); - - GTK_WIDGET_SET_FLAGS (widget, GTK_MAPPED); - paned = E_PANED (widget); - - if (paned->child1 && - GTK_WIDGET_VISIBLE (paned->child1) && - !GTK_WIDGET_MAPPED (paned->child1)) - gtk_widget_map (paned->child1); - if (paned->child2 && - GTK_WIDGET_VISIBLE (paned->child2) && - !GTK_WIDGET_MAPPED (paned->child2)) - gtk_widget_map (paned->child2); - - gdk_window_show (widget->window); -} - -static void -e_paned_unmap (GtkWidget *widget) -{ - g_return_if_fail (widget != NULL); - g_return_if_fail (E_IS_PANED (widget)); - - GTK_WIDGET_UNSET_FLAGS (widget, GTK_MAPPED); - - gdk_window_hide (widget->window); -} - -static void -e_paned_unrealize (GtkWidget *widget) -{ - EPaned *paned; - - g_return_if_fail (widget != NULL); - g_return_if_fail (E_IS_PANED (widget)); - - paned = E_PANED (widget); - - if (paned->xor_gc) - { - gdk_gc_destroy (paned->xor_gc); - paned->xor_gc = NULL; - } - - if (paned->handle) - { - gdk_window_set_user_data (paned->handle, NULL); - gdk_window_destroy (paned->handle); - paned->handle = NULL; - } - - if (GTK_WIDGET_CLASS (parent_class)->unrealize) - (* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget); -} - -#if GNOME2_CONVERSION_COMPLETE - -static gint -e_paned_expose (GtkWidget *widget, - GdkEventExpose *event) -{ - EPaned *paned; - GdkEvent child_event; - - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (E_IS_PANED (widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); - - if (GTK_WIDGET_DRAWABLE (widget)) - { - paned = E_PANED (widget); - - if (paned->handle && event->window == paned->handle) - { - if (e_paned_handle_shown(paned)) - { - event->area.x += paned->handle_xpos; - event->area.y += paned->handle_ypos; - gtk_widget_draw (widget, &event->area); - } - } - else - { - child_event.expose = *event; - if (paned->child1 && - GTK_WIDGET_NO_WINDOW (paned->child1) && - gtk_widget_intersect (paned->child1, &event->area, &child_event.expose.area)) - gtk_widget_event (paned->child1, &child_event); - - if (paned->child2 && - GTK_WIDGET_NO_WINDOW (paned->child2) && - gtk_widget_intersect (paned->child2, &event->area, &child_event.expose.area)) - gtk_widget_event (paned->child2, &child_event); - } - } - - return FALSE; -} - -#endif - -void -e_paned_add1 (EPaned *paned, - GtkWidget *widget) -{ - e_paned_pack1 (paned, widget, FALSE, TRUE); -} - -void -e_paned_add2 (EPaned *paned, - GtkWidget *widget) -{ - e_paned_pack2 (paned, widget, TRUE, TRUE); -} - -void -e_paned_pack1 (EPaned *paned, - GtkWidget *child, - gboolean resize, - gboolean shrink) -{ - g_return_if_fail (paned != NULL); - g_return_if_fail (E_IS_PANED (paned)); - g_return_if_fail (GTK_IS_WIDGET (child)); - - if (!paned->child1) - { - paned->child1 = child; - paned->child1_resize = resize; - paned->child1_shrink = shrink; - - gtk_widget_set_parent (child, GTK_WIDGET (paned)); - - if (GTK_WIDGET_REALIZED (child->parent)) - gtk_widget_realize (child); - - if (GTK_WIDGET_VISIBLE (child->parent) && GTK_WIDGET_VISIBLE (child)) - { - if (GTK_WIDGET_MAPPED (child->parent)) - gtk_widget_map (child); - - gtk_widget_queue_resize (child); - } - } -} - -void -e_paned_pack2 (EPaned *paned, - GtkWidget *child, - gboolean resize, - gboolean shrink) -{ - g_return_if_fail (paned != NULL); - g_return_if_fail (E_IS_PANED (paned)); - g_return_if_fail (GTK_IS_WIDGET (child)); - - if (!paned->child2) - { - paned->child2 = child; - paned->child2_resize = resize; - paned->child2_shrink = shrink; - - gtk_widget_set_parent (child, GTK_WIDGET (paned)); - - if (GTK_WIDGET_REALIZED (child->parent)) - gtk_widget_realize (child); - - if (GTK_WIDGET_VISIBLE (child->parent) && GTK_WIDGET_VISIBLE (child)) - { - if (GTK_WIDGET_MAPPED (child->parent)) - gtk_widget_map (child); - - gtk_widget_queue_resize (child); - } - } -} - - -static void -e_paned_add (GtkContainer *container, - GtkWidget *widget) -{ - EPaned *paned; - - g_return_if_fail (container != NULL); - g_return_if_fail (E_IS_PANED (container)); - g_return_if_fail (widget != NULL); - - paned = E_PANED (container); - - if (!paned->child1) - e_paned_add1 (E_PANED (container), widget); - else if (!paned->child2) - e_paned_add2 (E_PANED (container), widget); -} - -static void -e_paned_remove (GtkContainer *container, - GtkWidget *widget) -{ - EPaned *paned; - gboolean was_visible; - - g_return_if_fail (container != NULL); - g_return_if_fail (E_IS_PANED (container)); - g_return_if_fail (widget != NULL); - - paned = E_PANED (container); - was_visible = GTK_WIDGET_VISIBLE (widget); - - if (paned->child1 == widget) - { - gtk_widget_unparent (widget); - - paned->child1 = NULL; - - if (was_visible && GTK_WIDGET_VISIBLE (container)) - gtk_widget_queue_resize (GTK_WIDGET (container)); - } - else if (paned->child2 == widget) - { - gtk_widget_unparent (widget); - - paned->child2 = NULL; - - if (was_visible && GTK_WIDGET_VISIBLE (container)) - gtk_widget_queue_resize (GTK_WIDGET (container)); - } -} - -static void -e_paned_forall (GtkContainer *container, - gboolean include_internals, - GtkCallback callback, - gpointer callback_data) -{ - EPaned *paned; - - g_return_if_fail (container != NULL); - g_return_if_fail (E_IS_PANED (container)); - g_return_if_fail (callback != NULL); - - paned = E_PANED (container); - - if (paned->child1) - (*callback) (paned->child1, callback_data); - if (paned->child2) - (*callback) (paned->child2, callback_data); -} - -gint -e_paned_get_position (EPaned *paned) -{ - g_return_val_if_fail (paned != NULL, 0); - g_return_val_if_fail (E_IS_PANED (paned), 0); - - return paned->child1_size; -} - -void -e_paned_set_position (EPaned *paned, - gint position) -{ - g_return_if_fail (paned != NULL); - g_return_if_fail (E_IS_PANED (paned)); - - if (position >= 0) - { - /* We don't clamp here - the assumption is that - * if the total allocation changes at the same time - * as the position, the position set is with reference - * to the new total size. If only the position changes, - * then clamping will occur in e_paned_compute_position() - */ - paned->child1_size = position; - paned->position_set = TRUE; - } - else - { - paned->position_set = FALSE; - } - - gtk_widget_queue_resize (GTK_WIDGET (paned)); -} - -void -e_paned_set_handle_size (EPaned *paned, - guint16 size) -{ - g_return_if_fail (paned != NULL); - g_return_if_fail (E_IS_PANED (paned)); - - gtk_widget_queue_resize (GTK_WIDGET (paned)); - - paned->handle_size = size; -} - -void -e_paned_compute_position(EPaned *paned, - gint allocation, - gint child1_req, - gint child2_req) -{ - g_return_if_fail (paned != NULL); - g_return_if_fail (E_IS_PANED (paned)); - - if (e_paned_handle_shown(paned)) - allocation -= (gint) paned->handle_size; - - paned->min_position = paned->child1_shrink ? 0 : child1_req; - - paned->max_position = allocation; - if (!paned->child2_shrink) - paned->max_position = MAX (1, paned->max_position - child2_req); - - if (!paned->position_set) - { - if (paned->child1_resize && !paned->child2_resize) - paned->child1_size = MAX (1, allocation - child2_req); - else if (!paned->child1_resize && paned->child2_resize) - paned->child1_size = child1_req; - else if (child1_req + child2_req != 0) - paned->child1_size = allocation * ((gdouble)child1_req / (child1_req + child2_req)); - else - paned->child1_size = allocation * 0.5; - } - else - { - /* If the position was set before the initial allocation. - * (paned->last_allocation <= 0) just clamp it and leave it. - */ - if (paned->last_allocation > 0) - { - if (paned->child1_resize && !paned->child2_resize) - paned->child1_size += allocation - paned->last_allocation; - else if (!(!paned->child1_resize && paned->child2_resize)) - paned->child1_size = allocation * ((gdouble) paned->child1_size / (paned->last_allocation)); - } - } - - paned->child1_size = CLAMP (paned->child1_size, - paned->min_position, - paned->max_position); - - /* Only remember the last allocation if no position has been set - * yet, or the last allocation was already previously stored. Otherwise - * the second half of the above if can wrongly move the split - */ - if (!paned->position_set || paned->last_allocation >= 0) - paned->last_allocation = allocation; -} - -gboolean -e_paned_handle_shown(EPaned *paned) -{ - EPanedClass *klass = E_PANED_CLASS(G_OBJECT_GET_CLASS(paned)); - if (klass->handle_shown) - return (*klass->handle_shown)(paned); - else - return TRUE; -} - -gint -e_paned_quantized_size(EPaned *paned, - gint size) -{ - gint quantization = size - paned->old_child1_size; - if (quantization > 0) - quantization += paned->quantum / 2; - else - quantization -= paned->quantum / 2; - quantization /= paned->quantum; - quantization *= paned->quantum; - return paned->old_child1_size + quantization; -} - -static void -e_paned_class_init (EPanedClass *klass) -{ - GtkObjectClass *object_class; - GtkWidgetClass *widget_class; - GtkContainerClass *container_class; - - object_class = (GtkObjectClass *) klass; - widget_class = (GtkWidgetClass *) klass; - container_class = (GtkContainerClass *) klass; - - parent_class = gtk_type_class (GTK_TYPE_CONTAINER); - - object_class->set_arg = e_paned_set_arg; - object_class->get_arg = e_paned_get_arg; - - widget_class->realize = e_paned_realize; - widget_class->map = e_paned_map; - widget_class->unmap = e_paned_unmap; - widget_class->unrealize = e_paned_unrealize; -#if GNOME2_CONVERSION_COMPLETE - widget_class->expose_event = e_paned_expose; -#endif - - container_class->add = e_paned_add; - container_class->remove = e_paned_remove; - container_class->forall = e_paned_forall; - container_class->child_type = e_paned_child_type; - - klass->handle_shown = NULL; - - gtk_object_add_arg_type("EPaned::handle_size", G_TYPE_UINT, - GTK_ARG_READWRITE, ARG_HANDLE_SIZE); - gtk_object_add_arg_type("EPaned::quantum", G_TYPE_UINT, - GTK_ARG_READWRITE, ARG_QUANTUM); -} diff --git a/cut-n-paste-code/widgets/e-paned/e-paned.h b/cut-n-paste-code/widgets/e-paned/e-paned.h deleted file mode 100644 index e3799a6bc..000000000 --- a/cut-n-paste-code/widgets/e-paned/e-paned.h +++ /dev/null @@ -1,134 +0,0 @@ -/* EPaned - A slightly more advanced paned widget. - * Copyright (C) 2000 Helix Code, Inc. - * - * Author: Christopher James Lahey <clahey@helixcode.com> - * - * based on GtkPaned from Gtk+. Gtk+ Copyright notice follows. - */ - -/* GTK - The GIMP Toolkit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -#ifndef __E_PANED_H__ -#define __E_PANED_H__ - -#include <gtk/gtkcontainer.h> - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - - -#define E_TYPE_PANED (e_paned_get_type ()) -#define E_PANED(obj) (GTK_CHECK_CAST ((obj), E_TYPE_PANED, EPaned)) -#define E_PANED_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), E_TYPE_PANED, EPanedClass)) -#define E_IS_PANED(obj) (GTK_CHECK_TYPE ((obj), E_TYPE_PANED)) -#define E_IS_PANED_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), E_TYPE_PANED)) -#define E_PANED_GET_CLASS(obj) (GTK_CHECK_GET_CLASS ((obj), E_TYPE_PANED, EPanedClass)) - - -typedef struct _EPaned EPaned; -typedef struct _EPanedClass EPanedClass; - -struct _EPaned -{ - GtkContainer container; - - GtkWidget *child1; - GtkWidget *child2; - - GdkWindow *handle; - GdkGC *xor_gc; - GdkCursorType cursor_type; - - /*< public >*/ - guint16 handle_size; - - /*< private >*/ - guint16 handle_width; - guint16 handle_height; - - gint child1_size; - gint last_allocation; - gint min_position; - gint max_position; - - gint old_child1_size; - gint quantum; - - guint position_set : 1; - guint in_drag : 1; - guint child1_shrink : 1; - guint child1_resize : 1; - guint child2_shrink : 1; - guint child2_resize : 1; - - gint16 handle_xpos; - gint16 handle_ypos; -}; - -struct _EPanedClass -{ - GtkContainerClass parent_class; - - /* Protected virtual method. */ - gboolean (*handle_shown) (EPaned *paned); -}; - - -GtkType e_paned_get_type (void); -void e_paned_add1 (EPaned *paned, - GtkWidget *child); -void e_paned_add2 (EPaned *paned, - GtkWidget *child); -void e_paned_pack1 (EPaned *paned, - GtkWidget *child, - gboolean resize, - gboolean shrink); -void e_paned_pack2 (EPaned *paned, - GtkWidget *child, - gboolean resize, - gboolean shrink); -gint e_paned_get_position (EPaned *paned); -void e_paned_set_position (EPaned *paned, - gint position); -void e_paned_set_handle_size (EPaned *paned, - guint16 size); - -/* Internal function */ -void e_paned_compute_position (EPaned *paned, - gint allocation, - gint child1_req, - gint child2_req); - -gboolean e_paned_handle_shown (EPaned *paned); -gint e_paned_quantized_size (EPaned *paned, - int size); -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __E_PANED_H__ */ diff --git a/cut-n-paste-code/widgets/e-paned/e-vpaned.c b/cut-n-paste-code/widgets/e-paned/e-vpaned.c deleted file mode 100644 index 37cf70713..000000000 --- a/cut-n-paste-code/widgets/e-paned/e-vpaned.c +++ /dev/null @@ -1,376 +0,0 @@ -/* EPaned - A slightly more advanced paned widget. - * Copyright (C) 2000 Helix Code, Inc. - * - * Author: Christopher James Lahey <clahey@helixcode.com> - * - * based on GtkPaned from Gtk+. Gtk+ Copyright notice follows. - */ - -/* GTK - The GIMP Toolkit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GTK+ Team and others 1997-1999. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -#include "e-vpaned.h" - -static void e_vpaned_class_init (EVPanedClass *klass); -static void e_vpaned_init (EVPaned *vpaned); -static void e_vpaned_size_request (GtkWidget *widget, - GtkRequisition *requisition); -static void e_vpaned_size_allocate (GtkWidget *widget, - GtkAllocation *allocation); -static void e_vpaned_xor_line (EPaned *paned); -static gboolean e_vpaned_button_press (GtkWidget *widget, - GdkEventButton *event); -static gboolean e_vpaned_button_release (GtkWidget *widget, - GdkEventButton *event); -static gboolean e_vpaned_motion (GtkWidget *widget, - GdkEventMotion *event); -static gboolean e_vpaned_handle_shown (EPaned *paned); - -GtkType -e_vpaned_get_type (void) -{ - static GtkType vpaned_type = 0; - - if (!vpaned_type) - { - static const GtkTypeInfo vpaned_info = - { - "EVPaned", - sizeof (EVPaned), - sizeof (EVPanedClass), - (GtkClassInitFunc) e_vpaned_class_init, - (GtkObjectInitFunc) e_vpaned_init, - /* reserved_1 */ NULL, - /* reserved_2 */ NULL, - (GtkClassInitFunc) NULL, - }; - - vpaned_type = gtk_type_unique (E_TYPE_PANED, &vpaned_info); - } - - return vpaned_type; -} - -static void -e_vpaned_class_init (EVPanedClass *klass) -{ - GtkWidgetClass *widget_class; - EPanedClass *paned_class; - - widget_class = (GtkWidgetClass *) klass; - paned_class = E_PANED_CLASS (klass); - - widget_class->size_request = e_vpaned_size_request; - widget_class->size_allocate = e_vpaned_size_allocate; - widget_class->button_press_event = e_vpaned_button_press; - widget_class->button_release_event = e_vpaned_button_release; - widget_class->motion_notify_event = e_vpaned_motion; - - paned_class->handle_shown = e_vpaned_handle_shown; -} - -static void -e_vpaned_init (EVPaned *vpaned) -{ - EPaned *paned; - - g_return_if_fail (vpaned != NULL); - g_return_if_fail (E_IS_PANED (vpaned)); - - paned = E_PANED (vpaned); - - paned->cursor_type = GDK_SB_V_DOUBLE_ARROW; -} - -GtkWidget * -e_vpaned_new (void) -{ - return gtk_widget_new (E_TYPE_VPANED, NULL); -} - -static void -e_vpaned_size_request (GtkWidget *widget, - GtkRequisition *requisition) -{ - EPaned *paned; - GtkRequisition child_requisition; - - g_return_if_fail (widget != NULL); - g_return_if_fail (E_IS_VPANED (widget)); - g_return_if_fail (requisition != NULL); - - paned = E_PANED (widget); - requisition->width = 0; - requisition->height = 0; - - if (paned->child1 && GTK_WIDGET_VISIBLE (paned->child1)) - { - gtk_widget_size_request (paned->child1, &child_requisition); - - requisition->height = child_requisition.height; - requisition->width = child_requisition.width; - } - - if (paned->child2 && GTK_WIDGET_VISIBLE (paned->child2)) - { - gtk_widget_size_request (paned->child2, &child_requisition); - - requisition->width = MAX (requisition->width, child_requisition.width); - requisition->height += child_requisition.height; - } - - requisition->height += GTK_CONTAINER (paned)->border_width * 2; - requisition->width += GTK_CONTAINER (paned)->border_width * 2; - if (e_paned_handle_shown(paned)) - requisition->height += paned->handle_size; -} - -static void -e_vpaned_size_allocate (GtkWidget *widget, - GtkAllocation *allocation) -{ - EPaned *paned; - GtkRequisition child1_requisition; - GtkRequisition child2_requisition; - GtkAllocation child1_allocation; - GtkAllocation child2_allocation; - gint border_width; - gboolean handle_shown; - - g_return_if_fail (widget != NULL); - g_return_if_fail (E_IS_VPANED (widget)); - g_return_if_fail (allocation != NULL); - - widget->allocation = *allocation; - paned = E_PANED (widget); - border_width = GTK_CONTAINER (widget)->border_width; - - if (paned->child1 && GTK_WIDGET_VISIBLE (paned->child1)) - gtk_widget_get_child_requisition (paned->child1, &child1_requisition); - else - child1_requisition.height = 0; - - if (paned->child2 && GTK_WIDGET_VISIBLE (paned->child2)) - gtk_widget_get_child_requisition (paned->child2, &child2_requisition); - else - child2_requisition.height = 0; - - e_paned_compute_position (paned, - MAX (1, (gint) widget->allocation.height - - 2 * border_width), - child1_requisition.height, - child2_requisition.height); - - /* Move the handle before the children so we don't get extra expose events */ - - if (GTK_WIDGET_REALIZED (widget)) - gdk_window_move_resize (widget->window, - allocation->x, allocation->y, - allocation->width, - allocation->height); - - handle_shown = e_paned_handle_shown(paned); - if (handle_shown) - { - paned->handle_xpos = border_width; - paned->handle_ypos = paned->child1_size + border_width; - paned->handle_width = MAX (1, (gint) widget->allocation.width - 2 * border_width); - paned->handle_height = paned->handle_size; - - if (GTK_WIDGET_REALIZED (widget)) - { - gdk_window_move_resize (paned->handle, - paned->handle_xpos, - paned->handle_ypos, - paned->handle_width, - paned->handle_size); - if (paned->handle) - gdk_window_show(paned->handle); - } - } - else - { - if (paned->handle && GTK_WIDGET_REALIZED (widget)) - gdk_window_hide(paned->handle); - } - - child1_allocation.width = child2_allocation.width = MAX (1, (gint) allocation->width - border_width * 2); - child1_allocation.height = paned->child1_size; - child1_allocation.x = child2_allocation.x = border_width; - child1_allocation.y = border_width; - - if (handle_shown) - child2_allocation.y = child1_allocation.y + child1_allocation.height + paned->handle_height; - else - child2_allocation.y = child1_allocation.y + child1_allocation.height; - child2_allocation.height = MAX(1, (gint) allocation->height - child2_allocation.y - border_width); - - /* Now allocate the childen, making sure, when resizing not to - * overlap the windows */ - if (GTK_WIDGET_MAPPED (widget) && - paned->child1 && GTK_WIDGET_VISIBLE (paned->child1) && - paned->child1->allocation.height < child1_allocation.height) - { - if (paned->child2 && GTK_WIDGET_VISIBLE (paned->child2)) - gtk_widget_size_allocate(paned->child2, &child2_allocation); - gtk_widget_size_allocate(paned->child1, &child1_allocation); - } - else - { - if (paned->child1 && GTK_WIDGET_VISIBLE (paned->child1)) - gtk_widget_size_allocate(paned->child1, &child1_allocation); - if (paned->child2 && GTK_WIDGET_VISIBLE (paned->child2)) - gtk_widget_size_allocate(paned->child2, &child2_allocation); - } -} - -static void -e_vpaned_xor_line (EPaned *paned) -{ - GtkWidget *widget; - GdkGCValues values; - guint16 ypos; - - widget = GTK_WIDGET (paned); - - if (!paned->xor_gc) - { - values.function = GDK_INVERT; - values.subwindow_mode = GDK_INCLUDE_INFERIORS; - paned->xor_gc = gdk_gc_new_with_values (widget->window, - &values, - GDK_GC_FUNCTION | GDK_GC_SUBWINDOW); - } - - gdk_gc_set_line_attributes (paned->xor_gc, 2, GDK_LINE_SOLID, - GDK_CAP_NOT_LAST, GDK_JOIN_BEVEL); - - ypos = paned->child1_size - + GTK_CONTAINER (paned)->border_width + paned->handle_size / 2; - - gdk_draw_line (widget->window, paned->xor_gc, - 0, - ypos, - widget->allocation.width - 1, - ypos); -} - -static gboolean -e_vpaned_button_press (GtkWidget *widget, - GdkEventButton *event) -{ - EPaned *paned; - - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (E_IS_PANED (widget), FALSE); - - paned = E_PANED (widget); - - if (!paned->in_drag && - (event->window == paned->handle) && (event->button == 1)) - { - paned->old_child1_size = paned->child1_size; - paned->in_drag = TRUE; - /* We need a server grab here, not gtk_grab_add(), since - * we don't want to pass events on to the widget's children */ - gdk_pointer_grab (paned->handle, FALSE, - GDK_POINTER_MOTION_HINT_MASK - | GDK_BUTTON1_MOTION_MASK - | GDK_BUTTON_RELEASE_MASK, NULL, NULL, - event->time); - paned->child1_size = e_paned_quantized_size(paned, paned->child1_size + event->y - paned->handle_size / 2); - paned->child1_size = CLAMP (paned->child1_size, 0, - widget->allocation.height - - paned->handle_size - - 2 * GTK_CONTAINER (paned)->border_width); - e_vpaned_xor_line(paned); - - return TRUE; - } - - return FALSE; -} - -static gboolean -e_vpaned_button_release (GtkWidget *widget, - GdkEventButton *event) -{ - EPaned *paned; - - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (E_IS_PANED (widget), FALSE); - - paned = E_PANED (widget); - - if (paned->in_drag && (event->button == 1)) - { - e_vpaned_xor_line (paned); - paned->in_drag = FALSE; - paned->position_set = TRUE; - gdk_pointer_ungrab (event->time); - gtk_widget_queue_resize (GTK_WIDGET (paned)); - - return TRUE; - } - - return FALSE; -} - -static gboolean -e_vpaned_motion (GtkWidget *widget, - GdkEventMotion *event) -{ - EPaned *paned; - gint y; - - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (E_IS_PANED (widget), FALSE); - - if (event->is_hint || event->window != widget->window) - gtk_widget_get_pointer (widget, NULL, &y); - else - y = event->y; - - paned = E_PANED (widget); - - if (paned->in_drag) - { - gint size = y - GTK_CONTAINER(paned)->border_width - paned->handle_size / 2; - - e_vpaned_xor_line (paned); - paned->child1_size = CLAMP (e_paned_quantized_size(paned, size), paned->min_position, paned->max_position); - e_vpaned_xor_line(paned); - } - - return TRUE; -} - -static gboolean -e_vpaned_handle_shown (EPaned *paned) -{ - return ((paned->child1 && paned->child2) && - (GTK_WIDGET_VISIBLE (paned->child1) && GTK_WIDGET_VISIBLE (paned->child2))); -} diff --git a/cut-n-paste-code/widgets/e-paned/e-vpaned.h b/cut-n-paste-code/widgets/e-paned/e-vpaned.h deleted file mode 100644 index fbd18e8ea..000000000 --- a/cut-n-paste-code/widgets/e-paned/e-vpaned.h +++ /dev/null @@ -1,72 +0,0 @@ -/* EPaned - A slightly more advanced paned widget. - * Copyright (C) 2000 Helix Code, Inc. - * - * Author: Christopher James Lahey <clahey@helixcode.com> - * - * based on GtkPaned from Gtk+. Gtk+ Copyright notice follows. - */ - -/* GTK - The GIMP Toolkit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/* - * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GTK+ Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. - */ - -#ifndef __E_VPANED_H__ -#define __E_VPANED_H__ - -#include "e-paned.h" - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -#define E_TYPE_VPANED (e_vpaned_get_type ()) -#define E_VPANED(obj) (GTK_CHECK_CAST ((obj), E_TYPE_VPANED, EVPaned)) -#define E_VPANED_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), E_TYPE_VPANED, EVPanedClass)) -#define E_IS_VPANED(obj) (GTK_CHECK_TYPE ((obj), E_TYPE_VPANED)) -#define E_IS_VPANED_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), E_TYPE_VPANED)) -#define E_VPANED_GET_CLASS(obj) (GTK_CHECK_GET_CLASS ((obj), E_TYPE_VPANED, EVPanedClass)) - - -typedef struct _EVPaned EVPaned; -typedef struct _EVPanedClass EVPanedClass; - -struct _EVPaned -{ - EPaned paned; -}; - -struct _EVPanedClass -{ - EPanedClass parent_class; -}; - -GtkType e_vpaned_get_type (void); -GtkWidget *e_vpaned_new (void); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __E_VPANED_H__ */ diff --git a/data/Makefile.am b/data/Makefile.am index ff0e52b7f..6cd4ceb79 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -50,7 +50,6 @@ EXTRA_DIST = $(nautilusdata_DATA) \ SUBDIRS = \ emblems \ - linksets \ patterns \ $(NULL) diff --git a/data/linksets/.cvsignore b/data/linksets/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/data/linksets/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/data/linksets/Makefile.am b/data/linksets/Makefile.am deleted file mode 100644 index 8f72f873c..000000000 --- a/data/linksets/Makefile.am +++ /dev/null @@ -1,13 +0,0 @@ -NULL= - -linkdir = $(datadir)/nautilus/linksets - -link_DATA = \ - apps.xml \ - desktop.xml \ - home.xml \ - portals.xml \ - search_engines.xml \ - $(NULL) - -EXTRA_DIST = $(link_DATA) diff --git a/data/linksets/apps.xml b/data/linksets/apps.xml deleted file mode 100644 index 718afeca5..000000000 --- a/data/linksets/apps.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0"?> -<linkset _name="Applications"> - <link _name="Netscape" image="netscape.png" uri="command:netscape"/> - <link _name="The Gimp" image="gnome-gimp.png" uri="command:gimp"/> - <link _name="Gnumeric" image="gnome-gnumeric.png" uri="command:gnumeric"/> -</linkset> diff --git a/data/linksets/desktop.xml b/data/linksets/desktop.xml deleted file mode 100644 index 7f1179b41..000000000 --- a/data/linksets/desktop.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0"?> -<linkset _name="Desktop"> - <link _name="Trash" image="trash-empty.png" uri="~/Trash"/> -</linkset> diff --git a/data/linksets/home.xml b/data/linksets/home.xml deleted file mode 100644 index b77d3c05f..000000000 --- a/data/linksets/home.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0"?> -<linkset _name="Home Directory"> - <link _name="Computer" image="computer.svg" uri="hardware:overview"/> - <link _name="Services" image="hand" uri="eazel:"/> - </linkset> diff --git a/data/linksets/portals.xml b/data/linksets/portals.xml deleted file mode 100644 index 336d56936..000000000 --- a/data/linksets/portals.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0"?> -<linkset _name="Portals"> - <link _name="Yahoo" image="http://dellbert.differnet.com/webicons/yahoo.png" uri="http://www.yahoo.com"/> - <link _name="Excite" image="http://dellbert.differnet.com/webicons/excite.png" uri="http://www.excite.com"/> - </linkset> diff --git a/data/linksets/search_engines.xml b/data/linksets/search_engines.xml deleted file mode 100644 index bf0bbcc7d..000000000 --- a/data/linksets/search_engines.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0"?> -<linkset _name="Search Engines"> - <link _name="Google" image="http://dellbert.differnet.com/webicons/google.png" uri="http://www.google.com"/> - <link _name="Alta Vista" image="http://dellbert.differnet.com/webicons/altavista.png" uri="http://www.altavista.com"/> - </linkset> diff --git a/libnautilus-private/Makefile.am b/libnautilus-private/Makefile.am index c657b2860..c16b7fea5 100644 --- a/libnautilus-private/Makefile.am +++ b/libnautilus-private/Makefile.am @@ -5,14 +5,12 @@ lib_LTLIBRARIES=libnautilus-private.la INCLUDES = \ -I$(top_srcdir) \ -I$(top_builddir) \ - -I$(top_srcdir)/cut-n-paste-code/widgets/e-paned \ $(LIBNAUTILUS_PRIVATE_CFLAGS) \ -DDATADIR=\""$(datadir)"\" \ -DNAUTILUS_DATADIR=\""$(datadir)/nautilus"\" \ $(NULL) dependency_static_libs = \ - $(top_builddir)/cut-n-paste-code/widgets/e-paned/libe-paned.la \ $(top_builddir)/cut-n-paste-code/widgets/gimphwrapbox/libgtkhwrapbox.la \ $(NULL) @@ -112,8 +110,6 @@ libnautilus_private_la_SOURCES = \ nautilus-link-desktop-file.h \ nautilus-link-historical.c \ nautilus-link-historical.h \ - nautilus-link-set.c \ - nautilus-link-set.h \ nautilus-link.c \ nautilus-link.h \ nautilus-marshal-guts.h \ diff --git a/libnautilus-private/nautilus-file-utilities.c b/libnautilus-private/nautilus-file-utilities.c index a5b05aab5..19d2a8f67 100644 --- a/libnautilus-private/nautilus-file-utilities.c +++ b/libnautilus-private/nautilus-file-utilities.c @@ -27,7 +27,6 @@ #include "nautilus-global-preferences.h" #include "nautilus-lib-self-check-functions.h" -#include "nautilus-link-set.h" #include "nautilus-metadata.h" #include "nautilus-metafile.h" #include <eel/eel-glib-extensions.h> diff --git a/libnautilus-private/nautilus-horizontal-splitter.c b/libnautilus-private/nautilus-horizontal-splitter.c index 3a5c5a674..1f18dadc8 100644 --- a/libnautilus-private/nautilus-horizontal-splitter.c +++ b/libnautilus-private/nautilus-horizontal-splitter.c @@ -26,13 +26,12 @@ #include "nautilus-horizontal-splitter.h" #include <eel/eel-gtk-macros.h> - #include <stdlib.h> struct NautilusHorizontalSplitterDetails { - gboolean down; - double down_position; - guint32 down_time; + double press_x; + guint32 press_time; + int press_position; int saved_size; }; @@ -43,62 +42,21 @@ struct NautilusHorizontalSplitterDetails { #define SPLITTER_CLICK_SLOP 1 #define SPLITTER_CLICK_TIMEOUT 400 -/* NautilusHorizontalSplitterClass methods */ -static void nautilus_horizontal_splitter_class_init (NautilusHorizontalSplitterClass *horizontal_splitter_class); -static void nautilus_horizontal_splitter_init (NautilusHorizontalSplitter *horizontal_splitter); -static gboolean nautilus_horizontal_splitter_button_press (GtkWidget *widget, - GdkEventButton *event); -static gboolean nautilus_horizontal_splitter_button_release (GtkWidget *widget, - GdkEventButton *event); -static gboolean nautilus_horizontal_splitter_motion (GtkWidget *widget, - GdkEventMotion *event); - -/* GtkObjectClass methods */ -static void nautilus_horizontal_splitter_destroy (GtkObject *object); - -/* GtkWidgetClass methods */ -#if GNOME2_CONVERSION_COMPLETE -static void nautilus_horizontal_splitter_draw (GtkWidget *widget, - GdkRectangle *area); -#endif +static void nautilus_horizontal_splitter_class_init (NautilusHorizontalSplitterClass *horizontal_splitter_class); +static void nautilus_horizontal_splitter_init (NautilusHorizontalSplitter *horizontal_splitter); EEL_CLASS_BOILERPLATE (NautilusHorizontalSplitter, - nautilus_horizontal_splitter, - E_TYPE_HPANED) - -/* GtkObjectClass methods */ -static void -nautilus_horizontal_splitter_class_init (NautilusHorizontalSplitterClass *horizontal_splitter_class) -{ - GtkObjectClass *object_class; - GtkWidgetClass *widget_class; - - object_class = GTK_OBJECT_CLASS (horizontal_splitter_class); - widget_class = GTK_WIDGET_CLASS (horizontal_splitter_class); - - /* GtkObjectClass */ - object_class->destroy = nautilus_horizontal_splitter_destroy; - - /* GtkWidgetClass */ -#if GNOME2_CONVERSION_COMPLETE - widget_class->draw = nautilus_horizontal_splitter_draw; -#endif - widget_class->button_press_event = nautilus_horizontal_splitter_button_press; - widget_class->button_release_event = nautilus_horizontal_splitter_button_release; - widget_class->motion_notify_event = nautilus_horizontal_splitter_motion; - -} + nautilus_horizontal_splitter, + GTK_TYPE_HPANED) static void nautilus_horizontal_splitter_init (NautilusHorizontalSplitter *horizontal_splitter) { horizontal_splitter->details = g_new0 (NautilusHorizontalSplitterDetails, 1); - e_paned_set_handle_size (E_PANED (horizontal_splitter), BAR_WIDTH); } -/* GtkObjectClass methods */ static void -nautilus_horizontal_splitter_destroy (GtkObject *object) +nautilus_horizontal_splitter_finalize (GObject *object) { NautilusHorizontalSplitter *horizontal_splitter; @@ -106,223 +64,64 @@ nautilus_horizontal_splitter_destroy (GtkObject *object) g_free (horizontal_splitter->details); - /* Chain */ - EEL_CALL_PARENT (GTK_OBJECT_CLASS, destroy, (object)); + EEL_CALL_PARENT (G_OBJECT_CLASS, finalize, (object)); } -#if GNOME2_CONVERSION_COMPLETE - static void -draw_resize_bar (GtkWidget *widget, - GdkWindow *window, - const GdkRectangle *area) +splitter_expand (NautilusHorizontalSplitter *splitter, int position) { - GtkStyle *style; - GdkGC *gcs[BAR_WIDTH]; - guint i; - - g_assert (widget != NULL); - g_assert (window != NULL); - g_assert (area != NULL); - g_assert (area->width == BAR_WIDTH); + g_return_if_fail (NAUTILUS_IS_HORIZONTAL_SPLITTER (splitter)); - style = widget->style; + if (position >= CLOSED_THRESHOLD) { + return; + } - g_assert (style != NULL); - - gcs[0] = style->fg_gc[GTK_STATE_NORMAL]; - gcs[1] = style->fg_gc[GTK_STATE_SELECTED]; - gcs[2] = style->light_gc[GTK_STATE_ACTIVE]; - gcs[3] = style->bg_gc[GTK_STATE_NORMAL]; - gcs[4] = style->mid_gc[GTK_STATE_ACTIVE]; - gcs[5] = style->dark_gc[GTK_STATE_NORMAL]; - gcs[6] = style->fg_gc[GTK_STATE_NORMAL]; - - for (i = 0; i < BAR_WIDTH; i++) - { - gdk_draw_line (window, - gcs[i], - area->x + i, - area->y, - area->x + i, - area->y + area->height - 1); + position = splitter->details->saved_size; + if (position < CLOSED_THRESHOLD) { + position = NOMINAL_SIZE; } + + gtk_paned_set_position (GTK_PANED (splitter), position); } -/* Number of ridges in the thumb currently hardcoded to 8 */ -#define NUM_RIDGES 8 - -/* These control the layout of the ridges */ -#define RIDGE_HEIGHT 2 -#define RIDGE_EDGE_OFFSET 2 -#define BETWEEN_RIDGE_OFFSET 1 - static void -draw_resize_bar_thumb (GtkWidget *widget, - GdkWindow *window, - const GdkRectangle *area) +splitter_collapse (NautilusHorizontalSplitter *splitter, int position) { - EPaned *paned; - GtkStyle *style; - GdkGC *light_gc; - GdkGC *dark_gc; - guint total_thumb_height; - - g_assert (widget != NULL); - g_assert (window != NULL); - g_assert (area != NULL); - g_assert (area->width == BAR_WIDTH); - - style = widget->style; - g_assert (style != NULL); - - paned = E_PANED (widget); - - light_gc = style->light_gc[GTK_STATE_ACTIVE]; - dark_gc = style->dark_gc[GTK_STATE_NORMAL]; - - total_thumb_height = (NUM_RIDGES * RIDGE_HEIGHT) + ((NUM_RIDGES - 1) * BETWEEN_RIDGE_OFFSET); - - /* Make sure the thumb aint bigger than the handle */ - if (total_thumb_height > paned->handle_height) - { - total_thumb_height = paned->handle_height; - } + g_return_if_fail (NAUTILUS_IS_HORIZONTAL_SPLITTER (splitter)); - /* Draw the thumb only if we have enough space for at least one ridge */ - if (total_thumb_height > RIDGE_HEIGHT) - { - gint y = paned->handle_ypos + (paned->handle_height - total_thumb_height) / 2; - guint i; - - for (i = 0; i < NUM_RIDGES; i++) - { - gint x1 = area->x + RIDGE_EDGE_OFFSET; - gint x2 = area->x + BAR_WIDTH - RIDGE_EDGE_OFFSET; - - gdk_draw_line (window, - dark_gc, - x1, - y, - x2, - y); - - y += BETWEEN_RIDGE_OFFSET; - - gdk_draw_line (window, - light_gc, - x1, - y, - x2, - y); - - y += RIDGE_HEIGHT; - } - } + splitter->details->saved_size = position; + gtk_paned_set_position (GTK_PANED (splitter), 0); } -/* GtkWidgetClass methods */ static void -nautilus_horizontal_splitter_draw (GtkWidget *widget, - GdkRectangle *area) +splitter_toggle (NautilusHorizontalSplitter *splitter, int position) { - EPaned *paned; - GdkRectangle handle_area, child_area; - guint16 border_width; - - g_return_if_fail (widget != NULL); - g_return_if_fail (E_IS_PANED (widget)); - - if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_MAPPED (widget)) { - paned = E_PANED (widget); - border_width = GTK_CONTAINER (paned)->border_width; - - gdk_window_clear_area (widget->window, - area->x, area->y, area->width, - area->height); - - if (e_paned_handle_shown(paned)) { - handle_area.x = paned->handle_xpos; - handle_area.y = paned->handle_ypos; - handle_area.width = paned->handle_size; - handle_area.height = paned->handle_height; - - if (gdk_rectangle_intersect (&handle_area, area, &child_area)) { - child_area.x -= paned->handle_xpos; - child_area.y -= paned->handle_ypos; - - /* Simply things by always drawing the full width of the bar. */ - child_area.x = 0; - child_area.width = BAR_WIDTH; - - draw_resize_bar (widget, paned->handle, &child_area); - draw_resize_bar_thumb (widget, paned->handle, &child_area); - } - } - - /* Redraw the children - */ - if (paned->child1 && gtk_widget_intersect (paned->child1, area, &child_area)) { - gtk_widget_draw (paned->child1, &child_area); - } + g_return_if_fail (NAUTILUS_IS_HORIZONTAL_SPLITTER (splitter)); - if (paned->child2 && gtk_widget_intersect (paned->child2, area, &child_area)) { - gtk_widget_draw (paned->child2, &child_area); - } + if (gtk_paned_get_position (GTK_PANED (splitter)) >= CLOSED_THRESHOLD) { + nautilus_horizontal_splitter_collapse (splitter); + } else { + nautilus_horizontal_splitter_expand (splitter); } } -#endif - void nautilus_horizontal_splitter_expand (NautilusHorizontalSplitter *splitter) { - int position; - - g_return_if_fail (NAUTILUS_IS_HORIZONTAL_SPLITTER (splitter)); - - position = e_paned_get_position (E_PANED (splitter)); - - if (position >= CLOSED_THRESHOLD) { - return; - } - - position = splitter->details->saved_size; - if (position < CLOSED_THRESHOLD) { - position = NOMINAL_SIZE; - } - - e_paned_set_position (E_PANED (splitter), position); + splitter_expand (splitter, gtk_paned_get_position (GTK_PANED (splitter))); } void nautilus_horizontal_splitter_collapse (NautilusHorizontalSplitter *splitter) { - int position; - - g_return_if_fail (NAUTILUS_IS_HORIZONTAL_SPLITTER (splitter)); - - position = e_paned_get_position (E_PANED (splitter)); - - if (position < CLOSED_THRESHOLD) { - return; - } - - splitter->details->saved_size = position; - e_paned_set_position (E_PANED (splitter), 0); + splitter_collapse (splitter, gtk_paned_get_position (GTK_PANED (splitter))); } /* routine to toggle the open/closed state of the splitter */ void nautilus_horizontal_splitter_toggle_position (NautilusHorizontalSplitter *splitter) { - g_return_if_fail (NAUTILUS_IS_HORIZONTAL_SPLITTER (splitter)); - - if (e_paned_get_position (E_PANED (splitter)) >= CLOSED_THRESHOLD) { - nautilus_horizontal_splitter_collapse (splitter); - } else { - nautilus_horizontal_splitter_expand (splitter); - } + splitter_toggle (splitter, gtk_paned_get_position (GTK_PANED (splitter))); } /* NautilusHorizontalSplitter public methods */ @@ -336,120 +135,58 @@ nautilus_horizontal_splitter_new (void) static gboolean nautilus_horizontal_splitter_button_press (GtkWidget *widget, GdkEventButton *event) { + gboolean result; NautilusHorizontalSplitter *splitter; + int position; splitter = NAUTILUS_HORIZONTAL_SPLITTER (widget); - if (event->window != E_PANED (widget)->handle) { - splitter->details->down = FALSE; - } else { - splitter->details->down = TRUE; - splitter->details->down_position = event->x; - splitter->details->down_time = event->time; - } + position = gtk_paned_get_position (GTK_PANED (widget)); - return EEL_CALL_PARENT_WITH_RETURN_VALUE + result = EEL_CALL_PARENT_WITH_RETURN_VALUE (GTK_WIDGET_CLASS, button_press_event, (widget, event)); -} - -static void -splitter_xor_line (EPaned *paned) -{ - GtkWidget *widget; - GdkGCValues values; - guint16 xpos, half_width; - gint8 dash_list[2]; - - widget = GTK_WIDGET(paned); - - if (!paned->xor_gc) { - values.function = GDK_INVERT; - values.subwindow_mode = GDK_INCLUDE_INFERIORS; - paned->xor_gc = gdk_gc_new_with_values (widget->window, &values, - GDK_GC_FUNCTION | GDK_GC_SUBWINDOW); + if (result) { + splitter->details->press_x = event->x; + splitter->details->press_time = event->time; + splitter->details->press_position = position; } - gdk_gc_set_line_attributes (paned->xor_gc, 1, GDK_LINE_ON_OFF_DASH, - GDK_CAP_NOT_LAST, GDK_JOIN_BEVEL); - - /* Make line appear as every other pixel dash */ - dash_list[0] = 1; - dash_list[1] = 1; - gdk_gc_set_dashes (paned->xor_gc, 1, dash_list, 2); - - xpos = paned->child1_size + GTK_CONTAINER (paned)->border_width + paned->handle_size / 2; - half_width = paned->handle_size / 2; - - gdk_draw_line (widget->window, paned->xor_gc, xpos - half_width, 0, xpos - half_width, - widget->allocation.height - 1); - - gdk_draw_line (widget->window, paned->xor_gc, xpos + half_width, 0, xpos + half_width, - widget->allocation.height - 1); - + return result; } - /* handle mouse ups by seeing if it was a tap and toggling the open state accordingly */ static gboolean nautilus_horizontal_splitter_button_release (GtkWidget *widget, GdkEventButton *event) { + gboolean result; NautilusHorizontalSplitter *splitter; int delta, delta_time; - EPaned *paned; - splitter = NAUTILUS_HORIZONTAL_SPLITTER (widget); - if (event->window == E_PANED (widget)->handle - && splitter->details->down) { - delta = abs (event->x - splitter->details->down_position); - delta_time = abs (splitter->details->down_time - event->time); + result = EEL_CALL_PARENT_WITH_RETURN_VALUE + (GTK_WIDGET_CLASS, button_release_event, (widget, event)); + + if (result) { + delta = abs (event->x - splitter->details->press_x); + delta_time = event->time - splitter->details->press_time; if (delta < SPLITTER_CLICK_SLOP && delta_time < SPLITTER_CLICK_TIMEOUT) { nautilus_horizontal_splitter_toggle_position (splitter); } } - splitter->details->down = FALSE; - - - paned = E_PANED (widget); - - if (paned->in_drag && (event->button == 1)) { - splitter_xor_line (paned); - paned->in_drag = FALSE; - paned->position_set = TRUE; - gdk_pointer_ungrab (event->time); - gtk_widget_queue_resize (GTK_WIDGET (paned)); - return TRUE; - } - - return FALSE; + return result; } -static gboolean -nautilus_horizontal_splitter_motion (GtkWidget *widget, GdkEventMotion *event) +static void +nautilus_horizontal_splitter_class_init (NautilusHorizontalSplitterClass *class) { - EPaned *paned; - gint x; - - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (E_IS_PANED (widget), FALSE); - - paned = E_PANED (widget); - - if (event->is_hint || event->window != widget->window) { - gtk_widget_get_pointer(widget, &x, NULL); - } else { - x = event->x; - } + GtkWidgetClass *widget_class; + + widget_class = GTK_WIDGET_CLASS (class); - if (paned->in_drag) { - gint size = x - GTK_CONTAINER (paned)->border_width - paned->handle_size / 2; - splitter_xor_line (paned); - paned->child1_size = CLAMP (e_paned_quantized_size (paned, size), paned->min_position, paned->max_position); - splitter_xor_line (paned); - } + G_OBJECT_CLASS (class)->finalize = nautilus_horizontal_splitter_finalize; - return TRUE; + widget_class->button_press_event = nautilus_horizontal_splitter_button_press; + widget_class->button_release_event = nautilus_horizontal_splitter_button_release; } - diff --git a/libnautilus-private/nautilus-horizontal-splitter.h b/libnautilus-private/nautilus-horizontal-splitter.h index 4db95128b..a4cc639d1 100644 --- a/libnautilus-private/nautilus-horizontal-splitter.h +++ b/libnautilus-private/nautilus-horizontal-splitter.h @@ -25,7 +25,7 @@ #ifndef NAUTILUS_HORIZONTAL_SPLITTER_H #define NAUTILUS_HORIZONTAL_SPLITTER_H -#include "e-hpaned.h" +#include <gtk/gtkhpaned.h> G_BEGIN_DECLS @@ -38,12 +38,12 @@ G_BEGIN_DECLS typedef struct NautilusHorizontalSplitterDetails NautilusHorizontalSplitterDetails; typedef struct { - EHPaned parent_slot; + GtkHPaned parent_slot; NautilusHorizontalSplitterDetails *details; } NautilusHorizontalSplitter; typedef struct { - EHPanedClass parent_slot; + GtkHPanedClass parent_slot; } NautilusHorizontalSplitterClass; /* NautilusHorizontalSplitter public methods */ diff --git a/libnautilus-private/nautilus-link-set.c b/libnautilus-private/nautilus-link-set.c deleted file mode 100644 index fc89d79c6..000000000 --- a/libnautilus-private/nautilus-link-set.c +++ /dev/null @@ -1,212 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- - - nautilus-link-set.c: xml-based link file sets. - - Copyright (C) 2000 Eazel, Inc. - - 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 the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - 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. - - Author: Andy Hertzfeld <andy@eazel.com> -*/ - -#include <config.h> -#include "nautilus-link-set.h" - -#include "nautilus-file-utilities.h" -#include "nautilus-file.h" -#include "nautilus-global-preferences.h" -#include "nautilus-link.h" -#include "nautilus-metadata.h" -#include <eel/eel-glib-extensions.h> -#include <eel/eel-string.h> -#include <eel/eel-xml-extensions.h> -#include <libxml/parser.h> -#include <libxml/xmlmemory.h> -#include <gtk/gtktogglebutton.h> -#include <gtk/gtkwindow.h> -#include <libgnome/gnome-util.h> -#include <libgnomevfs/gnome-vfs.h> -#include <stdlib.h> -#include <unistd.h> - -/* routine to create a new link file in the specified directory */ -static gboolean -create_new_link (const char *directory_path, const char *name, const char *image, const char *uri) -{ - xmlDocPtr output_document; - xmlNodePtr root_node; - char *file_name; - int result; - - /* create a new xml document */ - output_document = xmlNewDoc ("1.0"); - - /* add the root node to the output document */ - root_node = xmlNewDocNode (output_document, NULL, "nautilus_object", NULL); - xmlDocSetRootElement (output_document, root_node); - - /* Add mime magic string so that the mime sniffer can recognize us. - * Note: The value of the tag has no meaning. */ - xmlSetProp (root_node, "nautilus_link", "Nautilus Link"); - - /* Add link and custom icon tags */ - xmlSetProp (root_node, "custom_icon", image); - xmlSetProp (root_node, "link", uri); - - /* all done, so save the xml document as a link file */ - file_name = nautilus_make_path (directory_path, name); - result = xmlSaveFile (file_name, output_document); - g_free (file_name); - - xmlFreeDoc (output_document); - - return result > 0; -} - -/* utility to return link set path */ - -static xmlDocPtr -get_link_set_document(const char *link_set_name) -{ - char *link_set_path; - xmlDocPtr document; - - link_set_path = g_strdup_printf ("%s/linksets/%s.xml", - NAUTILUS_DATADIR, - link_set_name); - document = xmlParseFile (link_set_path); - g_free (link_set_path); - - return document; -} - -/* install a link set into the specified directory */ - -gboolean -nautilus_link_set_install (const char *directory_path, const char *link_set_name) -{ - xmlDocPtr document; - xmlNodePtr node; - char *link_name, *image_name, *uri, *full_uri; - gboolean created; - - /* load and parse the link set document */ - document = get_link_set_document (link_set_name); - if (document == NULL) { - g_warning ("could not load %s", link_set_name); - return FALSE; - } - - /* loop through the entries, generating link files */ - for (node = eel_xml_get_children (xmlDocGetRootElement (document)); - node != NULL; node = node->next) { - if (strcmp (node->name, "link") == 0) { - link_name = eel_xml_get_property_translated (node, "name"); - image_name = xmlGetProp (node, "image"); - uri = xmlGetProp (node, "uri"); - - /* Expand special URIs */ - full_uri = gnome_vfs_expand_initial_tilde (uri); - - /* create the link file */ - created = create_new_link (directory_path, link_name, - image_name, full_uri); - - xmlFree (link_name); - xmlFree (image_name); - xmlFree (uri); - g_free (full_uri); - - if (!created) { - xmlFreeDoc (document); - return FALSE; - } - } - } - - xmlFreeDoc (document); - return TRUE; -} - -/* test to see if a link set is installed. Return TRUE if all of the members are installed, false otherwise */ - -gboolean -nautilus_link_set_is_installed (const char *directory_path, const char *link_set_name) -{ - xmlDocPtr document; - xmlNodePtr node; - char *link_name, *file_name; - - /* load and parse the link set document */ - document = get_link_set_document (link_set_name); - if (document == NULL) { - g_warning ("could not load %s", link_set_name); - return FALSE; - } - - /* loop through the entries, testing to see if any are present */ - for (node = eel_xml_get_children (xmlDocGetRootElement (document)); - node != NULL; node = node->next) { - if (strcmp (node->name, "link") == 0) { - link_name = eel_xml_get_property_translated (node, "name"); - file_name = nautilus_make_path (directory_path, link_name); - xmlFree (link_name); - - if (!g_file_exists (file_name)) { - g_free (file_name); - xmlFreeDoc (document); - return FALSE; - } - g_free (file_name); - } - } - - xmlFreeDoc (document); - return TRUE; -} - -/* remove a link set from the specified directory */ -void -nautilus_link_set_remove (const char *directory_path, const char *link_set_name) -{ - xmlDocPtr document; - xmlNodePtr node; - char *link_name, *file_name; - - document = get_link_set_document(link_set_name); - if (document == NULL) { - g_message ("could not load %s", link_set_name); - return; - } - - /* loop through the entries in the xml file, formulating the names of the link files and - deleting them or decrementing their reference count */ - for (node = eel_xml_get_children (xmlDocGetRootElement (document)); - node != NULL; node = node->next) { - if (strcmp (node->name, "link") == 0) { - /* formulate the link file path name */ - link_name = eel_xml_get_property_translated (node, "name"); - file_name = nautilus_make_path (directory_path, link_name); - xmlFree (link_name); - - /* delete the file */ - unlink (file_name); - g_free (link_name); - } - } - - xmlFreeDoc (document); -} diff --git a/libnautilus-private/nautilus-link-set.h b/libnautilus-private/nautilus-link-set.h deleted file mode 100644 index 64bb00f4a..000000000 --- a/libnautilus-private/nautilus-link-set.h +++ /dev/null @@ -1,38 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- - - nautilus-link-set.h: xml-based sets of link files - - Copyright (C) 2000 Eazel, Inc. - - 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 the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - 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. - - Authors: Andy Hertzfeld <andy@eazel.com> -*/ - -#ifndef NAUTILUS_LINK_SET_H -#define NAUTILUS_LINK_SET_H - -#include <glib.h> -#include <gtk/gtkwindow.h> - -gboolean nautilus_link_set_install (const char *directory_path, - const char *link_set_name); -void nautilus_link_set_remove (const char *directory_path, - const char *link_set_name); -gboolean nautilus_link_set_is_installed (const char *directory_path, - const char *link_set_name); - -#endif /* NAUTILUS_LINK_SET_H */ diff --git a/libnautilus-private/nautilus-program-chooser.c b/libnautilus-private/nautilus-program-chooser.c index 38d8b60b6..f8482d6f1 100644 --- a/libnautilus-private/nautilus-program-chooser.c +++ b/libnautilus-private/nautilus-program-chooser.c @@ -938,6 +938,7 @@ launch_mime_capplet_on_ok (GtkDialog *dialog, int response, gpointer callback_da if (response == GTK_RESPONSE_OK) { launch_mime_capplet (callback_data); } + gtk_object_destroy (GTK_OBJECT (dialog)); } static void @@ -951,13 +952,10 @@ launch_mime_capplet_and_close_dialog (GtkButton *button, gpointer callback_data) file_pair = get_selected_program_file_pair (GTK_DIALOG (callback_data)); mime_type = nautilus_file_get_mime_type (file_pair->file); launch_mime_capplet (mime_type); - - /* Don't leave a nested modal dialogs in the wake of switching - * user's attention to the capplet. - */ - gtk_dialog_response (GTK_DIALOG (callback_data), GTK_RESPONSE_OK); g_free (mime_type); + + gtk_object_destroy (GTK_OBJECT (callback_data)); } static void diff --git a/src/Makefile.am b/src/Makefile.am index eb074b047..ca0ad5cf4 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -6,7 +6,6 @@ bin_PROGRAMS=nautilus INCLUDES =\ -I$(top_srcdir) \ - -I$(top_srcdir)/cut-n-paste-code/widgets/e-paned \ -I$(top_srcdir)/cut-n-paste-code/widgets/gimphwrapbox \ $(NAUTILUS_SRC_CFLAGS) \ -DDATADIR=\""$(datadir)"\" \ @@ -50,7 +49,6 @@ nautilus_SOURCES = \ nautilus-component-adapter-factory.c \ nautilus-desktop-window.c \ nautilus-first-time-druid.c \ - nautilus-link-set-window.c \ nautilus-location-bar.c \ nautilus-main.c \ nautilus-navigation-bar.c \ @@ -86,7 +84,6 @@ nautilus_SOURCES = \ nautilus-component-adapter-factory.h \ nautilus-desktop-window.h \ nautilus-first-time-druid.h \ - nautilus-link-set-window.h \ nautilus-location-bar.h \ nautilus-main.h \ nautilus-navigation-bar.h \ diff --git a/src/nautilus-information-panel.c b/src/nautilus-information-panel.c index 3f2a3a4fb..0a188ddc7 100644 --- a/src/nautilus-information-panel.c +++ b/src/nautilus-information-panel.c @@ -30,7 +30,6 @@ #include <config.h> #include "nautilus-sidebar.h" -#include "nautilus-link-set-window.h" #include "nautilus-sidebar-tabs.h" #include "nautilus-sidebar-title.h" @@ -1282,23 +1281,13 @@ command_button_callback (GtkWidget *button, char *id_str) /* interpret commands for buttons specified by metadata. Handle some built-in ones explicitly, or fork a shell to handle general ones */ -/* for now, we only handle a few built in commands */ +/* for now, we don't have any of these */ static void metadata_button_callback (GtkWidget *button, const char *command_str) { - GtkWindow *window; NautilusSidebar *sidebar; - char *path; - + sidebar = NAUTILUS_SIDEBAR (gtk_object_get_user_data (GTK_OBJECT (button))); - if (strcmp (command_str, "#linksets") == 0) { - window = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (sidebar))); - path = gnome_vfs_get_local_path_from_uri (sidebar->details->uri); - if (path != NULL) { - nautilus_link_set_toggle_configure_window (path, window); - g_free (path); - } - } } static void diff --git a/src/nautilus-link-set-window.c b/src/nautilus-link-set-window.c deleted file mode 100644 index cfae507dd..000000000 --- a/src/nautilus-link-set-window.c +++ /dev/null @@ -1,267 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ - -/* - * Nautilus - * - * Copyright (C) 2000 Eazel, Inc. - * - * Nautilus is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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 - * - * Author: Andy Hertzfeld <andy@eazel.com> - */ - -/* nautilus-link-set-window.c: window of checkboxes for configuring link sets - */ - -#include <config.h> -#include "nautilus-link-set-window.h" - -#include "nautilus-window.h" -#include <eel/eel-glib-extensions.h> -#include <eel/eel-string.h> -#include <eel/eel-xml-extensions.h> -#include <libxml/parser.h> -#include <libxml/xmlmemory.h> -#include <gtk/gtkcheckbutton.h> -#include <gtk/gtklabel.h> -#include <gtk/gtkscrolledwindow.h> -#include <gtk/gtksignal.h> -#include <gtk/gtktable.h> -#include <gtk/gtktogglebutton.h> -#include <gtk/gtkvbox.h> -#include <gtk/gtkwindow.h> -#include <libgnome/gnome-i18n.h> -#include <libgnomeui/gnome-uidefs.h> -#include <libgnomevfs/gnome-vfs.h> -#include <libnautilus-private/nautilus-file.h> -#include <libnautilus-private/nautilus-global-preferences.h> -#include <libnautilus-private/nautilus-link-set.h> -#include <libnautilus-private/nautilus-link.h> -#include <libnautilus-private/nautilus-metadata.h> -#include <stdlib.h> - -/* global to hold the currently allocated link set window, if any */ - -static GtkWindow *link_set_window = NULL; - -/* handle the check box toggling */ -static void -link_set_check_box_toggled (GtkToggleButton *button, GtkWindow *window_to_update) -{ - char *path, *name; - - path = g_object_get_data (G_OBJECT (button), "nautilus_directory_path"); - name = g_object_get_data (G_OBJECT (button), "nautilus_link_set_name"); - - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button))) - nautilus_link_set_install(path, name); - else - nautilus_link_set_remove(path, name); - - /* tell the associated window to reload in order to display the new links (or lack thereof) */ - nautilus_window_reload (NAUTILUS_WINDOW(window_to_update)); -} - -/* utility to make a link set checkbox that installs and removes it's corresponding - link set when toggled */ - -static void -make_link_set_check_box(const char *directory_path, GtkWidget *checkbox_table, - int index, char *name, GtkWindow *window) -{ - GtkWidget *checkbox, *label; - - /* add a checkbox and a label */ - - checkbox = gtk_check_button_new (); - gtk_widget_show (checkbox); - - label = gtk_label_new (name); - gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); - gtk_widget_show(label); - - gtk_container_add (GTK_CONTAINER (checkbox), label); - gtk_widget_show(checkbox); - - /* Set initial state of checkbox. */ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbox), nautilus_link_set_is_installed(directory_path, name)); - - /* Attach the parameters and a signal handler. */ - g_object_set_data_full (G_OBJECT (checkbox), - "nautilus_directory_path", - g_strdup (directory_path), - g_free); - - g_object_set_data_full (G_OBJECT (checkbox), - "nautilus_link_set_name", - g_strdup(name), - g_free); - - g_signal_connect (G_OBJECT (checkbox), - "toggled", - G_CALLBACK (link_set_check_box_toggled), - window); - - - /* attach the checkbox to the table */ - if (index % 2) { - gtk_table_attach_defaults (GTK_TABLE (checkbox_table), checkbox, - 0, 1, - index >> 1, (index >> 1) + 1); - } else { - gtk_table_attach_defaults (GTK_TABLE (checkbox_table), checkbox, - 1, 2, - index >> 1, (index >> 1) + 1); - } -} - -/* utility routine to return a list of link set names by iterating the link set directory */ -static GList * -get_link_set_names (void) -{ - GnomeVFSResult result; - GnomeVFSFileInfo *current_file_info; - GList *list, *node; - char *link_set_uri, *link_set_name, *dot_pos; - GList *link_set_list; - - /* get a uri to the link set directory */ - link_set_uri = gnome_vfs_get_uri_from_local_path (NAUTILUS_DATADIR "/linksets"); - - /* get the directory info */ - result = gnome_vfs_directory_list_load (&list, link_set_uri, - GNOME_VFS_FILE_INFO_FOLLOW_LINKS); - if (result != GNOME_VFS_OK) { - g_free (link_set_uri); - return NULL; - } - - link_set_list = NULL; - - /* FIXME bugzilla.gnome.org 45049: The names should really come from the names inside the files. */ - /* build the list by iterating through the directory info */ - for (node = list; node != NULL; node = node->next) { - current_file_info = node->data; - link_set_name = g_strdup (current_file_info->name); - - /* strip file type suffix */ - dot_pos = strrchr (link_set_name, '.'); - if (dot_pos != NULL) { - *dot_pos = '\0'; - } - - link_set_list = g_list_prepend (link_set_list, link_set_name); - } - - gnome_vfs_file_info_list_free (list); - g_free (link_set_uri); - - return eel_g_str_list_alphabetize (link_set_list); -} - -/* create a window used to configure the link sets in the passed in directory */ -GtkWindow * -nautilus_link_set_configure_window (const char *directory_path, GtkWindow *window_to_update) -{ - char *temp_str; - int link_set_count, index; - GtkWindow *window; - GtkWidget *vbox, *label; - GtkWidget *checkbox_table, *scrolled_window; - GList *link_set_names, *current_link_set; - - /* Create the window. */ - window = GTK_WINDOW (gtk_window_new (GTK_WINDOW_TOPLEVEL)); - gtk_container_set_border_width (GTK_CONTAINER (window), GNOME_PAD); - gtk_widget_set_usize(GTK_WIDGET(window), 280, 120); - - /* set the window title */ - gtk_window_set_title (window, _("Link sets")); - gtk_window_set_wmclass (window, "link_sets", "Nautilus"); - - /* fetch the link set names */ - link_set_names = get_link_set_names (); - link_set_count = g_list_length (link_set_names); - - /* allocate a vbox to hold the contents of the window */ - vbox = gtk_vbox_new(FALSE, 0); - gtk_container_add(GTK_CONTAINER(window), vbox); - gtk_widget_show(vbox); - - /* add a descriptive label */ - label = gtk_label_new(_("Add or remove sets of links by clicking on the checkboxes below.")); - gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); - gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 4); - gtk_widget_show(label); - - /* allocate a table to hold the link set checkboxes */ - checkbox_table = gtk_table_new ((link_set_count + 1) / 2, 2, TRUE); - gtk_widget_show (checkbox_table); - gtk_container_set_border_width (GTK_CONTAINER (checkbox_table), GNOME_PAD); - - scrolled_window = gtk_scrolled_window_new (NULL, NULL); - gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), - GTK_POLICY_NEVER, - GTK_POLICY_AUTOMATIC); - gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window), - checkbox_table); - gtk_box_pack_start(GTK_BOX(vbox), scrolled_window, TRUE, TRUE, 0); - gtk_widget_show (scrolled_window); - - /* iterate the directory to add a checkbox for each linkset found */ - index = 0; - for (current_link_set = link_set_names; current_link_set != NULL; - current_link_set = current_link_set->next) { - temp_str = (char *) current_link_set->data; - if ((temp_str[0] != '.') && (temp_str[0] != '\0')) - make_link_set_check_box(directory_path, checkbox_table, - index++, temp_str, window_to_update); - } - - eel_g_list_free_deep (link_set_names); - - /* show the window */ - gtk_window_set_position(window, GTK_WIN_POS_CENTER); - gtk_widget_show(GTK_WIDGET(window)); - return window; -} - -/* callback to clear the window global when the window is deleted */ -static gboolean -delete_window_callback (GtkWidget *widget, - GdkEvent *event, - gpointer user_data) -{ - link_set_window = NULL; - return FALSE; -} - -/* toggle the visiblity of the link set window */ -GtkWindow * -nautilus_link_set_toggle_configure_window (const char *directory_path, GtkWindow *window_to_update) -{ - if (link_set_window != NULL) { - gtk_widget_destroy (GTK_WIDGET (link_set_window)); - link_set_window = NULL; - } else { - link_set_window = nautilus_link_set_configure_window (directory_path, - window_to_update); - - g_signal_connect (G_OBJECT (link_set_window), "delete_event", - G_CALLBACK (delete_window_callback), NULL); - } - - return link_set_window; -} diff --git a/src/nautilus-link-set-window.h b/src/nautilus-link-set-window.h deleted file mode 100644 index e33ea13a3..000000000 --- a/src/nautilus-link-set-window.h +++ /dev/null @@ -1,40 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ - -/* - * Nautilus - * - * Copyright (C) 2000 Eazel, Inc. - * - * Nautilus is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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 - * - * Author: Andy Hertzfeld <andy@eazel.com> - */ - -/* nautilus-link-set-window.h: window for configuring link sets - */ - -#ifndef NAUTILUS_LINK_SET_WINDOW_H -#define NAUTILUS_LINK_SET_WINDOW_H - -#include <glib.h> -#include <libnautilus-private/nautilus-link-set.h> -#include <gtk/gtkwindow.h> - -GtkWindow *nautilus_link_set_configure_window (const char *directory_path, - GtkWindow *window); -GtkWindow *nautilus_link_set_toggle_configure_window (const char *directory_path, - GtkWindow *window_to_update); - -#endif /* NAUTILUS_LINK_SET_H */ diff --git a/src/nautilus-navigation-window-menus.c b/src/nautilus-navigation-window-menus.c index 652ab9a05..38667db89 100644 --- a/src/nautilus-navigation-window-menus.c +++ b/src/nautilus-navigation-window-menus.c @@ -350,6 +350,7 @@ forget_history_if_yes (GtkDialog *dialog, int response, gpointer callback_data) if (response == GTK_RESPONSE_YES) { nautilus_forget_history (); } + gtk_object_destroy (GTK_OBJECT (dialog)); } static void @@ -791,6 +792,8 @@ remove_bookmarks_for_uri_if_yes (GtkDialog *dialog, int response, gpointer callb uri = callback_data; nautilus_bookmark_list_delete_items_with_uri (get_bookmark_list (), uri); } + + gtk_object_destroy (GTK_OBJECT (dialog)); } static void diff --git a/src/nautilus-navigation-window.c b/src/nautilus-navigation-window.c index 86d47defa..766af2ce5 100644 --- a/src/nautilus-navigation-window.c +++ b/src/nautilus-navigation-window.c @@ -601,7 +601,6 @@ nautilus_window_constructed (NautilusWindow *window) GtkWidget *view_as_menu_vbox; int sidebar_width; BonoboControl *location_bar_wrapper; - EPaned *panel; CORBA_Environment ev; Bonobo_PropertyBag property_bag; @@ -683,12 +682,11 @@ nautilus_window_constructed (NautilusWindow *window) set_initial_window_geometry (window); window->content_hbox = nautilus_horizontal_splitter_new (); - panel = E_PANED (window->content_hbox); /* FIXME bugzilla.gnome.org 41245: Saved in pixels instead of in %? */ /* FIXME bugzilla.gnome.org 41245: No reality check on the value? */ sidebar_width = eel_preferences_get_integer (NAUTILUS_PREFERENCES_SIDEBAR_WIDTH); - e_paned_set_position (E_PANED (window->content_hbox), sidebar_width); + gtk_paned_set_position (GTK_PANED (window->content_hbox), sidebar_width); } gtk_widget_show (window->content_hbox); bonobo_window_set_contents (BONOBO_WINDOW (window), window->content_hbox); @@ -703,9 +701,9 @@ nautilus_window_constructed (NautilusWindow *window) gtk_widget_show (GTK_WIDGET (window->sidebar)); g_signal_connect (G_OBJECT (window->sidebar), "location_changed", G_CALLBACK (go_to_callback), window); - e_paned_pack1 (E_PANED (window->content_hbox), - GTK_WIDGET (window->sidebar), - FALSE, TRUE); + gtk_paned_pack1 (GTK_PANED (window->content_hbox), + GTK_WIDGET (window->sidebar), + FALSE, TRUE); #if 0 bonobo_ui_engine_add_sync (bonobo_window_get_ui_engine (BONOBO_WINDOW (window)), sidebar_sync); @@ -1930,13 +1928,13 @@ nautilus_window_set_content_view_widget (NautilusWindow *window, * We should use inheritance instead of these special cases * for the desktop window. */ - if (!E_IS_PANED (window->content_hbox)) { + if (!GTK_IS_PANED (window->content_hbox)) { gtk_container_add (GTK_CONTAINER (window->content_hbox), GTK_WIDGET (new_view)); } else { - e_paned_pack2 (E_PANED (window->content_hbox), - GTK_WIDGET (new_view), - TRUE, TRUE); + gtk_paned_pack2 (GTK_PANED (window->content_hbox), + GTK_WIDGET (new_view), + TRUE, TRUE); } } @@ -2071,28 +2069,19 @@ nautilus_window_hide_sidebar (NautilusWindow *window) if (window->sidebar == NULL) { return; } - gtk_widget_hide (GTK_WIDGET (window->sidebar)); - if (window->content_hbox != NULL) { - e_paned_set_position (E_PANED (window->content_hbox), 0); - } + nautilus_horizontal_splitter_collapse + (NAUTILUS_HORIZONTAL_SPLITTER (window->content_hbox)); nautilus_window_update_show_hide_menu_items (window); } void nautilus_window_show_sidebar (NautilusWindow *window) { - GtkWidget *widget; - if (window->sidebar == NULL) { return; } - widget = GTK_WIDGET (window->sidebar); - gtk_widget_show (widget); - if (window->content_hbox != NULL) { - e_paned_set_position (E_PANED (window->content_hbox), widget->allocation.width); - /* Make sure sidebar is not in collapsed form also */ - nautilus_horizontal_splitter_expand (NAUTILUS_HORIZONTAL_SPLITTER (window->content_hbox)); - } + nautilus_horizontal_splitter_expand + (NAUTILUS_HORIZONTAL_SPLITTER (window->content_hbox)); nautilus_window_update_show_hide_menu_items (window); } @@ -2101,7 +2090,8 @@ nautilus_window_sidebar_showing (NautilusWindow *window) { g_return_val_if_fail (NAUTILUS_IS_WINDOW (window), FALSE); - return window->sidebar != NULL && GTK_WIDGET_VISIBLE (window->sidebar); + return GTK_IS_PANED (window->content_hbox) + && gtk_paned_get_position (GTK_PANED (window->content_hbox)) != 0; } void diff --git a/src/nautilus-object-window.c b/src/nautilus-object-window.c index 86d47defa..766af2ce5 100644 --- a/src/nautilus-object-window.c +++ b/src/nautilus-object-window.c @@ -601,7 +601,6 @@ nautilus_window_constructed (NautilusWindow *window) GtkWidget *view_as_menu_vbox; int sidebar_width; BonoboControl *location_bar_wrapper; - EPaned *panel; CORBA_Environment ev; Bonobo_PropertyBag property_bag; @@ -683,12 +682,11 @@ nautilus_window_constructed (NautilusWindow *window) set_initial_window_geometry (window); window->content_hbox = nautilus_horizontal_splitter_new (); - panel = E_PANED (window->content_hbox); /* FIXME bugzilla.gnome.org 41245: Saved in pixels instead of in %? */ /* FIXME bugzilla.gnome.org 41245: No reality check on the value? */ sidebar_width = eel_preferences_get_integer (NAUTILUS_PREFERENCES_SIDEBAR_WIDTH); - e_paned_set_position (E_PANED (window->content_hbox), sidebar_width); + gtk_paned_set_position (GTK_PANED (window->content_hbox), sidebar_width); } gtk_widget_show (window->content_hbox); bonobo_window_set_contents (BONOBO_WINDOW (window), window->content_hbox); @@ -703,9 +701,9 @@ nautilus_window_constructed (NautilusWindow *window) gtk_widget_show (GTK_WIDGET (window->sidebar)); g_signal_connect (G_OBJECT (window->sidebar), "location_changed", G_CALLBACK (go_to_callback), window); - e_paned_pack1 (E_PANED (window->content_hbox), - GTK_WIDGET (window->sidebar), - FALSE, TRUE); + gtk_paned_pack1 (GTK_PANED (window->content_hbox), + GTK_WIDGET (window->sidebar), + FALSE, TRUE); #if 0 bonobo_ui_engine_add_sync (bonobo_window_get_ui_engine (BONOBO_WINDOW (window)), sidebar_sync); @@ -1930,13 +1928,13 @@ nautilus_window_set_content_view_widget (NautilusWindow *window, * We should use inheritance instead of these special cases * for the desktop window. */ - if (!E_IS_PANED (window->content_hbox)) { + if (!GTK_IS_PANED (window->content_hbox)) { gtk_container_add (GTK_CONTAINER (window->content_hbox), GTK_WIDGET (new_view)); } else { - e_paned_pack2 (E_PANED (window->content_hbox), - GTK_WIDGET (new_view), - TRUE, TRUE); + gtk_paned_pack2 (GTK_PANED (window->content_hbox), + GTK_WIDGET (new_view), + TRUE, TRUE); } } @@ -2071,28 +2069,19 @@ nautilus_window_hide_sidebar (NautilusWindow *window) if (window->sidebar == NULL) { return; } - gtk_widget_hide (GTK_WIDGET (window->sidebar)); - if (window->content_hbox != NULL) { - e_paned_set_position (E_PANED (window->content_hbox), 0); - } + nautilus_horizontal_splitter_collapse + (NAUTILUS_HORIZONTAL_SPLITTER (window->content_hbox)); nautilus_window_update_show_hide_menu_items (window); } void nautilus_window_show_sidebar (NautilusWindow *window) { - GtkWidget *widget; - if (window->sidebar == NULL) { return; } - widget = GTK_WIDGET (window->sidebar); - gtk_widget_show (widget); - if (window->content_hbox != NULL) { - e_paned_set_position (E_PANED (window->content_hbox), widget->allocation.width); - /* Make sure sidebar is not in collapsed form also */ - nautilus_horizontal_splitter_expand (NAUTILUS_HORIZONTAL_SPLITTER (window->content_hbox)); - } + nautilus_horizontal_splitter_expand + (NAUTILUS_HORIZONTAL_SPLITTER (window->content_hbox)); nautilus_window_update_show_hide_menu_items (window); } @@ -2101,7 +2090,8 @@ nautilus_window_sidebar_showing (NautilusWindow *window) { g_return_val_if_fail (NAUTILUS_IS_WINDOW (window), FALSE); - return window->sidebar != NULL && GTK_WIDGET_VISIBLE (window->sidebar); + return GTK_IS_PANED (window->content_hbox) + && gtk_paned_get_position (GTK_PANED (window->content_hbox)) != 0; } void diff --git a/src/nautilus-preferences-dialog.c b/src/nautilus-preferences-dialog.c index c1cc22048..069d7cdb7 100644 --- a/src/nautilus-preferences-dialog.c +++ b/src/nautilus-preferences-dialog.c @@ -430,14 +430,6 @@ dialog_button_response_callback (GtkDialog *dialog, gtk_widget_hide (GTK_WIDGET (dialog)); } -static gboolean -dialog_close_callback (GtkWidget *dialog, - gpointer user_data) -{ - gtk_widget_hide (dialog); - return TRUE; -} - static GtkWidget * preferences_dialog_create (void) { @@ -449,14 +441,10 @@ preferences_dialog_create (void) gtk_window_set_wmclass (GTK_WINDOW (dialog), "nautilus_preferences", "Nautilus"); g_signal_connect (G_OBJECT (dialog), - "response", - G_CALLBACK (dialog_button_response_callback), - dialog); + "response", + G_CALLBACK (dialog_button_response_callback), + dialog); - g_signal_connect (G_OBJECT (dialog), - "close", - G_CALLBACK (dialog_close_callback), - NULL); return dialog; } diff --git a/src/nautilus-sidebar.c b/src/nautilus-sidebar.c index 3f2a3a4fb..0a188ddc7 100644 --- a/src/nautilus-sidebar.c +++ b/src/nautilus-sidebar.c @@ -30,7 +30,6 @@ #include <config.h> #include "nautilus-sidebar.h" -#include "nautilus-link-set-window.h" #include "nautilus-sidebar-tabs.h" #include "nautilus-sidebar-title.h" @@ -1282,23 +1281,13 @@ command_button_callback (GtkWidget *button, char *id_str) /* interpret commands for buttons specified by metadata. Handle some built-in ones explicitly, or fork a shell to handle general ones */ -/* for now, we only handle a few built in commands */ +/* for now, we don't have any of these */ static void metadata_button_callback (GtkWidget *button, const char *command_str) { - GtkWindow *window; NautilusSidebar *sidebar; - char *path; - + sidebar = NAUTILUS_SIDEBAR (gtk_object_get_user_data (GTK_OBJECT (button))); - if (strcmp (command_str, "#linksets") == 0) { - window = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (sidebar))); - path = gnome_vfs_get_local_path_from_uri (sidebar->details->uri); - if (path != NULL) { - nautilus_link_set_toggle_configure_window (path, window); - g_free (path); - } - } } static void diff --git a/src/nautilus-spatial-window.c b/src/nautilus-spatial-window.c index 86d47defa..766af2ce5 100644 --- a/src/nautilus-spatial-window.c +++ b/src/nautilus-spatial-window.c @@ -601,7 +601,6 @@ nautilus_window_constructed (NautilusWindow *window) GtkWidget *view_as_menu_vbox; int sidebar_width; BonoboControl *location_bar_wrapper; - EPaned *panel; CORBA_Environment ev; Bonobo_PropertyBag property_bag; @@ -683,12 +682,11 @@ nautilus_window_constructed (NautilusWindow *window) set_initial_window_geometry (window); window->content_hbox = nautilus_horizontal_splitter_new (); - panel = E_PANED (window->content_hbox); /* FIXME bugzilla.gnome.org 41245: Saved in pixels instead of in %? */ /* FIXME bugzilla.gnome.org 41245: No reality check on the value? */ sidebar_width = eel_preferences_get_integer (NAUTILUS_PREFERENCES_SIDEBAR_WIDTH); - e_paned_set_position (E_PANED (window->content_hbox), sidebar_width); + gtk_paned_set_position (GTK_PANED (window->content_hbox), sidebar_width); } gtk_widget_show (window->content_hbox); bonobo_window_set_contents (BONOBO_WINDOW (window), window->content_hbox); @@ -703,9 +701,9 @@ nautilus_window_constructed (NautilusWindow *window) gtk_widget_show (GTK_WIDGET (window->sidebar)); g_signal_connect (G_OBJECT (window->sidebar), "location_changed", G_CALLBACK (go_to_callback), window); - e_paned_pack1 (E_PANED (window->content_hbox), - GTK_WIDGET (window->sidebar), - FALSE, TRUE); + gtk_paned_pack1 (GTK_PANED (window->content_hbox), + GTK_WIDGET (window->sidebar), + FALSE, TRUE); #if 0 bonobo_ui_engine_add_sync (bonobo_window_get_ui_engine (BONOBO_WINDOW (window)), sidebar_sync); @@ -1930,13 +1928,13 @@ nautilus_window_set_content_view_widget (NautilusWindow *window, * We should use inheritance instead of these special cases * for the desktop window. */ - if (!E_IS_PANED (window->content_hbox)) { + if (!GTK_IS_PANED (window->content_hbox)) { gtk_container_add (GTK_CONTAINER (window->content_hbox), GTK_WIDGET (new_view)); } else { - e_paned_pack2 (E_PANED (window->content_hbox), - GTK_WIDGET (new_view), - TRUE, TRUE); + gtk_paned_pack2 (GTK_PANED (window->content_hbox), + GTK_WIDGET (new_view), + TRUE, TRUE); } } @@ -2071,28 +2069,19 @@ nautilus_window_hide_sidebar (NautilusWindow *window) if (window->sidebar == NULL) { return; } - gtk_widget_hide (GTK_WIDGET (window->sidebar)); - if (window->content_hbox != NULL) { - e_paned_set_position (E_PANED (window->content_hbox), 0); - } + nautilus_horizontal_splitter_collapse + (NAUTILUS_HORIZONTAL_SPLITTER (window->content_hbox)); nautilus_window_update_show_hide_menu_items (window); } void nautilus_window_show_sidebar (NautilusWindow *window) { - GtkWidget *widget; - if (window->sidebar == NULL) { return; } - widget = GTK_WIDGET (window->sidebar); - gtk_widget_show (widget); - if (window->content_hbox != NULL) { - e_paned_set_position (E_PANED (window->content_hbox), widget->allocation.width); - /* Make sure sidebar is not in collapsed form also */ - nautilus_horizontal_splitter_expand (NAUTILUS_HORIZONTAL_SPLITTER (window->content_hbox)); - } + nautilus_horizontal_splitter_expand + (NAUTILUS_HORIZONTAL_SPLITTER (window->content_hbox)); nautilus_window_update_show_hide_menu_items (window); } @@ -2101,7 +2090,8 @@ nautilus_window_sidebar_showing (NautilusWindow *window) { g_return_val_if_fail (NAUTILUS_IS_WINDOW (window), FALSE); - return window->sidebar != NULL && GTK_WIDGET_VISIBLE (window->sidebar); + return GTK_IS_PANED (window->content_hbox) + && gtk_paned_get_position (GTK_PANED (window->content_hbox)) != 0; } void diff --git a/src/nautilus-window-menus.c b/src/nautilus-window-menus.c index 652ab9a05..38667db89 100644 --- a/src/nautilus-window-menus.c +++ b/src/nautilus-window-menus.c @@ -350,6 +350,7 @@ forget_history_if_yes (GtkDialog *dialog, int response, gpointer callback_data) if (response == GTK_RESPONSE_YES) { nautilus_forget_history (); } + gtk_object_destroy (GTK_OBJECT (dialog)); } static void @@ -791,6 +792,8 @@ remove_bookmarks_for_uri_if_yes (GtkDialog *dialog, int response, gpointer callb uri = callback_data; nautilus_bookmark_list_delete_items_with_uri (get_bookmark_list (), uri); } + + gtk_object_destroy (GTK_OBJECT (dialog)); } static void diff --git a/src/nautilus-window.c b/src/nautilus-window.c index 86d47defa..766af2ce5 100644 --- a/src/nautilus-window.c +++ b/src/nautilus-window.c @@ -601,7 +601,6 @@ nautilus_window_constructed (NautilusWindow *window) GtkWidget *view_as_menu_vbox; int sidebar_width; BonoboControl *location_bar_wrapper; - EPaned *panel; CORBA_Environment ev; Bonobo_PropertyBag property_bag; @@ -683,12 +682,11 @@ nautilus_window_constructed (NautilusWindow *window) set_initial_window_geometry (window); window->content_hbox = nautilus_horizontal_splitter_new (); - panel = E_PANED (window->content_hbox); /* FIXME bugzilla.gnome.org 41245: Saved in pixels instead of in %? */ /* FIXME bugzilla.gnome.org 41245: No reality check on the value? */ sidebar_width = eel_preferences_get_integer (NAUTILUS_PREFERENCES_SIDEBAR_WIDTH); - e_paned_set_position (E_PANED (window->content_hbox), sidebar_width); + gtk_paned_set_position (GTK_PANED (window->content_hbox), sidebar_width); } gtk_widget_show (window->content_hbox); bonobo_window_set_contents (BONOBO_WINDOW (window), window->content_hbox); @@ -703,9 +701,9 @@ nautilus_window_constructed (NautilusWindow *window) gtk_widget_show (GTK_WIDGET (window->sidebar)); g_signal_connect (G_OBJECT (window->sidebar), "location_changed", G_CALLBACK (go_to_callback), window); - e_paned_pack1 (E_PANED (window->content_hbox), - GTK_WIDGET (window->sidebar), - FALSE, TRUE); + gtk_paned_pack1 (GTK_PANED (window->content_hbox), + GTK_WIDGET (window->sidebar), + FALSE, TRUE); #if 0 bonobo_ui_engine_add_sync (bonobo_window_get_ui_engine (BONOBO_WINDOW (window)), sidebar_sync); @@ -1930,13 +1928,13 @@ nautilus_window_set_content_view_widget (NautilusWindow *window, * We should use inheritance instead of these special cases * for the desktop window. */ - if (!E_IS_PANED (window->content_hbox)) { + if (!GTK_IS_PANED (window->content_hbox)) { gtk_container_add (GTK_CONTAINER (window->content_hbox), GTK_WIDGET (new_view)); } else { - e_paned_pack2 (E_PANED (window->content_hbox), - GTK_WIDGET (new_view), - TRUE, TRUE); + gtk_paned_pack2 (GTK_PANED (window->content_hbox), + GTK_WIDGET (new_view), + TRUE, TRUE); } } @@ -2071,28 +2069,19 @@ nautilus_window_hide_sidebar (NautilusWindow *window) if (window->sidebar == NULL) { return; } - gtk_widget_hide (GTK_WIDGET (window->sidebar)); - if (window->content_hbox != NULL) { - e_paned_set_position (E_PANED (window->content_hbox), 0); - } + nautilus_horizontal_splitter_collapse + (NAUTILUS_HORIZONTAL_SPLITTER (window->content_hbox)); nautilus_window_update_show_hide_menu_items (window); } void nautilus_window_show_sidebar (NautilusWindow *window) { - GtkWidget *widget; - if (window->sidebar == NULL) { return; } - widget = GTK_WIDGET (window->sidebar); - gtk_widget_show (widget); - if (window->content_hbox != NULL) { - e_paned_set_position (E_PANED (window->content_hbox), widget->allocation.width); - /* Make sure sidebar is not in collapsed form also */ - nautilus_horizontal_splitter_expand (NAUTILUS_HORIZONTAL_SPLITTER (window->content_hbox)); - } + nautilus_horizontal_splitter_expand + (NAUTILUS_HORIZONTAL_SPLITTER (window->content_hbox)); nautilus_window_update_show_hide_menu_items (window); } @@ -2101,7 +2090,8 @@ nautilus_window_sidebar_showing (NautilusWindow *window) { g_return_val_if_fail (NAUTILUS_IS_WINDOW (window), FALSE); - return window->sidebar != NULL && GTK_WIDGET_VISIBLE (window->sidebar); + return GTK_IS_PANED (window->content_hbox) + && gtk_paned_get_position (GTK_PANED (window->content_hbox)) != 0; } void |