]> git.mxchange.org Git - flightgear.git/blobdiff - src/Canvas/gui_mgr.hxx
commradio: improvements for atis speech
[flightgear.git] / src / Canvas / gui_mgr.hxx
index 1661011d50964745b1bcf7471d0fe09fd0925802..770c8077cd8bda8947c3ad635acc5db07eedecba 100644 (file)
@@ -22,6 +22,7 @@
 #include "canvas_fwd.hpp"
 
 #include <simgear/canvas/canvas_fwd.hxx>
+#include <simgear/canvas/elements/CanvasGroup.hxx>
 #include <simgear/props/PropertyBasedMgr.hxx>
 #include <simgear/props/propertyObject.hxx>
 
@@ -36,36 +37,31 @@ namespace osgGA
 
 class GUIEventHandler;
 class GUIMgr:
-  public simgear::PropertyBasedMgr
+  public SGSubsystem
 {
   public:
     GUIMgr();
 
+    canvas::WindowPtr createWindow(const std::string& name = "");
+
     virtual void init();
     virtual void shutdown();
 
-    virtual void elementCreated(simgear::PropertyBasedElementPtr element);
+    virtual void update(double dt);
 
-    bool handleEvent(const osgGA::GUIEventAdapter& ea);
+    /**
+     * Get simgear::canvas::Group containing all windows
+     */
+    simgear::canvas::GroupPtr getDesktop();
 
   protected:
-    osg::ref_ptr<GUIEventHandler>       _event_handler;
-    osg::ref_ptr<osg::MatrixTransform>  _transform;
-
-    simgear::PropertyObject<int>        _width,
-                                        _height;
 
-    canvas::WindowWeakPtr _last_push,
-                          _last_mouse_over;
-    float _last_x,
-          _last_y;
+    simgear::canvas::GroupPtr           _desktop;
+    osg::ref_ptr<GUIEventHandler>       _event_handler;
 
-    canvas::WindowPtr getWindow(size_t i);
     simgear::canvas::Placements
-    addPlacement(SGPropertyNode*, simgear::canvas::CanvasPtr canvas );
-
-    bool handleMouse(const osgGA::GUIEventAdapter& ea);
-    void handleResize(int x, int y, int width, int height);
+    addWindowPlacement( SGPropertyNode* placement,
+                        simgear::canvas::CanvasPtr canvas );
 };
 
 #endif /* CANVAS_GUI_MGR_HXX_ */