AEDragAndDrop.h 837 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /*
  2. #pragma once
  3. #include <Atomic/Core/Object.h>
  4. using namespace Atomic;
  5. namespace AtomicEditor
  6. {
  7. /// A file was drag-dropped into the application window.
  8. EVENT(E_DRAGANDDROP, DragAndDrop)
  9. {
  10. PARAM(P_FILENAME, FileName); // String
  11. }
  12. class AEDragAndDrop : public Object
  13. {
  14. OBJECT(AEDragAndDrop);
  15. public:
  16. /// Construct.
  17. AEDragAndDrop(Context* context);
  18. void BeginDrag();
  19. void AddDragFilename(const String& filename);
  20. void ConcludeDrag();
  21. Object* GetDragObject() { return dragObject_; }
  22. private:
  23. void HandleMouseDown(StringHash eventType, VariantMap& eventData);
  24. void HandleMouseUp(StringHash eventType, VariantMap& eventData);
  25. void HandleMouseMove(StringHash eventType, VariantMap& eventData);
  26. SharedPtr<Object> dragObject_;
  27. Vector<String> dragFilenames_;
  28. };
  29. }
  30. */