## class Fl_Overlay_Window

### Class Hierarchy

    Fl_Double_Window
       |
       +----Fl_Overlay_Window

### Include Files

    #include <FL/Fl_Overlay_Window.H>

### Description

This window provides double buffering and also the ability to draw the "overlay" which is another picture placed on top of the main image. The overlay is designed to be a rapidly-changing but simple graphic such as a mouse selection box. `Fl_Overlay_Window` uses the overlay planes provided by your graphics hardware if they are available.

If no hardware support is found the overlay is simulated by drawing directly into the on-screen copy of the double-buffered window, and "erased" by copying the backbuffer over it again. This means the overlay will blink if you change the image in the window.

### Methods

- Fl_Overlay_Window
- ~Fl_Overlay_Window
- draw_overlay
- redraw_overlay

#### Fl_Overlay_Window::Fl_Overlay_Window(int x, int y, int w, int h, const char *label = 0)

Creates a new `Fl_Overlay_Window` widget using the given position, size, and label (title) string.

#### virtual Fl_Overlay_Window::~Fl_Overlay_Window()

Destroys the window and all child widgets.

#### virtual void Fl_Overlay_Window::draw_overlay() = 0

You must subclass `Fl_Overlay_Window` and provide this method. It is just like a `draw()` method, except it draws the overlay. The overlay will have already been "cleared" when this is called. You can use any of the routines described in <FL/fl_draw.H>.

#### void Fl_Overlay_Window::redraw_overlay()

Call this to indicate that the overlay data has changed and needs to be redrawn. The overlay will be clear until the first time this is called, so if you want an initial display you must call this after calling `show()`.