Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

StyleBox

Inherits: Resource < RefCounted < Object

Inherited By: StyleBoxEmpty, StyleBoxFlat, StyleBoxLine, StyleBoxTexture

Abstract base class for defining stylized boxes for UI elements.

Description

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.

Note: For control nodes 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

Rect2

_get_draw_rect ( Rect2 rect ) virtual const

Vector2

_get_minimum_size ( ) virtual const

bool

_test_mask ( Vector2 point, Rect2 rect ) virtual const

void

draw ( RID canvas_item, Rect2 rect ) const

float

get_content_margin ( Side margin ) const

CanvasItem

get_current_item_drawn ( ) const

float

get_margin ( Side margin ) const

Vector2

get_minimum_size ( ) const

Vector2

get_offset ( ) const

void

set_content_margin ( Side margin, float offset )

void

set_content_margin_all ( float offset )

bool

test_mask ( Vector2 point, Rect2 rect ) const


Property Descriptions

float content_margin_bottom = -1.0

  • void set_content_margin ( Side margin, float offset )

  • float get_content_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.