2000-04-20  Federico Mena Quintero  <federico@helixcode.com>

	* window.c (window_open_image): Add the image size to the window
	title.

	* image-view.c (drag_to): New function to drag the image to a
	specified mouse position.
	(image_view_button_press): Handle button presses by initiating the
	drag.
	(image_view_button_release): Handler button releases by
	terminating the drag.
	(image_view_motion): Handle motion events by dragging the image.

2000-04-14  Federico Mena Quintero  <federico@helixcode.com>

	* image-view.c (image_view_unrealize): Doh, call the parent class
	unrealize handler, not the unmap handler!  Another cut&paste bug.

2000-04-13  Federico Mena Quintero  <federico@helixcode.com>

	* image-view.c (image_view_size_allocate): Set the correct size
	for the window and recompute the adjustments.
	(paint_rectangle): The offset of the image with respect to the
	window is the negative of the adjustment offset.
	(image_view_destroy): Disconnect from the adjustments.
	(image_view_finalize): Unref the adjustments.  Free the private
	part of the ImageView structure here.
	(image_view_set_image): Queue a resize.  We still need to adjust
	or reset the scroll offsets.
	(image_view_set_zoom): Queue a resize.  We still need to re-center
	the zoom offsets.
	(adjustment_changed_cb): As a temporary solution, repaint the
	whole thing.  I need to finish uta_copy_area() for uta.c to be
	able to use gdk_window_copy_area() on the image window.

	* uta.c (uta_add_rect): Fixed computation of microtile
	coordinates.  Fixed a bunch of stupid off-by-one errors.
	(uta_remove_rect): Fixed computation of microtile coordinates and
	clipping coordinates.
	(uta_find_first_glom_rect): As a quick hack, use a bastardized
	version of art_rect_list_from_uta() to find the first glommed
	rectangle.  This will be replaced with a more efficient function
	in the future.

2000-04-03  Federico Mena Quintero  <federico@helixcode.com>

	* uta.c (uta_remove_rect): Finished implementing.

2000-04-03  Darin Adler  <darin@eazel.com>

	* uta.c (uta_remove_rect): Fixed typos that prevent it from
	compiling. I guess this was a little unintentional April Fool's
	joke from Federico :-)

2000-04-01  Federico Mena Quintero  <federico@helixcode.com>

	* uta.[ch]: New files with utilities for manipulating microtile
	arrays.

	* image-view.[ch]: New files with the new image view widget.  We
	don't use the canvas anymore due to GtkLayout's lack of diagonal
	scrolling.  This widget uses a fancy method to pull out dirty
	rectangles from a microtile array, one by one, in the idle loop.
	This lets the user preempt the drawing process, say, when
	scrolling or zooming quickly.

	* ui-image.c (UIImagePrivate): Removed the canvas-related fields.
	Now we use an ImageView widget instead.  Modified all the
	functions to use this, and removed some old canvas-specific
	functions.

	* Makefile.am (eog_SOURCES): Added image-view.[ch] to the list of
	sources.  Removed image-item.[ch] and render.[ch]; we now use the
	GdkPixbuf scaling functions instead of our own.

	* Makefile.am (eog_SOURCES): Added uta.[ch] to the list of
	sources.

	* gnome-icon-item-factory.c (ii_factory_configure_item): Removed
	obsolete x_set and y_set arguments from the pixbuf canvas item.

	* *.[ch]: Use the gdk_pixbuf_get_*() accessor functions instead of
	accessing the GdkPixbuf's fields directly.

1999-12-10  Federico Mena Quintero  <federico@redhat.com>

	* gnome-wrap-list.c (bm_compute_item_size): New helper function to
	compute item and space sizes.
	(bm_compute_layout): Use the above function; it will also be used
	by other functions.
	(adjustment_value_changed): Queue a scroll update when an
	adjustment changes.
	(bm_update): Renamed from bm_update_data(); now this handles both
	scrolling and data updates for block mode.

1999-12-09  Federico Mena Quintero  <federico@redhat.com>

	* gnome-wrap-list.c (gnome_wrap_list_class_init): Register the
	set_scroll_adjustments magic signal.
	(set_scroll_adjustments): Handle adjustment changes.

	* gnome-wrap-list.h (GnomeWrapListClass): Added the
	set_scroll_adjustments signal.

	* ui-image.c (ui_image_set_image): Fix off-by-one error when
	setting the scroll region of the canvas.

	* gnome-wrap-list.c (bm_update_data): Clear the items that are
	past the end of the data.

1999-12-04  Federico Mena Quintero  <federico@redhat.com>

	* gnome-icon-caption.c (gnome_icon_caption_class_init): Register
	the "request_text" signal.

