FLTK 1.3.9: Enumerations.H File Reference

FLTK 1.3.9

Loading...
Searching...
No Matches
Enumerations.H File Reference

This file contains type definitions and general enumerations. More...

`#include <FL/abi-version.h>`
`#include "Fl_Export.H"`
`#include "fl_types.h"`

Go to the source code of this file.

## Macros
Mouse and Keyboard Events
    This and the following constants define the non-ASCII keys on the
    keyboard for FL_KEYBOARD and FL_SHORTCUT events.

    \todo       FL_Button and FL_key... constants could be structured better
        (use an enum or some doxygen grouping ?)

    \sa Fl::event_key() and Fl::get_key(int) (use ascii letters for all other keys):
#define | FL_Alt_L 0xffe9
| The left alt key.
#define | FL_Alt_R 0xffea
| The right alt key.
#define | FL_Back 0xEF26 /* Like back on a browser */
#define | FL_BackSpace 0xff08
| The backspace key.
#define | FL_Button 0xfee8
| A mouse button; use Fl_Button + n for mouse button n.
#define | FL_Caps_Lock 0xffe5
| The caps lock key.
#define | FL_Control_L 0xffe3
| The lefthand control key.
#define | FL_Control_R 0xffe4
| The righthand control key.
#define | FL_Delete 0xffff
| The delete key.
#define | FL_Down 0xff54
| The down arrow key.
#define | FL_Eisu 0xff2f
| The Eisu key of JIS keyboards.
#define | FL_End 0xff57
| The end key.
#define | FL_Enter 0xff0d
| The enter key.
#define | FL_Escape 0xff1b
| The escape key.
#define | FL_F 0xffbd
| One of the function keys; use FL_F + n for function key n.
#define | FL_F_Last 0xffe0
| The last function key; use to range-check function keys.
#define | FL_Favorites 0xEF30 /* Show favorite locations */
#define | FL_Forward 0xEF27 /* Like forward on a browser */
#define | FL_Help 0xff68
| The 'help' key on Mac keyboards.
#define | FL_Home 0xff50
| The home key.
#define | FL_Home_Page 0xEF18 /* Display user's home page */
#define | FL_Insert 0xff63
| The insert key.
#define | FL_Iso_Key 0xff0c
| The additional key of ISO keyboards.
#define | FL_JIS_Underscore 0xff31
| The underscore key of JIS keyboards.
#define | FL_Kana 0xff2e
| The Kana key of JIS keyboards.
#define | FL_KP 0xff80
| One of the keypad numbers; use FL_KP + 'n' for digit n.
#define | FL_KP_Enter 0xff8d
| The enter key on the keypad, same as Fl_KP+'\r'.
#define | FL_KP_Last 0xffbd
| The last keypad key; use to range-check keypad.
#define | FL_Left 0xff51
| The left arrow key.
#define | FL_Mail 0xEF19 /* Invoke user's mail program */
#define | FL_Media_Next 0xEF17 /* Next track */
#define | FL_Media_Play 0xEF14 /* Start playing of audio */
#define | FL_Media_Prev 0xEF16 /* Previous track */
#define | FL_Media_Stop 0xEF15 /* Stop playing audio */
#define | FL_Menu 0xff67
| The menu key.
#define | FL_Meta_L 0xffe7
| The left meta/Windows key.
#define | FL_Meta_R 0xffe8
| The right meta/Windows key.
#define | FL_Num_Lock 0xff7f
| The num lock key.
#define | FL_Page_Down 0xff56
| The page-down key.
#define | FL_Page_Up 0xff55
| The page-up key.
#define | FL_Pause 0xff13
| The pause key.
#define | FL_Print 0xff61
| The print (or print-screen) key.
#define | FL_Refresh 0xEF29 /* Refresh the page */
#define | FL_Right 0xff53
| The right arrow key.
#define | FL_Scroll_Lock 0xff14
| The scroll lock key.
#define | FL_Search 0xEF1B /* Search */
#define | FL_Shift_L 0xffe1
| The lefthand shift key.
#define | FL_Shift_R 0xffe2
| The righthand shift key.
#define | FL_Sleep 0xEF2F /* Put system to sleep */
#define | FL_Stop 0xEF28 /* Stop current operation */
#define | FL_Tab 0xff09
| The tab key.
#define | FL_Up 0xff52
| The up arrow key.
#define | FL_Volume_Down 0xEF11 /* Volume control down */
#define | FL_Volume_Mute 0xEF12 /* Mute sound from the system */
#define | FL_Volume_Up 0xEF13 /* Volume control up */
#define | FL_Yen 0xff30
| The Yen key of JIS keyboards.
Mouse Buttons
    These constants define the button numbers for FL_PUSH and FL_RELEASE events.

    \sa Fl::event_button()
#define | FL_LEFT_MOUSE 1
| The left mouse button.
#define | FL_MIDDLE_MOUSE 2
| The middle mouse button.
#define | FL_RIGHT_MOUSE 3
| The right mouse button.
Event States
    The following constants define bits in the Fl::event_state() value.
#define | FL_ALT 0x00080000
| One of the alt keys is down.
#define | FL_BUTTON(n) (0x00800000<<(n))
| Mouse button n (n > 0) is pushed.
#define | FL_BUTTON1 0x01000000
| Mouse button 1 is pushed.
#define | FL_BUTTON2 0x02000000
| Mouse button 2 is pushed.
#define | FL_BUTTON3 0x04000000
| Mouse button 3 is pushed.
#define | FL_BUTTONS 0x7f000000
| Any mouse button is pushed.
#define | FL_CAPS_LOCK 0x00020000
| The caps lock is on.
#define | FL_COMMAND FL_CTRL
| An alias for FL_CTRL on WIN32 and X11, or FL_META on MacOS X.
#define | FL_CONTROL FL_META
| An alias for FL_META on WIN32 and X11, or FL_CTRL on MacOS X.
#define | FL_CTRL 0x00040000
| One of the ctrl keys is down.
#define | FL_KEY_MASK 0x0000ffff
| All keys are 16 bit for now.
#define | FL_META 0x00400000
| One of the meta/Windows keys is down.
#define | FL_NUM_LOCK 0x00100000
| The num lock is on.
#define | FL_SCROLL_LOCK 0x00800000
| The scroll lock is on.
#define | FL_SHIFT 0x00010000
| One of the shift keys is down.

## Enumerations
When Conditions
enum | Fl_When { FL_WHEN_NEVER = 0 , FL_WHEN_CHANGED = 1 , FL_WHEN_NOT_CHANGED = 2 , FL_WHEN_RELEASE = 4 , FL_WHEN_RELEASE_ALWAYS = 6 , FL_WHEN_ENTER_KEY = 8 , FL_WHEN_ENTER_KEY_ALWAYS =10 , FL_WHEN_ENTER_KEY_CHANGED =11 }
| These constants determine when a callback is performed. More...

