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
qohosdragaction.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
<
QtCore
/
private
/
qohoscommon_p
.
h
>
5
#
include
<
QtCore
/
private
/
qohoslogger_p
.
h
>
6
#
include
<
qarkui
/
qarkuiutils
.
h
>
7
#
include
<
qarkui
/
qohosdragaction
.
h
>
8
#
include
<
qohospixelmapconversions
.
h
>
9
#
include
<
qohosutils
.
h
>
10
11
QT_BEGIN_NAMESPACE
12
13
namespace
QArkUi
{
14
15
DragAction
::
DragAction
(::ArkUI_NodeHandle node)
16
:
m_dragAction
(
17
QArkUi
::
callArkUiOrFailOnNullResult
(
18
Q_OHOS_NAMED_FUNC
(::
OH_ArkUI_CreateDragActionWithNode
),
19
node
),
20
&::
OH_ArkUI_DragAction_Dispose
)
21
{
22
}
23
24
void
DragAction
::
setPointerId
(
std
::int32_t pointerId)
25
{
26
QArkUi
::callArkUiOrFailOnErrorResult(
27
Q_OHOS_NAMED_FUNC(::OH_ArkUI_DragAction_SetPointerId),
28
m_dragAction.get(), pointerId);
29
}
30
31
void
DragAction
::
setTouchPoint
(
float
touchX,
float
touchY)
32
{
33
QArkUi
::callArkUiOrFailOnErrorResult(
34
Q_OHOS_NAMED_FUNC(::OH_ArkUI_DragAction_SetTouchPointX),
35
m_dragAction.get(), touchX);
36
QArkUi
::callArkUiOrFailOnErrorResult(
37
Q_OHOS_NAMED_FUNC(::OH_ArkUI_DragAction_SetTouchPointY),
38
m_dragAction.get(), touchY);
39
}
40
41
void
DragAction
::
setPixelMaps
(std::vector<std::shared_ptr<::OH_PixelmapNative>> pixelMaps)
42
{
43
m_pixelMaps = std::move(pixelMaps);
44
m_pixelMapsPointers.resize(m_pixelMaps.size() + 1);
45
46
for
(std::size_t i = 0; i < m_pixelMaps.size(); ++i)
47
m_pixelMapsPointers[i] = m_pixelMaps[i].get();
48
m_pixelMapsPointers[m_pixelMaps.size()] =
nullptr
;
49
50
QArkUi
::callArkUiOrFailOnErrorResult(
51
Q_OHOS_NAMED_FUNC(::OH_ArkUI_DragAction_SetPixelMaps),
52
m_dragAction.get(), m_pixelMapsPointers.data(), m_pixelMaps.size());
53
}
54
55
void
DragAction
::
setData
(
QOhosUdmfData
udmfData)
56
{
57
m_udmfData = QtOhos::moveToSharedPtr(std::move(udmfData));
58
59
QArkUi
::callArkUiOrFailOnErrorResult(
60
Q_OHOS_NAMED_FUNC(::OH_ArkUI_DragAction_SetData),
61
m_dragAction.get(), m_udmfData->nativePtr());
62
}
63
64
void
DragAction
::
setStatusListener
(
65
std::function<
void
(::ArkUI_DragAndDropInfo *)> statusListener)
66
{
67
resetStatusListener
(
)
;
68
69
auto
sharedStatusListener = QtOhos::moveToSharedPtr(std::move(statusListener));
70
71
m_statusListenerRegistrationHandle = QtOhos::makeDestroyNotifier(
72
[sharedStatusListener, weakDragAction = QtOhos::makeWeakPtr(m_dragAction)]() {
73
auto
dragAction = weakDragAction.lock();
74
if
(dragAction) {
75
QArkUi::callArkUi(
76
Q_OHOS_NAMED_FUNC(::OH_ArkUI_DragAction_UnregisterStatusListener),
77
dragAction.get());
78
}
79
});
80
81
QArkUi
::callArkUiOrFailOnErrorResult(
82
Q_OHOS_NAMED_FUNC(::OH_ArkUI_DragAction_RegisterStatusListener),
83
m_dragAction.get(), sharedStatusListener.get(),
84
[](::ArkUI_DragAndDropInfo *dragAndDropInfo,
void
*statusListenerVoidPtr) {
85
auto
*statusListener =
static_cast
<std::function<
void
(::ArkUI_DragAndDropInfo *)> *>(statusListenerVoidPtr);
86
(*statusListener)(dragAndDropInfo);
87
});
88
}
89
90
void
DragAction
::
resetStatusListener
()
91
{
92
m_statusListenerRegistrationHandle.reset();
93
}
94
95
void
DragAction
::
setDragPreviewOption
(ArkUI_DragPreviewOption &option)
96
{
97
QArkUi
::callArkUiOrFailOnErrorResult(
98
Q_OHOS_NAMED_FUNC(::OH_ArkUI_DragAction_SetDragPreviewOption),
99
m_dragAction.get(), &option);
100
}
101
102
::
ArkUI_DragAction
*
DragAction
::
nativePtr
()
103
{
104
return
m_dragAction.get();
105
}
106
107
}
108
109
QT_END_NAMESPACE
QArkUi::DragAction
Definition
qohosdragaction.h:21
QArkUi::DragAction::setTouchPoint
void setTouchPoint(float x, float y)
Definition
qohosdragaction.cpp:31
QArkUi::DragAction::setPixelMaps
void setPixelMaps(std::vector< std::shared_ptr<::OH_PixelmapNative > > pixelMaps)
Definition
qohosdragaction.cpp:41
QArkUi::DragAction::nativePtr
::ArkUI_DragAction * nativePtr()
Definition
qohosdragaction.cpp:102
QArkUi::DragAction::setData
void setData(QOhosUdmfData udmfData)
Definition
qohosdragaction.cpp:55
QArkUi::DragAction::setStatusListener
void setStatusListener(std::function< void(::ArkUI_DragAndDropInfo *)> statusListener)
Definition
qohosdragaction.cpp:64
QArkUi::DragAction::setDragPreviewOption
void setDragPreviewOption(ArkUI_DragPreviewOption &option)
Definition
qohosdragaction.cpp:95
QArkUi::DragAction::resetStatusListener
void resetStatusListener()
Definition
qohosdragaction.cpp:90
QArkUi::DragAction::setPointerId
void setPointerId(std::int32_t pointerId)
Definition
qohosdragaction.cpp:24
QArkUi::DragAction::DragAction
DragAction(::ArkUI_NodeHandle node)
Definition
qohosdragaction.cpp:15
QOhosUdmfData
Definition
qohosudmf.h:64
QArkUi
Definition
displaymanager.cpp:17
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
std
[33]
Definition
src_corelib_tools_qhash.cpp:421
qtbase
src
plugins
platforms
ohos
qarkui
qohosdragaction.cpp
Generated on
for Qt by
1.18.0