1999-12-03  Federico Mena Quintero  <federico@redhat.com>

	* gnome-icon-caption.[ch]: Start of the new caption canvas item.
	This is basically the old stinky GnomeIconTextItem with a saner API.

1999-12-01  Federico Mena Quintero  <federico@redhat.com>

	* gnome-wrap-list.c (bm_ensure_array_size): New function to ensure
	that the item array has the correct size and layout information.
	(bm_update_range): New function to update a range of displayed
	items.
	(bm_update_data): Moved a lot of functionality to the above
	functions to make it clearer.

1999-11-30  Federico Mena Quintero  <federico@redhat.com>

	* gnome-wrap-list.c (bm_compute_layout): Take the border width and
	style border thickness into account.  Also, fix the computation
	for the number of items that fit across the minor dimension.
	Also, adjust the scroll region.
	(bm_adjust_scroll_region): New function to set the scroll region
	in block mode.
	(WrapListPrivate): Added fields for the signal IDs of the
	connections to the models.
	(model_set): Disconnect from the old model's signals and connect
	to the new model's ones.
	(selection_model_set): Likewise.
	(gnome_wrap_list_set_position_model): Likewise.
	(model_interval_changed): Implemented handler.
	(model_interval_added): Implemented handler.
	(model_interval_removed): Implemented handler.

	* gnome-list-view.c (gnome_list_view_class_init): The model_set,
	selection_model_set, and list_item_factory_set signals now pass in
	the old model as well so that derived classes can disconnect from
	them properly.
	(gnome_list_view_set_model): Pass in the old model to the signal
	and unref it afterwards.
	(gnome_list_view_set_selection_model): Likewise.
	(gnome_list_view_set_list_item_factory): Likewise.

	* gnome-list-model.c (gnome_list_model_interval_changed): New
	function to emit the signal.
	(gnome_list_model_interval_added): Likewise.
	(gnome_list_model_interval_changed): Likewise.

1999-11-29  Federico Mena Quintero  <federico@redhat.com>

	* window.c (window_open_image): Do not prepend "Eye of Gnome" to
	the title of the window if we have a filename, to be friendlier to
	small taskbars.

1999-11-21  Federico Mena Quintero  <federico@redhat.com>

	* ui-image.c (ui_image_set_image): Do not set the window title
	here, especially not with a gtk_widget_get_toplevel() hack.  An
	UIImage object may not only be the content area of a toplevel
	window; it may appear as a little preview pane in the future as
	well.

	* window.c (window_open_image): Set the window title to the image
	filename here.  Revert to the default title if the image could not
	be loaded.

	* image.c (image_load): Free the previous filename if it exists.
	Also, NULLify the filename field if the file could not be loaded.

1999-11-19  Miguel de Icaza  <miguel@gnu.org>

	* ui-image.c (ui_image_set_image): set the title here.

	* image.c (image_load): Record file name here.

1999-11-18  Federico Mena Quintero  <federico@redhat.com>

	* testicon.c: New test program for the icon view widget.

	* gnome-wrap-list.c (bm_update_data): Set the translation affine
	of the items.

	* gnome-icon-item-factory.c (ii_factory_configure_item): Added a
	missing NULL terminator.
	(ii_factory_create_item): Do not hide the image and the caption.

	* gnome-icon-view.[ch]: New files with the icon view widget.

	* gnome-list-view.c (gnome_list_view_class_init): Per Owen's
	suggestion, changed the signals that were used to set the
	different models to just signals that notify when the models have
	been set.  Derived classes can use these to queue updates or
	whatever.
	(gnome_list_view_set_model): New function, for derived classes
	only, to set a list view's model.
	(gnome_list_view_set_selection_model): Changed to the above
	architecture.
	(gnome_list_view_set_list_item_factory): New function, likewise.

	* gnome-wrap-list.c (model_set): Implemented.
	(selection_model_set): Implemented.
	(list_item_factory_set): Implemented.
	(gnome_wrap_list_set_item_size): Implemented.
	(gnome_wrap_list_set_row_spacing): Implemented.
	(gnome_wrap_list_set_col_spacing): Implemented.
	(bm_update_data): Implemented delayed updates for when the data
	models change.
	(WrapListPrivate): Added a shadow_type parameter.
	(gnome_wrap_list_size_request): Implemented.
	(gnome_wrap_list_size_allocate): Implemented.
	(gnome_wrap_list_set_shadow_type): New function to set the shadow type.
	(gnome_wrap_list_destroy): Unparent/destroy the canvas.  Unref the
	position list model.
	(gnome_wrap_list_map): Implemented.
	(gnome_wrap_list_unmap): Implemented.
	(gnome_wrap_list_draw): Implemented.
	(gnome_wrap_list_expose): Implemented.

