2020-11-24 07:01:06 +08:00
<?xml version="1.0" encoding="UTF-8" ?>
2023-07-06 16:08:05 +08:00
<class name= "AspectRatioContainer" inherits= "Container" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "../class.xsd" >
2020-11-24 07:01:06 +08:00
<brief_description >
2023-04-30 22:26:09 +08:00
A container that preserves the proportions of its child controls.
2020-11-24 07:01:06 +08:00
</brief_description>
<description >
2023-04-30 22:26:09 +08:00
A container type that arranges its child controls in a way that preserves their proportions automatically when the container is resized. Useful when a container has a dynamic size and the child nodes must adjust their sizes accordingly without losing their aspect ratios.
2020-11-24 07:01:06 +08:00
</description>
<tutorials >
2023-04-30 22:26:09 +08:00
<link title= "Using Containers" > $DOCS_URL/tutorials/ui/gui_containers.html</link>
2020-11-24 07:01:06 +08:00
</tutorials>
<members >
2021-11-25 10:58:47 +08:00
<member name= "alignment_horizontal" type= "int" setter= "set_alignment_horizontal" getter= "get_alignment_horizontal" enum= "AspectRatioContainer.AlignmentMode" default= "1" >
2020-11-24 07:01:06 +08:00
Specifies the horizontal relative position of child controls.
</member>
2021-11-25 10:58:47 +08:00
<member name= "alignment_vertical" type= "int" setter= "set_alignment_vertical" getter= "get_alignment_vertical" enum= "AspectRatioContainer.AlignmentMode" default= "1" >
2020-11-24 07:01:06 +08:00
Specifies the vertical relative position of child controls.
</member>
<member name= "ratio" type= "float" setter= "set_ratio" getter= "get_ratio" default= "1.0" >
The aspect ratio to enforce on child controls. This is the width divided by the height. The ratio depends on the [member stretch_mode].
</member>
<member name= "stretch_mode" type= "int" setter= "set_stretch_mode" getter= "get_stretch_mode" enum= "AspectRatioContainer.StretchMode" default= "2" >
The stretch mode used to align child controls.
</member>
</members>
<constants >
<constant name= "STRETCH_WIDTH_CONTROLS_HEIGHT" value= "0" enum= "StretchMode" >
The height of child controls is automatically adjusted based on the width of the container.
</constant>
<constant name= "STRETCH_HEIGHT_CONTROLS_WIDTH" value= "1" enum= "StretchMode" >
The width of child controls is automatically adjusted based on the height of the container.
</constant>
<constant name= "STRETCH_FIT" value= "2" enum= "StretchMode" >
The bounding rectangle of child controls is automatically adjusted to fit inside the container while keeping the aspect ratio.
</constant>
<constant name= "STRETCH_COVER" value= "3" enum= "StretchMode" >
The width and height of child controls is automatically adjusted to make their bounding rectangle cover the entire area of the container while keeping the aspect ratio.
2022-01-24 01:14:31 +08:00
When the bounding rectangle of child controls exceed the container's size and [member Control.clip_contents] is enabled, this allows to show only the container's area restricted by its own bounding rectangle.
2020-11-24 07:01:06 +08:00
</constant>
2021-11-25 10:58:47 +08:00
<constant name= "ALIGNMENT_BEGIN" value= "0" enum= "AlignmentMode" >
2020-11-24 07:01:06 +08:00
Aligns child controls with the beginning (left or top) of the container.
</constant>
2021-11-25 10:58:47 +08:00
<constant name= "ALIGNMENT_CENTER" value= "1" enum= "AlignmentMode" >
2020-11-24 07:01:06 +08:00
Aligns child controls with the center of the container.
</constant>
2021-11-25 10:58:47 +08:00
<constant name= "ALIGNMENT_END" value= "2" enum= "AlignmentMode" >
2020-11-24 07:01:06 +08:00
Aligns child controls with the end (right or bottom) of the container.
</constant>
</constants>
</class>