## class Fl_File_Icon

### Class Hierarchy

    Fl_File_Icon

### Include Files

    #include <FL/Fl_File_Icon.H>

### Description

The `Fl_File_Icon` class manages icon images that can be used as labels in other widgets and as icons in the `FileBrowser` widget.

### Methods

- Fl_File_Icon
- ~Fl_File_Icon
- add
- add_color
- add_vertex
- clear
- draw
- find
- first
- label
- labeltype
- load_fti
- load
- load_system_icons
- load_xpm
- pattern
- size
- type
- value

#### Fl_File_Icon()

The constructor creates a new `Fl_File_Icon` with the specified information.

#### ~Fl_File_Icon()

The destructor destroys the icon and frees all memory that has been allocated for it.

#### short *add(short d)

Adds a keyword value to the icon array, returning a pointer to it.

#### short *add_color(short c)

Adds a color value to the icon array, returning a pointer to it.

#### short *add_vertex(int x, int y)
short *add_vertex(float x, float y)

Adds a vertex value to the icon array, returning a pointer to it. The integer version accepts coordinates from 0 to 10000, while the floating point version goes from 0.0 to 1.0. The origin (0.0) is in the lower-lefthand corner of the icon.

#### void clear()

Clears all icon data from the icon.

#### void draw(int x, int y, int w, int h, Fl_Color ic, int active = 1)

Draws the icon in the indicated area.

#### static Fl_File_Icon *find(const char *filename, int filetype = ANY);

Finds an icon that matches the given filename and file type.

#### static Fl_File_Icon *first()

Returns a pointer to the first icon in the list.

#### void label(Fl_Widget *w)

Applies the icon to the widget, registering the `Fl_File_Icon` label type as needed.

#### static void labeltype(const Fl_Label *o, int x, int y, int w, int h, Fl_Align a)

The labeltype function for icons.

#### void load(const char *f)

Loads the specified icon image. The format is deduced from the filename.

#### void load_fti(const char *fti)

Loads an SGI icon file.

#### static void load_system_icons(void)

Loads all system-defined icons. This call is useful when using the `FileChooser` widget and should be used when the application starts:

    Fl_File_Icon::load_system_icons();

#### void load_xpm(const char *xpm)

Loads an XPM icon file.

#### const char *pattern()

Returns the filename matching pattern for the icon.

#### int size()

Returns the number of words of data used by the icon.

#### int type()

Returns the filetype associated with the icon, which can be one of the following:

- `Fl_File_Icon::ANY`, any kind of file.
- `Fl_File_Icon::PLAIN`, plain files.
- `Fl_File_Icon::FIFO`, named pipes.
- `Fl_File_Icon::DEVICE`, character and block devices.
- `Fl_File_Icon::LINK`, symbolic links.
- `Fl_File_Icon::DIRECTORY`, directories.

#### short *value()

Returns the data array for the icon.