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