|
16 | 16 | Clamps the [member split_offset] value to not go outside the currently possible minimal and maximum values. |
17 | 17 | </description> |
18 | 18 | </method> |
| 19 | + <method name="get_drag_area_control"> |
| 20 | + <return type="Control" /> |
| 21 | + <description> |
| 22 | + 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 [code]center[/code] prior to the [code]reparent()[/code] call. |
| 23 | + [codeblock] |
| 24 | + $BarnacleButton.reparent($SplitContainer.get_drag_area_control()) |
| 25 | + [/codeblock] |
| 26 | + [b]Note:[/b] 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 [member Control.mouse_filter] of custom children to [constant Control.MOUSE_FILTER_IGNORE] to prevent blocking the mouse from dragging if desired. |
| 27 | + [b]Warning:[/b] This is a required internal node, removing and freeing it may cause a crash. |
| 28 | + </description> |
| 29 | + </method> |
19 | 30 | </methods> |
20 | 31 | <members> |
21 | 32 | <member name="collapsed" type="bool" setter="set_collapsed" getter="is_collapsed" default="false"> |
22 | 33 | If [code]true[/code], the area of the first [Control] will be collapsed and the dragger will be disabled. |
23 | 34 | </member> |
| 35 | + <member name="drag_area_highlight_in_editor" type="bool" setter="set_drag_area_highlight_in_editor" getter="is_drag_area_highlight_in_editor_enabled" default="false"> |
| 36 | + Highlights the drag area [Rect2] so you can see where it is during development. The drag area is gold if [member dragging_enabled] is [code]true[/code], and red if [code]false[/code]. |
| 37 | + </member> |
| 38 | + <member name="drag_area_margin_begin" type="int" setter="set_drag_area_margin_begin" getter="get_drag_area_margin_begin" default="0"> |
| 39 | + Reduces the size of the drag area and split bar [theme_item split_bar_background] at the beginning of the container. |
| 40 | + </member> |
| 41 | + <member name="drag_area_margin_end" type="int" setter="set_drag_area_margin_end" getter="get_drag_area_margin_end" default="0"> |
| 42 | + Reduces the size of the drag area and split bar [theme_item split_bar_background] at the end of the container. |
| 43 | + </member> |
| 44 | + <member name="drag_area_offset" type="int" setter="set_drag_area_offset" getter="get_drag_area_offset" default="0"> |
| 45 | + 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. |
| 46 | + </member> |
24 | 47 | <member name="dragger_visibility" type="int" setter="set_dragger_visibility" getter="get_dragger_visibility" enum="SplitContainer.DraggerVisibility" default="0"> |
25 | | - Determines the dragger's visibility. See [enum DraggerVisibility] for details. |
| 48 | + Determines the dragger's visibility. See [enum DraggerVisibility] for details. This property does not determine whether dragging is enabled or not. Use [member dragging_enabled] for that. |
| 49 | + </member> |
| 50 | + <member name="dragging_enabled" type="bool" setter="set_dragging_enabled" getter="is_dragging_enabled" default="true"> |
| 51 | + Enables or disables split dragging. |
26 | 52 | </member> |
27 | 53 | <member name="split_offset" type="int" setter="set_split_offset" getter="get_split_offset" default="0"> |
28 | 54 | The initial offset of the splitting between the two [Control]s, with [code]0[/code] being at the end of the first [Control]. |
|
33 | 59 | </member> |
34 | 60 | </members> |
35 | 61 | <signals> |
| 62 | + <signal name="drag_ended"> |
| 63 | + <description> |
| 64 | + Emitted when the user ends dragging. |
| 65 | + </description> |
| 66 | + </signal> |
| 67 | + <signal name="drag_started"> |
| 68 | + <description> |
| 69 | + Emitted when the user starts dragging. |
| 70 | + </description> |
| 71 | + </signal> |
36 | 72 | <signal name="dragged"> |
37 | 73 | <param index="0" name="offset" type="int" /> |
38 | 74 | <description> |
|
42 | 78 | </signals> |
43 | 79 | <constants> |
44 | 80 | <constant name="DRAGGER_VISIBLE" value="0" enum="DraggerVisibility"> |
45 | | - The split dragger is visible when the cursor hovers it. |
| 81 | + The split dragger icon is always visible when [theme_item autohide] is [code]false[/code], otherwise visible only when the cursor hovers it. |
| 82 | + The size of the grabber icon determines the minimum [theme_item separation]. |
| 83 | + The dragger icon is automatically hidden if the length of the grabber icon is longer than the split bar. |
46 | 84 | </constant> |
47 | 85 | <constant name="DRAGGER_HIDDEN" value="1" enum="DraggerVisibility"> |
48 | | - The split dragger is never visible. |
| 86 | + The split dragger icon is never visible regardless of the value of [theme_item autohide]. |
| 87 | + The size of the grabber icon determines the minimum [theme_item separation]. |
49 | 88 | </constant> |
50 | 89 | <constant name="DRAGGER_HIDDEN_COLLAPSED" value="2" enum="DraggerVisibility"> |
51 | | - The split dragger is never visible and its space collapsed. |
| 90 | + The split dragger icon is not visible, and the split bar is collapsed to zero thickness. |
52 | 91 | </constant> |
53 | 92 | </constants> |
54 | 93 | <theme_items> |
55 | 94 | <theme_item name="autohide" data_type="constant" type="int" default="1"> |
56 | | - Boolean value. If 1 ([code]true[/code]), the grabber will hide automatically when it isn't under the cursor. If 0 ([code]false[/code]), it's always visible. |
| 95 | + Boolean value. If [code]1[/code] ([code]true[/code]), the grabber will hide automatically when it isn't under the cursor. If [code]0[/code] ([code]false[/code]), it's always visible. The [member dragger_visibility] must be [constant DRAGGER_VISIBLE]. |
57 | 96 | </theme_item> |
58 | 97 | <theme_item name="minimum_grab_thickness" data_type="constant" type="int" default="6"> |
59 | | - The minimum thickness of the area users can click on to grab the splitting line. If [theme_item separation] or [theme_item h_grabber] / [theme_item v_grabber]'s thickness are too small, this ensure that the splitting line can still be dragged. |
| 98 | + 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 [theme_item separation] or [theme_item h_grabber] / [theme_item v_grabber]'s size is too narrow to easily select. |
60 | 99 | </theme_item> |
61 | 100 | <theme_item name="separation" data_type="constant" type="int" default="12"> |
62 | | - The space between sides of the container. |
| 101 | + 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 [member dragger_visibility] is set to [constant DRAGGER_VISIBLE], or [constant DRAGGER_HIDDEN], and [theme_item separation] is smaller than the size of the grabber icon in the same axis. |
| 102 | + [b]Note:[/b] To obtain [theme_item separation] values less than the size of the grabber icon, for example a [code]1 px[/code] hairline, set [theme_item h_grabber] or [theme_item v_grabber] to a new [ImageTexture], which effectively sets the grabber icon size to [code]0 px[/code]. |
63 | 103 | </theme_item> |
64 | 104 | <theme_item name="grabber" data_type="icon" type="Texture2D"> |
65 | 105 | The icon used for the grabber drawn in the middle area. |
|
70 | 110 | <theme_item name="v_grabber" data_type="icon" type="Texture2D"> |
71 | 111 | The icon used for the grabber drawn in the middle area when [member vertical] is [code]true[/code]. |
72 | 112 | </theme_item> |
| 113 | + <theme_item name="split_bar_background" data_type="style" type="StyleBox"> |
| 114 | + Determines the background of the split bar if its thickness is greater than zero. |
| 115 | + </theme_item> |
73 | 116 | </theme_items> |
74 | 117 | </class> |
0 commit comments