TerminalSettingsWidget.h 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /*
  2. * Copyright (c) 2018-2021, the SerenityOS developers.
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <LibGUI/Button.h>
  8. #include <LibGUI/CheckBox.h>
  9. #include <LibGUI/ComboBox.h>
  10. #include <LibGUI/SettingsWindow.h>
  11. #include <LibGUI/TextEditor.h>
  12. #include <LibVT/TerminalWidget.h>
  13. class TerminalSettingsMainWidget final : public GUI::SettingsWindow::Tab {
  14. C_OBJECT_ABSTRACT(TerminalSettingsMainWidget)
  15. public:
  16. static ErrorOr<NonnullRefPtr<TerminalSettingsMainWidget>> try_create();
  17. virtual void apply_settings() override;
  18. virtual void cancel_settings() override;
  19. private:
  20. TerminalSettingsMainWidget() = default;
  21. ErrorOr<void> setup();
  22. void write_back_settings() const;
  23. static VT::TerminalWidget::BellMode parse_bell(StringView bell_string);
  24. static DeprecatedString stringify_bell(VT::TerminalWidget::BellMode bell_mode);
  25. VT::TerminalWidget::BellMode m_bell_mode { VT::TerminalWidget::BellMode::Disabled };
  26. bool m_confirm_close { true };
  27. VT::TerminalWidget::BellMode m_original_bell_mode;
  28. bool m_orignal_confirm_close { true };
  29. };
  30. class TerminalSettingsViewWidget final : public GUI::SettingsWindow::Tab {
  31. C_OBJECT_ABSTRACT(TerminalSettingsViewWidget)
  32. public:
  33. static ErrorOr<NonnullRefPtr<TerminalSettingsViewWidget>> try_create();
  34. virtual void apply_settings() override;
  35. virtual void cancel_settings() override;
  36. private:
  37. TerminalSettingsViewWidget() = default;
  38. ErrorOr<void> setup();
  39. void write_back_settings() const;
  40. RefPtr<Gfx::Font const> m_font;
  41. float m_opacity;
  42. DeprecatedString m_color_scheme;
  43. VT::CursorShape m_cursor_shape { VT::CursorShape::Block };
  44. bool m_cursor_is_blinking_set { true };
  45. size_t m_max_history_size;
  46. bool m_show_scrollbar { true };
  47. RefPtr<Gfx::Font const> m_original_font;
  48. float m_original_opacity;
  49. DeprecatedString m_original_color_scheme;
  50. VT::CursorShape m_original_cursor_shape;
  51. bool m_original_cursor_is_blinking_set;
  52. size_t m_original_max_history_size;
  53. bool m_original_show_scrollbar { true };
  54. };