From: D M German <dmg@uv...> - 2013-09-20 15:14:45
I have been evaluating for a long time moving towards GTK3. I think
there are benefits to do this, such as supposedly better interaction
with devices, gestures management (think pinch zoom) and perhaps more
important, no fear that one day gtk2 will be left behind.
Last week I was at LinuxCon. I saw a demo of Tizen. from what I
understand, Tizen might resurrect the ability to have gtk+ apps in your
phone/tablet (think Nokia N770, N800, N810 and N900 with a better
interface). Although gtk is not officially supported by Intel/Tizen, it
seems to compile and run and I suspect it will be supported by Gnome.
I have created a branch with the porting in my repo that is essentially
Denis' (no extra features).
The most important decision was what to use instead of gnome_canvas. I
looked around for a while, and finally decided that goocanvas is the way
to go. During the porting it seems to make some things easier, but they
are not that different from each other.
However, things have to be reimplemented, and I have to deal with
deprecations (there have been a lot!!!)
Think of it as trying to fix a car engine for which parts don't exist
any more: taking it apart, and putting it back in, piece by piece,
making sure that each piece is in working condition, and if not,
The current status is that xournal is capable of loading files
(including those with pdf backgrounds). It does not let you do anything
with them yet (it is only a viewer) and it will crash often with an
assertion if you try to do something that hasn't been reimplemented yet
(that is my way to tell myself where the work needs to be done --crash
early, crash often, but never late).
you can find my code here:
https://github.com/dmgerman/xournal.git in the branch gtk3
clone it as follows:
git clone git://github.com/dmgerman/xournal.git -b gtk3 xournal-gtk3
if anybody has time to do some testing. it would be great to know if
files get loaded properly. Don't try to draw/insert text/insert images,
because you will get an assertion fault.
The following is a list of things that need to be fixed:
- Create new journal
- Loading a new journal
- implement Dialog windows (there is a deprecation in gtk3 that I need
to fix). This affects everything that creates a dialog window.
- selection of items in canvas
- selection of colors
- inserting images
- inserting text
- print (I think)
if you are curious, look for WARN, or assert(0) in the code.
those are the places that need rewriting. I usually do it as follows:
// OLD CODE
// NEW CODE
this way I can compare old and new. Bugs are easy to introduce :)
Daniel M. German "In science, read, by preference,
the newest works; in literature,
Georges Leclerc Buffon -> the oldest."
dmg (at) uvic (dot) ca
replace (at) with @ and (dot) with .