]> vaikene.ee Git - evaf/blobdiff - src/plugins/SdiWindow/isdiwindow.h
Warning fixes and copyright update.
[evaf] / src / plugins / SdiWindow / isdiwindow.h
index 13b99037471a499f02ab2d85f02a3ab08952c94e..825961ebaf533118367f4ac8ee66016c23d8c087 100644 (file)
@@ -3,7 +3,7 @@
  * @brief eVaf SDI window interface
  * @author Enar Vaikene
  *
- * Copyright (c) 2011 Enar Vaikene
+ * Copyright (c) 2011-2019 Enar Vaikene
  *
  * This file is part of the eVaf C++ cross-platform application development framework.
  *
@@ -31,7 +31,7 @@ class QLayout;
 namespace eVaf {
 
 namespace Gui {
-    class Window;
+    class Panel;
 } // namespace eVaf::Gui
 
 namespace SdiWindow {
@@ -54,12 +54,38 @@ struct SDIWINDOW_EXPORT iSdiWindow
     static iSdiWindow * instance();
 
     /**
-     * Adds the window to the main SDI window
-     * @param window The window
+     * Empty virtual destructor
+     */
+    virtual ~iSdiWindow() {}
+
+    /**
+     * Adds a panel to the SDI window manager
+     * @param name Name of the panel
+     * @param panel The panel
+     *
+     * This function adds a panel to the SDI window manager. The ownership of the panel
+     * is transferred to the window manager and it is the responsibility of the window
+     * manager to delete it.
+     */
+    virtual void addPanel(QString const & name, Gui::Panel * panel) = 0;
+
+    /**
+     * Returns a panel by the name
+     * @param name Name of the panel
+     * @return Pointer to the panel or 0 if failed
+     *
+     * This function returns a panel identified by the name.
+     */
+    virtual Gui::Panel * panel(QString const & name) const = 0;
+
+    /**
+     * Shows a panel
+     * @param name Name of the panel
+     * @return True if succeeded; false if not
      *
-     * This function adds a window to the main SDI layout.
+     * This function shows the panel.
      */
-    virtual void addWindow(Gui::Window * window) = 0;
+    virtual bool showPanel(QString const & name) = 0;
 
 };