## Version Numbers
FLTK defines some constants to help the programmer to find out, for which FLTK version a program is compiled. The following constants are defined:
#define | FL_ABI_VERSION FL_API_VERSION
| The FLTK ABI (Application Binary Interface) version number as an int.
#define | FL_API_VERSION (FL_MAJOR_VERSION*10000 + FL_MINOR_VERSION*100 + FL_PATCH_VERSION)
| The FLTK API version number as an int.
enum | Fl_Event { FL_NO_EVENT = 0 , FL_PUSH = 1 , FL_RELEASE = 2 , FL_ENTER = 3 , FL_LEAVE = 4 , FL_DRAG = 5 , FL_FOCUS = 6 , FL_UNFOCUS = 7 , FL_KEYDOWN = 8 , FL_KEYBOARD = 8 , FL_KEYUP = 9 , FL_CLOSE = 10 , FL_MOVE = 11 , FL_SHORTCUT = 12 , FL_DEACTIVATE = 13 , FL_ACTIVATE = 14 , FL_HIDE = 15 , FL_SHOW = 16 , FL_PASTE = 17 , FL_SELECTIONCLEAR = 18 , FL_MOUSEWHEEL = 19 , FL_DND_ENTER = 20 , FL_DND_DRAG = 21 , FL_DND_LEAVE = 22 , FL_DND_RELEASE = 23 , FL_SCREEN_CONFIGURATION_CHANGED = 24 , FL_FULLSCREEN = 25 , FL_ZOOM_GESTURE = 26 }
| Every time a user moves the mouse pointer, clicks a button, or presses a key, an event is generated and sent to your application. More...
#define | FL_MAJOR_VERSION 1
| The major release version of this FLTK library.
#define | FL_MINOR_VERSION 3
| The minor release version for this library.
#define | FL_PATCH_VERSION 9
| The patch version for this library.
#define | FL_VERSION
| The FLTK version number as a double.
#define | FLTK_ABI_VERSION FL_ABI_VERSION

## Box Types
FLTK standard box types This enum defines the standard box types included with FLTK. FL_NO_BOX means nothing is drawn at all, so whatever is already on the screen remains. The FL_..._FRAME types only draw their edges, leaving the interior unchanged. The blue color in Figure 1 is the area that is not drawn by the frame types. Figure 1: FLTK standard box types Todo Description of boxtypes is incomplete. See below for the defined enum Fl_Boxtype. See also src/Fl_get_system_colors.cxx
Fl_Boxtype | fl_box (Fl_Boxtype b)
| Get the filled version of a frame.
enum | Fl_Boxtype { FL_NO_BOX = 0 , FL_FLAT_BOX , FL_UP_BOX , FL_DOWN_BOX , FL_UP_FRAME , FL_DOWN_FRAME , FL_THIN_UP_BOX , FL_THIN_DOWN_BOX , FL_THIN_UP_FRAME , FL_THIN_DOWN_FRAME , FL_ENGRAVED_BOX , FL_EMBOSSED_BOX , FL_ENGRAVED_FRAME , FL_EMBOSSED_FRAME , FL_BORDER_BOX , _FL_SHADOW_BOX , FL_BORDER_FRAME , _FL_SHADOW_FRAME , _FL_ROUNDED_BOX , _FL_RSHADOW_BOX , _FL_ROUNDED_FRAME , _FL_RFLAT_BOX , _FL_ROUND_UP_BOX , _FL_ROUND_DOWN_BOX , _FL_DIAMOND_UP_BOX , _FL_DIAMOND_DOWN_BOX , _FL_OVAL_BOX , _FL_OSHADOW_BOX , _FL_OVAL_FRAME , _FL_OFLAT_BOX , _FL_PLASTIC_UP_BOX , _FL_PLASTIC_DOWN_BOX , _FL_PLASTIC_UP_FRAME , _FL_PLASTIC_DOWN_FRAME , _FL_PLASTIC_THIN_UP_BOX , _FL_PLASTIC_THIN_DOWN_BOX , _FL_PLASTIC_ROUND_UP_BOX , _FL_PLASTIC_ROUND_DOWN_BOX , _FL_GTK_UP_BOX , _FL_GTK_DOWN_BOX , _FL_GTK_UP_FRAME , _FL_GTK_DOWN_FRAME , _FL_GTK_THIN_UP_BOX , _FL_GTK_THIN_DOWN_BOX , _FL_GTK_THIN_UP_FRAME , _FL_GTK_THIN_DOWN_FRAME , _FL_GTK_ROUND_UP_BOX , _FL_GTK_ROUND_DOWN_BOX , _FL_GLEAM_UP_BOX , _FL_GLEAM_DOWN_BOX , _FL_GLEAM_UP_FRAME , _FL_GLEAM_DOWN_FRAME , _FL_GLEAM_THIN_UP_BOX , _FL_GLEAM_THIN_DOWN_BOX , _FL_GLEAM_ROUND_UP_BOX , _FL_GLEAM_ROUND_DOWN_BOX , FL_FREE_BOXTYPE }
#define | FL_CIRCLE_BOX FL_ROUND_DOWN_BOX
FL_EXPORT Fl_Boxtype | fl_define_FL_DIAMOND_BOX ()
Fl_Labeltype FL_EXPORT | fl_define_FL_EMBOSSED_LABEL ()
Fl_Labeltype FL_EXPORT | fl_define_FL_ENGRAVED_LABEL ()
FL_EXPORT Fl_Boxtype | fl_define_FL_GLEAM_UP_BOX ()
FL_EXPORT Fl_Boxtype | fl_define_FL_GTK_UP_BOX ()
FL_EXPORT Fl_Boxtype | fl_define_FL_OVAL_BOX ()
FL_EXPORT Fl_Boxtype | fl_define_FL_PLASTIC_UP_BOX ()
FL_EXPORT Fl_Boxtype | fl_define_FL_RFLAT_BOX ()
FL_EXPORT Fl_Boxtype | fl_define_FL_ROUND_UP_BOX ()
FL_EXPORT Fl_Boxtype | fl_define_FL_ROUNDED_BOX ()
FL_EXPORT Fl_Boxtype | fl_define_FL_RSHADOW_BOX ()
FL_EXPORT Fl_Boxtype | fl_define_FL_SHADOW_BOX ()
Fl_Labeltype FL_EXPORT | fl_define_FL_SHADOW_LABEL ()
#define | FL_DIAMOND_BOX FL_DIAMOND_DOWN_BOX
#define | FL_DIAMOND_DOWN_BOX (Fl_Boxtype)(fl_define_FL_DIAMOND_BOX()+1)
#define | FL_DIAMOND_UP_BOX fl_define_FL_DIAMOND_BOX()
Fl_Boxtype | fl_down (Fl_Boxtype b)
| Get the "pressed" or "down" version of a box.
#define | FL_EMBOSSED_LABEL fl_define_FL_EMBOSSED_LABEL()
#define | FL_ENGRAVED_LABEL fl_define_FL_ENGRAVED_LABEL()
Fl_Boxtype | fl_frame (Fl_Boxtype b)
| Get the unfilled, frame only version of a box.
#define | FL_FRAME FL_ENGRAVED_FRAME
#define | FL_FRAME_BOX FL_ENGRAVED_BOX
#define | FL_GLEAM_DOWN_BOX (Fl_Boxtype)(fl_define_FL_GLEAM_UP_BOX()+1)
#define | FL_GLEAM_DOWN_FRAME (Fl_Boxtype)(fl_define_FL_GLEAM_UP_BOX()+3)
#define | FL_GLEAM_ROUND_DOWN_BOX (Fl_Boxtype)(fl_define_FL_GLEAM_UP_BOX()+7)
#define | FL_GLEAM_ROUND_UP_BOX (Fl_Boxtype)(fl_define_FL_GLEAM_UP_BOX()+6)
#define | FL_GLEAM_THIN_DOWN_BOX (Fl_Boxtype)(fl_define_FL_GLEAM_UP_BOX()+5)
#define | FL_GLEAM_THIN_UP_BOX (Fl_Boxtype)(fl_define_FL_GLEAM_UP_BOX()+4)
#define | FL_GLEAM_UP_BOX fl_define_FL_GLEAM_UP_BOX()
#define | FL_GLEAM_UP_FRAME (Fl_Boxtype)(fl_define_FL_GLEAM_UP_BOX()+2)
#define | FL_GTK_DOWN_BOX (Fl_Boxtype)(fl_define_FL_GTK_UP_BOX()+1)
#define | FL_GTK_DOWN_FRAME (Fl_Boxtype)(fl_define_FL_GTK_UP_BOX()+3)
#define | FL_GTK_ROUND_DOWN_BOX (Fl_Boxtype)(fl_define_FL_GTK_UP_BOX()+9)
#define | FL_GTK_ROUND_UP_BOX (Fl_Boxtype)(fl_define_FL_GTK_UP_BOX()+8)
#define | FL_GTK_THIN_DOWN_BOX (Fl_Boxtype)(fl_define_FL_GTK_UP_BOX()+5)
#define | FL_GTK_THIN_DOWN_FRAME (Fl_Boxtype)(fl_define_FL_GTK_UP_BOX()+7)
#define | FL_GTK_THIN_UP_BOX (Fl_Boxtype)(fl_define_FL_GTK_UP_BOX()+4)
#define | FL_GTK_THIN_UP_FRAME (Fl_Boxtype)(fl_define_FL_GTK_UP_BOX()+6)
#define | FL_GTK_UP_BOX fl_define_FL_GTK_UP_BOX()
#define | FL_GTK_UP_FRAME (Fl_Boxtype)(fl_define_FL_GTK_UP_BOX()+2)
enum | Fl_Labeltype { FL_NORMAL_LABEL = 0 , FL_NO_LABEL , _FL_SHADOW_LABEL , _FL_ENGRAVED_LABEL , _FL_EMBOSSED_LABEL , _FL_MULTI_LABEL , _FL_ICON_LABEL , _FL_IMAGE_LABEL , FL_FREE_LABELTYPE }
| The labeltype() method sets the type of the label. More...
#define | FL_OFLAT_BOX (Fl_Boxtype)(fl_define_FL_OVAL_BOX()+3)
#define | FL_OSHADOW_BOX (Fl_Boxtype)(fl_define_FL_OVAL_BOX()+1)
#define | FL_OVAL_BOX fl_define_FL_OVAL_BOX()
#define | FL_OVAL_FRAME (Fl_Boxtype)(fl_define_FL_OVAL_BOX()+2)
#define | FL_PLASTIC_DOWN_BOX (Fl_Boxtype)(fl_define_FL_PLASTIC_UP_BOX()+1)
#define | FL_PLASTIC_DOWN_FRAME (Fl_Boxtype)(fl_define_FL_PLASTIC_UP_BOX()+3)
#define | FL_PLASTIC_ROUND_DOWN_BOX (Fl_Boxtype)(fl_define_FL_PLASTIC_UP_BOX()+7)
#define | FL_PLASTIC_ROUND_UP_BOX (Fl_Boxtype)(fl_define_FL_PLASTIC_UP_BOX()+6)
#define | FL_PLASTIC_THIN_DOWN_BOX (Fl_Boxtype)(fl_define_FL_PLASTIC_UP_BOX()+5)
#define | FL_PLASTIC_THIN_UP_BOX (Fl_Boxtype)(fl_define_FL_PLASTIC_UP_BOX()+4)
#define | FL_PLASTIC_UP_BOX fl_define_FL_PLASTIC_UP_BOX()
#define | FL_PLASTIC_UP_FRAME (Fl_Boxtype)(fl_define_FL_PLASTIC_UP_BOX()+2)
#define | FL_RFLAT_BOX fl_define_FL_RFLAT_BOX()
#define | FL_ROUND_DOWN_BOX (Fl_Boxtype)(fl_define_FL_ROUND_UP_BOX()+1)
#define | FL_ROUND_UP_BOX fl_define_FL_ROUND_UP_BOX()
#define | FL_ROUNDED_BOX fl_define_FL_ROUNDED_BOX()
#define | FL_ROUNDED_FRAME (Fl_Boxtype)(fl_define_FL_ROUNDED_BOX()+2)
#define | FL_RSHADOW_BOX fl_define_FL_RSHADOW_BOX()
#define | FL_SHADOW_BOX fl_define_FL_SHADOW_BOX()
#define | FL_SHADOW_FRAME (Fl_Boxtype)(fl_define_FL_SHADOW_BOX()+2)
#define | FL_SHADOW_LABEL fl_define_FL_SHADOW_LABEL()
#define | FL_SYMBOL_LABEL FL_NORMAL_LABEL
| Sets the current label type and return its corresponding Fl_Labeltype value.

## Colors
The Fl_Color type holds an FLTK color value. Colors are either 8-bit indexes into a virtual colormap or 24-bit RGB color values. (See Colors for the default FLTK colormap) Color indices occupy the lower 8 bits of the value, while RGB colors occupy the upper 24 bits, for a byte organization of RGBI.
     Fl_Color => 0xrrggbbii
                    | | | |
                    | | | +--- index between 0 and 255
                    | | +----- blue color component (8 bit)
                    | +------- green component (8 bit)
                    +--------- red component (8 bit)
A color can have either an index or an rgb value. Colors with rgb set and an index >0 are reserved for special use.
const Fl_Color | FL_BACKGROUND2_COLOR = 7
| the default background color for text, list, and valuator widgets
const Fl_Color | FL_BACKGROUND_COLOR = 49
const Fl_Color | FL_BLACK = 56
const Fl_Color | FL_BLUE = 216
typedef unsigned int | Fl_Color
| An FLTK color value; see also Colors
FL_EXPORT Fl_Color | fl_color_average (Fl_Color c1, Fl_Color c2, float weight)
| Returns the weighted average color between the two given colors.
#define | FL_COLOR_CUBE (Fl_Color)56
Fl_Color | fl_color_cube (int r, int g, int b)
| Returns a color out of the color cube.
FL_EXPORT Fl_Color | fl_contrast (Fl_Color fg, Fl_Color bg)
| Returns a color that contrasts with the background color.
const Fl_Color | FL_CYAN = 223
const Fl_Color | FL_DARK1 = 47
const Fl_Color | FL_DARK2 = 45
const Fl_Color | FL_DARK3 = 39
const Fl_Color | FL_DARK_BLUE = 136
const Fl_Color | FL_DARK_CYAN = 140
const Fl_Color | FL_DARK_GREEN = 60
const Fl_Color | FL_DARK_MAGENTA = 152
const Fl_Color | FL_DARK_RED = 72
const Fl_Color | FL_DARK_YELLOW = 76
Fl_Color | fl_darker (Fl_Color c)
| Returns a darker version of the specified color.
const Fl_Color | FL_FOREGROUND_COLOR = 0
| the default foreground color (0) used for labels and text
#define | FL_FREE_COLOR (Fl_Color)16
#define | FL_GRAY FL_BACKGROUND_COLOR
const Fl_Color | FL_GRAY0 = 32
#define | FL_GRAY_RAMP (Fl_Color)32
Fl_Color | fl_gray_ramp (int i)
| Returns a gray color value from black (i == 0) to white (i == FL_NUM_GRAY - 1).
const Fl_Color | FL_GREEN = 63
FL_EXPORT Fl_Color | fl_inactive (Fl_Color c)
| Returns the inactive, dimmed version of the given color.
const Fl_Color | FL_INACTIVE_COLOR = 8
| the inactive foreground color
const Fl_Color | FL_LIGHT1 = 50
const Fl_Color | FL_LIGHT2 = 52
const Fl_Color | FL_LIGHT3 = 54
Fl_Color | fl_lighter (Fl_Color c)
| Returns a lighter version of the specified color.
const Fl_Color | FL_MAGENTA = 248
#define | FL_NUM_BLUE 5
#define | FL_NUM_FREE_COLOR 16
#define | FL_NUM_GRAY 24
#define | FL_NUM_GREEN 8
#define | FL_NUM_RED 5
const Fl_Color | FL_RED = 88
Fl_Color | fl_rgb_color (uchar g)
| Returns the 24-bit color value closest to `g` (grayscale).
Fl_Color | fl_rgb_color (uchar r, uchar g, uchar b)
| Returns the 24-bit color value closest to `r`, `g`, `b`.
const Fl_Color | FL_SELECTION_COLOR = 15
| the default selection/highlight color
const Fl_Color | FL_WHITE = 255
const Fl_Color | FL_YELLOW = 95

## Cursors
enum | { FL_READ = 1 , FL_WRITE = 4 , FL_EXCEPT = 8 }
| FD "when" conditions. More...
enum | Fl_Cursor { FL_CURSOR_DEFAULT = 0 , FL_CURSOR_ARROW = 35 , FL_CURSOR_CROSS = 66 , FL_CURSOR_WAIT = 76 , FL_CURSOR_INSERT = 77 , FL_CURSOR_HAND = 31 , FL_CURSOR_HELP = 47 , FL_CURSOR_MOVE = 27 , FL_CURSOR_NS = 78 , FL_CURSOR_WE = 79 , FL_CURSOR_NWSE = 80 , FL_CURSOR_NESW = 81 , FL_CURSOR_N = 70 , FL_CURSOR_NE = 69 , FL_CURSOR_E = 49 , FL_CURSOR_SE = 8 , FL_CURSOR_S = 9 , FL_CURSOR_SW = 7 , FL_CURSOR_W = 36 , FL_CURSOR_NW = 68 , FL_CURSOR_NONE =255 }
| The following constants define the mouse cursors that are available in FLTK. More...
enum | Fl_Damage { FL_DAMAGE_CHILD = 0x01 , FL_DAMAGE_EXPOSE = 0x02 , FL_DAMAGE_SCROLL = 0x04 , FL_DAMAGE_OVERLAY = 0x08 , FL_DAMAGE_USER1 = 0x10 , FL_DAMAGE_USER2 = 0x20 , FL_DAMAGE_ALL = 0x80 }
| Damage masks. More...
#define | FL_IMAGE_WITH_ALPHA 0x40000000
enum | Fl_Mode { FL_RGB = 0 , FL_INDEX = 1 , FL_SINGLE = 0 , FL_DOUBLE = 2 , FL_ACCUM = 4 , FL_ALPHA = 8 , FL_DEPTH = 16 , FL_STENCIL = 32 , FL_RGB8 = 64 , FL_MULTISAMPLE = 128 , FL_STEREO = 256 , FL_FAKE_SINGLE = 512 , FL_OPENGL3 = 1024 }
| visual types and Fl_Gl_Window::mode() (values match Glut)

## Alignment Flags
Flags to control the label alignment. This controls how the label is displayed next to or inside the widget. The default value is FL_ALIGN_CENTER (0) for most widgets, which centers the label inside the widget. Flags can be or'd to achieve a combination of alignments, but there are some "magic values" (e.g. combinations of TOP and BOTTOM and of LEFT and RIGHT) that have special meanings (see below). For instance: FL_ALIGN_TOP_LEFT == (FL_ALIGN_TOP|FL_ALIGN_LEFT) != FL_ALIGN_LEFT_TOP. Outside alignments (FL_ALIGN_INSIDE is not set): TOP_LEFT TOP TOP_RIGHT +---------------------------------+ LEFT_TOP| |RIGHT_TOP | | LEFT| CENTER |RIGHT | | LEFT_BOTTOM| |RIGHT_BOTTOM +---------------------------------+ BOTTOM_LEFT BOTTOM BOTTOM_RIGHT Inside alignments (FL_ALIGN_INSIDE is set): +---------------------------------+ |TOP_LEFT TOP TOP_RIGHT| | | |LEFT CENTER RIGHT| | | |BOTTOM_LEFT BOTTOM BOTTOM_RIGHT| +---------------------------------+ FL_ALIGN_INSIDE const Fl_Align FL_ALIGN_INSIDE Draw the label inside of the widget. Definition Enumerations.H:841 See also FL_ALIGN_CENTER, etc.
typedef unsigned | Fl_Align
| FLTK type for alignment control.
const Fl_Align | FL_ALIGN_BOTTOM = (Fl_Align)2
| Align the label at the bottom of the widget.
const Fl_Align | FL_ALIGN_BOTTOM_LEFT = FL_ALIGN_BOTTOM | FL_ALIGN_LEFT
const Fl_Align | FL_ALIGN_BOTTOM_RIGHT = FL_ALIGN_BOTTOM | FL_ALIGN_RIGHT
const Fl_Align | FL_ALIGN_CENTER = (Fl_Align)0
| Align the label horizontally in the middle.
const Fl_Align | FL_ALIGN_CLIP = (Fl_Align)64
| All parts of the label that are lager than the widget will not be drawn .
const Fl_Align | FL_ALIGN_IMAGE_BACKDROP = (Fl_Align)0x0200
| If the label contains an image, draw the image or deimage in the background.
const Fl_Align | FL_ALIGN_IMAGE_MASK = 0x0320
const Fl_Align | FL_ALIGN_IMAGE_NEXT_TO_TEXT = (Fl_Align)0x0100
| If the label contains an image, draw the text to the right of the image.
const Fl_Align | FL_ALIGN_IMAGE_OVER_TEXT = (Fl_Align)0x0000
| If the label contains an image, draw the text below the image.
const Fl_Align | FL_ALIGN_INSIDE = (Fl_Align)16
| Draw the label inside of the widget.
const Fl_Align | FL_ALIGN_LEFT = (Fl_Align)4
| Align the label at the left of the widget.
const Fl_Align | FL_ALIGN_LEFT_BOTTOM = 0x000d
const Fl_Align | FL_ALIGN_LEFT_TOP = 0x0007
const Fl_Align | FL_ALIGN_NOWRAP = (Fl_Align)0
const Fl_Align | FL_ALIGN_POSITION_MASK = 0x000f
const Fl_Align | FL_ALIGN_RIGHT = (Fl_Align)8
| Align the label to the right of the widget.
const Fl_Align | FL_ALIGN_RIGHT_BOTTOM = 0x000e
const Fl_Align | FL_ALIGN_RIGHT_TOP = 0x000b
const Fl_Align | FL_ALIGN_TEXT_NEXT_TO_IMAGE = (Fl_Align)0x0120
| If the label contains an image, draw the text to the left of the image.
const Fl_Align | FL_ALIGN_TEXT_OVER_IMAGE = (Fl_Align)0x0020
| If the label contains an image, draw the text on top of the image.
const Fl_Align | FL_ALIGN_TOP = (Fl_Align)1
| Align the label at the top of the widget.
const Fl_Align | FL_ALIGN_TOP_LEFT = FL_ALIGN_TOP | FL_ALIGN_LEFT
const Fl_Align | FL_ALIGN_TOP_RIGHT = FL_ALIGN_TOP | FL_ALIGN_RIGHT
const Fl_Align | FL_ALIGN_WRAP = (Fl_Align)128
| Wrap text that does not fit the width of the widget.

## Font Numbers
The following constants define the standard FLTK fonts:
const Fl_Font | FL_BOLD = 1
| add this to helvetica, courier, or times
const Fl_Font | FL_BOLD_ITALIC = 3
| add this to helvetica, courier, or times
const Fl_Font | FL_COURIER = 4
| Courier normal.
const Fl_Font | FL_COURIER_BOLD = 5
| Courier bold.
const Fl_Font | FL_COURIER_BOLD_ITALIC = 7
| Courier bold-italic.
const Fl_Font | FL_COURIER_ITALIC = 6
| Courier italic.
typedef int | Fl_Font
| A font number is an index into the internal font table.
typedef int | Fl_Fontsize
| Size of a font in pixels.
const Fl_Font | FL_FREE_FONT = 16
| first one to allocate
const Fl_Font | FL_HELVETICA = 0
| Helvetica (or Arial) normal (0)
const Fl_Font | FL_HELVETICA_BOLD = 1
| Helvetica (or Arial) bold.
const Fl_Font | FL_HELVETICA_BOLD_ITALIC = 3
| Helvetica (or Arial) bold-oblique.
const Fl_Font | FL_HELVETICA_ITALIC = 2
| Helvetica (or Arial) oblique.
const Fl_Font | FL_ITALIC = 2
| add this to helvetica, courier, or times
FL_EXPORT Fl_Fontsize | FL_NORMAL_SIZE
| normal font size
const Fl_Font | FL_SCREEN = 13
| Default monospaced screen font.
const Fl_Font | FL_SCREEN_BOLD = 14
| Default monospaced bold screen font.
const Fl_Font | FL_SYMBOL = 12
| Standard symbol font.
const Fl_Font | FL_TIMES = 8
| Times roman.
const Fl_Font | FL_TIMES_BOLD = 9
| Times roman bold.
const Fl_Font | FL_TIMES_BOLD_ITALIC = 11
| Times roman bold-italic.
const Fl_Font | FL_TIMES_ITALIC = 10
| Times roman italic.
const Fl_Font | FL_ZAPF_DINGBATS = 15
| Zapf-dingbats font.

## Detailed Description

This file contains type definitions and general enumerations.

## Macro Definition Documentation

## ◆ FL_ABI_VERSION

#define FL_ABI_VERSION FL_API_VERSION

The FLTK ABI (Application Binary Interface) version number as an int.

FL_ABI_VERSION is an int that describes the major, minor, and patch ABI version numbers in the same format as FL_API_VERSION.

The ABI version number `FL_ABI_VERSION` is usually the same as the API version `FL_API_VERSION` with the last two digits set to '00'.

FLTK retains the ABI (Application Binary Interface) during patch releases of the same major and minor versions. Examples:

      FLTK Version  FL_API_VERSION  FL_ABI_VERSION  FL_VERSION (deprecated)
        1.3.0          10300           10300           1.0300
        1.3.4          10304           10300           1.0304

Version 1.2.3 is actually stored as 10203 to allow for more than 9 minor and patch releases.

The FL_MAJOR_VERSION, FL_MINOR_VERSION, and FL_PATCH_VERSION constants give the integral values for the major, minor, and patch releases respectively.

To enable new ABI-breaking features in patch releases you can configure FLTK to use a higher FL_ABI_VERSION.

See also
  README.abi-version.txt

## ◆ FL_API_VERSION

#define FL_API_VERSION (FL_MAJOR_VERSION*10000 + FL_MINOR_VERSION*100 + FL_PATCH_VERSION)

The FLTK API version number as an int.

FL_API_VERSION is an int that describes the major, minor, and patch version numbers.

