2017-09-12 22:42:36 +02:00
<?xml version="1.0" encoding="UTF-8" ?>
2023-07-06 10:08:05 +02:00
<class name= "StyleBox" inherits= "Resource" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "../class.xsd" >
2017-09-12 22:42:36 +02:00
<brief_description >
2023-04-30 16:26:09 +02:00
Abstract base class for defining stylized boxes for UI elements.
2017-09-12 22:42:36 +02:00
</brief_description>
<description >
2023-04-30 16:26:09 +02:00
[StyleBox] is an abstract base class for drawing stylized boxes for UI elements. It is used for panels, buttons, [LineEdit] backgrounds, [Tree] backgrounds, etc. and also for testing a transparency mask for pointer signals. If mask test fails on a [StyleBox] assigned as mask to a control, clicks and motion signals will go through it to the one below.
[b]Note:[/b] For control nodes that have [i]Theme Properties[/i], the [code]focus[/code] [StyleBox] is displayed over the [code]normal[/code], [code]hover[/code] or [code]pressed[/code] [StyleBox]. This makes the [code]focus[/code] [StyleBox] more reusable across different nodes.
2017-09-12 22:42:36 +02:00
</description>
<tutorials >
</tutorials>
<methods >
2022-03-10 08:17:38 +01:00
<method name= "_draw" qualifiers= "virtual const" >
<return type= "void" />
2022-08-06 20:11:48 +02:00
<param index= "0" name= "to_canvas_item" type= "RID" />
<param index= "1" name= "rect" type= "Rect2" />
2022-03-10 08:17:38 +01:00
<description >
</description>
</method>
<method name= "_get_draw_rect" qualifiers= "virtual const" >
<return type= "Rect2" />
2022-08-06 20:11:48 +02:00
<param index= "0" name= "rect" type= "Rect2" />
2022-03-10 08:17:38 +01:00
<description >
</description>
</method>
2023-01-19 17:14:09 +01:00
<method name= "_get_minimum_size" qualifiers= "virtual const" >
<return type= "Vector2" />
2022-03-10 08:17:38 +01:00
<description >
2023-01-19 17:14:09 +01:00
Virtual method to be implemented by the user. Returns a custom minimum size that the stylebox must respect when drawing. By default [method get_minimum_size] only takes content margins into account. This method can be overridden to add another size restriction. A combination of the default behavior and the output of this method will be used, to account for both sizes.
2022-03-10 08:17:38 +01:00
</description>
</method>
<method name= "_test_mask" qualifiers= "virtual const" >
<return type= "bool" />
2022-08-06 20:11:48 +02:00
<param index= "0" name= "point" type= "Vector2" />
<param index= "1" name= "rect" type= "Rect2" />
2022-03-10 08:17:38 +01:00
<description >
</description>
</method>
2017-09-12 22:42:36 +02:00
<method name= "draw" qualifiers= "const" >
2021-07-30 15:28:05 +02:00
<return type= "void" />
2022-08-06 20:11:48 +02:00
<param index= "0" name= "canvas_item" type= "RID" />
<param index= "1" name= "rect" type= "Rect2" />
2017-09-12 22:42:36 +02:00
<description >
2022-07-05 06:15:44 +02:00
Draws this stylebox using a canvas item identified by the given [RID].
The [RID] value can either be the result of [method CanvasItem.get_canvas_item] called on an existing [CanvasItem]-derived node, or directly from creating a canvas item in the [RenderingServer] with [method RenderingServer.canvas_item_create].
2017-09-12 22:42:36 +02:00
</description>
</method>
2023-01-19 17:14:09 +01:00
<method name= "get_content_margin" qualifiers= "const" >
<return type= "float" />
<param index= "0" name= "margin" type= "int" enum= "Side" />
2017-09-12 22:42:36 +02:00
<description >
2023-01-19 17:14:09 +01:00
Returns the default margin of the specified [enum Side].
2017-09-12 22:42:36 +02:00
</description>
</method>
2019-01-26 22:21:53 +01:00
<method name= "get_current_item_drawn" qualifiers= "const" >
2021-07-30 15:28:05 +02:00
<return type= "CanvasItem" />
2019-01-26 22:21:53 +01:00
<description >
2020-01-13 23:08:42 +01:00
Returns the [CanvasItem] that handles its [constant CanvasItem.NOTIFICATION_DRAW] or [method CanvasItem._draw] callback at this moment.
2019-01-26 22:21:53 +01:00
</description>
</method>
2017-09-12 22:42:36 +02:00
<method name= "get_margin" qualifiers= "const" >
2021-07-30 15:28:05 +02:00
<return type= "float" />
2022-08-06 20:11:48 +02:00
<param index= "0" name= "margin" type= "int" enum= "Side" />
2017-09-12 22:42:36 +02:00
<description >
2020-12-22 17:24:29 +01:00
Returns the content margin offset for the specified [enum Side].
2019-02-06 17:18:02 +01:00
Positive values reduce size inwards, unlike [Control]'s margin values.
2017-09-12 22:42:36 +02:00
</description>
</method>
<method name= "get_minimum_size" qualifiers= "const" >
2021-07-30 15:28:05 +02:00
<return type= "Vector2" />
2017-09-12 22:42:36 +02:00
<description >
2019-05-24 04:15:43 +02:00
Returns the minimum size that this stylebox can be shrunk to.
2017-09-12 22:42:36 +02:00
</description>
</method>
<method name= "get_offset" qualifiers= "const" >
2021-07-30 15:28:05 +02:00
<return type= "Vector2" />
2017-09-12 22:42:36 +02:00
<description >
2019-06-22 01:04:47 +02:00
Returns the "offset" of a stylebox. This helper function returns a value equivalent to [code]Vector2(style.get_margin(MARGIN_LEFT), style.get_margin(MARGIN_TOP))[/code].
2017-09-12 22:42:36 +02:00
</description>
</method>
2023-01-19 17:14:09 +01:00
<method name= "set_content_margin" >
2021-07-30 15:28:05 +02:00
<return type= "void" />
2022-08-06 20:11:48 +02:00
<param index= "0" name= "margin" type= "int" enum= "Side" />
<param index= "1" name= "offset" type= "float" />
2019-06-27 16:10:09 +02:00
<description >
2022-08-10 04:00:19 +02:00
Sets the default value of the specified [enum Side] to [param offset] pixels.
2019-06-27 16:10:09 +02:00
</description>
</method>
2023-01-19 17:14:09 +01:00
<method name= "set_content_margin_all" >
2022-03-12 05:38:44 +01:00
<return type= "void" />
<param index= "0" name= "offset" type= "float" />
<description >
Sets the default margin to [param offset] pixels for all sides.
</description>
</method>
2017-09-12 22:42:36 +02:00
<method name= "test_mask" qualifiers= "const" >
2021-07-30 15:28:05 +02:00
<return type= "bool" />
2022-08-06 20:11:48 +02:00
<param index= "0" name= "point" type= "Vector2" />
<param index= "1" name= "rect" type= "Rect2" />
2017-09-12 22:42:36 +02:00
<description >
Test a position in a rectangle, return whether it passes the mask test.
</description>
</method>
</methods>
<members >
2023-01-19 17:14:09 +01:00
<member name= "content_margin_bottom" type= "float" setter= "set_content_margin" getter= "get_content_margin" default= "-1.0" >
2019-02-06 17:18:02 +01:00
The bottom margin for the contents of this style box. Increasing this value reduces the space available to the contents from the bottom.
2023-08-28 21:32:37 +02:00
If this value is negative, it is ignored and a child-specific margin is used instead. For example, for [StyleBoxFlat], the border thickness (if any) is used instead.
2019-02-06 17:18:02 +01:00
It is up to the code using this style box to decide what these contents are: for example, a [Button] respects this content margin for the textual contents of the button.
[method get_margin] should be used to fetch this value as consumer instead of reading these properties directly. This is because it correctly respects negative values and the fallback mentioned above.
2017-09-12 22:42:36 +02:00
</member>
2023-01-19 17:14:09 +01:00
<member name= "content_margin_left" type= "float" setter= "set_content_margin" getter= "get_content_margin" default= "-1.0" >
2023-08-07 12:59:23 +02:00
The left margin for the contents of this style box. Increasing this value reduces the space available to the contents from the left.
2019-02-06 17:18:02 +01:00
Refer to [member content_margin_bottom] for extra considerations.
2017-09-12 22:42:36 +02:00
</member>
2023-01-19 17:14:09 +01:00
<member name= "content_margin_right" type= "float" setter= "set_content_margin" getter= "get_content_margin" default= "-1.0" >
2019-02-06 17:18:02 +01:00
The right margin for the contents of this style box. Increasing this value reduces the space available to the contents from the right.
Refer to [member content_margin_bottom] for extra considerations.
2017-09-12 22:42:36 +02:00
</member>
2023-01-19 17:14:09 +01:00
<member name= "content_margin_top" type= "float" setter= "set_content_margin" getter= "get_content_margin" default= "-1.0" >
2019-02-06 17:18:02 +01:00
The top margin for the contents of this style box. Increasing this value reduces the space available to the contents from the top.
Refer to [member content_margin_bottom] for extra considerations.
2017-09-12 22:42:36 +02:00
</member>
</members>
</class>