Bump version.
[ntk.git] / FL / Fl_Double_Window.H
blob20ab25b306046066d90ba52b43526edf9ee99ed2
1 //
2 // "$Id: Fl_Double_Window.H 7903 2010-11-28 21:06:39Z matt $"
3 //
4 // Double-buffered window header file for the Fast Light Tool Kit (FLTK).
5 //
6 // Copyright 1998-2010 by Bill Spitzak and others.
7 //
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
21 // USA.
23 // Please report all bugs and problems on the following page:
25 //     http://www.fltk.org/str.php
28 /* \file
29    Fl_Double_Window widget . */
31 #ifndef Fl_Double_Window_H
32 #define Fl_Double_Window_H
34 #include "Fl_Window.H"
36 /**
37   The Fl_Double_Window provides a double-buffered window.
38   If possible this will use the X double buffering extension (Xdbe).  If
39   not, it will draw the window data into an off-screen pixmap, and then
40   copy it to the on-screen window.
41   <P>It is highly recommended that you put the following code before the
42   first show() of <I>any</I> window in your program: </P>
43   \code
44   Fl::visual(FL_DOUBLE|FL_INDEX)
45   \endcode
46   This makes sure you can use Xdbe on servers where double buffering
47   does not exist for every visual.
49 class FL_EXPORT Fl_Double_Window : public Fl_Window {
50 protected:
51   void flush(int eraseoverlay);
52   /**
53     Force double buffering, even if the OS already buffers windows
54     (overlays need that on MacOS and Windows2000)
55   */
56   char force_doublebuffering_;
57 public:
58   void show();
59   void show(int a, char **b) {Fl_Window::show(a,b);}
60   void flush();
61   void resize(int,int,int,int);
62   void hide();
63   ~Fl_Double_Window();
64   /**
65     Creates a new Fl_Double_Window widget using the given
66     position, size, and label (title) string.
67   */
68   Fl_Double_Window(int W, int H, const char *l = 0) 
69     : Fl_Window(W,H,l), force_doublebuffering_(0) { type(FL_DOUBLE_WINDOW); }
70    /**
71     See  Fl_Double_Window::Fl_Double_Window(int w, int h, const char *label = 0)
72   */
73   Fl_Double_Window(int X, int Y, int W, int H, const char *l = 0)
74     : Fl_Window(X,Y,W,H,l), force_doublebuffering_(0) { type(FL_DOUBLE_WINDOW); }
77 #endif
80 // End of "$Id: Fl_Double_Window.H 7903 2010-11-28 21:06:39Z matt $".