Dillo v3.1.1-46-g8a360e32
|
Current problems:
How should dw::fltk::FltkViewport::cancelQueueDraw be implemented?
If the value of a scrollbar is changed by the program, not the user, the callback seems not to be called. Can this be assured?
The same for dw::fltk::FltkViewport::layout?
Also, the problems with the widgets seems to work. Also sure?
When drawing, clipping of 32 bit values is not working properly.
There is the problem, that fltk::font always returns a font, the required one, or a replacements. The latter is not wanted in all cases, e.g. when several fonts are tested. Perhaps, this could be solved by searching in the font list. [This was true of fltk2. What is the state of font handling now with fltk-1.3?]
Groups of Fl_Radio_Button must be added to one Fl_Group, which is not possible in this context. There are two alternatives:
(This is mostly solved.)
Alpha transparency should be best abstracted by FLTK itself. If not, perhaps different implementations for different window systems could be used. Then, it is for X necessary to use GCs with clipping masks.
Unfortunately, FLTK does not provide a button with Fl_Group as parent, so that children may be added to the button. dw::fltk::ui::ComplexButton does exactly this, and is, in an ugly way, a modified copy of the FLTK button.
It would be nice, if this is merged with the standard FLTK button. Furthermore, setting the type is strange.
If the files do not compile, it may be useful to create a new one from the FLTK source:
Copy Fl_Button.H from FLTK to dw/fltkcomplexbutton.hh and src/Button.cxx to dw/fltkcomplexbutton.cc.
In both files, rename "Button" to "ComplexButton". Automatic replacing should work.
The following changes should be applied manually.
First of all, the #define's for avoiding multiple includes:
at the beginning and
at the end. Then, the namespace is changed:
at the beginning and
at the end. Most important, the base class is changed:
and
Finally, for dw::fltk::ui::ComplexButton::default_style, there is a namespace conflict:
First, #include's:
Second, namespaces:
Since the base class is now Fl_Group, the constructor must be changed:
Finally, the button must draw its children (end of dw::fltk::ui::ComplexButton::draw()):