GAction.cpp 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #include <LibGUI/GAction.h>
  2. #include <LibGUI/GApplication.h>
  3. GAction::GAction(const String& text, const String& custom_data, Function<void(const GAction&)> on_activation_callback)
  4. : on_activation(move(on_activation_callback))
  5. , m_text(text)
  6. , m_custom_data(custom_data)
  7. {
  8. }
  9. GAction::GAction(const String& text, Function<void(const GAction&)> on_activation_callback)
  10. : GAction(text, String(), move(on_activation_callback))
  11. {
  12. }
  13. GAction::GAction(const String& text, RetainPtr<GraphicsBitmap>&& icon, Function<void(const GAction&)> on_activation_callback)
  14. : on_activation(move(on_activation_callback))
  15. , m_text(text)
  16. , m_icon(move(icon))
  17. {
  18. }
  19. GAction::GAction(const String& text, const GShortcut& shortcut, Function<void(const GAction&)> on_activation_callback)
  20. : GAction(text, shortcut, nullptr, move(on_activation_callback))
  21. {
  22. }
  23. GAction::GAction(const String& text, const GShortcut& shortcut, RetainPtr<GraphicsBitmap>&& icon, Function<void(const GAction&)> on_activation_callback)
  24. : on_activation(move(on_activation_callback))
  25. , m_text(text)
  26. , m_icon(move(icon))
  27. , m_shortcut(shortcut)
  28. {
  29. GApplication::the().register_shortcut_action(Badge<GAction>(), *this);
  30. }
  31. GAction::~GAction()
  32. {
  33. if (m_shortcut.is_valid())
  34. GApplication::the().unregister_shortcut_action(Badge<GAction>(), *this);
  35. }
  36. void GAction::activate()
  37. {
  38. if (on_activation)
  39. on_activation(*this);
  40. }