/** * @file main/GUI/main.h * @brief The main eVaf GUI application class * @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 __GUI_MAIN_H # define __GUI_MAIN_H #include namespace eVaf { /** * The main eVaf GUI application. * * eVafGUI is the main GUI executable. It provides an empty GUI application * that is used to load other eVaf modules. */ namespace GUI { /** * Internal implementation of the main eVaf GUI application. */ namespace Internal { } // namespace eVaf::GUI::Internal /** * The main eVaf GUI application class. */ class Application : public QApplication { Q_OBJECT public: Application(int & argc, char ** argv); virtual ~Application(); public: // Static methods /** * Processes command-line arguments * @param argc Number of command-line arguments * @param argv List of command-line arguments * @return True if ok; false if the application should terminate * * This function processes command-line arguments and should be called before running * the application. */ static bool processCommandLine(int argc, char ** argv); /** * Prints out help for command-line arguments. */ static void printHelp(); /** * Prints out help for Qt command-line arguments. */ static void printQtHelp(); /** * Prints out version information. */ static void printVersion(); }; } // namespace eVaf::GUI } // namespace eVaf #endif // main.h