Browse Source

LibGUI: Allow construction of vertical GToolBars

There's currently a small paint glitch for vertical toolbars due to the
way StylePainter::paint_surface() draws a MidGray line at the bottom of
whatever a "surface" is supposed to be.
Andreas Kling 5 năm trước cách đây
mục cha
commit
0d2495e4e7

+ 13 - 3
Libraries/LibGUI/GToolBar.cpp

@@ -5,11 +5,21 @@
 #include <LibGUI/GToolBar.h>
 #include <LibGUI/GToolBar.h>
 
 
 GToolBar::GToolBar(GWidget* parent)
 GToolBar::GToolBar(GWidget* parent)
+    : GToolBar(Orientation::Horizontal, parent)
+{
+}
+
+GToolBar::GToolBar(Orientation orientation, GWidget* parent)
     : GWidget(parent)
     : GWidget(parent)
 {
 {
-    set_size_policy(SizePolicy::Fill, SizePolicy::Fixed);
-    set_preferred_size(0, 28);
-    set_layout(make<GBoxLayout>(Orientation::Horizontal));
+    if (orientation == Orientation::Horizontal) {
+        set_size_policy(SizePolicy::Fill, SizePolicy::Fixed);
+        set_preferred_size(0, 28);
+    } else {
+        set_size_policy(SizePolicy::Fixed, SizePolicy::Fill);
+        set_preferred_size(28, 0);
+    }
+    set_layout(make<GBoxLayout>(orientation));
     layout()->set_spacing(0);
     layout()->set_spacing(0);
     layout()->set_margins({ 2, 2, 2, 2 });
     layout()->set_margins({ 2, 2, 2, 2 });
 }
 }

+ 1 - 0
Libraries/LibGUI/GToolBar.h

@@ -18,6 +18,7 @@ public:
 
 
 protected:
 protected:
     explicit GToolBar(GWidget* parent);
     explicit GToolBar(GWidget* parent);
+    explicit GToolBar(Orientation, GWidget* parent);
 
 
     virtual void paint_event(GPaintEvent&) override;
     virtual void paint_event(GPaintEvent&) override;