]> git.mxchange.org Git - flightgear.git/blob - src/Canvas/window.hxx
toggle fullscreen: also adapt GUI plane when resizing
[flightgear.git] / src / Canvas / window.hxx
1 // Window for placing a Canvas onto it (for dialogs, menus, etc.)
2 //
3 // Copyright (C) 2012  Thomas Geymayer <tomgey@gmail.com>
4 //
5 // This program is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU General Public License as
7 // published by the Free Software Foundation; either version 2 of the
8 // License, or (at your option) any later version.
9 //
10 // This program is distributed in the hope that it will be useful, but
11 // WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 // General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software
17 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
18
19 #ifndef CANVAS_WINDOW_HXX_
20 #define CANVAS_WINDOW_HXX_
21
22 #include <simgear/canvas/elements/CanvasImage.hxx>
23 #include <simgear/canvas/MouseEvent.hxx>
24 #include <simgear/props/PropertyBasedElement.hxx>
25 #include <simgear/props/propertyObject.hxx>
26
27 #include <osg/Geode>
28 #include <osg/Geometry>
29
30 namespace canvas
31 {
32   class Window:
33     public simgear::PropertyBasedElement
34   {
35     public:
36       Window(SGPropertyNode* node);
37       virtual ~Window();
38
39       virtual void update(double delta_time_sec);
40       virtual void valueChanged (SGPropertyNode * node);
41
42       osg::Group* getGroup();
43       const simgear::Rect<float>& getRegion() const;
44
45       void setCanvas(simgear::canvas::CanvasPtr canvas);
46       simgear::canvas::CanvasWeakPtr getCanvas() const;
47
48       bool handleMouseEvent(const simgear::canvas::MouseEvent& event);
49
50     protected:
51
52       simgear::canvas::Image _image;
53
54       void doRaise(SGPropertyNode* node_raise);
55   };
56 } // namespace canvas
57
58 #endif /* CANVAS_WINDOW_HXX_ */