Approximate Progress List (Incomplete) Overall estimate: ???% Polished: Done: FLTK.Devices FLTK.Dialogs 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 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 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.Menus.Menu_Buttons 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.Devices.Graphics FLTK.Devices.Surfaces FLTK.Menu_Items FLTK.Screen FLTK.Text_Buffers FLTK.Widgets FLTK.Widgets.Groups FLTK.Widgets.Groups.Text_Displays (94%) FLTK.Widgets.Groups.Windows FLTK.Widgets.Menus 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 FL_Copy_Surface FL_Image_Surface FL_Paged_Device FL_Printer FL_Tooltip FL_Preferences FL_Label - mark all methods as inline - make sure all C++ reinterpret_cast for methods is to the Fl object, not the My object, because inheriting - consistent unicode utf-8 support (is this even fully supported by FLTK?) - make all protected methods available Never: FL_FormsBitmap FL_FormsPixmap FL_FormsText FL_Free FL_Sys_Menu_Bar FL_Positioner FL_Timer FL_Postscript_File_Device FL_Postscript_Printer FL_System_Printer FL_GDI_Graphics_Driver FL_Postscript_Graphics_Driver FL_Quartz_Graphics_Driver FL_Xlib_Graphics_Driver FL_Plugin FL_Plugin_Manager FL_Device_Plugin FL_Overlay_Window FL_GL_Window FL_Glut_Window FL_Cairo_Window 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.