Dear Tuxpaint Developers,
I saw Bill's presentation of Tuxpaint at a recent meeting of
the Linux Users Group of Davis and was very impressed with
the user interface.
However, looking under the hood reveals one striking area needing
improvement, validating Bill's mentioning that one of the development
team's goals is to modularize the application.
I recommend making modules by creating Abstract DataTypes (ADTs).
ADTs are the precursor of the C++ class. It involves grouping
the application into objects, assigning attributes to each
object, and writing operations for each object. (Sounds like
C++, doesn't it? But it's written in C.)
I can guide you through the upgrade if you're willing
to devote the time. It's a difficult project to begin because
it involves rewriting an already-working application. :-/
An easy-to-understand example of an ADT is located at
1) Press the <TryMe> button.
2) Select the <View Diagrams> link and then view
3) Select the <View Source> link and then view
any of the *.[ch] pairs.
Then see how each ADT is represented in the pdf diagram.
If you'll help me, I'll produce the Tuxpaint Data Structure
Diagram. From this diagram, you'll see how easily the application's
objects will fit in place.