Version 1.2.3 is actually stored as 10203 to allow for more than 9 minor and patch releases.

The FL_MAJOR_VERSION, FL_MINOR_VERSION, and FL_PATCH_VERSION constants give the integral values for the major, minor, and patch releases respectively.

Note
  FL_API_VERSION is intended to replace the deprecated double FL_VERSION.

See also
  Fl::api_version()

## ◆ FL_MAJOR_VERSION

#define FL_MAJOR_VERSION 1

The major release version of this FLTK library.

See also
  FL_VERSION

## ◆ FL_MINOR_VERSION

#define FL_MINOR_VERSION 3

The minor release version for this library.

FLTK remains mostly source-code compatible between minor version changes.

## ◆ FL_PATCH_VERSION

#define FL_PATCH_VERSION 9

The patch version for this library.

FLTK remains binary compatible between patches.

## ◆ FL_VERSION

#define FL_VERSION

Value:
( (double)FL_MAJOR_VERSION + \
(double)FL_MINOR_VERSION * 0.01 + \
(double)FL_PATCH_VERSION * 0.0001 )
FL_MAJOR_VERSION
#define FL_MAJOR_VERSION
The major release version of this FLTK library.
Definition Enumerations.H:62
FL_MINOR_VERSION
#define FL_MINOR_VERSION
The minor release version for this library.
Definition Enumerations.H:69
FL_PATCH_VERSION
#define FL_PATCH_VERSION
The patch version for this library.
Definition Enumerations.H:76

The FLTK version number as a double.

FL_VERSION is a double that describes the major, minor, and patch version numbers.

Version 1.2.3 is actually stored as 1.0203 to allow for more than 9 minor and patch releases.

Deprecated
  This `double` version number is retained for compatibility with existing program code. New code should use int FL_API_VERSION instead. FL_VERSION is deprecated because comparisons of floating point values may fail due to rounding errors. However, there are currently no plans to remove this deprecated constant.

FL_VERSION is equivalent to (double)FL_API_VERSION / 10000.

See also
  Fl::version() (deprecated as well)
  FL_API_VERSION
  Fl::api_version()

## Typedef Documentation

## ◆ Fl_Fontsize

typedef int Fl_Fontsize

Size of a font in pixels.

This is the approximate height of a font in pixels.

## Enumeration Type Documentation

## ◆ anonymous enum

anonymous enum

FD "when" conditions.

Enumerator
FL_READ | Call the callback when there is data to be read.
FL_WRITE | Call the callback when data can be written without blocking.
FL_EXCEPT | Call the callback if an exception occurs on the file.

## ◆ Fl_Boxtype

enum Fl_Boxtype

Enumerator
FL_NO_BOX | nothing is drawn at all, this box is invisible
FL_FLAT_BOX | a flat box
FL_UP_BOX | see figure 1
FL_DOWN_BOX | see figure 1
FL_UP_FRAME | see figure 1
FL_DOWN_FRAME | see figure 1
FL_THIN_UP_BOX | see figure 1
FL_THIN_DOWN_BOX | see figure 1
FL_THIN_UP_FRAME | see figure 1
FL_THIN_DOWN_FRAME | see figure 1
FL_ENGRAVED_BOX | see figure 1
FL_EMBOSSED_BOX | see figure 1
FL_ENGRAVED_FRAME | see figure 1
FL_EMBOSSED_FRAME | see figure 1
FL_BORDER_BOX | see figure 1
_FL_SHADOW_BOX | see figure 1
FL_BORDER_FRAME | see figure 1
_FL_SHADOW_FRAME | see figure 1
_FL_ROUNDED_BOX | see figure 1
_FL_RSHADOW_BOX | see figure 1
_FL_ROUNDED_FRAME | see figure 1
_FL_RFLAT_BOX | see figure 1
_FL_ROUND_UP_BOX | see figure 1
_FL_ROUND_DOWN_BOX | see figure 1
_FL_DIAMOND_UP_BOX | see figure 1
_FL_DIAMOND_DOWN_BOX | see figure 1
_FL_OVAL_BOX | see figure 1
_FL_OSHADOW_BOX | see figure 1
_FL_OVAL_FRAME | see figure 1
_FL_OFLAT_BOX | see figure 1
_FL_PLASTIC_UP_BOX | plastic version of FL_UP_BOX
_FL_PLASTIC_DOWN_BOX | plastic version of FL_DOWN_BOX
_FL_PLASTIC_UP_FRAME | plastic version of FL_UP_FRAME
_FL_PLASTIC_DOWN_FRAME | plastic version of FL_DOWN_FRAME
_FL_PLASTIC_THIN_UP_BOX | plastic version of FL_THIN_UP_BOX
_FL_PLASTIC_THIN_DOWN_BOX | plastic version of FL_THIN_DOWN_BOX
_FL_PLASTIC_ROUND_UP_BOX | plastic version of FL_ROUND_UP_BOX
_FL_PLASTIC_ROUND_DOWN_BOX | plastic version of FL_ROUND_DOWN_BOX
_FL_GTK_UP_BOX | gtk+ version of FL_UP_BOX
_FL_GTK_DOWN_BOX | gtk+ version of FL_DOWN_BOX
_FL_GTK_UP_FRAME | gtk+ version of FL_UP_FRAME
_FL_GTK_DOWN_FRAME | gtk+ version of FL_DOWN_FRAME
_FL_GTK_THIN_UP_BOX | gtk+ version of FL_THIN_UP_BOX
_FL_GTK_THIN_DOWN_BOX | gtk+ version of FL_THIN_DOWN_BOX
_FL_GTK_THIN_UP_FRAME | gtk+ version of FL_THIN_UP_FRAME
_FL_GTK_THIN_DOWN_FRAME | gtk+ version of FL_THIN_DOWN_FRAME
_FL_GTK_ROUND_UP_BOX | gtk+ version of FL_ROUND_UP_BOX
_FL_GTK_ROUND_DOWN_BOX | gtk+ version of FL_ROUND_DOWN_BOX
_FL_GLEAM_UP_BOX | gleam version of FL_UP_BOX
_FL_GLEAM_DOWN_BOX | gleam version of FL_DOWN_BOX
_FL_GLEAM_UP_FRAME | gleam version of FL_UP_FRAME
_FL_GLEAM_DOWN_FRAME | gleam version of FL_DOWN_FRAME
_FL_GLEAM_THIN_UP_BOX | gleam version of FL_THIN_UP_BOX
_FL_GLEAM_THIN_DOWN_BOX | gleam version of FL_THIN_DOWN_BOX
_FL_GLEAM_ROUND_UP_BOX | gleam version of FL_ROUND_UP_BOX
_FL_GLEAM_ROUND_DOWN_BOX | gleam version of FL_ROUND_DOWN_BOX
FL_FREE_BOXTYPE | the first free box type for creation of new box types

