2 * @file SdiWindow/isdiwindow.h
3 * @brief eVaf SDI window interface
6 * Copyright (c) 2011 Enar Vaikene
8 * This file is part of the eVaf C++ cross-platform application development framework.
10 * This file can be used under the terms of the GNU General Public License
11 * version 3.0 as published by the Free Software Foundation and appearing in
12 * the file LICENSE included in the packaging of this file. Please review the
13 * the following information to ensure the GNU General Public License version
14 * 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html.
16 * Alternatively, this file may be used in accordance with the Commercial License
17 * Agreement provided with the Software.
20 #ifndef __SDIWINDOW_ISDIWINDOW_H
21 # define __SDIWINDOW_ISDIWINDOW_H
23 #include "libsdiwindow.h"
32 * Main window interface for eVaf applications implementing the Single Document Interface.
34 * The iSdiWindow interface provides access to the SDI main window. The SDI main window is
35 * an empty window that the application needs to fill with widgets.
37 class SDIWINDOW_EXPORT iSdiWindow
: public QObject
43 /// Interface constructor
44 iSdiWindow() : QObject() {}
46 /// Empty virtual destructor
47 virtual ~iSdiWindow() {}
50 * Returns the iSdiWindow interface instance
51 * @return The iSdiWindow interface or zero if not available
53 * This function returns the global iSdiWindow interface instance. Using this function
54 * is not mandatory and modules can use the iRegistry interface instead. Using the iRegistry
55 * interface has the advantage that modules do not need to link against this library.
57 static iSdiWindow
* instance();
60 * Returns the main window widget
61 * @return The main window widget
63 * This function provides access to the main window widget. The main window is an empty QWidget and
64 * needs to be filled with additional widgets in order to provide some functionality.
66 virtual QWidget
* widget() const = 0;
70 } // namespace eVaf::SdiWindow
73 #endif // isdiwindow.h