Thanks a lot Pere. I was able to finish most of the pending stuff with your tips. I consider that tuxpaint is now close to 100% instrumented.

1. For the right tool bar icons, logging the corresponding cur_* variables solved most of the issues.
(Though I couldn't figure out the role of the following variables: cur_label, cur_select)

2. Managed to log the scroll up/down events in the right toolbar + open/new/slideshow dialogs

3. Everything else including magic mirror/flip ..etc are all being logged now. 

I was not able to remove the empty button. Changing tools.h messed things up. Ignoring it for now.

On Wed, Jul 7, 2010 at 1:20 AM, Pere Pujal <> wrote:

2010/7/7 Mohan Raj R <>

I have figured out that in general do_* functions are associated with left toolbar icons and draw_* functions are associated with the icons on the right. I have been able to log the pop-up dialog prompts and their responses.

A few glitches so far:
  1. I haven't still figured out how to differentiate between the individual icon clicks on the right tool bar. All I now get is a draw_shapes, draw_stamps, draw_fonts ..etc.
  2. Other special icons that I am interested in logging: icons that let you scroll through the list of icons on the right, mirror/flip icons, volume icon ? I am interested especially in the scroll icons as I want to see how many children actually get to identify and use them. My guess is that most children wont use it.
  3. I am having difficulty determining when "Paint" tool is clicked as brush_draw() is also called for "Shapes" tool.
  4. Similarly I am having difficulty determining the usage of "Lines" tool because line_xor() is called from a number of functions.
  5. I cant differentiate between the "Text" tool and "Label" tool either as both of them seem to be calling do_render_cur_text() and line_xor() often.
  6. On the left toolbar, there is a button without any label by the side of "Magic" tool icon. Clicking on it seems to be disabled too. Can you let me know how to remove this button? I donot want kids to be confused with this anomaly.
You might want to look at HIT and GRIDHIT_GD functions and try to  reverse figure out what rectangle they
are called with, or instead, just track that a click has made and then at the end of mainloop, check if cur_tool or cur_thing has changed.

The empty button is there just to line up things. If you really want to remove it, take a look at tools.h


This email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit --
Tuxpaint-devel mailing list