diff --git a/Userland/Libraries/LibGUI/ComboBox.cpp b/Userland/Libraries/LibGUI/ComboBox.cpp index aaf0102781..896d302b83 100644 --- a/Userland/Libraries/LibGUI/ComboBox.cpp +++ b/Userland/Libraries/LibGUI/ComboBox.cpp @@ -60,6 +60,9 @@ private: ComboBox::ComboBox() { + REGISTER_STRING_PROPERTY("placeholder", editor_placeholder, set_editor_placeholder); + REGISTER_BOOL_PROPERTY("model_only", only_allow_values_from_model, set_only_allow_values_from_model); + set_min_width(32); set_fixed_height(22); @@ -144,6 +147,16 @@ ComboBox::~ComboBox() { } +void ComboBox::set_editor_placeholder(const StringView& placeholder) +{ + m_editor->set_placeholder(placeholder); +} + +const String& ComboBox::editor_placeholder() const +{ + return m_editor->placeholder(); +} + void ComboBox::navigate(AbstractView::CursorMovement cursor_movement) { auto previous_selected = m_list_view->cursor_index(); diff --git a/Userland/Libraries/LibGUI/ComboBox.h b/Userland/Libraries/LibGUI/ComboBox.h index 331e2e107e..769e6e12e1 100644 --- a/Userland/Libraries/LibGUI/ComboBox.h +++ b/Userland/Libraries/LibGUI/ComboBox.h @@ -60,6 +60,9 @@ public: int model_column() const; void set_model_column(int); + void set_editor_placeholder(const StringView& placeholder); + const String& editor_placeholder() const; + Function on_change; Function on_return_pressed; diff --git a/Userland/Libraries/LibGUI/SeparatorWidget.cpp b/Userland/Libraries/LibGUI/SeparatorWidget.cpp index 81478728f4..6a529fa84b 100644 --- a/Userland/Libraries/LibGUI/SeparatorWidget.cpp +++ b/Userland/Libraries/LibGUI/SeparatorWidget.cpp @@ -28,6 +28,9 @@ #include #include +REGISTER_WIDGET(GUI, HorizontalSeparator) +REGISTER_WIDGET(GUI, VerticalSeparator) + namespace GUI { SeparatorWidget::SeparatorWidget(Gfx::Orientation orientation) diff --git a/Userland/Libraries/LibGUI/SeparatorWidget.h b/Userland/Libraries/LibGUI/SeparatorWidget.h index 5df53a74ef..c75b79b31d 100644 --- a/Userland/Libraries/LibGUI/SeparatorWidget.h +++ b/Userland/Libraries/LibGUI/SeparatorWidget.h @@ -30,17 +30,43 @@ namespace GUI { -class SeparatorWidget final : public Widget { +class SeparatorWidget : public Widget { C_OBJECT(SeparatorWidget); public: virtual ~SeparatorWidget() override; -private: +protected: explicit SeparatorWidget(Gfx::Orientation); +private: virtual void paint_event(PaintEvent&) override; const Gfx::Orientation m_orientation; }; + +class VerticalSeparator final : public SeparatorWidget { + C_OBJECT(VerticalSeparator) +public: + virtual ~VerticalSeparator() override { } + +private: + VerticalSeparator() + : SeparatorWidget(Gfx::Orientation::Vertical) + { + } +}; + +class HorizontalSeparator final : public SeparatorWidget { + C_OBJECT(HorizontalSeparator) +public: + virtual ~HorizontalSeparator() override { } + +private: + HorizontalSeparator() + : SeparatorWidget(Gfx::Orientation::Horizontal) + { + } +}; + } diff --git a/Userland/Libraries/LibGUI/TextEditor.cpp b/Userland/Libraries/LibGUI/TextEditor.cpp index 83501dc79e..2e3a86e32e 100644 --- a/Userland/Libraries/LibGUI/TextEditor.cpp +++ b/Userland/Libraries/LibGUI/TextEditor.cpp @@ -59,6 +59,7 @@ TextEditor::TextEditor(Type type) : m_type(type) { REGISTER_STRING_PROPERTY("text", text, set_text); + REGISTER_STRING_PROPERTY("placeholder", placeholder, set_placeholder); REGISTER_ENUM_PROPERTY("mode", mode, set_mode, Mode, { Editable, "Editable" }, { ReadOnly, "ReadOnly" },