eog/TODO
Federico Mena Quintero 6e0777eeef Another attempt at fixing auto-sizing; it seems to work now. Maybe
2000-08-18  Federico Mena Quintero  <federico@helixcode.com>

	Another attempt at fixing auto-sizing; it seems to work now.
	Maybe GtkScrollFrame is not *that* broken...

	* window.c (window_construct): Do not set the default size of the
	window.
	(window_init): Set the window policy to allow_shrink.
	(auto_size): Set the usize of the image view to our preferred size.
	(window_open_image_dialog): Add a grab on the dialog so that the
	user cannot invoke commands on the window!
	(hide_cb): Remove the grab when the dialog is hidden.
	(window_open_image_dialog): Sigh.  Add an accel group so that
	pressing Escape can close the open dialog.

	* gtkscrollframe.c (gtk_scroll_frame_size_request): Do pay
	attention to the child's requisition; this restores the code to
	its original state.
	(gtk_scroll_frame_size_allocate): Make sure the the
	child_allocation is nonnegative (bugfix merge from Evolution).

	* image-view.c (image_view_size_request): Request a size of zero.
2000-08-18 23:25:46 +00:00

92 lines
3 KiB
Plaintext

If you intend to work on any of these issues, please contact
Federico Mena-Quintero (federico@gnu.org).
* Bugs:
- Turn on window auto-sizing and create a new window with an
image in it (i.e. by turning on the "open images in a new
window" option or by specifying an image filename in the
command line). The image view comes up a little bit larger
than the right auto-fit size. This is GtkScrollFrame's
fault; for some reason it is including the (un-needed)
scrollbars' requisitions in its own space.
* Finish the ImageView widget:
- Write a "fast" version of uta.c:uta_find_first_glom_rect().
Right now we just have a hacked version of libart's
function.
- 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 programmer's and API reference manuals.