Add some doxygen descriptions for the (previously undocumented) Fl_Multi_Label struct, and make some minor related adjustments to the docs for Fl_Label and Fl_Labeltype.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10553 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Ian MacArthur
2015-02-04 13:12:43 +00:00
parent 84f87addfc
commit e402a64457
3 changed files with 58 additions and 17 deletions
+13 -13
View File
@@ -3,7 +3,7 @@
// //
// Enumerations for the Fast Light Tool Kit (FLTK). // Enumerations for the Fast Light Tool Kit (FLTK).
// //
// Copyright 1998-2014 by Bill Spitzak and others. // Copyright 1998-2015 by Bill Spitzak and others.
// //
// This library is free software. Distribution and use rights are outlined in // This library is free software. Distribution and use rights are outlined in
// the file "COPYING" which should have been included with this file. If this // the file "COPYING" which should have been included with this file. If this
@@ -624,27 +624,27 @@ inline Fl_Boxtype fl_frame(Fl_Boxtype b) {
/** /**
The labeltype() method sets the type of the label. The labeltype() method sets the type of the label.
The following standard label types are included: The following standard label types are included:
\todo The doxygen comments are incomplete, and some labeltypes \todo The doxygen comments are incomplete, and some labeltypes
are starting with an underscore. Also, there are three start with an underscore. Also, there are three
external functions undocumented (yet): external functions undocumented (yet):
- fl_define_FL_SHADOW_LABEL() - fl_define_FL_SHADOW_LABEL()
- fl_define_FL_ENGRAVED_LABEL() - fl_define_FL_ENGRAVED_LABEL()
- fl_define_FL_EMBOSSED_LABEL() - fl_define_FL_EMBOSSED_LABEL()
*/ */
enum Fl_Labeltype { // labeltypes: enum Fl_Labeltype { // labeltypes:
FL_NORMAL_LABEL = 0, ///< draws the text (0) FL_NORMAL_LABEL = 0, ///< draws the text (0)
FL_NO_LABEL, ///< does nothing FL_NO_LABEL, ///< does nothing
_FL_SHADOW_LABEL, ///< draws a drop shadow under the text _FL_SHADOW_LABEL, ///< draws a drop shadow under the text
_FL_ENGRAVED_LABEL, ///< draws edges as though the text is engraved _FL_ENGRAVED_LABEL, ///< draws edges as though the text is engraved
_FL_EMBOSSED_LABEL, ///< draws edges as though the text is raised _FL_EMBOSSED_LABEL, ///< draws edges as though the text is raised
_FL_MULTI_LABEL, ///< ? _FL_MULTI_LABEL, ///< draws a composite label \see Fl_Multi_Label
_FL_ICON_LABEL, ///< draws the icon associated with the text _FL_ICON_LABEL, ///< draws the icon associated with the text
_FL_IMAGE_LABEL, ///< ? _FL_IMAGE_LABEL, ///< the label displays an "icon" based on a Fl_Image
FL_FREE_LABELTYPE ///< first free labeltype to use for creating own labeltypes FL_FREE_LABELTYPE ///< first free labeltype to use for creating own labeltypes
}; };
/** /**
+41 -1
View File
@@ -3,7 +3,7 @@
// //
// Multi-label header file for the Fast Light Tool Kit (FLTK). // Multi-label header file for the Fast Light Tool Kit (FLTK).
// //
// Copyright 1998-2010 by Bill Spitzak and others. // Copyright 1998-2015 by Bill Spitzak and others.
// //
// This library is free software. Distribution and use rights are outlined in // This library is free software. Distribution and use rights are outlined in
// the file "COPYING" which should have been included with this file. If this // the file "COPYING" which should have been included with this file. If this
@@ -22,12 +22,52 @@
class Fl_Widget; class Fl_Widget;
struct Fl_Menu_Item; struct Fl_Menu_Item;
/** This struct allows multiple labels to be added to objects that might normally have only one label.
This struct allows a mixed text and/or graphics label to be applied to an object that
would normally only have a single (usually text only) label.
Most regular FLTK widgets now support the ability to associate both images and text
with a label but some special cases, notably the non-widget Fl_Menu_Item objects, do not.
Fl_Multi_Label may be used to create menu items that have an icon and text, which would
not normally be possible for an Fl_Menu_Item.
For example, Fl_Multi_Label is used in the New->Code submenu in fluid, and others.
Each Fl_Multi_Label holds two elements, labela and labelb; each may hold either a
text label (const char*) or an image (Fl_Image*). When displayed, labela is drawn first
and labelb is drawn immediately to its right.
More complex labels might be constructed by setting labelb as another Fl_Multi_Label and
thus chaining up a series of label elements.
When assigning a label element to one of labela or labelb, they should be explicitly cast
to (const char*) if they are not of that type already.
\see Fl_Label and Fl_Labeltype
*/
struct FL_EXPORT Fl_Multi_Label { struct FL_EXPORT Fl_Multi_Label {
/** Holds the "leftmost" of the two elements in the composite label.
Typically this would be assigned either a text string (const char*),
a (Fl_Image*) or a (Fl_Multi_Label*). */
const char* labela; const char* labela;
/** Holds the "rightmost" of the two elements in the composite label.
Typically this would be assigned either a text string (const char*),
a (Fl_Image*) or a (Fl_Multi_Label*). */
const char* labelb; const char* labelb;
/** Holds the "type" of labela.
Typically this is set to FL_NORMAL_LABEL for a text label,
_FL_IMAGE_LABEL for an image (based on Fl_image) or _FL_MULTI_LABEL
if "chaining" multiple Fl_Multi_Label elements together. */
uchar typea; uchar typea;
/** Holds the "type" of labelb.
Typically this is set to FL_NORMAL_LABEL for a text label,
_FL_IMAGE_LABEL for an image (based on Fl_image) or _FL_MULTI_LABEL
if "chaining" multiple Fl_Multi_Label elements together. */
uchar typeb; uchar typeb;
/** This method is used to associate a Fl_Multi_Label with a Fl_Widget. */
void label(Fl_Widget*); void label(Fl_Widget*);
/** This method is used to associate a Fl_Multi_Label with a Fl_Menu_Item. */
void label(Fl_Menu_Item*); void label(Fl_Menu_Item*);
}; };
+4 -3
View File
@@ -3,7 +3,7 @@
// //
// Widget header file for the Fast Light Tool Kit (FLTK). // Widget header file for the Fast Light Tool Kit (FLTK).
// //
// Copyright 1998-2012 by Bill Spitzak and others. // Copyright 1998-2015 by Bill Spitzak and others.
// //
// This library is free software. Distribution and use rights are outlined in // This library is free software. Distribution and use rights are outlined in
// the file "COPYING" which should have been included with this file. If this // the file "COPYING" which should have been included with this file. If this
@@ -56,10 +56,11 @@ typedef void (Fl_Callback1)(Fl_Widget*, long);
/** This struct stores all information for a text or mixed graphics label. /** This struct stores all information for a text or mixed graphics label.
\todo For FLTK 1.3, the Fl_Label type will become a widget by itself. That way \todo There is an aspiration that the Fl_Label type will become a widget by itself.
we will be avoiding a lot of code duplication by handling labels in 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 a similar fashion to widgets containing text. We also provide an easy
interface for very complex labels, containing html or vector graphics. interface for very complex labels, containing html or vector graphics.
However, this re-factoring is not in place in this release.
*/ */
struct FL_EXPORT Fl_Label { struct FL_EXPORT Fl_Label {
/** label text */ /** label text */