2 // "$Id: Fl_Overlay_Window.H 7903 2010-11-28 21:06:39Z matt $"
4 // Overlay window header file for the Fast Light Tool Kit (FLTK).
6 // Copyright 1998-2010 by Bill Spitzak and others.
8 // This library is free software; you can redistribute it and/or
9 // modify it under the terms of the GNU Library General Public
10 // License as published by the Free Software Foundation; either
11 // version 2 of the License, or (at your option) any later version.
13 // This library is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 // Library General Public License for more details.
18 // You should have received a copy of the GNU Library General Public
19 // License along with this library; if not, write to the Free Software
20 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
23 // Please report all bugs and problems on the following page:
25 // http://www.fltk.org/str.php
29 Fl_Overlay_Window class . */
31 #ifndef Fl_Overlay_Window_H
32 #define Fl_Overlay_Window_H
34 #include "Fl_Double_Window.H"
37 This window provides double buffering and also the ability to draw the
38 "overlay" which is another picture placed on top of the main image. The
39 overlay is designed to be a rapidly-changing but simple graphic such as
40 a mouse selection box. Fl_Overlay_Window uses the overlay
41 planes provided by your graphics hardware if they are available.
42 <P>If no hardware support is found the overlay is simulated by drawing
43 directly into the on-screen copy of the double-buffered window, and
44 "erased" by copying the backbuffer over it again. This means the
45 overlay will blink if you change the image in the window.
47 class FL_EXPORT Fl_Overlay_Window : public Fl_Double_Window {
48 friend class _Fl_Overlay;
49 virtual void draw_overlay() = 0;
55 void resize(int,int,int,int);
58 void redraw_overlay();
60 Creates a new Fl_Overlay_Window widget using the given
61 position, size, and label (title) string. If the
62 positions (x,y) are not given, then the window manager
65 Fl_Overlay_Window(int W, int H, const char *l=0)
66 : Fl_Double_Window(W,H,l) {overlay_ = 0; force_doublebuffering_=1; image(0); }
68 See Fl_Overlay_Window::Fl_Overlay_Window(int W, int H, const char *l=0)
70 Fl_Overlay_Window(int X, int Y, int W, int H, const char *l=0)
71 : Fl_Double_Window(X,Y,W,H,l) {overlay_ = 0; force_doublebuffering_=1; image(0); }
72 void show(int a, char **b) {Fl_Double_Window::show(a,b);}
78 // End of "$Id: Fl_Overlay_Window.H 7903 2010-11-28 21:06:39Z matt $".