Event.cpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /*
  2. * Copyright (c) 2020-2021, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <AK/StringBuilder.h>
  7. #include <LibCore/MimeData.h>
  8. #include <LibGUI/Action.h>
  9. #include <LibGUI/Event.h>
  10. namespace GUI {
  11. DropEvent::DropEvent(const Gfx::IntPoint& position, const String& text, NonnullRefPtr<Core::MimeData> mime_data)
  12. : Event(Event::Drop)
  13. , m_position(position)
  14. , m_text(text)
  15. , m_mime_data(move(mime_data))
  16. {
  17. }
  18. DropEvent::~DropEvent()
  19. {
  20. }
  21. String KeyEvent::to_string() const
  22. {
  23. Vector<String, 8> parts;
  24. if (m_modifiers & Mod_Ctrl)
  25. parts.append("Ctrl");
  26. if (m_modifiers & Mod_Shift)
  27. parts.append("Shift");
  28. if (m_modifiers & Mod_Alt)
  29. parts.append("Alt");
  30. if (m_modifiers & Mod_Super)
  31. parts.append("Super");
  32. if (auto* key_name = key_code_to_string(static_cast<KeyCode>(m_key)))
  33. parts.append(key_name);
  34. else
  35. parts.append("(Invalid)");
  36. StringBuilder builder;
  37. for (size_t i = 0; i < parts.size(); ++i) {
  38. builder.append(parts[i]);
  39. if (i != parts.size() - 1)
  40. builder.append('+');
  41. }
  42. return builder.to_string();
  43. }
  44. ActionEvent::ActionEvent(Type type, Action& action)
  45. : Event(type)
  46. , m_action(action)
  47. {
  48. }
  49. ActionEvent::~ActionEvent()
  50. {
  51. }
  52. }