FLTK 1.3.4
Todo List
Page Adding and Extending Widgets

Clarify Fl_Window::damage(uchar) handling - seems confused/wrong? ORing value doesn't match setting behaviour in FL_Widget.H!

Clarify Fl_Widget::test_shortcut() explanations. Fl_Widget.h says Internal Use only, but subclassing chapter gives details!

Group Box Types
Description of boxtypes is incomplete. See below for the defined enum Fl_Boxtype.
See Also
src/Fl_get_system_colors.cxx
Page Drawing Things in FLTK
add an Fl_Draw_Area_Cb typedef to allow fl_scroll(...) to be doxygenated?
Member Fl_Browser_::scrollbar_width () const
This method should eventually be removed in 1.4+
Member Fl_Browser_::scrollbar_width (int width)
This method should eventually be removed in 1.4+
Member Fl_Browser_::sort (int flags=0)
Add a flag to ignore case
Class Fl_Button

Refactor the doxygen comments for Fl_Button type() documentation.

Refactor the doxygen comments for Fl_Button when() documentation.

Class Fl_Chart
Refactor Fl_Chart::type() information.
Class Fl_Choice
Refactor the doxygen comments for Fl_Choice changed() documentation.
Class Fl_Counter
Refactor the doxygen comments for Fl_Counter type() documentation.
Member Fl_Cursor
enum Fl_Cursor needs maybe an image.
Member Fl_File_Input::errorcolor () const
Better docs for Fl_File_Input::errorcolor() - is it even used?
Member Fl_Group::sizes ()
Should the internal representation of the sizes() array be documented?
Member fl_height (int font, int size)
In the future, when the XFT issues are resolved, this function should simply return the 'size' value.
Member Fl_Input_::handle_mouse (int, int, int, int, int keepmark=0)
Add comment and parameters
Member Fl_Input_::handletext (int e, int, int, int, int)
Add comment and parameters
Member fl_intptr_t
typedef's fl_intptr_t and fl_uintptr_t should be documented.
Class Fl_Label
There is an aspiration that the Fl_Label type will become a widget by itself. That way we will be avoiding a lot of code duplication by handling labels in a similar fashion to widgets containing text. We also provide an easy interface for very complex labels, containing html or vector graphics. However, this re-factoring is not in place in this release.
Member Fl_Labeltype
The doxygen comments are incomplete, and some labeltypes start with an underscore. Also, there are three external functions undocumented (yet):
  • fl_define_FL_SHADOW_LABEL()
  • fl_define_FL_ENGRAVED_LABEL()
  • fl_define_FL_EMBOSSED_LABEL()
Member Fl_Menu_::add (const char *, int shortcut, Fl_Callback *, void *=0, int=0)
Raw integer shortcut needs examples. Dependent on responses to http://fltk.org/newsgroups.php?gfltk.development+v:10086 and results of STR#2344
Member fl_old_shortcut (const char *s)
Fix these silly legacy issues in a future release to support more predictable behavior for the modifier keys.
Member Fl_Preferences::get (const char *entry, void *value, const void *defaultValue, int defaultSize, int maxSize)
maxSize should receive the number of bytes that were read.
Member fl_reset_spot (void)
provide user documentation for fl_reset_spot function
Member Fl_Scroll::bbox (int &, int &, int &, int &)
The visibility of the scrollbars ought to be checked/calculated outside of the draw() method (STR #1895).
Member fl_set_spot (int font, int size, int X, int Y, int W, int H, Fl_Window *win=0)
provide user documentation for fl_set_spot function
Member fl_set_status (int X, int Y, int W, int H)
provide user documentation for fl_set_status function
Member Fl_String
FIXME: temporary (?) typedef to mark UTF-8 and Unicode conversions
Member Fl_Text_Display::display_insert ()
Unicode?
Member Fl_Text_Display::extend_range_for_styles (int *start, int *end)
Unicode?
Member Fl_Text_Display::handle_vline (int mode, int lineStart, int lineLen, int leftChar, int rightChar, int topClip, int bottomClip, int leftClip, int rightClip) const

we need to handle hidden hyphens and tabs here!

we handle all styles and selections

we must provide code to get pixel positions of the middle of a character as well

Member Fl_Text_Display::overstrike (const char *text)
Unicode? Find out exactly what we do here and simplify.
Member Fl_Text_Display::position_to_line (int pos, int *lineNum) const
What does this do?
Member Fl_Text_Display::position_to_linecol (int pos, int *lineNum, int *column) const
a column number makes little sense in the UTF-8/variable font width environment. We will have to further define what exactly we want to return. Please check the functions that call this particular function.
Member Fl_Text_Display::scroll (int topLineNum, int horizOffset)
Column numbers make little sense here.
Member Fl_Text_Display::shortcut () const
FIXME : get set methods pointing on shortcut_ have no effects as shortcut_ is unused in this class and derived!
Returns
the current shortcut key
Member Fl_Text_Display::shortcut (int s)
FIXME : get set methods pointing on shortcut_ have no effects as shortcut_ is unused in this class and derived!
Parameters
sthe new shortcut key
Member Fl_Text_Display::wrap_mode (int wrap, int wrap_margin)
we need new wrap modes to wrap at the window edge and based on pixel width or average character width.
Member Fl_Text_Display::wrapped_column (int row, int column) const

What does this do and how is it useful? Column numbers mean little in this context. Which functions depend on this one?

Unicode?

Member Fl_Text_Display::wrapped_row (int row) const
What does this do and how is it useful? Column numbers mean little in this context. Which functions depend on this one?
Member Fl_Tiled_Image::Fl_Tiled_Image (Fl_Image *i, int W=0, int H=0)
Fix Fl_Tiled_Image as background image for widgets and windows and fix the implementation of Fl::scheme(const char *).
Member Fl_Tree::handle (int e)
add Fl_Widget_Tracker (see Fl_Browser_.cxx::handle())
Member Fl_Tree::is_scrollbar (Fl_Widget *w)
should be const
Member Fl_Tree::show_self ()
should be const
Version
1.3.0
Member Fl_When
doxygen comments for values are incomplete and maybe wrong or unclear
Member Fl_Widget::argument (long v)
The user data value must be implemented using intptr_t or similar to avoid 64-bit machine incompatibilities.
Member Fl_Widget::argument () const
The user data value must be implemented using intptr_t or similar to avoid 64-bit machine incompatibilities.
Member Fl_Widget::type () const
Explain "simulate RTTI" (currently only used to decide if a widget is a window, i.e. type()>=FL_WINDOW ?). Is type() really used in a way that ensures "Forms compatibility" ?
Member Fl_Window::show (int argc, char **argv)
explain which system parameters are set up.
Member Fl_Window::show ()
Check if we can remove resetting the current group in a later FLTK version (after 1.3.x). This may break "already broken" programs though if they rely on this "feature".
Page Handling Events
Add details on how to detect repeating keys, since on some X servers a repeating key will generate both FL_KEYUP and FL_KEYDOWN, such that to tell if a key is held, you need Fl::event_key(int) to detect if the key is being held down during FL_KEYUP or not.
Group Mouse and Keyboard Events
FL_Button and FL_key... constants could be structured better (use an enum or some doxygen grouping ?)
Page Unicode and UTF-8 Support

Do we need this info about planes?

Work through the code and this documentation to harmonize the [OksiD] and [fltk2] functions.

Verify 16/24 bit Unicode limit for different character sets? OksiD's code appears limited to 16-bit whereas the FLTK2 code appears to handle a wider set. What about illegal characters? See comments in fl_utf8fromwc() and fl_utf8toUtf16().