Table of Contents

Class SplitContainer

A container that splits two child controls horizontally or vertically and provides a grabber for adjusting the split ratio.

Inheritance
SplitContainer
Derived

Remarks

A container that accepts only two child controls, then arranges them horizontally or vertically and creates a divisor between them. The divisor can be dragged around to change the size relation between the child controls.

See Also

Properties

collapsed

If true, the dragger will be disabled and the children will be sized as if the split_offset was 0.

var collapsed : bool = false

Property Value

bool

Remarks

  • void set_collapsed(bool value)
  • bool is_collapsed

drag_area_highlight_in_editor

Highlights the drag area Rect2 so you can see where it is during development. The drag area is gold if dragging_enabled is true, and red if false.

var drag_area_highlight_in_editor : bool = false

Property Value

bool

Remarks

  • void set_drag_area_highlight_in_editor(bool value)
  • bool is_drag_area_highlight_in_editor_enabled

drag_area_margin_begin

Reduces the size of the drag area and split bar split_bar_background at the beginning of the container.

var drag_area_margin_begin : int = 0

Property Value

int

Remarks

  • void set_drag_area_margin_begin(int value)
  • int get_drag_area_margin_begin

drag_area_margin_end

Reduces the size of the drag area and split bar split_bar_background at the end of the container.

var drag_area_margin_end : int = 0

Property Value

int

Remarks

  • void set_drag_area_margin_end(int value)
  • int get_drag_area_margin_end

drag_area_offset

Shifts the drag area in the axis of the container to prevent the drag area from overlapping the ScrollBar or other selectable Control of a child node.

var drag_area_offset : int = 0

Property Value

int

Remarks

  • void set_drag_area_offset(int value)
  • int get_drag_area_offset

dragger_visibility

Determines the dragger's visibility. See DraggerVisibility for details. This property does not determine whether dragging is enabled or not. Use dragging_enabled for that.

var dragger_visibility : int = 0

Property Value

int

Remarks

  • void set_dragger_visibility(int value)
  • int get_dragger_visibility

dragging_enabled

Enables or disables split dragging.

var dragging_enabled : bool = true

Property Value

bool

Remarks

  • void set_dragging_enabled(bool value)
  • bool is_dragging_enabled

split_offset

The initial offset of the splitting between the two Controls, with 0 being at the end of the first Control.

var split_offset : int = 0

Property Value

int

Remarks

  • void set_split_offset(int value)
  • int get_split_offset

vertical

If true, the SplitContainer will arrange its children vertically, rather than horizontally.

Can't be changed when using HSplitContainer and VSplitContainer.

var vertical : bool = false

Property Value

bool

Remarks

  • void set_vertical(bool value)
  • bool is_vertical

autohide

Theme Property

Boolean value. If 1 (true), the grabber will hide automatically when it isn't under the cursor. If 0 (false), it's always visible. The dragger_visibility must be SplitContainer.DRAGGER_VISIBLE.

 = ``1``

Property Value

int

minimum_grab_thickness

Theme Property

The minimum thickness of the area users can click on to grab the split bar. This ensures that the split bar can still be dragged if separation or h_grabber / v_grabber's size is too narrow to easily select.

 = ``6``

Property Value

int

separation

Theme Property

The split bar thickness, i.e., the gap between the two children of the container. This is overridden by the size of the grabber icon if dragger_visibility is set to SplitContainer.DRAGGER_VISIBLE, or SplitContainer.DRAGGER_HIDDEN, and separation is smaller than the size of the grabber icon in the same axis.

Note: To obtain separation values less than the size of the grabber icon, for example a 1 px hairline, set h_grabber or v_grabber to a new ImageTexture, which effectively sets the grabber icon size to 0 px.

 = ``12``

Property Value

int

grabber

Theme Property

The icon used for the grabber drawn in the middle area.

Texture2D grabber

Property Value

Texture2D

h_grabber

Theme Property

The icon used for the grabber drawn in the middle area when vertical is false.

Texture2D h_grabber

Property Value

Texture2D

v_grabber

Theme Property

The icon used for the grabber drawn in the middle area when vertical is true.

Texture2D v_grabber

Property Value

Texture2D

split_bar_background

Theme Property

Determines the background of the split bar if its thickness is greater than zero.

StyleBox split_bar_background

Property Value

StyleBox

Methods

clamp_split_offset

Clamps the split_offset value to not go outside the currently possible minimal and maximum values.

void clamp_split_offset

get_drag_area_control

Returns the drag area Control. For example, you can move a pre-configured button into the drag area Control so that it rides along with the split bar. Try setting the Button anchors to center prior to the reparent() call.

$BarnacleButton.reparent($SplitContainer.get_drag_area_control())

Note: The drag area Control is drawn over the SplitContainer's children, so CanvasItem draw objects called from the Control and children added to the Control will also appear over the SplitContainer's children. Try setting mouse_filter of custom children to Control.MOUSE_FILTER_IGNORE to prevent blocking the mouse from dragging if desired.

Warning: This is a required internal node, removing and freeing it may cause a crash.

Control get_drag_area_control

Events

drag_ended

Emitted when the user ends dragging.

signal drag_ended

drag_started

Emitted when the user starts dragging.

signal drag_started

dragged(int)

Emitted when the dragger is dragged by user.

signal dragged(int offset)

Parameters

offset int