You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
2.6KB

  1. //
  2. // "$Id: Fl_Overlay_Window.H 7903 2010-11-28 21:06:39Z matt $"
  3. //
  4. // Overlay 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.
  12. //
  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.
  17. //
  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.
  22. //
  23. // Please report all bugs and problems on the following page:
  24. //
  25. // http://www.fltk.org/str.php
  26. //
  27. /* \file
  28. Fl_Overlay_Window class . */
  29. #ifndef Fl_Overlay_Window_H
  30. #define Fl_Overlay_Window_H
  31. #include "Fl_Double_Window.H"
  32. /**
  33. This window provides double buffering and also the ability to draw the
  34. "overlay" which is another picture placed on top of the main image. The
  35. overlay is designed to be a rapidly-changing but simple graphic such as
  36. a mouse selection box. Fl_Overlay_Window uses the overlay
  37. planes provided by your graphics hardware if they are available.
  38. <P>If no hardware support is found the overlay is simulated by drawing
  39. directly into the on-screen copy of the double-buffered window, and
  40. "erased" by copying the backbuffer over it again. This means the
  41. overlay will blink if you change the image in the window.
  42. */
  43. class FL_EXPORT Fl_Overlay_Window : public Fl_Double_Window {
  44. virtual void draw_overlay() = 0;
  45. public:
  46. void flush();
  47. virtual ~Fl_Overlay_Window();
  48. int can_do_overlay();
  49. void redraw_overlay();
  50. /**
  51. Creates a new Fl_Overlay_Window widget using the given
  52. position, size, and label (title) string. If the
  53. positions (x,y) are not given, then the window manager
  54. will choose them.
  55. */
  56. Fl_Overlay_Window(int W, int H, const char *l=0)
  57. : Fl_Double_Window(W,H,l) { force_doublebuffering_=1; image(0); }
  58. /**
  59. See Fl_Overlay_Window::Fl_Overlay_Window(int W, int H, const char *l=0)
  60. */
  61. Fl_Overlay_Window(int X, int Y, int W, int H, const char *l=0)
  62. : Fl_Double_Window(X,Y,W,H,l) { force_doublebuffering_=1; image(0); }
  63. };
  64. #endif
  65. //
  66. // End of "$Id: Fl_Overlay_Window.H 7903 2010-11-28 21:06:39Z matt $".
  67. //