BookmarkManagerComponent.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #pragma once
  9. #include <qrect.h>
  10. #include <AzCore/Component/Component.h>
  11. #include <AzCore/Component/EntityId.h>
  12. #include <AzCore/Math/Vector2.h>
  13. #include <AzCore/std/containers/fixed_vector.h>
  14. #include <AzCore/std/containers/set.h>
  15. #include <GraphCanvas/Components/Bookmarks/BookmarkBus.h>
  16. namespace GraphCanvas
  17. {
  18. class BookmarkManagerComponent
  19. : public AZ::Component
  20. , public BookmarkManagerRequestBus::Handler
  21. , public BookmarkNotificationBus::MultiHandler
  22. {
  23. public:
  24. AZ_COMPONENT(BookmarkManagerComponent, "{A8F08DEA-0F42-4236-9E1E-B93C964B113F}");
  25. static void Reflect(AZ::ReflectContext* context);
  26. BookmarkManagerComponent();
  27. ~BookmarkManagerComponent();
  28. // Component
  29. void Init() override;
  30. void Activate() override;
  31. void Deactivate() override;
  32. // BookmarkNotifications
  33. ////
  34. // BookmarkRequestBus
  35. bool CreateBookmarkAnchor(const AZ::Vector2& position, int bookmarkIndex) override;
  36. void RegisterBookmark(const AZ::EntityId& bookmarkId) override;
  37. void UnregisterBookmark(const AZ::EntityId& bookmarkId) override;
  38. bool IsBookmarkRegistered(const AZ::EntityId& bookmarkId) const override;
  39. AZ::EntityId FindBookmarkForShortcut(int shortcut) const override;
  40. bool RequestShortcut(const AZ::EntityId& bookmarkId, int quickIndex) override;
  41. void ActivateShortcut(int index) override;
  42. void JumpToBookmark(const AZ::EntityId& bookmarkId) override;
  43. ////
  44. private:
  45. void UnregisterShortcut(const AZ::EntityId& bookmarkId);
  46. AZStd::fixed_vector<AZ::EntityId, 10> m_shortcuts;
  47. AZStd::set<AZ::EntityId> m_bookmarks;
  48. };
  49. }