AUI Framework  develop
Cross-platform base for C++ UI apps
Loading...
Searching...
No Matches
ADragNDrop.h
    1/*
    2 * AUI Framework - Declarative UI toolkit for modern C++20
    3 * Copyright (C) 2020-2025 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
void perform(AWindowBase *sourceWindow)
Pushes out a drag-n-drop operation to the OS.
Mime-type data associated storage.
Definition AMimedData.h:22
Definition AWindowBase.h:33
Definition ADragNDrop.h:67
Definition ADragNDrop.h:62