GTK-Mode FORM Objects EVENTS
Updated: Aug 28, 2008

1. OnMessage now works!  For any FORM object, OnMessage appears to be triggered
for *all* the Gdk events, although this might require some confirmation.
Thus, developers can use OnMessage

(a) to have access to low-level events not serviced by other native event
    identifiers, and

(b) to explore what events are available.

These virtues of OnMessage are similar to those enjoyed by Windows OnMessage
users.

2. For all native HotBasic events, 

(a) internal variables for use in event routines are defined:
    hWnd, uMsg (in X11/Gdk codes), wParam and hbEvent.

(b) "register nanny" code (needed for gcc-compiled GTK) is internalized.

(c) HotBasic will return zero, allowing GTK's default event handlers.

The exceptions are MENUITEM events, OnPaint and OnShow, for which GTK 
(mysteriously!) uses a different event routine prototype which defeats doing
(a) above.  For these routines, uMsg, wParam and hbEvent are set to zero.

3. I did a (tiresome) survey for GTK-mode events.  These are my results:

GTK-Mode Events:

OnClick      [BUTTON CHECKBOX RADIOBUTTON]

OnClose      [all]

OnDblClick   [???]

OnKeyDown    [BUTTON CHECKBOX EDIT FORM LISTBOX LISTVIEW RADIOBUTTON RICHEDIT
              TABCONTROL TRACKBAR TREEVIEW UPDOWN]   

OnKeyUp      [BUTTON CHECKBOX EDIT FORM LISTBOX LISTVIEW RADIOBUTTON RICHEDIT
              TABCONTROL TRACKBAR TREEVIEW UPDOWN]

OnMessage    [all; provides all GdkEvents -- pointer at STACK(3)] 

OnMouseDown  [BUTTON CANVAS CHECKBOX EDIT FORM GAUGE LISTBOX RADIOBUTTON
              RICHEDIT SCROLLBAR TRACKBAR UPDOWN]

OnMouseUp    [BUTTON CANVAS CHECKBOX EDIT FORM GAUGE LISTBOX RADIOBUTTON
              RICHEDIT SCROLLBAR TRACKBAR UPDOWN]

OnMouseMove  [BUTTON CANVAS CHECKBOX FORM GAUGE LISTBOX RADIOBUTTON SCROLLBAR
              TRACKBAR UPDOWN]

             [COMBOBOX EDIT RICHEDIT: only on enter and/or leave]

OnPaint      [all] 

OnResize     [all]

OnShow       [FORM]



Copyright 2007-2008 James J Keene PhD
Original Publication: Nov 27, 2007
