## typedef fltk::Labeltype

`fltk::Labeltype` is a pointer to the structure `fltk::Labeltype_`, which contains the information needed to draw text labels. This is used by `fltk::Widget::label_type()`.

#### void (*fltk::Labeltype_::draw_)(const fltk::Labeltype_* this, const char* label, int,int,int,int, fltk::Color fill, fltk::Flags);

Pointer to the function that draws the text. The first argument is the fltk::Labeltype_ itself, this allows access to the `data` value. Next is the text string. The next four integers are the x,y,w,h to fit the label into. The next is the color to fill the interior of the letters with. The last argument is a set of bitflags. The following values are of use to the labeltypes, ignore any other bits that are on:

- `fltk::ALIGN_TOP` - align the label at the top of the widget.
- `fltk::ALIGN_BOTTOM` - align the label at the bottom of the widget.
- `fltk::ALIGN_LEFT` - align the label to the left of the widget.
- `fltk::ALIGN_RIGHT` - align the label to the right of the widget.
- `fltk::ALIGN_CLIP` - clip the label to the widget's bounding box.
- `fltk::ALIGN_WRAP` - wrap the label text as needed.
- `fltk::SHORTCUT_LABEL` - interpret `&x` to underscore under the next letter.
- `fltk::INACTIVE` - gray out the widget.
- `fltk::VALUE` - draw the label atop a pushed-in box (usually you can ignore this).
- `fltk::SELECTED` - draw the label atop a box with keyboard focus (usually you can ignore this).
- `fltk::HIGHLIGHT` - draw the label atop a highlighted box (usually you can ignore this).

The label should be drawn inside this bounding box. Ignore the setting of `fltk::ALIGN_INSIDE`. Outside labels are handled by the fltk::Group code by modifying the bounding box before this is called.

If none of the align flags are on you should center the label in the widget.

The function is not called if the label value is `NULL`.

#### const void* fltk::Labeltype_::data;

This is a pointer to arbitrary data used by `draw_()`. Often several labeltypes use the same `draw_()` but different data.

#### void fltk::Labeltype_::draw(const char* m, int x,int y,int w,int h,fltk::Color c, fltk::Flags f=0) const

This is the public method to draw the label. It is simply an inline function to call `draw_` with this labeltype as the first argument.