StyleBox

Inherits: Resource < RefCounted < Object

Inherited By: StyleBoxEmpty, StyleBoxFlat, StyleBoxLine, StyleBoxTexture

Base class for drawing stylized boxes for the UI.

Description

StyleBox is Resource that provides an abstract base class for drawing stylized boxes for the UI. StyleBoxes are used for drawing the styles of buttons, line edit 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.

Note: For children of Control that have Theme Properties, the focus StyleBox is displayed over the normal, hover or pressed StyleBox. This makes the focus StyleBox more reusable across different nodes.

Properties

float

content_margin_bottom

-1.0

float

content_margin_left

-1.0

float

content_margin_right

-1.0

float

content_margin_top

-1.0

Methods

void

_draw ( RID to_canvas_item, Rect2 rect ) virtual const

Vector2

_get_center_size ( ) virtual const

Rect2

_get_draw_rect ( Rect2 rect ) virtual const

float

_get_style_margin ( Side side ) virtual const

bool

_test_mask ( Vector2 point, Rect2 rect ) virtual const

void

draw ( RID canvas_item, Rect2 rect ) const

Vector2

get_center_size ( ) const

CanvasItem

get_current_item_drawn ( ) const

float

get_default_margin ( Side margin ) const

float

get_margin ( Side margin ) const

Vector2

get_minimum_size ( ) const

Vector2

get_offset ( ) const

void

set_default_margin ( Side margin, float offset )

void

set_default_margin_all ( float offset )

bool

test_mask ( Vector2 point, Rect2 rect ) const


Property Descriptions

float content_margin_bottom = -1.0

  • void set_default_margin ( Side margin, float offset )

  • float get_default_margin ( Side margin ) const

The bottom margin for the contents of this style box. Increasing this value reduces the space available to the contents from the bottom.

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.

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.

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.


float content_margin_left = -1.0

  • void set_default_margin ( Side margin, float offset )

  • float get_default_margin ( Side margin ) const

The left margin for the contents of this style box. Increasing this value reduces the space available to the contents from the left.

Refer to content_margin_bottom for extra considerations.


float content_margin_right = -1.0

  • void set_default_margin ( Side margin, float offset )

  • float get_default_margin ( Side margin ) const

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 content_margin_bottom for extra considerations.


float content_margin_top = -1.0

  • void set_default_margin ( Side margin, float offset )

  • float get_default_margin ( Side margin ) const

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 content_margin_bottom for extra considerations.


Method Descriptions

void _draw ( RID to_canvas_item, Rect2 rect ) virtual const

There is currently no description for this method. Please help us by contributing one!


Vector2 _get_center_size ( ) virtual const

There is currently no description for this method. Please help us by contributing one!


Rect2 _get_draw_rect ( Rect2 rect ) virtual const

There is currently no description for this method. Please help us by contributing one!


float _get_style_margin ( Side side ) virtual const

There is currently no description for this method. Please help us by contributing one!


bool _test_mask ( Vector2 point, Rect2 rect ) virtual const

There is currently no description for this method. Please help us by contributing one!


void draw ( RID canvas_item, Rect2 rect ) const

Draws this stylebox using a canvas item identified by the given RID.

The RID value can either be the result of CanvasItem.get_canvas_item called on an existing CanvasItem-derived node, or directly from creating a canvas item in the RenderingServer with RenderingServer.canvas_item_create.


Vector2 get_center_size ( ) const

Returns the size of this StyleBox without the margins.


CanvasItem get_current_item_drawn ( ) const

Returns the CanvasItem that handles its CanvasItem.NOTIFICATION_DRAW or CanvasItem._draw callback at this moment.


float get_default_margin ( Side margin ) const

Returns the default margin of the specified Side.


float get_margin ( Side margin ) const

Returns the content margin offset for the specified Side.

Positive values reduce size inwards, unlike Control's margin values.


Vector2 get_minimum_size ( ) const

Returns the minimum size that this stylebox can be shrunk to.


Vector2 get_offset ( ) const

Returns the "offset" of a stylebox. This helper function returns a value equivalent to Vector2(style.get_margin(MARGIN_LEFT), style.get_margin(MARGIN_TOP)).


void set_default_margin ( Side margin, float offset )

Sets the default value of the specified Side to offset pixels.


void set_default_margin_all ( float offset )

Sets the default margin to offset pixels for all sides.


bool test_mask ( Vector2 point, Rect2 rect ) const

Test a position in a rectangle, return whether it passes the mask test.