Ver código fonte

LibGUI: Use calculated_preferred_size for Progressbar default size

FrHun 2 anos atrás
pai
commit
f1271c7860

+ 9 - 0
Userland/Libraries/LibGUI/Progressbar.cpp

@@ -27,6 +27,8 @@ Progressbar::Progressbar(Orientation orientation)
         { Format::ValueSlashMax, "ValueSlashMax" });
     REGISTER_INT_PROPERTY("min", min, set_min);
     REGISTER_INT_PROPERTY("max", max, set_max);
+
+    set_preferred_size(SpecialDimension::Fit);
 }
 
 void Progressbar::set_value(int value)
@@ -81,4 +83,11 @@ void Progressbar::set_orientation(Orientation value)
     update();
 }
 
+Optional<UISize> Progressbar::calculated_preferred_size() const
+{
+    if (orientation() == Gfx::Orientation::Vertical)
+        return { { 22, SpecialDimension::OpportunisticGrow } };
+    return { { SpecialDimension::OpportunisticGrow, 22 } };
+}
+
 }

+ 2 - 0
Userland/Libraries/LibGUI/Progressbar.h

@@ -45,6 +45,8 @@ protected:
     virtual void paint_event(PaintEvent&) override;
 
 private:
+    virtual Optional<UISize> calculated_preferred_size() const override;
+
     Format m_format { Percentage };
     int m_min { 0 };
     int m_max { 100 };