summaryrefslogtreecommitdiff
path: root/progress.txt
blob: 69411a05208cbda4b691b9c04fd172ea2a8e743b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178


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.