<?xml version="1.0" encoding="UTF-8" ?>
<class name="StyleBoxFlat" inherits="StyleBox" version="3.2">
	<brief_description>
		Customizable [StyleBox] with a given set of parameters (no texture required).
	</brief_description>
	<description>
		This [StyleBox] can be used to achieve all kinds of looks without the need of a texture. Those properties are customizable:
		- Color
		- Border width (individual width for each border)
		- Rounded corners (individual radius for each corner)
		- Shadow (with blur and offset)
		Setting corner radius to high values is allowed. As soon as corners would overlap, the stylebox will switch to a relative system. Example:
		[codeblock]
		height = 30
		corner_radius_top_left = 50
		corner_radius_bottom_left = 100
		[/codeblock]
		The relative system now would take the 1:2 ratio of the two left corners to calculate the actual corner width. Both corners added will [b]never[/b] be more than the height. Result:
		[codeblock]
		corner_radius_top_left: 10
		corner_radius_bottom_left: 20
		[/codeblock]
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="get_border_width" qualifiers="const">
			<return type="int">
			</return>
			<argument index="0" name="margin" type="int" enum="Margin">
			</argument>
			<description>
				Returns the given [code]margin[/code]'s border width. See [enum Margin] for possible values.
			</description>
		</method>
		<method name="get_border_width_min" qualifiers="const">
			<return type="int">
			</return>
			<description>
				Returns the smallest border width out of all four borders.
			</description>
		</method>
		<method name="get_corner_radius" qualifiers="const">
			<return type="int">
			</return>
			<argument index="0" name="corner" type="int" enum="Corner">
			</argument>
			<description>
				Returns the given [code]corner[/code]'s radius. See [enum Corner] for possible values.
			</description>
		</method>
		<method name="get_expand_margin" qualifiers="const">
			<return type="float">
			</return>
			<argument index="0" name="margin" type="int" enum="Margin">
			</argument>
			<description>
				Returns the size of the given [code]margin[/code]'s expand margin. See [enum Margin] for possible values.
			</description>
		</method>
		<method name="set_border_width">
			<return type="void">
			</return>
			<argument index="0" name="margin" type="int" enum="Margin">
			</argument>
			<argument index="1" name="width" type="int">
			</argument>
			<description>
				Sets the border width to [code]width[/code] pixels for the given [code]margin[/code]. See [enum Margin] for possible values.
			</description>
		</method>
		<method name="set_border_width_all">
			<return type="void">
			</return>
			<argument index="0" name="width" type="int">
			</argument>
			<description>
				Sets the border width to [code]width[/code] pixels for all margins.
			</description>
		</method>
		<method name="set_corner_radius">
			<return type="void">
			</return>
			<argument index="0" name="corner" type="int" enum="Corner">
			</argument>
			<argument index="1" name="radius" type="int">
			</argument>
			<description>
				Sets the corner radius to [code]radius[/code] pixels for the given [code]corner[/code]. See [enum Corner] for possible values.
			</description>
		</method>
		<method name="set_corner_radius_all">
			<return type="void">
			</return>
			<argument index="0" name="radius" type="int">
			</argument>
			<description>
				Sets the corner radius to [code]radius[/code] pixels for all corners.
			</description>
		</method>
		<method name="set_corner_radius_individual">
			<return type="void">
			</return>
			<argument index="0" name="radius_top_left" type="int">
			</argument>
			<argument index="1" name="radius_top_right" type="int">
			</argument>
			<argument index="2" name="radius_bottom_right" type="int">
			</argument>
			<argument index="3" name="radius_bottom_left" type="int">
			</argument>
			<description>
				Sets the corner radius for each corner to [code]radius_top_left[/code], [code]radius_top_right[/code], [code]radius_bottom_right[/code], and [code]radius_bottom_left[/code] pixels.
			</description>
		</method>
		<method name="set_expand_margin">
			<return type="void">
			</return>
			<argument index="0" name="margin" type="int" enum="Margin">
			</argument>
			<argument index="1" name="size" type="float">
			</argument>
			<description>
				Sets the expand margin to [code]size[/code] pixels for the given [code]margin[/code]. See [enum Margin] for possible values.
			</description>
		</method>
		<method name="set_expand_margin_all">
			<return type="void">
			</return>
			<argument index="0" name="size" type="float">
			</argument>
			<description>
				Sets the expand margin to [code]size[/code] pixels for all margins.
			</description>
		</method>
		<method name="set_expand_margin_individual">
			<return type="void">
			</return>
			<argument index="0" name="size_left" type="float">
			</argument>
			<argument index="1" name="size_top" type="float">
			</argument>
			<argument index="2" name="size_right" type="float">
			</argument>
			<argument index="3" name="size_bottom" type="float">
			</argument>
			<description>
				Sets the expand margin for each margin to [code]size_left[/code], [code]size_top[/code], [code]size_right[/code], and [code]size_bottom[/code] pixels.
			</description>
		</method>
	</methods>
	<members>
		<member name="anti_aliasing" type="bool" setter="set_anti_aliased" getter="is_anti_aliased" default="true">
			Antialiasing draws a small ring around the edges, which fades to transparency. As a result, edges look much smoother. This is only noticeable when using rounded corners.
		</member>
		<member name="anti_aliasing_size" type="int" setter="set_aa_size" getter="get_aa_size" default="1">
			This changes the size of the faded ring. Higher values can be used to achieve a "blurry" effect.
		</member>
		<member name="bg_color" type="Color" setter="set_bg_color" getter="get_bg_color" default="Color( 0.6, 0.6, 0.6, 1 )">
			The background color of the stylebox.
		</member>
		<member name="border_blend" type="bool" setter="set_border_blend" getter="get_border_blend" default="false">
			If [code]true[/code], the border will fade into the background color.
		</member>
		<member name="border_color" type="Color" setter="set_border_color" getter="get_border_color" default="Color( 0.8, 0.8, 0.8, 1 )">
			Sets the color of the border.
		</member>
		<member name="border_width_bottom" type="int" setter="set_border_width" getter="get_border_width" default="0">
			Border width for the bottom border.
		</member>
		<member name="border_width_left" type="int" setter="set_border_width" getter="get_border_width" default="0">
			Border width for the left border.
		</member>
		<member name="border_width_right" type="int" setter="set_border_width" getter="get_border_width" default="0">
			Border width for the right border.
		</member>
		<member name="border_width_top" type="int" setter="set_border_width" getter="get_border_width" default="0">
			Border width for the top border.
		</member>
		<member name="corner_detail" type="int" setter="set_corner_detail" getter="get_corner_detail" default="8">
			This sets the amount of vertices used for each corner. Higher values result in rounder corners but take more processing power to compute. When choosing a value, you should take the corner radius ([method set_corner_radius_all]) into account.
			For corner radii smaller than 10, [code]4[/code] or [code]5[/code] should be enough. For corner radii smaller than 30, values between [code]8[/code] and [code]12[/code] should be enough.
			A corner detail of [code]1[/code] will result in chamfered corners instead of rounded corners, which is useful for some artistic effects.
		</member>
		<member name="corner_radius_bottom_left" type="int" setter="set_corner_radius" getter="get_corner_radius" default="0">
			The bottom-left corner's radius. If [code]0[/code], the corner is not rounded.
		</member>
		<member name="corner_radius_bottom_right" type="int" setter="set_corner_radius" getter="get_corner_radius" default="0">
			The bottom-right corner's radius. If [code]0[/code], the corner is not rounded.
		</member>
		<member name="corner_radius_top_left" type="int" setter="set_corner_radius" getter="get_corner_radius" default="0">
			The top-left corner's radius. If [code]0[/code], the corner is not rounded.
		</member>
		<member name="corner_radius_top_right" type="int" setter="set_corner_radius" getter="get_corner_radius" default="0">
			The top-right corner's radius. If [code]0[/code], the corner is not rounded.
		</member>
		<member name="draw_center" type="bool" setter="set_draw_center" getter="is_draw_center_enabled" default="true">
			Toggles drawing of the inner part of the stylebox.
		</member>
		<member name="expand_margin_bottom" type="float" setter="set_expand_margin" getter="get_expand_margin" default="0.0">
			Expands the stylebox outside of the control rect on the bottom edge. Useful in combination with [member border_width_bottom] to draw a border outside the control rect.
		</member>
		<member name="expand_margin_left" type="float" setter="set_expand_margin" getter="get_expand_margin" default="0.0">
			Expands the stylebox outside of the control rect on the left edge. Useful in combination with [member border_width_left] to draw a border outside the control rect.
		</member>
		<member name="expand_margin_right" type="float" setter="set_expand_margin" getter="get_expand_margin" default="0.0">
			Expands the stylebox outside of the control rect on the right edge. Useful in combination with [member border_width_right] to draw a border outside the control rect.
		</member>
		<member name="expand_margin_top" type="float" setter="set_expand_margin" getter="get_expand_margin" default="0.0">
			Expands the stylebox outside of the control rect on the top edge. Useful in combination with [member border_width_top] to draw a border outside the control rect.
		</member>
		<member name="shadow_color" type="Color" setter="set_shadow_color" getter="get_shadow_color" default="Color( 0, 0, 0, 0.6 )">
			The color of the shadow. This has no effect if [member shadow_size] is lower than 1.
		</member>
		<member name="shadow_offset" type="Vector2" setter="set_shadow_offset" getter="get_shadow_offset" default="Vector2( 0, 0 )">
			The shadow offset in pixels. Adjusts the position of the shadow relatively to the stylebox.
		</member>
		<member name="shadow_size" type="int" setter="set_shadow_size" getter="get_shadow_size" default="0">
			The shadow size in pixels.
		</member>
	</members>
	<constants>
	</constants>
</class>
