Approximate Progress List (Incomplete) Overall estimate: ???% Polished: Done: FLTK.Images FLTK.Images.Bitmaps FLTK.Images.Bitmaps.XBM FLTK.Images.RGB FLTK.Images.RGB.BMP FLTK.Images.RGB.JPEG FLTK.Images.RGB.PNG FLTK.Images.RGB.PNM FLTK.Widgets.Boxes FLTK.Widgets.Buttons.Enter FLTK.Widgets.Buttons.Light FLTK.Widgets.Buttons.Light.Check FLTK.Widgets.Buttons.Light.Radio FLTK.Widgets.Buttons.Light.Round FLTK.Widgets.Buttons.Light.Round.Radio FLTK.Widgets.Buttons.Radio FLTK.Widgets.Buttons.Repeat FLTK.Widgets.Buttons.Toggle FLTK.Widgets.Charts FLTK.Widgets.Clocks FLTK.Widgets.Clocks.Updated FLTK.Widgets.Clocks.Updated.Round FLTK.Widgets.Groups.Color_Choosers FLTK.Widgets.Groups.Input_Choices FLTK.Widgets.Groups.Packed FLTK.Widgets.Groups.Scrolls FLTK.Widgets.Groups.Spinners FLTK.Widgets.Groups.Tabbed FLTK.Widgets.Groups.Text_Displays.Text_Editors FLTK.Widgets.Groups.Tiled FLTK.Widgets.Groups.Windows.Double FLTK.Widgets.Groups.Windows.Single FLTK.Widgets.Groups.Windows.Single.Menu FLTK.Widgets.Groups.Wizards FLTK.Widgets.Inputs.File FLTK.Widgets.Inputs.Float FLTK.Widgets.Inputs.Integer FLTK.Widgets.Inputs.Multiline FLTK.Widgets.Inputs.Outputs FLTK.Widgets.Inputs.Outputs.Multiline FLTK.Widgets.Inputs.Secret FLTK.Widgets.Menus.Menu_Bars FLTK.Widgets.Progress_Bars FLTK.Widgets.Valuators FLTK.Widgets.Valuators.Adjusters FLTK.Widgets.Valuators.Counters FLTK.Widgets.Valuators.Counters.Simple FLTK.Widgets.Valuators.Dials FLTK.Widgets.Valuators.Dials.Fill FLTK.Widgets.Valuators.Dials.Line FLTK.Widgets.Valuators.Rollers FLTK.Widgets.Valuators.Sliders FLTK.Widgets.Valuators.Sliders.Fill FLTK.Widgets.Valuators.Sliders.Hor_Fill FLTK.Widgets.Valuators.Sliders.Hor_Nice FLTK.Widgets.Valuators.Sliders.Horizontal FLTK.Widgets.Valuators.Sliders.Nice FLTK.Widgets.Valuators.Sliders.Scrollbars FLTK.Widgets.Valuators.Sliders.Value FLTK.Widgets.Valuators.Sliders.Value.Horizontal Partially Done: FLTK FLTK.Dialogs FLTK.Menu_Items FLTK.Screen FLTK.Text_Buffers; FLTK.Widgets FLTK.Widgets.Buttons (70%) FLTK.Widgets.Groups FLTK.Widgets.Groups.Text_Displays (94%) FLTK.Widgets.Groups.Windows FLTK.Widgets.Inputs FLTK.Widgets.Menus FLTK.Widgets.Menus.Menu_Buttons To-Do: FL_Pixmap FL_GIF_Image FL_XPM_Image FL_Shared_Image FL_Tiled_Image FL_Browser FL_Check_Browser FL_File_Browser FL_Hold_Browser FL_Multi_Browser FL_Select_Browser FL_Help_View (several methods have ABI_VERSION bugs) FL_Table FL_Table_Row FL_Tree - mark all methods as inline - make sure all C++ reinterpret_cast for methods is to the Fl object, not the My object, because inheriting Never: FL_FormsBitmap FL_FormsPixmap FL_FormsText FL_Free FL_Sys_Menu_Bar FL_Positioner FL_Timer A note on callbacks and overriding: As part of its normal operation, FLTK calls a Widget's Draw and Handle methods from its main loop to deal with draw and input events. Since it's another part of the program that is invoking them, even if it's a part the programmer has no direct control over, this binding is set up so that if you override Draw or Handle, the behaviour will change. On the other hand, something like the Push method in tabbed groups is usually invoked from within that same tabbed group widget's Handle method. Therefore, keeping consistency with Ada semantics, overriding the Push method will NOT change the behaviour of the corresponding Handle method. You must also override Handle.