| Id start with this, and work my way to something that works on all platforms: 
 
Function GadgetClass:Int( gadget:TGadget)
?Win32
	Return TWin32Gadget(gadget).Class
?MacOS
	Return TNSGadget(gadget).Class
?Linux
	Select TFLWidget(gadget).FLType
		Case FL_WINDOW
			Return GADGET_WINDOW
		Case FL_BUTTON, FL_CHECKBUTTON, FL_ROUNDBUTTON
			Return GADGET_BUTTON
		Case FL_PANEL, FL_GROUP
			Return GADGET_PANEL
		Case FL_INPUT, FL_PASSWORD
			Return GADGET_TEXTFIELD
		Case FL_TABS
			Return GADGET_TABBER
		Case FL_BROWSER
			Return GADGET_HTMLVIEW
		Case FL_CHOICE
			Return GADGET_COMBOBOX
		Case FL_TEXTEDITOR
			Return GADGET_TEXTAREA
		Case FL_TEXTDISPLAY
			Return GADGET_LABEL
		Case FL_TOOLBAR
			Return GADGET_TOOLBAR
		Case FL_PROGBAR
			Return GADGET_PROGBAR
		Case FL_SLIDER, FL_SCROLLBAR
			Return GADGET_SLIDER
		Case FL_CANVAS
			Return GADGET_CANVAS
		Case FL_MENUITEM
			Return GADGET_MENUITEM
		Case FL_DESKTOP
			Return GADGET_DESKTOP
		Case FL_TIMER
			Return GADGET_TIMER
		
		' i dont know, need linux to test
		'Case FL_HELPVIEW, FL_BOX, FL_MENUBAR, FL_PACK
			
		Default
			Return -1
	EndSelect
?
EndFunction
 This may brake in the future though.
 
 
 |