mirror of
https://gitlab.gnome.org/GNOME/eog
synced 2024-10-19 06:24:34 +00:00
07cbb415f6
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.
87 lines
2.7 KiB
Plaintext
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.
|