diff options
author | Christopher James Lahey <clahey@helixcode.com> | 2000-09-18 11:43:20 +0800 |
---|---|---|
committer | Chris Lahey <clahey@src.gnome.org> | 2000-09-18 11:43:20 +0800 |
commit | 37d47c916dd0d8d53f277862a297aa23feb8ff13 (patch) | |
tree | 8a0f1b3dc651ad004eea1b8de793f2fbada90d85 /widgets/e-paned | |
parent | 645f6e47ea513495f428f9299c5e4ec89dac9891 (diff) | |
download | gsoc2013-evolution-37d47c916dd0d8d53f277862a297aa23feb8ff13.tar gsoc2013-evolution-37d47c916dd0d8d53f277862a297aa23feb8ff13.tar.gz gsoc2013-evolution-37d47c916dd0d8d53f277862a297aa23feb8ff13.tar.bz2 gsoc2013-evolution-37d47c916dd0d8d53f277862a297aa23feb8ff13.tar.lz gsoc2013-evolution-37d47c916dd0d8d53f277862a297aa23feb8ff13.tar.xz gsoc2013-evolution-37d47c916dd0d8d53f277862a297aa23feb8ff13.tar.zst gsoc2013-evolution-37d47c916dd0d8d53f277862a297aa23feb8ff13.zip |
Added check for gnome-app-lib. Removed directories that have been moved to
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* configure.in: Added check for gnome-app-lib. Removed
directories that have been moved to gal.
From addressbook/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* backend/ebook/Makefile.am, contact-editor/Makefile.am,
ename/Makefile.am, gui/component/Makefile.am,
gui/widgets/Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
$(EXTRA_GNOME_LIBS). Removed unneeded libraries.
* backend/ebook/e-card.c, backend/pas/pas-backend-file.c,
contact-editor/e-contact-editor-address.c,
contact-editor/e-contact-editor-categories.c,
contact-editor/e-contact-editor-categories.h,
contact-editor/e-contact-editor-fullname.c,
contact-editor/e-contact-editor.c,
contact-editor/e-contact-save-as.c, ename/e-address-western.c,
ename/test-ename-western-gtk.c,
gui/component/addressbook-factory.c, gui/component/addressbook.c,
gui/component/e-cardlist-model.h, gui/component/e-ldap-storage.c,
gui/component/select-names/e-select-names-bonobo.c,
gui/component/select-names/e-select-names-manager.c,
gui/component/select-names/e-select-names-model.c,
gui/component/select-names/e-select-names-table-model.c,
gui/component/select-names/e-select-names-table-model.h,
gui/component/select-names/e-select-names-text-model.h,
gui/component/select-names/e-select-names.c,
gui/component/select-names/e-select-names.h,
gui/search/e-addressbook-search-dialog.c,
gui/widgets/e-addressbook-model.h,
gui/widgets/e-addressbook-view.c, gui/widgets/e-minicard-label.c,
gui/widgets/e-minicard-view-widget.c,
gui/widgets/e-minicard-view-widget.h,
gui/widgets/e-minicard-view.c, gui/widgets/e-minicard-view.h,
gui/widgets/e-minicard-widget.h, gui/widgets/e-minicard.c,
gui/widgets/test-minicard-label.c, gui/widgets/test-reflow.c,
printing/e-contact-print.c: Fixed the #include lines to deal
properly with gal.
From calendar/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* gui/Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
$(EXTRA_GNOME_LIBS). Removed unneeded libraries.
* gui/calendar-model.h, gui/e-calendar-table.c, gui/e-day-view.c,
gui/e-week-view-event-item.c, gui/e-week-view.c,
gui/event-editor.c, gui/gncal-todo.c, gui/gnome-cal.c, gui/main.c,
gui/print.c, gui/dialogs/task-editor.c: Fixed the #include lines
to deal properly with gal.
* gui/check-filled.xpm: New file since we can't include it from
e-table anymore.
From camel/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* camel-folder-search.c, camel-folder-search.h,
camel-remote-store.c, providers/imap/camel-imap-folder.c,
providers/imap/camel-imap-store.c: Fixed the #include lines to
deal properly with gal.
From composer/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
$(EXTRA_GNOME_LIBS). Removed unneeded libraries.
* e-msg-composer-address-dialog.c, e-msg-composer-address-entry.c,
e-msg-composer-attachment.c, e-msg-composer-hdrs.c,
e-msg-composer.c: Fixed the #include lines to deal properly with
gal.
From e-util/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Removed all the files moved to gal.
* e-dialog-widgets.c: Fixed the #include lines to deal properly
with gal.
* e-gui-utils.c, e-gui-utils.h: Removed all of the functionality
that was moved to gal.
* e-canvas-utils.c, e-canvas-utils.h, e-canvas-vbox.c,
e-canvas-vbox.h, e-canvas.c, e-canvas.h, e-cursors.c, e-cursors.h,
e-font.c, e-font.h, e-popup-menu.c, e-popup-menu.h, e-printable.c,
e-printable.h, e-unicode.c, e-unicode.h, e-util.c, e-util.h,
e-xml-utils.c, e-xml-utils.h: Moved to gal.
From filter/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* filter-editor.c, filter-filter.c, filter-folder.c,
filter-input.c, filter-message-search.c, filter-option.c,
filter-rule.c, score-editor.c, vfolder-editor.c, vfolder-rule.c:
Fixed the #include lines to deal properly with gal.
From mail/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
$(EXTRA_GNOME_LIBS). Removed unneeded libraries.
* component-factory.c, folder-browser-factory.c, folder-browser.c,
mail-callbacks.c, mail-config-gui.c, mail-display.c,
mail-display.h, main.c, message-list.c, message-list.h: Fixed the
#include lines to deal properly with gal.
From po/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* POTFILES.in: Removed files that have been moved to gal.
From shell/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
$(EXTRA_GNOME_LIBS). Removed unneeded libraries.
* e-component-registry.c, e-corba-storage-registry.c,
e-corba-storage.c, e-folder-type-registry.c, e-folder.c,
e-local-folder.c, e-local-storage.c,
e-shell-folder-creation-dialog.c,
e-shell-folder-selection-dialog.c, e-shell-folder-title-bar.c,
e-shell-view.c, e-shell.c, e-shortcuts-view.c, e-shortcuts.c,
e-storage-set-view.c, e-storage-set-view.h, e-storage-set.c,
e-storage.c, evolution-local-storage.c, evolution-session.c,
evolution-shell-client.c, evolution-shell-component-client.c,
evolution-shell-component.c, evolution-shell-view.c,
evolution-storage-listener.c, evolution-storage.c, main.c: Fixed
the #include lines to deal properly with gal.
From widgets/meeting-time-sel/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
$(EXTRA_GNOME_LIBS). Removed unneeded libraries.
* e-meeting-time-sel-list-item.c, e-meeting-time-sel.c,
e-meeting-time-sel.h: Fixed the #include lines to deal properly
with gal.
If you've read this far, you deserve a prize. The first email in my
mailbox with the subject "What a commit message!" (and your physical
mailing address somewhere in the message) will receive a free Helix
Code T-shirt mailed to anywhere within the continental United States.
I cannot be held responsible for problems with email systems anywhere.
This is supposed to be for fun, so please don't make a fuss if
something goes wrong and your mail doesn't reach me. Find my email
elsewhere in this message, and if it's been more than a few days,
you're probably too late.
From widgets/misc/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
$(EXTRA_GNOME_LIBS). Removed unneeded libraries.
* e-calendar-item.c, e-calendar.c, e-calendar.h, e-title-bar.c:
Fixed the #include lines to deal properly with gal.
* e-scroll-frame.c, e-scroll-frame.h: Moved to gal.
From widgets/shortcut-bar/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
$(EXTRA_GNOME_LIBS). Removed unneeded libraries.
* e-icon-bar.c, e-icon-bar.h, e-shortcut-bar.c,
e-shortcut-model.c, test-shortcut-bar.c: Fixed the #include lines
to deal properly with gal.
From widgets/ChangeLog:
2000-09-18 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Removed directories that have been moved to gal.
* e-paned/.cvsignore, e-paned/Makefile.am, e-paned/e-hpaned.c,
e-paned/e-hpaned.h, e-paned/e-paned.c, e-paned/e-paned.h,
e-paned/e-vpaned.c, e-paned/e-vpaned.h: Moved to gal.
* e-reflow/.cvsignore, e-reflow/Makefile.am,
e-reflow/e-reflow-sorted.c, e-reflow/e-reflow-sorted.h,
e-reflow/e-reflow.c, e-reflow/e-reflow.h: Moved to gal.
* e-table/.cvsignore, e-table/ChangeLog, e-table/LICENSE,
e-table/Makefile.am, e-table/ROADMAP.e-table, e-table/TODO,
e-table/add-col.xpm, e-table/arrow-down.xpm, e-table/arrow-up.xpm,
e-table/check-empty.xpm, e-table/check-filled.xpm,
e-table/clip.png, e-table/e-cell-checkbox.c,
e-table/e-cell-checkbox.h, e-table/e-cell-string.c,
e-table/e-cell-text.c, e-table/e-cell-text.h,
e-table/e-cell-toggle.c, e-table/e-cell-toggle.h,
e-table/e-cell-tree.c, e-table/e-cell-tree.h, e-table/e-cell.c,
e-table/e-cell.h, e-table/e-table-click-to-add.c,
e-table/e-table-click-to-add.h, e-table/e-table-col-dnd.h,
e-table/e-table-col.c, e-table/e-table-col.h,
e-table/e-table-column-model.h, e-table/e-table-column.c,
e-table/e-table-config.c, e-table/e-table-config.glade,
e-table/e-table-config.glade.h, e-table/e-table-config.h,
e-table/e-table-defines.h, e-table/e-table-example-1.c,
e-table/e-table-example-2.c,
e-table/e-table-field-chooser-dialog.c,
e-table/e-table-field-chooser-dialog.h,
e-table/e-table-field-chooser-item.c,
e-table/e-table-field-chooser-item.h,
e-table/e-table-field-chooser.c,
e-table/e-table-field-chooser.glade,
e-table/e-table-field-chooser.glade.h,
e-table/e-table-field-chooser.h,
e-table/e-table-group-container.c,
e-table/e-table-group-container.h, e-table/e-table-group-leaf.c,
e-table/e-table-group-leaf.h, e-table/e-table-group.c,
e-table/e-table-group.glade, e-table/e-table-group.glade.h,
e-table/e-table-group.h, e-table/e-table-header-item.c,
e-table/e-table-header-item.h, e-table/e-table-header.c,
e-table/e-table-header.h, e-table/e-table-item.c,
e-table/e-table-item.h, e-table/e-table-model.c,
e-table/e-table-model.h, e-table/e-table-one.c,
e-table/e-table-one.h, e-table/e-table-scrolled.c,
e-table/e-table-scrolled.h, e-table/e-table-selection-model.c,
e-table/e-table-selection-model.h, e-table/e-table-simple.c,
e-table/e-table-simple.h, e-table/e-table-size-test.c,
e-table/e-table-sort-info.c, e-table/e-table-sort-info.h,
e-table/e-table-sorted-variable.c,
e-table/e-table-sorted-variable.h, e-table/e-table-sorted.c,
e-table/e-table-sorted.h, e-table/e-table-sorter.c,
e-table/e-table-sorter.h, e-table/e-table-subset-variable.c,
e-table/e-table-subset-variable.h, e-table/e-table-subset.c,
e-table/e-table-subset.h, e-table/e-table-text-model.c,
e-table/e-table-text-model.h, e-table/e-table-tooltip.h,
e-table/e-table-tree.h, e-table/e-table.c, e-table/e-table.h,
e-table/e-tree-example-1.c, e-table/e-tree-example-2.c,
e-table/e-tree-model.c, e-table/e-tree-model.h,
e-table/e-tree-simple.c, e-table/e-tree-simple.h,
e-table/image1.png, e-table/image2.png, e-table/image3.png,
e-table/remove-col.xpm, e-table/sample.table,
e-table/table-test.c, e-table/table-test.h, e-table/test-check.c,
e-table/test-cols.c, e-table/test-table.c: Moved to gal.
* e-text/.cvsignore, e-text/Makefile.am, e-text/e-entry-test.c,
e-text/e-entry.c, e-text/e-entry.h,
e-text/e-text-event-processor-emacs-like.c,
e-text/e-text-event-processor-emacs-like.h,
e-text/e-text-event-processor-types.h,
e-text/e-text-event-processor.c, e-text/e-text-event-processor.h,
e-text/e-text-model.c, e-text/e-text-model.h,
e-text/e-text-test.c, e-text/e-text.c, e-text/e-text.h: Moved to
gal.
i.e.,
...
changed evolution to work with gal.
svn path=/trunk/; revision=5490
Diffstat (limited to 'widgets/e-paned')
-rw-r--r-- | widgets/e-paned/.cvsignore | 8 | ||||
-rw-r--r-- | widgets/e-paned/Makefile.am | 15 | ||||
-rw-r--r-- | widgets/e-paned/e-hpaned.c | 452 | ||||
-rw-r--r-- | widgets/e-paned/e-hpaned.h | 72 | ||||
-rw-r--r-- | widgets/e-paned/e-paned.c | 635 | ||||
-rw-r--r-- | widgets/e-paned/e-paned.h | 135 | ||||
-rw-r--r-- | widgets/e-paned/e-vpaned.c | 451 | ||||
-rw-r--r-- | widgets/e-paned/e-vpaned.h | 72 |
8 files changed, 0 insertions, 1840 deletions
diff --git a/widgets/e-paned/.cvsignore b/widgets/e-paned/.cvsignore deleted file mode 100644 index 955fc0b6d0..0000000000 --- a/widgets/e-paned/.cvsignore +++ /dev/null @@ -1,8 +0,0 @@ -.deps -.libs -.pure -Makefile -Makefile.in -*.lo -*.la -libepaned.a diff --git a/widgets/e-paned/Makefile.am b/widgets/e-paned/Makefile.am deleted file mode 100644 index 51ab38c80d..0000000000 --- a/widgets/e-paned/Makefile.am +++ /dev/null @@ -1,15 +0,0 @@ -INCLUDES = \ - -I$(top_srcdir) \ - $(GNOME_INCLUDEDIR) \ - -DG_LOG_DOMAIN=\"e-paned\" - -noinst_LIBRARIES = \ - libepaned.a - -libepaned_a_SOURCES = \ - e-hpaned.c \ - e-hpaned.h \ - e-paned.c \ - e-paned.h \ - e-vpaned.c \ - e-vpaned.h diff --git a/widgets/e-paned/e-hpaned.c b/widgets/e-paned/e-hpaned.c deleted file mode 100644 index e003d5a7eb..0000000000 --- a/widgets/e-paned/e-hpaned.c +++ /dev/null @@ -1,452 +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_draw (GtkWidget *widget, - GdkRectangle *area); -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->draw = e_hpaned_draw; - 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) -{ - EHPaned *hpaned; - - hpaned = gtk_type_new (E_TYPE_HPANED); - - return GTK_WIDGET (hpaned); -} - -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_real_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, ((int) allocation->height - - border_width * 2)); - child1_allocation.width = MAX (1, paned->child1_real_size); - child1_allocation.x = border_width; - child1_allocation.y = child2_allocation.y = border_width; - - if (handle_shown) - child2_allocation.x = (child1_allocation.x + (int) child1_allocation.width + - (int) paned->handle_width); - else - child2_allocation.x = child1_allocation.x + (int) 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_draw (GtkWidget *widget, - GdkRectangle *area) -{ - 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; - - gtk_paint_handle (widget->style, - paned->handle, - GTK_STATE_NORMAL, - GTK_SHADOW_NONE, - &child_area, - widget, - "paned", - 0, 0, -1, -1, - GTK_ORIENTATION_VERTICAL); - - } - } - /* Redraw the children - */ - if (paned->child1 && gtk_widget_intersect (paned->child1, area, &child_area)) - gtk_widget_draw(paned->child1, &child_area); - if (paned->child2 && gtk_widget_intersect(paned->child2, area, &child_area)) - gtk_widget_draw(paned->child2, &child_area); - } -} - -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_real_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); - paned->child1_real_size = paned->child1_size; - 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; - gint new_child1_size; - - size = x - GTK_CONTAINER (paned)->border_width - paned->handle_size / 2; - - new_child1_size = CLAMP (e_paned_quantized_size(paned, size), - paned->min_position, - paned->max_position); - - if (new_child1_size == paned->child1_size) - return TRUE; - - e_hpaned_xor_line (paned); - paned->child1_size = new_child1_size; - paned->child1_real_size = paned->child1_size; - 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/widgets/e-paned/e-hpaned.h b/widgets/e-paned/e-hpaned.h deleted file mode 100644 index 63c09198b1..0000000000 --- a/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 <widgets/e-paned/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/widgets/e-paned/e-paned.c b/widgets/e-paned/e-paned.c deleted file mode 100644 index f02d4389a0..0000000000 --- a/widgets/e-paned/e-paned.c +++ /dev/null @@ -1,635 +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 void e_paned_set_arg (GtkObject *object, - GtkArg *arg, - guint arg_id); -static void e_paned_get_arg (GtkObject *object, - GtkArg *arg, - guint arg_id); -static void e_paned_realize (GtkWidget *widget); -static void e_paned_map (GtkWidget *widget); -static void e_paned_unmap (GtkWidget *widget); -static void e_paned_unrealize (GtkWidget *widget); -static gint e_paned_expose (GtkWidget *widget, - GdkEventExpose *event); -static void e_paned_add (GtkContainer *container, - GtkWidget *widget); -static void e_paned_remove (GtkContainer *container, - GtkWidget *widget); -static void e_paned_forall (GtkContainer *container, - gboolean include_internals, - GtkCallback callback, - gpointer callback_data); -static GtkType e_paned_child_type (GtkContainer *container); - -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 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; - widget_class->expose_event = e_paned_expose; - - 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", GTK_TYPE_UINT, - GTK_ARG_READWRITE, ARG_HANDLE_SIZE); - gtk_object_add_arg_type("EPaned::quantum", GTK_TYPE_UINT, - GTK_ARG_READWRITE, ARG_QUANTUM); -} - -static GtkType -e_paned_child_type (GtkContainer *container) -{ - if (!E_PANED (container)->child1 || !E_PANED (container)->child2) - return GTK_TYPE_WIDGET; - else - return GTK_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->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 = GTK_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); -} - -static gint -e_paned_expose (GtkWidget *widget, - GdkEventExpose *event) -{ - EPaned *paned; - GdkEventExpose 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)) - { - child_event = *event; - event->area.x += paned->handle_xpos; - event->area.y += paned->handle_ypos; - gtk_widget_draw (widget, &event->area); - } - } - else - { - child_event = *event; - if (paned->child1 && - GTK_WIDGET_NO_WINDOW (paned->child1) && - gtk_widget_intersect (paned->child1, &event->area, &child_event.area)) - gtk_widget_event (paned->child1, (GdkEvent *) &child_event); - - if (paned->child2 && - GTK_WIDGET_NO_WINDOW (paned->child2) && - gtk_widget_intersect (paned->child2, &event->area, &child_event.area)) - gtk_widget_event (paned->child2, (GdkEvent *) &child_event); - } - } - - return FALSE; -} - -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_real_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_real_size = CLAMP (paned->child1_size, - paned->min_position, - paned->max_position); - - paned->last_allocation = allocation; -} - -gboolean -e_paned_handle_shown(EPaned *paned) -{ - EPanedClass *klass = E_PANED_CLASS(GTK_OBJECT(paned)->klass); - 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; -} diff --git a/widgets/e-paned/e-paned.h b/widgets/e-paned/e-paned.h deleted file mode 100644 index b211d32bda..0000000000 --- a/widgets/e-paned/e-paned.h +++ /dev/null @@ -1,135 +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_real_size; - 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/widgets/e-paned/e-vpaned.c b/widgets/e-paned/e-vpaned.c deleted file mode 100644 index be9e22a877..0000000000 --- a/widgets/e-paned/e-vpaned.c +++ /dev/null @@ -1,451 +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_draw (GtkWidget *widget, - GdkRectangle *area); -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->draw = e_vpaned_draw; - 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) -{ - EVPaned *vpaned; - - vpaned = gtk_type_new (E_TYPE_VPANED); - - return GTK_WIDGET (vpaned); -} - -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_real_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, ((int) allocation->width - - border_width * 2)); - child1_allocation.height = MAX (1, (int) paned->child1_real_size); - child1_allocation.x = child2_allocation.x = border_width; - child1_allocation.y = border_width; - - if (handle_shown) - child2_allocation.y = (child1_allocation.y + (int) child1_allocation.height + - (int) paned->handle_height); - else - child2_allocation.y = child1_allocation.y + (int) 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_draw (GtkWidget *widget, - GdkRectangle *area) -{ - 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_width; - handle_area.height = paned->handle_size; - - if (gdk_rectangle_intersect (&handle_area, area, &child_area)) - { - child_area.x -= paned->handle_xpos; - child_area.y -= paned->handle_ypos; - - gtk_paint_handle (widget->style, - paned->handle, - GTK_STATE_NORMAL, - GTK_SHADOW_NONE, - &child_area, - widget, - "paned", - 0, 0, -1, -1, - GTK_ORIENTATION_HORIZONTAL); - - } - } - /* Redraw the children - */ - if (paned->child1 && gtk_widget_intersect (paned->child1, area, &child_area)) - gtk_widget_draw (paned->child1, &child_area); - if (paned->child2 && gtk_widget_intersect (paned->child2, area, &child_area)) - gtk_widget_draw (paned->child2, &child_area); - } -} - -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_real_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); - paned->child1_real_size = paned->child1_size; - 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; - gint new_child1_size; - - size = y - GTK_CONTAINER(paned)->border_width - paned->handle_size / 2; - - new_child1_size = CLAMP (e_paned_quantized_size(paned, size), - paned->min_position, - paned->max_position); - - if (new_child1_size == paned->child1_size) - return TRUE; - - e_vpaned_xor_line (paned); - paned->child1_size = new_child1_size; - paned->child1_real_size = paned->child1_size; - 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/widgets/e-paned/e-vpaned.h b/widgets/e-paned/e-vpaned.h deleted file mode 100644 index 1c247472fd..0000000000 --- a/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 <widgets/e-paned/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__ */ |