/** \page fltk-problems Problems with FLTK

dw::fltk::FltkViewport

Current problems:

dw::fltk::FltkPlatform

dw::fltk::ui::FltkCheckButtonResource

Groups of fltk::RadioButton must be added to one fltk::Group, which is not possible in this context. There are two alternatives:
  1. there is a more flexible way to group radio buttons, or
  2. radio buttons are not grouped, instead, grouping (especially unchecking other buttons) is done by the application.
(This is mostly solved.)

dw::fltk::FltkImgbuf

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.

Lower Priority

There needs to be an XEmbed implementation.

dw::fltk::ui::ComplexButton

Unfortunately, FLTK does not provide a button with 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:
  1. Copy fltk/Button.h from FLTK to dw/fltkcomplexbutton.hh and src/Button.cxx to dw/fltkcomplexbutton.cc.
  2. In both files, rename "Button" to "ComplexButton". Automatic replacing should work.
  3. Apply the changes below.
The following changes should be applied manually.

Changes in fltkcomplexbutton.hh

First of all, the #define's for avoiding multiple includes: \code -#ifndef fltk_ComplexButton_h // fltk_Button_h formerly -#define fltk_ComplexButton_h +#ifndef __FLTK_COMPLEX_BUTTON_HH__ +#define __FLTK_COMPLEX_BUTTON_HH__ \endcode at the beginning and \code -#endif +#endif // __FLTK_COMPLEX_BUTTON_HH__ \endcode at the end. Then, the namespace is changed: \code -namespace fltk { +namespace dw { +namespace fltk { +namespace ui { \endcode at the beginning and \code -} +} // namespace ui +} // namespace fltk +} // namespace dw \endcode at the end. Most important, the base class is changed: \code -#ifndef fltk_Widget_h -#include "Widget.h" -#endif +#include \endcode and \code -class FL_API ComplexButton : public Widget { +class ComplexButton: public ::fltk::Group +{ \endcode Finally, for dw::fltk::ui::ComplexButton::default_style, there is a namespace conflict: \code - static NamedStyle* default_style; + static ::fltk::NamedStyle* default_style; \endcode

Changes in fltkcomplexbutton.cc

First, #include's: \code #include #include -#include // formerly #include #include #include + +#include "fltkcomplexbutton.hh" \endcode Second, namespaces: \code +using namespace dw::fltk::ui; using namespace fltk; \endcode Since the base class is now Group, the constructor must be changed: \code -ComplexButton::ComplexButton(int x,int y,int w,int h, const char *l) : Widget(x,y,w,h,l) { +ComplexButton::ComplexButton(int x,int y,int w,int h, const char *l) : + Group(x,y,w,h,l) +{ \endcode At the end of the constructor, \code + type (NORMAL); } \endcode must be added (I've forgotten, what this is for). Finally, the button must draw its children (end of dw::fltk::ui::ComplexButton::draw()): \code + + for (int i = 0; i < children (); i++) + draw_child (*child (i)); } \endcode */