My intention is to write a proposal about 3 ideas that I read in the
page and in the mailing list archives.
The first idea is to combine and modularize the functions
do_new_dialog(), do_open(), and do_slideshow(). These functions have a
lot of common code, and integrating them is important to keep the code
easy to maintain and debug. I think I understood clearly what should
be done, so I've already started to code. This way I had a better idea
about the work I have to do, so now I can write a more precise
timeline.
The second idea is to add support for system file dialogs. I've
thinking how it could be done, and here are the results of my
research:
1) We could use some kind of toolkit, like gtk+ (www.gtk.org):
Advantages:
- Few lines of code will must to be written and maintained
- It has a vast community that maintain the library for a decade,
so it is stable, and is portable for many platforms(UNIX-like,
windows, mac os x)
- GTK+ has been involved in a number of embedded initiatives over
the past few years including the development of:
* Nokia 770 / N800 / N810
* One Laptop Per Child Project
* OpenMoko
Disadvantages:
- Increases dependencies of tuxpaint
- The GUI is too diferent of tuxpaint's interface. So it will
has an inconsistent look and feel
- Some of the platforms supported by tuxpaint will not support
the new feature, since gtk is not supported for all of them.
I took a screenshot of how tuxpaint should look if we use gtk, just to
illustrate what I'm talking about. It's here:
http://www.littlechina.org/~dilly/tuxpaint_gtk.png2) I have searched for toolkits written in SDL, but I just found some
written in C++, and 2 problems will persist:
- The inconsistent look
- One more dependence
3) We could do it ourself. I'm really interested in drawing the dialog
myself. It will avoid extra dependencies and I can learn more about
SDL.
The code to work with the various platforms system file will be
written specifically to each one anyway.
My conclusion is that I shouldn't use extra libraries and do it
myself. What do you think about it?
The third idea is to use the time Google gives to read the project
documentation to rewrite and "put into a more sensible format".