summaryrefslogtreecommitdiff
path: root/Userland/Libraries
diff options
context:
space:
mode:
Diffstat (limited to 'Userland/Libraries')
-rw-r--r--Userland/Libraries/LibGUI/Splitter.cpp11
-rw-r--r--Userland/Libraries/LibGUI/Splitter.h9
2 files changed, 16 insertions, 4 deletions
diff --git a/Userland/Libraries/LibGUI/Splitter.cpp b/Userland/Libraries/LibGUI/Splitter.cpp
index db416160b9..064cc5a082 100644
--- a/Userland/Libraries/LibGUI/Splitter.cpp
+++ b/Userland/Libraries/LibGUI/Splitter.cpp
@@ -20,6 +20,9 @@ Splitter::Splitter(Orientation orientation)
{
REGISTER_INT_PROPERTY("first_resizee_minimum_size", first_resizee_minimum_size, set_first_resizee_minimum_size);
REGISTER_INT_PROPERTY("second_resizee_minimum_size", second_resizee_minimum_size, set_second_resizee_minimum_size);
+ REGISTER_ENUM_PROPERTY("fixed_resizee", fixed_resizee, set_fixed_resizee, FixedResizee,
+ { FixedResizee::First, "First" },
+ { FixedResizee::Second, "Second" });
set_background_role(ColorRole::Button);
set_layout<BoxLayout>(orientation);
@@ -218,11 +221,11 @@ void Splitter::mousemove_event(MouseEvent& event)
}
if (m_orientation == Orientation::Horizontal) {
- m_first_resizee->set_fixed_width(new_first_resizee_size.width());
- m_second_resizee->set_fixed_width(-1);
+ m_first_resizee->set_fixed_width(fixed_resizee() == FixedResizee::First ? new_first_resizee_size.width() : -1);
+ m_second_resizee->set_fixed_width(fixed_resizee() == FixedResizee::Second ? new_second_resizee_size.width() : -1);
} else {
- m_first_resizee->set_fixed_height(new_first_resizee_size.height());
- m_second_resizee->set_fixed_height(-1);
+ m_first_resizee->set_fixed_height(fixed_resizee() == FixedResizee::First ? new_first_resizee_size.height() : -1);
+ m_second_resizee->set_fixed_height(fixed_resizee() == FixedResizee::Second ? new_second_resizee_size.height() : -1);
}
invalidate_layout();
diff --git a/Userland/Libraries/LibGUI/Splitter.h b/Userland/Libraries/LibGUI/Splitter.h
index 5661492ecf..911c6b5029 100644
--- a/Userland/Libraries/LibGUI/Splitter.h
+++ b/Userland/Libraries/LibGUI/Splitter.h
@@ -14,6 +14,11 @@ class Splitter : public Widget {
C_OBJECT(Splitter);
public:
+ enum class FixedResizee {
+ First,
+ Second
+ };
+
virtual ~Splitter() override;
int first_resizee_minimum_size() { return m_first_resizee_minimum_size; }
@@ -33,6 +38,9 @@ protected:
virtual void did_layout() override;
+ FixedResizee fixed_resizee() const { return m_fixed_resizee; }
+ void set_fixed_resizee(FixedResizee resizee) { m_fixed_resizee = resizee; }
+
private:
void override_cursor(bool do_override);
Gfx::IntRect rect_between_widgets(GUI::Widget const& first_widget, GUI::Widget const& second_widget, bool honor_grabbable_margins) const;
@@ -47,6 +55,7 @@ private:
Gfx::IntSize m_second_resizee_start_size;
int m_first_resizee_minimum_size { 0 };
int m_second_resizee_minimum_size { 0 };
+ FixedResizee m_fixed_resizee { FixedResizee::First };
void recompute_grabbables();