]> 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 8a1ccf786e405aa8874037d14b79e400c4ce1457..770c8077cd8bda8947c3ad635acc5db07eedecba 100644 (file)
 #ifndef CANVAS_GUI_MGR_HXX_
 #define CANVAS_GUI_MGR_HXX_
 
-#include "property_based_mgr.hxx"
-#include <Canvas/canvas_fwd.hpp>
-#include <Canvas/placement.hxx>
+#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>
 
 #include <osg/ref_ptr>
@@ -36,35 +37,31 @@ namespace osgGA
 
 class GUIEventHandler;
 class GUIMgr:
-  public PropertyBasedMgr
+  public SGSubsystem
 {
   public:
     GUIMgr();
 
+    canvas::WindowPtr createWindow(const std::string& name = "");
+
     virtual void init();
     virtual void shutdown();
 
-    virtual void elementCreated(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;
-    float _last_x,
-          _last_y;
-
-    canvas::WindowPtr getWindow(size_t i);
-    canvas::Placements addPlacement( const SGPropertyNode*,
-                                     CanvasPtr canvas );
+    simgear::canvas::GroupPtr           _desktop;
+    osg::ref_ptr<GUIEventHandler>       _event_handler;
 
-    bool handleMouse(const osgGA::GUIEventAdapter& ea);
-    void handleResize(int x, int y, int width, int height);
+    simgear::canvas::Placements
+    addWindowPlacement( SGPropertyNode* placement,
+                        simgear::canvas::CanvasPtr canvas );
 };
 
 #endif /* CANVAS_GUI_MGR_HXX_ */