## ◆ Fl_Cursor

enum Fl_Cursor

The following constants define the mouse cursors that are available in FLTK.

Cursors are provided by the system when available, or bitmaps built into FLTK as a fallback.

Todo
  enum Fl_Cursor needs maybe an image.

Enumerator
FL_CURSOR_DEFAULT | the default cursor, usually an arrow.
FL_CURSOR_ARROW | an arrow pointer.
FL_CURSOR_CROSS | crosshair.
FL_CURSOR_WAIT | busy indicator (e.g. hourglass).
FL_CURSOR_INSERT | I-beam.
FL_CURSOR_HAND | pointing hand.
FL_CURSOR_HELP | question mark pointer.
FL_CURSOR_MOVE | 4-pointed arrow or hand.
FL_CURSOR_NS | up/down resize.
FL_CURSOR_WE | left/right resize.
FL_CURSOR_NWSE | diagonal resize.
FL_CURSOR_NESW | diagonal resize.
FL_CURSOR_N | upwards resize.
FL_CURSOR_NE | upwards, right resize.
FL_CURSOR_E | rightwards resize.
FL_CURSOR_SE | downwards, right resize.
FL_CURSOR_S | downwards resize.
FL_CURSOR_SW | downwards, left resize.
FL_CURSOR_W | leftwards resize.
FL_CURSOR_NW | upwards, left resize.
FL_CURSOR_NONE | invisible.

## ◆ Fl_Damage

enum Fl_Damage

Damage masks.

Enumerator
FL_DAMAGE_CHILD | A child needs to be redrawn.
FL_DAMAGE_EXPOSE | The window was exposed.
FL_DAMAGE_SCROLL | The Fl_Scroll widget was scrolled.
FL_DAMAGE_OVERLAY | The overlay planes need to be redrawn.
FL_DAMAGE_USER1 | First user-defined damage bit.
FL_DAMAGE_USER2 | Second user-defined damage bit.
FL_DAMAGE_ALL | Everything needs to be redrawn.

## ◆ Fl_Event

enum Fl_Event

Every time a user moves the mouse pointer, clicks a button, or presses a key, an event is generated and sent to your application.

Events can also come from other programs like the window manager.

Events are identified by the integer argument passed to the Fl_Widget::handle() virtual method. Other information about the most recent event is stored in static locations and acquired by calling the Fl::event_*() methods. This static information remains valid until the next event is read from the window system, so it is ok to look at it outside of the handle() method.

Event numbers can be converted to their actual names using the fl_eventnames[] array defined in #include <FL/names.h>

See also
  Fl::event_text(), Fl::event_key(), class Fl::

Enumerator
FL_NO_EVENT | No event.
FL_PUSH | A mouse button has gone down with the mouse pointing at this widget. You can find out what button by calling Fl::event_button(). You find out the mouse position by calling Fl::event_x() and Fl::event_y(). A widget indicates that it "wants" the mouse click by returning non-zero from its Fl_Widget::handle() method. It will then become the Fl::pushed() widget and will get FL_DRAG and the matching FL_RELEASE events. If Fl_Widget::handle() returns zero then FLTK will try sending the FL_PUSH to another widget.
FL_RELEASE | A mouse button has been released. You can find out what button by calling Fl::event_button(). In order to receive the FL_RELEASE event, the widget must return non-zero when handling FL_PUSH.
FL_ENTER | The mouse has been moved to point at this widget. This can be used for highlighting feedback. If a widget wants to highlight or otherwise track the mouse, it indicates this by returning non-zero from its handle() method. It then becomes the Fl::belowmouse() widget and will receive FL_MOVE and FL_LEAVE events.
FL_LEAVE | The mouse has moved out of the widget. In order to receive the FL_LEAVE event, the widget must return non-zero when handling FL_ENTER.
FL_DRAG | The mouse has moved with a button held down. The current button state is in Fl::event_state(). The mouse position is in Fl::event_x() and Fl::event_y(). In order to receive FL_DRAG events, the widget must return non-zero when handling FL_PUSH.
FL_FOCUS | This indicates an attempt to give a widget the keyboard focus. If a widget wants the focus, it should change itself to display the fact that it has the focus, and return non-zero from its handle() method. It then becomes the Fl::focus() widget and gets FL_KEYDOWN, FL_KEYUP, and FL_UNFOCUS events. The focus will change either because the window manager changed which window gets the focus, or because the user tried to navigate using tab, arrows, or other keys. You can check Fl::event_key() to figure out why it moved. For navigation it will be the key pressed and for interaction with the window manager it will be zero.
FL_UNFOCUS | This event is sent to the previous Fl::focus() widget when another widget gets the focus or the window loses focus.
FL_KEYDOWN | A key was pressed (FL_KEYDOWN) or released (FL_KEYUP). Fl_KEYBOARD is a synonym for FL_KEYDOWN. The key can be found in Fl::event_key(). The text that the key should insert can be found with Fl::event_text() and its length is in Fl::event_length(). If you use the key handle() should return 1. If you return zero then FLTK assumes you ignored the key and will then attempt to send it to a parent widget. If none of them want it, it will change the event into a FL_SHORTCUT event. To receive FL_KEYBOARD events you must also respond to the FL_FOCUS and FL_UNFOCUS events. If you are writing a text-editing widget you may also want to call the Fl::compose() function to translate individual keystrokes into non-ASCII characters. FL_KEYUP events are sent to the widget that currently has focus. This is not necessarily the same widget that received the corresponding FL_KEYDOWN event because focus may have changed between events.
FL_KEYBOARD | Equivalent to FL_KEYDOWN. See also FL_KEYDOWN
FL_KEYUP | Key release event. See also FL_KEYDOWN
FL_CLOSE | The user clicked the close button of a window. This event is used internally only to trigger the callback of Fl_Window derived classed. The default callback closes the window calling Fl_Window::hide().
FL_MOVE | The mouse has moved without any mouse buttons held down. This event is sent to the Fl::belowmouse() widget. In order to receive FL_MOVE events, the widget must return non-zero when handling FL_ENTER.
FL_SHORTCUT | If the Fl::focus() widget is zero or ignores an FL_KEYBOARD event then FLTK tries sending this event to every widget it can, until one of them returns non-zero. FL_SHORTCUT is first sent to the Fl::belowmouse() widget, then its parents and siblings, and eventually to every widget in the window, trying to find an object that returns non-zero. FLTK tries really hard to not to ignore any keystrokes! You can also make "global" shortcuts by using Fl::add_handler(). A global shortcut will work no matter what windows are displayed or which one has the focus.
FL_DEACTIVATE | This widget is no longer active, due to Fl_Widget::deactivate() being called on it or one of its parents. Fl_Widget::active() may still be true after this, the widget is only active if Fl_Widget::active() is true on it and all its parents (use Fl_Widget::active_r() to check this).
FL_ACTIVATE | This widget is now active, due to Fl_Widget::activate() being called on it or one of its parents.
FL_HIDE | This widget is no longer visible, due to Fl_Widget::hide() being called on it or one of its parents, or due to a parent window being minimized. Fl_Widget::visible() may still be true after this, but the widget is visible only if visible() is true for it and all its parents (use Fl_Widget::visible_r() to check this).
FL_SHOW | This widget is visible again, due to Fl_Widget::show() being called on it or one of its parents, or due to a parent window being restored. Child Fl_Windows respond to this by actually creating the window if not done already, so if you subclass a window, be sure to pass FL_SHOW to the base class Fl_Widget::handle() method!
FL_PASTE | You should get this event some time after you call Fl::paste(). The contents of Fl::event_text() is the text to insert and the number of characters is in Fl::event_length().
FL_SELECTIONCLEAR | The Fl::selection_owner() will get this event before the selection is moved to another widget. This indicates that some other widget or program has claimed the selection. Motif programs used this to clear the selection indication. Most modern programs ignore this.
FL_MOUSEWHEEL | The user has moved the mouse wheel. The Fl::event_dx() and Fl::event_dy() methods can be used to find the amount to scroll horizontally and vertically.
FL_DND_ENTER | The mouse has been moved to point at this widget. A widget that is interested in receiving drag'n'drop data must return 1 to receive FL_DND_DRAG, FL_DND_LEAVE and FL_DND_RELEASE events.
FL_DND_DRAG | The mouse has been moved inside a widget while dragging data. A widget that is interested in receiving drag'n'drop data should indicate the possible drop position.
FL_DND_LEAVE | The mouse has moved out of the widget.
FL_DND_RELEASE | The user has released the mouse button dropping data into the widget. If the widget returns 1, it will receive the data in the immediately following FL_PASTE event.
FL_SCREEN_CONFIGURATION_CHANGED | The screen configuration (number, positions) was changed. Use Fl::add_handler() to be notified of this event.
FL_FULLSCREEN | The fullscreen state of the window has changed.
FL_ZOOM_GESTURE | The user has made a zoom/pinch/magnification gesture. The Fl::event_dy() method can be used to find magnification amount, Fl::event_x() and Fl::event_y() are set as well.

