Line data Source code
1 :
2 : /* Copyright (c) 2014, Daniel Nachbaur <danielnachbaur@gmail.com>
3 : *
4 : * This library is free software; you can redistribute it and/or modify it under
5 : * the terms of the GNU Lesser General Public License version 2.1 as published
6 : * by the Free Software Foundation.
7 : *
8 : * This library is distributed in the hope that it will be useful, but WITHOUT
9 : * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
10 : * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
11 : * details.
12 : *
13 : * You should have received a copy of the GNU Lesser General Public License
14 : * along with this library; if not, write to the Free Software Foundation, Inc.,
15 : * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 : */
17 :
18 : #ifndef EQ_QT_WINDOWSYSTEM_H
19 : #define EQ_QT_WINDOWSYSTEM_H
20 :
21 : #include "types.h"
22 : #include <eq/windowSystem.h> // base class
23 : #include <QObject>
24 :
25 : namespace eq
26 : {
27 : namespace qt
28 : {
29 : namespace detail { class Window; }
30 :
31 : class WindowSystem : public QObject, public WindowSystemIF
32 : {
33 : Q_OBJECT
34 :
35 : public:
36 : EQ_API WindowSystem();
37 : EQ_API ~WindowSystem();
38 :
39 : signals:
40 : eq::qt::detail::Window* createImpl( const eq::Pipe*, const WindowSettings&,
41 : QThread* );
42 :
43 : private:
44 : WindowFactory* _factory;
45 :
46 : std::string getName() const final;
47 : eq::SystemWindow* createWindow( eq::Window* window,
48 : const WindowSettings& settings ) final;
49 : eq::SystemPipe* createPipe( eq::Pipe* pipe ) final;
50 : eq::MessagePump* createMessagePump() final;
51 0 : bool hasMainThreadEvents() const final { return true; }
52 : bool setupFont( util::ObjectManager& gl, const void* key,
53 : const std::string& name, const uint32_t size ) const final;
54 : };
55 :
56 : }
57 : }
58 :
59 : #endif
|