AUI Framework  master
Cross-platform module-based framework for developing C++20 desktop applications
ADragNDrop.h
1/*
2 * AUI Framework - Declarative UI toolkit for modern C++20
3 * Copyright (C) 2020-2024 Alex2772 and Contributors
4 *
5 * SPDX-License-Identifier: MPL-2.0
6 *
7 * This Source Code Form is subject to the terms of the Mozilla Public
8 * License, v. 2.0. If a copy of the MPL was not distributed with this
9 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
10 */
11
12#pragma once
13
14
15#include "AUI/Util/AMimedData.h"
16
17class AWindowBase;
18
48class API_AUI_VIEWS ADragNDrop {
49public:
50 ADragNDrop() = default;
51
52 void setData(AMimedData data) {
53 mData = std::move(data);
54 }
55
59 void perform(AWindowBase* sourceWindow);
60
61
62 struct EnterEvent {
63 const AMimedData& data;
64 glm::ivec2 mousePosition;
65 };
66
67 struct DropEvent {
68 const AMimedData& data;
69 glm::ivec2 mousePosition;
70 };
71
72private:
73 AWindowBase* mWindow;
74 AMimedData mData;
75};
76
77
Utility class for creating and processing drag-n-drop events.
Definition: ADragNDrop.h:48
Mime-type data associated storage.
Definition: AMimedData.h:22
Definition: AWindowBase.h:33
Definition: ADragNDrop.h:67
Definition: ADragNDrop.h:62