eog/TODO
Federico Mena Quintero 07cbb415f6 Some real work and some quick hacks to test the new scrolling/zooming
Some real work and some quick hacks to test the new scrolling/zooming
code.

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-13 19:22:05 +00:00

87 lines
2.7 KiB
Plaintext

If you intend to work on any of these issues, please contact
Federico Mena-Quintero (federico@gimp.org).
* Finish the ImageView widget:
- Re-center the offsets when changing the zoom factor.
- Mouse drag-scrolling.
- Scrolling using gdk_window_copy_area(). This also requires
writing uta_copy_area() for uta.c.
- Finish uta.c:uta_find_first_glom_rect().
- Figure out what to do with the color correction tables; we
are not using them right now.
* Turn the UIImage widget into a Bonobo control ("I want an image
viewer in my application"):
- Write a CORBA interface for the control's methods (set zoom,
set image, etc.).
- See what user interface elements such as toolbar/menu items
it needs, and put them in the control's machinery for
toolbar/menu merging.
- See if it should support some of the PersistStream hydration
methods.
* Make the main program be a simple shell (like the Evolution shell)
where the main image viewer Bonobo control is inserted:
- Remove all the "window modes" crap from window.c.
- Maybe we should have several different types of window
classes: one for holding just a viewer control (windowed
image viewing); one for holding all the directory browsing
controls; one for holding the image collection browsing
controls.
* Finish the GnomeIconView!!!
* Write a directory browser. Maybe this should be done using Nautilus
controls, or maybe we should have a simple and dumb thing of our
own.
* Write the image category mechanism.
* Write the image collection mechanism and its GUI.
* Write a Bonobo embeddable ("I want to embed an image in my
document"):
- Add separate zoom factors for the vertical and horizontal
dimensions to the ImageView widget. This is required so
that the parent can resize the image in any way.
- Write a CORBA interface for the embeddable's methods. What
does it need?
* Progressive loading. Write something like
typedef struct {
GdkPixbufLoader *loader;
GdkPixbuf *result;
ArtUta *loaded_area;
} ImageLoadContext;
to allow images to be loaded progressively in the idle loop. This
should be interruptible, etc.
* Animation support:
- Enhance the above structure to support animations.
- Make the ImageView widget understand animations. What to do
about tearing when compositing the frames? Should we
special-case animations and blast them to the screen whole
without tearing?
Maybe we can blast each frame at the proper time without
tearing, and only use the normal tearing method when the
user changes the zoom/scroll.
* Write the user's, programmer's, and API reference manuals.