Event.cpp 1.3 KB

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