123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- // Copyright 2020 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef COMPONENTS_EXO_EXTENDED_DRAG_OFFER_H_
- #define COMPONENTS_EXO_EXTENDED_DRAG_OFFER_H_
- #include <cstdint>
- #include <string>
- #include "components/exo/data_offer_observer.h"
- namespace gfx {
- class Vector2d;
- }
- namespace exo {
- class DataOffer;
- class ExtendedDragOffer : public DataOfferObserver {
- public:
- class Delegate {
- public:
- virtual void OnDataOfferDestroying() = 0;
- protected:
- virtual ~Delegate() = default;
- };
- ExtendedDragOffer(DataOffer* offer, Delegate* delegate);
- ExtendedDragOffer(const ExtendedDragOffer&) = delete;
- ExtendedDragOffer& operator=(const ExtendedDragOffer&) = delete;
- ~ExtendedDragOffer() override;
- void Swallow(uint32_t serial, const std::string& mime_type);
- void Unswallow(uint32_t serial,
- const std::string& mime_type,
- const gfx::Vector2d& offset);
- private:
- // DataOfferObserver:
- void OnDataOfferDestroying(DataOffer* offer) override;
- DataOffer* offer_ = nullptr;
- // Created and destroyed at wayland/zcr_extended_drag.cc and its lifetime is
- // tied to the zcr_extended_drag_source_v1 object it's attached to.
- Delegate* const delegate_;
- };
- } // namespace exo
- #endif // COMPONENTS_EXO_EXTENDED_DRAG_OFFER_H_
|