Only the first two are actual constants. The other symbols are macros so the code is not linked in if not used. To make bitmaps or pixmaps you use a method on the Fl_Bitmap or Fl_Pixmap object, see those pages for details.
Labeltypes are actually indexes into a table of functions to draw them. The primary purpose of this is to let you reuse the label() pointer as a pointer to arbitrary data such as a bitmap or pixmap. You can also use this to draw the labels in ways inaccessible through the fl_font mechanisim, such as engraved, or with program-generated letters, or with GL display lists.
typedef void (Fl_Label_Draw_F)(const Fl_Label*, int,int,int,int, Fl_Align align);
typedef void (Fl_Label_Measure_F)(const Fl_Label*, int&, int&);
struct Fl_Label { const char* value; uchar type; uchar font; uchar size; uchar color; void draw(int,int,int,int, Fl_Font align) const ; };
Fltk calls the labeltype function with a pointer to this structure
and a a bounding box and alignment. The label should be drawn
inside this bounding box, even though
FL_ALIGN_INSIDE
may not be on. The function is not
called if value is null.
The "measure" function is called to measure the size of the label. It sets the w and h to the size it will occupy. For future compatability, w and h should be preset to zero before calling this.
See <FL/fl_draw.H> for the available drawing functions.
void Fl::set_labeltype(Fl_Labeltype n, Fl_Label_Draw_F*, Fl_Label_Measure_F*);
void Fl::set_labeltype(Fl_Labeltype n, Fl_Labeltype from);
The @ sign may be followed by the following optional "formatting" characters, in this order:
'#' forces square scaling, rather than distortion to the widget's shape.
+[1-9] or -[1-9] tweaks the scaling a little bigger or smaller.
[1-9] - rotates by a multiple of 45 degrees. '6' does nothing, the others point in the direction of that key on a numeric keypad.
void Fl::enable_symbols();
widget->labeltype(FL_SYMBOL_LABEL);
int fl_draw_symbol(const char* n,int x,int y,int w,int h,Fl_Color c);
int fl_add_symbol(const char *, void (*f)(Fl_Color), int
flags=1);