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