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
window.cpp
Go to the documentation of this file.
1
// Copyright (C) 2025 The Qt Company Ltd.
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
<
qarkui
/
window
.
h
>
5
6
#
include
<
cstdint
>
7
#
include
<
qarkui
/
qarkuiutils
.
h
>
8
#
include
<
qohosplugincore
.
h
>
9
#
include
<
qohosutils
.
h
>
10
#
include
<
window_manager
/
oh_window
.
h
>
11
#
include
<
window_manager
/
oh_window_comm
.
h
>
12
13
QT_BEGIN_NAMESPACE
14
15
namespace
QArkUi
{
16
17
namespace
{
18
19
QRect makeQRectFromWindowManagerRect(
const
::WindowManager_Rect &wmRect)
20
{
21
return
QRect(
22
QPoint(wmRect.posX, wmRect.posY),
23
QSize(wmRect.width, wmRect.height));
24
}
25
26
}
27
28
std
::optional<
WindowProperties
>
tryGetWindowProperties
(JsWindowId jsWindowId)
29
{
30
::WindowManager_WindowProperties windowProperties;
31
auto
errorCode = ::OH_WindowManager_GetWindowProperties(
32
static_cast
<std::int32_t>(jsWindowId.value()),
33
&windowProperties);
34
35
if
(errorCode != ::OK)
36
return
std
::nullopt;
37
38
return
WindowProperties {
39
.windowRect = makeQRectFromWindowManagerRect(windowProperties.windowRect),
40
.drawableRect = makeQRectFromWindowManagerRect(windowProperties.drawableRect),
41
.id = JsWindowId(windowProperties.id),
42
.displayId = QOhosDisplayInfo::JsDisplayId(windowProperties.displayId),
43
};
44
}
45
46
JsWindowRef
::
JsWindowRef
(
47
std
::string owningQAbilityInstanceId, JsWindowId windowId,
48
QNapi::Object jsWindow, QtOhos::QObjectThreadSafeRef owningQWindowRef)
49
: m_owningQAbilityInstanceId(
std
::move(owningQAbilityInstanceId))
50
,
m_jsWindowId
(
windowId
)
51
,
m_jsWindow
(
Napi
::
Persistent
(
jsWindow
))
52
,
m_owningQWindowRef
(
owningQWindowRef
)
53
{
54
}
55
56
bool
JsWindowRef
::
isWindowShown
()
const
57
{
58
bool
result =
false
;
59
const
auto
windowShownErrorCode = callArkUi(
60
Q_OHOS_NAMED_FUNC(::OH_WindowManager_IsWindowShown),
61
static_cast
<std::int32_t>(m_jsWindowId.value()), &result);
62
if
(windowShownErrorCode == ::WindowManager_ErrorCode::WINDOW_MANAGER_ERRORCODE_INVALID_PARAM)
63
qOhosReportFatalErrorAndAbort(
"%s: error: %d"
, Q_FUNC_INFO, windowShownErrorCode);
64
return
windowShownErrorCode == ::WindowManager_ErrorCode::OK
65
? result
66
:
false
;
67
}
68
69
bool
JsWindowRef
::
isFocused
()
const
70
{
71
if
(QtOhos::JsWindowsTracker::isWindowClosing(m_jsWindow.Value()))
72
return
false
;
73
return
m_jsWindow.eval<QNapi::Boolean>(
"isFocused()"
).Value();
74
}
75
76
const
std
::string &
JsWindowRef
::
owningQAbilityInstanceId
()
const
77
{
78
return
m_owningQAbilityInstanceId;
79
}
80
81
JsWindowId
JsWindowRef
::
id
()
const
82
{
83
return
m_jsWindowId;
84
}
85
86
QtOhos
::
QObjectThreadSafeRef
JsWindowRef
::
owningQWindowRef
()
const
87
{
88
return
m_owningQWindowRef;
89
}
90
91
QNapi
::
Object
JsWindowRef
::
jsObject
()
92
{
93
return
m_jsWindow.Value();
94
}
95
96
}
97
98
QT_END_NAMESPACE
QArkUi::JsWindowRef
Definition
window.h:35
QArkUi::JsWindowRef::jsObject
QNapi::Object jsObject()
Definition
window.cpp:91
QArkUi::JsWindowRef::JsWindowRef
JsWindowRef(std::string owningQAbilityInstanceId, JsWindowId windowId, QNapi::Object jsWindow, QtOhos::QObjectThreadSafeRef owningQWindowRef)
Definition
window.cpp:46
QArkUi::JsWindowRef::isFocused
bool isFocused() const
Definition
window.cpp:69
QArkUi::JsWindowRef::owningQWindowRef
QtOhos::QObjectThreadSafeRef owningQWindowRef() const
Definition
window.cpp:86
QArkUi::JsWindowRef::isWindowShown
bool isWindowShown() const
Definition
window.cpp:56
QArkUi::JsWindowRef::id
JsWindowId id() const
Definition
window.cpp:81
QArkUi::JsWindowRef::owningQAbilityInstanceId
const std::string & owningQAbilityInstanceId() const
Definition
window.cpp:76
QArkUi
Definition
displaymanager.cpp:17
QArkUi::tryGetWindowProperties
std::optional< WindowProperties > tryGetWindowProperties(JsWindowId jsWindowId)
Definition
window.cpp:28
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
std
[33]
Definition
src_corelib_tools_qhash.cpp:421
QArkUi::WindowProperties
Definition
window.h:25
qtbase
src
plugins
platforms
ohos
qarkui
window.cpp
Generated on
for Qt by
1.18.0