
This file is primarily intended to help Mark Arrasmith with his
eFractal program. Since this is EXG code, and simple, it also makes a
good EXG example. So this is why it is here.

The idea: There is a canvas. The program intercepts mouse clicks and
mouse movement in order to implement a rubberband selection (use the
left button). After the selection is made, the four corners are
numbered and they can be dragged around. Clicking with the left button
outside of the squares surrounding the corners starts a new
selection. Clicking with the right button starts the zoom. There is no
zoom here, just a message box that tells the coordinates of the
corners. The order of the corners matters. The first corner is drawn a
little bit larger and there is a small arrow on the line to the next
corner.  Pressing the middle mouse button over one corner and then a
number key from 1 to 4 selects the index of that corner.

The code actually is a bit complicated if seen all at once so this
organized in steps. Step one shows you the simplest variant and
further steps add functionality. This way one can see (maybe using
diff) what was added. The functionality of each step is described in
the corresponding README file.

Stuff used:

Classes:

GTK_DRAWING_AREA
EXG_MAIN_WINDO
EXG_MESSAGE_BOX
GDK_GC
GTK_WIDGET, and of course many others

from GTK_WIDGET, the following events are handled:

button_1_press_handler
button_1_release_handler
button_2_release_handler
button_3_release_handler
motion_notify_handler
key_release_handler
expose_handler

xor as a drawing function

---------------------------
Feel free to use this in your own programs (that is if you don't find
a better way, of course :)
