mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 08:37:45 +00:00
LibGUI: Add read-only effective size properties for debugging
These new read-only properties help with debugging layouts, by exposing the size values that are actually used for final size determination.
This commit is contained in:
parent
68ad5f3780
commit
aba6422e11
2 changed files with 20 additions and 0 deletions
|
@ -285,6 +285,13 @@ inline auto clamp<GUI::UIDimension>(GUI::UIDimension const& input, GUI::UIDimens
|
||||||
return result.has_value(); \
|
return result.has_value(); \
|
||||||
});
|
});
|
||||||
|
|
||||||
|
#define REGISTER_READONLY_UI_DIMENSION_PROPERTY(property_name, getter) \
|
||||||
|
register_property( \
|
||||||
|
property_name, \
|
||||||
|
[this] { \
|
||||||
|
return this->getter().as_json_value(); \
|
||||||
|
});
|
||||||
|
|
||||||
#define REGISTER_UI_SIZE_PROPERTY(property_name, getter, setter) \
|
#define REGISTER_UI_SIZE_PROPERTY(property_name, getter, setter) \
|
||||||
register_property( \
|
register_property( \
|
||||||
property_name, \
|
property_name, \
|
||||||
|
@ -309,3 +316,14 @@ inline auto clamp<GUI::UIDimension>(GUI::UIDimension const& input, GUI::UIDimens
|
||||||
} \
|
} \
|
||||||
return false; \
|
return false; \
|
||||||
});
|
});
|
||||||
|
|
||||||
|
#define REGISTER_READONLY_UI_SIZE_PROPERTY(property_name, getter) \
|
||||||
|
register_property( \
|
||||||
|
property_name, \
|
||||||
|
[this] { \
|
||||||
|
auto size = this->getter(); \
|
||||||
|
JsonObject size_object; \
|
||||||
|
size_object.set("width", size.width().as_json_value()); \
|
||||||
|
size_object.set("height", size.height().as_json_value()); \
|
||||||
|
return size_object; \
|
||||||
|
});
|
||||||
|
|
|
@ -50,8 +50,10 @@ Widget::Widget()
|
||||||
REGISTER_STRING_PROPERTY("tooltip", tooltip, set_tooltip);
|
REGISTER_STRING_PROPERTY("tooltip", tooltip, set_tooltip);
|
||||||
|
|
||||||
REGISTER_UI_SIZE_PROPERTY("min_size", min_size, set_min_size);
|
REGISTER_UI_SIZE_PROPERTY("min_size", min_size, set_min_size);
|
||||||
|
REGISTER_READONLY_UI_SIZE_PROPERTY("effective_min_size", effective_min_size);
|
||||||
REGISTER_UI_SIZE_PROPERTY("max_size", max_size, set_max_size);
|
REGISTER_UI_SIZE_PROPERTY("max_size", max_size, set_max_size);
|
||||||
REGISTER_UI_SIZE_PROPERTY("preferred_size", preferred_size, set_preferred_size);
|
REGISTER_UI_SIZE_PROPERTY("preferred_size", preferred_size, set_preferred_size);
|
||||||
|
REGISTER_READONLY_UI_SIZE_PROPERTY("effective_preferred_size", effective_preferred_size);
|
||||||
REGISTER_INT_PROPERTY("width", width, set_width);
|
REGISTER_INT_PROPERTY("width", width, set_width);
|
||||||
REGISTER_UI_DIMENSION_PROPERTY("min_width", min_width, set_min_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("max_width", max_width, set_max_width);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue