GNOME Bugzilla – Bug 532183
Add an interface for the image viewing widgets
Last modified: 2021-06-19 08:46:12 UTC
In order to produce a good clutter (or any other powerful canvas library) image viewing widget, that integrates well enough with EOG, we should have an interface, say EogView, that such widgets must implement. I'm adding such an interface, and I've ported EogScrollView, EogWindow, and the reload plugin to make use of it. Patch follows.
Created attachment 110587 [details] [review] add EogView interface and use it
Claudio, patch looks good. One possible improvement is to turn EogView into an abstract class and have all common properties there (zoom, zoom_upscale, transparency mode, etc) so that implementors of EogView interface wouldn't have to duplicate that code in any way.
Created attachment 115951 [details] [review] updated patch This is only an upgraded patch that applies cleanly against trunk, for people to give it a try/comment on it/work on it.
Created attachment 116649 [details] [review] Implement EogView as an abstract class Hi, guys. This is a experimental patch. No draw images, no scroll, no zoom, only add EogView as an abstract class that inherit from GtkBin. In this abstract class, there aren't implemented any of old API methods, yet. I think that is necessary to review this API, for example: set/get methods should be implemented as object properties. Now EogScrollView (in my very reduced version that do nothing) inherit from EogView. Questions: - What properties/methods should be implemented in EogView (zoom api?) - Scrollbars should be included in EogView or in EogScrollView? I hope not having committed many errors. I'm a newbie.
Created attachment 147373 [details] updated patch I have brought the patch up-to-date. I was looking at what would be good to have in an abstract class, but I think that complicates matters quite a bit. This is because each view implementation wants to inherit a different, specific widget. ClutterView inherits from GtkClutterEmbed, and ScrollView from GtkTable. I suggest using EogView only as an interface, as was initially proposed by Claudio.
Created attachment 147374 [details] [review] updated patch Err... that was the wrong patch =).
Thanks for giving this a try. Your patch isn't working. It looks like you forgot to git-add the eog-view parts. ;)
GNOME is going to shut down bugzilla.gnome.org in favor of gitlab.gnome.org. As part of that, we are mass-closing older open tickets in bugzilla.gnome.org which have not seen updates for a longer time (resources are unfortunately quite limited so not every ticket can get handled). If you can still reproduce the situation described in this ticket in a recent and supported software version, then please follow https://wiki.gnome.org/GettingInTouch/BugReportingGuidelines and create a new ticket at https://gitlab.gnome.org/GNOME/eog/-/issues/ Thank you for your understanding and your help.