## ◆ Fl_Labeltype

enum Fl_Labeltype

The labeltype() method sets the type of the label.

The following standard label types are included:

Todo
  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()

Enumerator
FL_NORMAL_LABEL | draws the text (0)
FL_NO_LABEL | does nothing
_FL_SHADOW_LABEL | draws a drop shadow under the text
_FL_ENGRAVED_LABEL | draws edges as though the text is engraved
_FL_EMBOSSED_LABEL | draws edges as though the text is raised
_FL_MULTI_LABEL | draws a composite label See also Fl_Multi_Label
_FL_ICON_LABEL | draws the icon associated with the text
_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_When

enum Fl_When

These constants determine when a callback is performed.

See also
  Fl_Widget::when();

Todo
  doxygen comments for values are incomplete and maybe wrong or unclear

Enumerator
FL_WHEN_NEVER | Never call the callback.
FL_WHEN_CHANGED | Do the callback only when the widget value changes.
FL_WHEN_NOT_CHANGED | Do the callback whenever the user interacts with the widget.
FL_WHEN_RELEASE | Do the callback when the button or key is released and the value changes.
FL_WHEN_RELEASE_ALWAYS | Do the callback when the button or key is released, even if the value doesn't change.
FL_WHEN_ENTER_KEY | Do the callback when the user presses the ENTER key and the value changes.
FL_WHEN_ENTER_KEY_ALWAYS | Do the callback when the user presses the ENTER key, even if the value doesn't change.
FL_WHEN_ENTER_KEY_CHANGED | ?

## Function Documentation

## ◆ fl_box()

Fl_Boxtype fl_box | ( | Fl_Boxtype | b | ) |
| inline

Get the filled version of a frame.

If no filled version of a given frame exists, the behavior of this function is undefined and some random box or frame is returned.

## ◆ fl_color_cube()

Fl_Color fl_color_cube | ( | int | r,
|  | int | g,
|  | int | b )
| inline

Returns a color out of the color cube.

`r` must be in the range 0 to FL_NUM_RED (5) minus 1, `g` must be in the range 0 to FL_NUM_GREEN (8) minus 1, `b` must be in the range 0 to FL_NUM_BLUE (5) minus 1.

To get the closest color to a 8-bit set of R,G,B values use:

fl_color_cube(R * (FL_NUM_RED - 1) / 255,
G * (FL_NUM_GREEN - 1) / 255,
B * (FL_NUM_BLUE - 1) / 255);
fl_color_cube
Fl_Color fl_color_cube(int r, int g, int b)
Returns a color out of the color cube.
Definition Enumerations.H:1030

## ◆ fl_down()

Fl_Boxtype fl_down | ( | Fl_Boxtype | b | ) |
| inline

Get the "pressed" or "down" version of a box.

If no "down" version of a given box exists, the behavior of this function is undefined and some random box or frame is returned.

## ◆ fl_frame()

Fl_Boxtype fl_frame | ( | Fl_Boxtype | b | ) |
| inline

Get the unfilled, frame only version of a box.

If no frame version of a given box exists, the behavior of this function is undefined and some random box or frame is returned.

## ◆ fl_gray_ramp()

Fl_Color fl_gray_ramp | ( | int | i | ) |
| inline

Returns a gray color value from black (i == 0) to white (i == FL_NUM_GRAY - 1).

FL_NUM_GRAY is defined to be 24 in the current FLTK release. To get the closest FLTK gray value to an 8-bit grayscale color 'I' use:

fl_gray_ramp(I * (FL_NUM_GRAY - 1) / 255)
fl_gray_ramp
Fl_Color fl_gray_ramp(int i)
Returns a gray color value from black (i == 0) to white (i == FL_NUM_GRAY - 1).
Definition Enumerations.H:1014

## Variable Documentation

## ◆ FL_ALIGN_LEFT

const Fl_Align FL_ALIGN_LEFT = (Fl_Align)4

Align the label at the left of the widget.

Inside labels appear left-justified starting at the left side of the widget, outside labels are right-justified and drawn to the left of the widget.

## ◆ FL_ALIGN_TOP

const Fl_Align FL_ALIGN_TOP = (Fl_Align)1

Align the label at the top of the widget.

Inside labels appear below the top, outside labels are drawn on top of the widget.

## ◆ FL_NORMAL_SIZE

FL_EXPORT Fl_Fontsize FL_NORMAL_SIZE
| extern

normal font size

normal font size