Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qhaikuintegration.cpp
Go to the documentation of this file.
1
// Copyright (C) 2015 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Tobias Koenig <tobias.koenig@kdab.com>
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4
#
include
"qhaikuintegration.h"
5
6
#
include
"qhaikuapplication.h"
7
#
include
"qhaikuclipboard.h"
8
#
include
"qhaikurasterbackingstore.h"
9
#
include
"qhaikurasterwindow.h"
10
#
include
"qhaikuscreen.h"
11
#
include
"qhaikuservices.h"
12
13
#
include
<
QCoreApplication
>
14
#
include
<
QFileInfo
>
15
#
include
<
qpa
/
qplatformwindow
.
h
>
16
#
include
<
qpa
/
qwindowsysteminterface
.
h
>
17
#
include
<
QtGui
/
private
/
qgenericunixeventdispatcher_p
.
h
>
18
19
#
include
<
Application
.
h
>
20
21
QT_BEGIN_NAMESPACE
22
23
using
namespace
Qt::StringLiterals;
24
25
static
long
int
startApplicationThread
(
void
*data)
26
{
27
QHaikuApplication
*app =
static_cast
<
QHaikuApplication
*>(data);
28
app->LockLooper();
29
return
app->Run();
30
}
31
32
QHaikuIntegration
::
QHaikuIntegration
(
const
QStringList ¶meters)
33
: m_clipboard(
new
QHaikuClipboard)
34
{
35
Q_UNUSED(parameters);
36
37
const
QString signature =
"application/x-vnd.Qt.%1"_L1
.arg(QFileInfo(QCoreApplication::applicationFilePath()).fileName());
38
39
QHaikuApplication
*app =
new
QHaikuApplication
(signature.toLocal8Bit());
40
be_app = app;
41
42
const
thread_id applicationThreadId = spawn_thread(
startApplicationThread
,
"app_thread"
, 1,
static_cast
<
void
*>(app));
43
resume_thread(applicationThreadId);
44
app->UnlockLooper();
45
46
m_screen =
new
QHaikuScreen;
47
48
// notify system about available screen
49
QWindowSystemInterface::handleScreenAdded(m_screen);
50
}
51
52
QHaikuIntegration
::~
QHaikuIntegration
()
53
{
54
QWindowSystemInterface::handleScreenRemoved(m_screen);
55
m_screen =
nullptr
;
56
57
delete
m_services;
58
m_services =
nullptr
;
59
60
delete
m_clipboard;
61
m_clipboard =
nullptr
;
62
63
be_app->LockLooper();
64
be_app->Quit();
65
}
66
67
bool
QHaikuIntegration
::
hasCapability
(QPlatformIntegration::Capability capability)
const
68
{
69
return
QPlatformIntegration::hasCapability(capability);
70
}
71
72
QPlatformFontDatabase
*
QHaikuIntegration
::
fontDatabase
()
const
73
{
74
return
QPlatformIntegration::fontDatabase();
75
}
76
77
QPlatformServices
*
QHaikuIntegration
::
services
()
const
78
{
79
if
(!m_services)
80
m_services =
new
QHaikuServices;
81
82
return
m_services;
83
}
84
85
QPlatformClipboard
*
QHaikuIntegration
::
clipboard
()
const
86
{
87
return
m_clipboard;
88
}
89
90
QPlatformWindow
*
QHaikuIntegration
::
createPlatformWindow
(QWindow *window)
const
91
{
92
QPlatformWindow *platformWindow =
new
QHaikuRasterWindow
(window);
93
platformWindow->requestActivateWindow();
94
return
platformWindow;
95
}
96
97
QPlatformBackingStore
*
QHaikuIntegration
::
createPlatformBackingStore
(QWindow *window)
const
98
{
99
return
new
QHaikuRasterBackingStore
(window);
100
}
101
102
QAbstractEventDispatcher
*
QHaikuIntegration
::
createEventDispatcher
()
const
103
{
104
return
createUnixEventDispatcher();
105
}
106
107
QT_END_NAMESPACE
QHaikuApplication
Definition
qhaikuapplication.h:12
QHaikuIntegration
Definition
qhaikuintegration.h:16
QHaikuIntegration::~QHaikuIntegration
~QHaikuIntegration()
Definition
qhaikuintegration.cpp:52
QHaikuIntegration::hasCapability
bool hasCapability(QPlatformIntegration::Capability cap) const override
Definition
qhaikuintegration.cpp:67
QHaikuIntegration::QHaikuIntegration
QHaikuIntegration(const QStringList ¶mList)
Definition
qhaikuintegration.cpp:32
QHaikuIntegration::createEventDispatcher
QAbstractEventDispatcher * createEventDispatcher() const override
Factory function for the GUI event dispatcher.
Definition
qhaikuintegration.cpp:102
QHaikuIntegration::createPlatformBackingStore
QPlatformBackingStore * createPlatformBackingStore(QWindow *window) const override
Factory function for QPlatformBackingStore.
Definition
qhaikuintegration.cpp:97
QHaikuIntegration::clipboard
QPlatformClipboard * clipboard() const override
Accessor for the platform integration's clipboard.
Definition
qhaikuintegration.cpp:85
QHaikuIntegration::fontDatabase
QPlatformFontDatabase * fontDatabase() const override
Accessor for the platform integration's fontdatabase.
Definition
qhaikuintegration.cpp:72
QHaikuIntegration::createPlatformWindow
QPlatformWindow * createPlatformWindow(QWindow *window) const override
Factory function for QPlatformWindow.
Definition
qhaikuintegration.cpp:90
QHaikuIntegration::services
QPlatformServices * services() const override
Definition
qhaikuintegration.cpp:77
QHaikuRasterBackingStore
Definition
qhaikurasterbackingstore.h:17
QHaikuRasterWindow
Definition
qhaikurasterwindow.h:43
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
startApplicationThread
static long int startApplicationThread(void *data)
Definition
qhaikuintegration.cpp:25
qtbase
src
plugins
platforms
haiku
qhaikuintegration.cpp
Generated on
for Qt by
1.18.0