1999-11-16  Federico Mena Quintero  <federico@redhat.com>

	* gnome-wrap-list.c (bm_compute_layout): New function to compute
	layout information for block mode.
	(gnome_wrap_list_init): Provide semi-sane defaults for the item size.

1999-11-12  Federico Mena Quintero  <federico@redhat.com>

	* gnome-wrap-list.c (gnome_wrap_list_forall): Implemented.
	(gnome_wrap_list_set_use_unit_scrolling): New function to set
	whether to use block scrolling or abritrary offsets.
	(gnome_wrap_list_get_use_unit_scrolling): Getter for the above
	property.
	(BlockModeInfo): New structure to describe automatic layout mode.

	* gnome-position-list-model.c
	(gnome_position_list_model_get_position): Modified so that it
	returns a boolean value to say whether an item has a set position
	or not.
	(gnome_position_list_model_set_position): New function to set the
	position of an item.  Added a "set_position" signal to the class.

1999-11-09  Federico Mena Quintero  <federico@redhat.com>

	* gnome-icon-item-factory.c (ii_factory_configure_item):
	Implemented the ::configure_item() method, now that we have
	GnomeCanvasPixbuf.
	(gnome_icon_item_factory_new): New function to create an icon item
	factory.
	(gnome_icon_item_factory_init): Create a stipple pattern for the
	selection and focus rectangles.

	The ChangeLog for the rest of the icon list framework starts here.

1999-10-20  Federico Mena Quintero  <federico@redhat.com>

	Upgrade to gdk-pixbuf 0.3:

	* *.[ch]: Changed GdkPixBuf to GdkPixbuf everywhere.

	* image.c (image_load): Use gdk_pixbuf_new_from_file().

1999-09-28  Federico Mena Quintero  <federico@redhat.com>

	* stock/stock-zoom-1.xpm: Improve the appearance of the icon's
	numbers.

	* ui-image.c (canvas_realized): Set the cursor to a hand.
	(UIImagePrivate): Added fields for the anchor point for dragging.
	(drag_to): New function to allow dragging of the canvas.  It will
	perform badly for diagonal movement; see the comment in this
	source file to see why.

	* cursors.c (cursor_get): New file and new function to create
	mouse cursors.

	* Makefile.am: Added the cursors directory.  Added cursors.[ch] to
	the list of sources.

	* cursors/Makefile.am: Added the cursor data files.

1999-09-24  Federico Mena Quintero  <federico@redhat.com>

	This is the start of the new icon list / column list / tree
	widgets.

	* gnome-list-model.[ch]: New files that define an abstract list
	model.

	* gnome-list-model.c (gnome_list_model_class_init): Made
	get_length a signal.
	Implemented the signal marshallers.

1999-09-23  Federico Mena Quintero  <federico@redhat.com>

	* window.c (set_menu_tb_sensitivity): Renamed from
	set_menu_sensitivity.  Also sensitize the toolbar widgets.
	(WindowPrivate): Added a field to keep the zoom toolbar items.
	(window_destroy): Free said array.

	* tb-image.c (tb_image_new): Also return an array with the widgets
	for the zoom buttons.

	* stock.c (stock_init): New function to initialize the stock
	pixmaps.

	* tb-image.c (toolbar): Use the stock pixmaps.

	* main.c (main): Initialize the stock pixmaps.

	* Makefile.am (SUBDIRS): Process the stock directory.

1999-09-22  Federico Mena Quintero  <federico@redhat.com>

	* main.c (main): Use gtk_widget_show_now().  This will be better
	when we have progressive image loading in place.

1999-09-22  Federico Mena Quintero  <federico@redhat.com>

	These changes are based on a patch by Michael Meeks (mmeeks@gnu.org).

	* Makefile.am (eog_SOURCES): Added util.[ch] to the list of sources.

	* util.c (open_failure_dialog): New function to run a failure
	message box.

	* window.c (window_open_image): Return a status value.
	(open_ok_clicked): Use open_failure_dialog() if the image could
	not be loaded.  Also, hide the file selector before we attempt to
	load the image.

	* main.c (main): Use open_failure_dialog() if the image could not
	be loaded.  Exit with an error value if no image could be opened.

	* image-item.c (recompute_bounding_box): Fetch the image
	dimensions only if the pixbuf exists.
	(image_item_draw): Likewise.

