Mercurial > octave
diff libgui/src/qt-application.h @ 27197:b8c0d5ad024f
refactor and rename some qt application objects
* octave-qobject.h, octave-qobject.cc: New files. Move
octave_qapplication, octave_qt_app, octave_qt_cli_app, and
octave_qt_gui_app classes here from main-window.h and main-window.cc.
Rename octave_qt_app to base_qobject. Rename octave_qt_cli_app to
cli_qobject. Rename octave_qt_gui_app to gui_qobject.
* qt-application.h, qt-application.cc: Rename from octave-gui.h and
octave-gui.cc. Rename gui_application class to qt_application.
Change all uses.
* libgui/src/module.mk: Update.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Sat, 22 Jun 2019 17:30:16 -0500 |
parents | libgui/src/octave-gui.h@d6316d22db34 |
children | b67e5dc2e34a |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libgui/src/qt-application.h Sat Jun 22 17:30:16 2019 -0500 @@ -0,0 +1,70 @@ +/* + +Copyright (C) 2012-2019 John W. Eaton + +This file is part of Octave. + +Octave is free software: you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Octave is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Octave; see the file COPYING. If not, see +<https://www.gnu.org/licenses/>. + +*/ + +#if ! defined (octave_octave_gui_h) +#define octave_octave_gui_h 1 + +#include "octave.h" + +namespace octave +{ + // Programming Note: This file must not include any Qt headers. Any + // Qt header files required by the qt_application::execute function + // must be included only in the corresponding .cc file. + + //! This class inherits from the pure-virtual base class + //! octave::application and provides an implementation of the + //! application::execute method that starts an interface to Octave + //! that is based on Qt. It may start a command-line interface that + //! allows Qt graphics to be used or it may start an interface that + //! provides the full GUI experience. + + class OCTGUI_API qt_application : public application + { + public: + + qt_application (int argc, char **argv); + + // No copying, at least not yet. + + qt_application (const qt_application&) = delete; + + qt_application& operator = (const qt_application&) = delete; + + ~qt_application (void) = default; + + // Should we start the GUI or fall back to the CLI? + bool start_gui_p (void) const; + + int execute (void); + + bool gui_running (void) const { return m_gui_running; } + void gui_running (bool arg) { m_gui_running = arg; } + + private: + + // If TRUE, the GUI should be started. + bool m_gui_running = false; + }; +} + +#endif