Hi,

On 2021-08-29 11:26 a.m., Thierry Huchard wrote:
As an aside, I would also like to propose that we schedule a release of
the SANE frontends perhaps a short while after the backends' release.

We have had a request to port our x* frontends to GTK3 (or 4?) and I am
currently working my way through that.
GTK4 has been released and GTK2 (GTK+) has been well and truly
deprecated to the point at which I fear that some distros might drop
support entirely.

GTK porting is not something I have done before but it is an exercise
that is required for xsane also so the effort is worthwhile.

The biggest deal seems to be the use of GtkPreview to render and manage
the preview window, which has been removed entirely from GTK3.
There will be a few other bits and pieces here and there I am sure.
Hi Ralph,

For the Gtk migration, I can help!

Thierry

That would be really appreciated, thanks!

I would like to have a stab at the port unaided at least for the first pass because it is a good learning exercise for myself. I mostly learn by doing but if you could take a look through my first-pass port, when I check it in, to see if there is anything that I have done badly or if there is a better way then that would be excellent!

For the first pass, I am staying with GTK2 and removing deprecated features. That is mostly involved in reimplementing the GtkPreview functionality that is used in the Preview window of xscanimage. I am replacing it with a GtkDrawingArea and backing it with a data buffer using cairo_image_surface_create_for_data(), which is similar to what xscanimage is going at present so the changes are fairly minimal. The data buffer format will be slightly different but I don't think that should be an issue. xscanimage gradually adds data to the buffer as it comes in so the preview emerges as the image data is received.

I also have some ideas for implementing the selection area. At the moment it is a thin rectangle that is drawn across the preview image with the mouse. I'm thinking that a translucent mask with the selected area transparent might look very effective and modern and simple to do.

I'll let you know when I have something worth looking at! Any porting comments that you have are also appreciated.

Cheers,
Ralph



Reply via email to