1999-09-22  Federico Mena Quintero  <federico@redhat.com>

	* ui-image.c (ui_image_set_image): Set the width/height of the
	image item.

	* image-item.c (ImageItemPrivate): Added user width and height
	values.  Removed the single zoom value.
	(image_item_class_init): Register the width/ height arguments.
	(image_item_init): Initialize the width/height values.
	(image_item_set_arg): Handle the width/height arguments.
	(image_item_get_arg): Likewise.
	(recompute_bounding_box): Use width/height instead of zoom.
	(image_item_update): Likewise.
	(image_item_draw): Likewise.
	(image_item_point): Likewise.
	(image_item_bounds): Likewise.

	* render.c (render_image): Changed so that it takes in a GdkPixbuf
	instead of an Image.  Added support for anamorphic scaling.

1999-09-18  Federico Mena Quintero  <federico@redhat.com>

	* window.c (zoom_menu): Added a zoom factor menu.

	* ui-image.c (ui_image_construct): Set the step_increment for the
	scrolling adjustments.

	* ui-image.c (ui_image_get_zoom): New function to get the current
	zoom factor.
	(ui_image_zoom_fit): New function to zoom to fit the size of the
	image view.

	* window.c (window_construct): Create the toolbar.
	(view_menu): Added the View menu.
	(window_zoom_in): Zoom in by 5%.
	(window_zoom_out): Zoom out by 5%.
	(window_zoom_1): Zoom to 1:1 scale.
	(window_zoom_fit): Zoom to fit the window.
	(window_construct): Keep a pointer to the view menu and call
	set_mode().
	(set_menu_sensitivity): New function to set the sensitivity of
	menu items according to the window mode.
	(set_mode): Call set_menu_sensitivity().

	* tb-image.[ch]: New files with the definition of a toolbar for
	image windows.

	* commands.[ch]: New files with command callbacks for menus and
	toolbars.

	* main.c (main): Open the images specified in the command line.

	* window.c (window_open_image): Renamed from open_image() and made
	public.
	(window_open_image_dialog): Renamed from open_cmd() and made
	public.
	(window_close): Renamed from close_window() and made public.
	(file_menu): Use the callbacks in commands.h.

	* ui-image.c (ui_image_set_zoom): New function to set the zoom
	factor of an image view.

1999-09-17  Federico Mena Quintero  <federico@redhat.com>

	* window.c (new_window_cmd): Implemented File/New Window.
	(open_cmd): Oops.  Patch from Tom Gilbert to fix the cancel
	button.

	* ui-image.c (ui_image_set_image): Doh.  Unref the correct image
	(typo fix).

	* window.c (window_construct): Set the default size of windows to
	something resonable.
	(open_cmd): Keep the file selection dialog around so that it
	preserves its cwd.  Added a field to WindowPrivate to hold it.
	(open_ok_clicked): Just hide, don't destroy the dialog.
	(open_cancel_clicked): Likewise.
	(open_delete_event): Likewise.
	(window_destroy): Destroy the file selection dialog.

	* ui-image.c (ui_image_set_image): Set the canvas scroll region
	based on the image size.

	* zoom.[ch]: New files with utilitiy functions for computing zoom
	factors.

	* Makefile.am (eog_SOURCES): Added zoom.[ch] to the sources.

	* window.c (WindowPrivate): Added a bin field.  Now we put the
	contents in a simple bin because GnomeApp does not like its
	contents to be removed and added again.
	(window_construct): Create the bin.
	(set_mode): Put the real contents in the bin.

1999-09-17  Federico Mena Quintero  <federico@redhat.com>

	* main.c: Removed old test cruft.

	* window.c (confirm_save): Renamed from confirm_close().
	(open_image): Implemented File/Open.

	* ui-image.c: For now the image view is simply derived from
	GtkScrollFrame.  Implemented basic image setting functionality.

	* image-item.c (image_item_set_arg): Refcount the image.
	(image_item_destroy): Unref the image.

	* image.c (image_new): New function.
	(image_load): New function.  Do simplistic loading of images.
	(image_ref image_unref): Implemented refcounting of images.

	* Makefile.am (eog_SOURCES): Added image.c, ui-image.[ch] to the
	list of sources.

1999-09-16  Federico Mena Quintero  <federico@redhat.com>

	* window.c (exit_cmd): Change of plans.  Do not confirm for
	unsaved files using the Emacs way of doing it, but rather present
	a save/don't save/don't exit dialog.
	(confirm_close): Present a confirmation dialog.

1999-09-15  Federico Mena Quintero  <federico@redhat.com>

	* window.c (window_init): Add the window to the window list.
	(window_destroy): Remove the window from the window list.

	* window.c (window_delete): Confirm before closing.
	(close_cmd): Confirm before closing.
	(exit_cmd): Perform confirmation before exiting.

1999-09-15  Federico Mena Quintero  <federico@redhat.com>

	* window.c (about_cmd): Finished the about box.
	(window_construct): Added a constructor.  Create the menus.
	(window_new): New function.

	* Started the ChangeLog.

