Shortcut.cpp 781 B

12345678910111213141516171819202122232425262728293031323334353637
  1. /*
  2. * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <AK/String.h>
  7. #include <AK/StringBuilder.h>
  8. #include <AK/Vector.h>
  9. #include <LibGUI/Shortcut.h>
  10. namespace GUI {
  11. String Shortcut::to_string() const
  12. {
  13. Vector<String, 8> parts;
  14. if (m_modifiers & Mod_Ctrl)
  15. parts.append("Ctrl");
  16. if (m_modifiers & Mod_Shift)
  17. parts.append("Shift");
  18. if (m_modifiers & Mod_Alt)
  19. parts.append("Alt");
  20. if (m_modifiers & Mod_Super)
  21. parts.append("Super");
  22. if (auto* key_name = key_code_to_string(m_key))
  23. parts.append(key_name);
  24. else
  25. parts.append("(Invalid)");
  26. StringBuilder builder;
  27. builder.join('+', parts);
  28. return builder.to_string();
  29. }
  30. }