mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 03:37:45 +00:00
LibGUI: Add preferred_size to Widget
This commit is contained in:
parent
a4aced7f3a
commit
bd277939a1
2 changed files with 20 additions and 0 deletions
|
@ -51,12 +51,15 @@ Widget::Widget()
|
|||
|
||||
REGISTER_UI_SIZE_PROPERTY("min_size", min_size, set_min_size);
|
||||
REGISTER_UI_SIZE_PROPERTY("max_size", max_size, set_max_size);
|
||||
REGISTER_UI_SIZE_PROPERTY("preferred_size", preferred_size, set_preferred_size);
|
||||
REGISTER_INT_PROPERTY("width", width, set_width);
|
||||
REGISTER_UI_DIMENSION_PROPERTY("min_width", min_width, set_min_width);
|
||||
REGISTER_UI_DIMENSION_PROPERTY("max_width", max_width, set_max_width);
|
||||
REGISTER_UI_DIMENSION_PROPERTY("preferred_width", preferred_width, set_preferred_width);
|
||||
REGISTER_INT_PROPERTY("height", height, set_height);
|
||||
REGISTER_UI_DIMENSION_PROPERTY("min_height", min_height, set_min_height);
|
||||
REGISTER_UI_DIMENSION_PROPERTY("max_height", max_height, set_max_height);
|
||||
REGISTER_UI_DIMENSION_PROPERTY("preferred_height", preferred_height, set_preferred_height);
|
||||
|
||||
REGISTER_INT_PROPERTY("fixed_width", dummy_fixed_width, set_fixed_width);
|
||||
REGISTER_INT_PROPERTY("fixed_height", dummy_fixed_height, set_fixed_height);
|
||||
|
@ -798,6 +801,14 @@ void Widget::set_max_size(UISize const& size)
|
|||
invalidate_layout();
|
||||
}
|
||||
|
||||
void Widget::set_preferred_size(UISize const& size)
|
||||
{
|
||||
if (m_preferred_size == size)
|
||||
return;
|
||||
m_preferred_size = size;
|
||||
invalidate_layout();
|
||||
}
|
||||
|
||||
void Widget::invalidate_layout()
|
||||
{
|
||||
if (window())
|
||||
|
|
|
@ -99,6 +99,14 @@ public:
|
|||
void set_max_width(UIDimension width) { set_max_size(width, max_height()); }
|
||||
void set_max_height(UIDimension height) { set_max_size(max_width(), height); }
|
||||
|
||||
UISize preferred_size() const { return m_preferred_size; }
|
||||
void set_preferred_size(UISize const&);
|
||||
void set_preferred_size(UIDimension width, UIDimension height) { set_preferred_size({ width, height }); }
|
||||
|
||||
UIDimension preferred_width() const { return m_preferred_size.width(); }
|
||||
UIDimension preferred_height() const { return m_preferred_size.height(); }
|
||||
void set_preferred_width(UIDimension width) { set_preferred_size(width, preferred_height()); }
|
||||
void set_preferred_height(UIDimension height) { set_preferred_size(preferred_width(), height); }
|
||||
void set_fixed_size(UISize const& size)
|
||||
{
|
||||
VERIFY(size.has_only_int_values());
|
||||
|
@ -383,6 +391,7 @@ private:
|
|||
|
||||
UISize m_min_size { SpecialDimension::Shrink };
|
||||
UISize m_max_size { SpecialDimension::Grow };
|
||||
UISize m_preferred_size { SpecialDimension::Grow };
|
||||
Margins m_grabbable_margins;
|
||||
|
||||
bool m_fill_with_background_color { false };
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue