summaryrefslogtreecommitdiff
path: root/doc/classes/LineEdit.xml
blob: b376ab5cb05564509a900adf082f7d79b8573d8b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
<?xml version="1.0" encoding="UTF-8" ?>
<class name="LineEdit" inherits="Control" version="4.0">
	<brief_description>
		Control that provides single-line string editing.
	</brief_description>
	<description>
		LineEdit provides a single-line string editor, used for text fields.
		It features many built-in shortcuts which will always be available ([kbd]Ctrl[/kbd] here maps to [kbd]Cmd[/kbd] on macOS):
		- [kbd]Ctrl + C[/kbd]: Copy
		- [kbd]Ctrl + X[/kbd]: Cut
		- [kbd]Ctrl + V[/kbd] or [kbd]Ctrl + Y[/kbd]: Paste/"yank"
		- [kbd]Ctrl + Z[/kbd]: Undo
		- [kbd]Ctrl + ~[/kbd]: Swap input direction.
		- [kbd]Ctrl + Shift + Z[/kbd]: Redo
		- [kbd]Ctrl + U[/kbd]: Delete text from the caret position to the beginning of the line
		- [kbd]Ctrl + K[/kbd]: Delete text from the caret position to the end of the line
		- [kbd]Ctrl + A[/kbd]: Select all text
		- [kbd]Up Arrow[/kbd]/[kbd]Down Arrow[/kbd]: Move the caret to the beginning/end of the line
		On macOS, some extra keyboard shortcuts are available:
		- [kbd]Ctrl + F[/kbd]: Same as [kbd]Right Arrow[/kbd], move the caret one character right
		- [kbd]Ctrl + B[/kbd]: Same as [kbd]Left Arrow[/kbd], move the caret one character left
		- [kbd]Ctrl + P[/kbd]: Same as [kbd]Up Arrow[/kbd], move the caret to the previous line
		- [kbd]Ctrl + N[/kbd]: Same as [kbd]Down Arrow[/kbd], move the caret to the next line
		- [kbd]Ctrl + D[/kbd]: Same as [kbd]Delete[/kbd], delete the character on the right side of caret
		- [kbd]Ctrl + H[/kbd]: Same as [kbd]Backspace[/kbd], delete the character on the left side of the caret
		- [kbd]Ctrl + A[/kbd]: Same as [kbd]Home[/kbd], move the caret to the beginning of the line
		- [kbd]Ctrl + E[/kbd]: Same as [kbd]End[/kbd], move the caret to the end of the line
		- [kbd]Cmd + Left Arrow[/kbd]: Same as [kbd]Home[/kbd], move the caret to the beginning of the line
		- [kbd]Cmd + Right Arrow[/kbd]: Same as [kbd]End[/kbd], move the caret to the end of the line
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="clear">
			<return type="void" />
			<description>
				Erases the [LineEdit]'s [member text].
			</description>
		</method>
		<method name="clear_opentype_features">
			<return type="void" />
			<description>
				Removes all OpenType features.
			</description>
		</method>
		<method name="delete_char_at_caret">
			<return type="void" />
			<description>
				Deletes one character at the caret's current position (equivalent to pressing [kbd]Delete[/kbd]).
			</description>
		</method>
		<method name="delete_text">
			<return type="void" />
			<argument index="0" name="from_column" type="int" />
			<argument index="1" name="to_column" type="int" />
			<description>
				Deletes a section of the [member text] going from position [code]from_column[/code] to [code]to_column[/code]. Both parameters should be within the text's length.
			</description>
		</method>
		<method name="deselect">
			<return type="void" />
			<description>
				Clears the current selection.
			</description>
		</method>
		<method name="get_menu" qualifiers="const">
			<return type="PopupMenu" />
			<description>
				Returns the [PopupMenu] of this [LineEdit]. By default, this menu is displayed when right-clicking on the [LineEdit].
				[b]Warning:[/b] This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their [member Window.visible] property.
			</description>
		</method>
		<method name="get_opentype_feature" qualifiers="const">
			<return type="int" />
			<argument index="0" name="tag" type="String" />
			<description>
				Returns OpenType feature [code]tag[/code].
			</description>
		</method>
		<method name="get_scroll_offset" qualifiers="const">
			<return type="int" />
			<description>
				Returns the scroll offset due to [member caret_column], as a number of characters.
			</description>
		</method>
		<method name="get_selection_from_column" qualifiers="const">
			<return type="int" />
			<description>
				Returns the selection begin column.
			</description>
		</method>
		<method name="get_selection_to_column" qualifiers="const">
			<return type="int" />
			<description>
				Returns the selection end column.
			</description>
		</method>
		<method name="has_selection" qualifiers="const">
			<return type="bool" />
			<description>
				Returns [code]true[/code] if the user has selected text.
			</description>
		</method>
		<method name="insert_text_at_caret">
			<return type="void" />
			<argument index="0" name="text" type="String" />
			<description>
				Inserts [code]text[/code] at the caret. If the resulting value is longer than [member max_length], nothing happens.
			</description>
		</method>
		<method name="is_menu_visible" qualifiers="const">
			<return type="bool" />
			<description>
				Returns whether the menu is visible. Use this instead of [code]get_menu().visible[/code] to improve performance (so the creation of the menu is avoided).
			</description>
		</method>
		<method name="menu_option">
			<return type="void" />
			<argument index="0" name="option" type="int" />
			<description>
				Executes a given action as defined in the [enum MenuItems] enum.
			</description>
		</method>
		<method name="select">
			<return type="void" />
			<argument index="0" name="from" type="int" default="0" />
			<argument index="1" name="to" type="int" default="-1" />
			<description>
				Selects characters inside [LineEdit] between [code]from[/code] and [code]to[/code]. By default, [code]from[/code] is at the beginning and [code]to[/code] at the end.
				[codeblocks]
				[gdscript]
				text = "Welcome"
				select() # Will select "Welcome".
				select(4) # Will select "ome".
				select(2, 5) # Will select "lco".
				[/gdscript]
				[csharp]
				Text = "Welcome";
				Select(); // Will select "Welcome".
				Select(4); // Will select "ome".
				Select(2, 5); // Will select "lco".
				[/csharp]
				[/codeblocks]
			</description>
		</method>
		<method name="select_all">
			<return type="void" />
			<description>
				Selects the whole [String].
			</description>
		</method>
		<method name="set_opentype_feature">
			<return type="void" />
			<argument index="0" name="tag" type="String" />
			<argument index="1" name="value" type="int" />
			<description>
				Returns OpenType feature [code]tag[/code]. More info: [url=https://docs.microsoft.com/en-us/typography/opentype/spec/featuretags]OpenType feature tags[/url].
			</description>
		</method>
	</methods>
	<members>
		<member name="alignment" type="int" setter="set_horizontal_alignment" getter="get_horizontal_alignment" enum="HorizontalAlignment" default="0">
			Text alignment as defined in the [enum HorizontalAlignment] enum.
		</member>
		<member name="caret_blink" type="bool" setter="set_caret_blink_enabled" getter="is_caret_blink_enabled" default="false">
			If [code]true[/code], the caret (text cursor) blinks.
		</member>
		<member name="caret_blink_speed" type="float" setter="set_caret_blink_speed" getter="get_caret_blink_speed" default="0.65">
			Duration (in seconds) of a caret's blinking cycle.
		</member>
		<member name="caret_column" type="int" setter="set_caret_column" getter="get_caret_column" default="0">
			The caret's column position inside the [LineEdit]. When set, the text may scroll to accommodate it.
		</member>
		<member name="caret_force_displayed" type="bool" setter="set_caret_force_displayed" getter="is_caret_force_displayed" default="false">
			If [code]true[/code], the [LineEdit] will always show the caret, even if focus is lost.
		</member>
		<member name="caret_mid_grapheme" type="bool" setter="set_caret_mid_grapheme_enabled" getter="is_caret_mid_grapheme_enabled" default="true">
			Allow moving caret, selecting and removing the individual composite character components.
			[b]Note:[/b] [kbd]Backspace[/kbd] is always removing individual composite character components.
		</member>
		<member name="clear_button_enabled" type="bool" setter="set_clear_button_enabled" getter="is_clear_button_enabled" default="false">
			If [code]true[/code], the [LineEdit] will show a clear button if [code]text[/code] is not empty, which can be used to clear the text quickly.
		</member>
		<member name="context_menu_enabled" type="bool" setter="set_context_menu_enabled" getter="is_context_menu_enabled" default="true">
			If [code]true[/code], the context menu will appear when right-clicked.
		</member>
		<member name="deselect_on_focus_loss_enabled" type="bool" setter="set_deselect_on_focus_loss_enabled" getter="is_deselect_on_focus_loss_enabled" default="true">
			If [code]true[/code], the selected text will be deselected when focus is lost.
		</member>
		<member name="draw_control_chars" type="bool" setter="set_draw_control_chars" getter="get_draw_control_chars" default="false">
			If [code]true[/code], control characters are displayed.
		</member>
		<member name="editable" type="bool" setter="set_editable" getter="is_editable" default="true">
			If [code]false[/code], existing text cannot be modified and new text cannot be added.
		</member>
		<member name="expand_to_text_length" type="bool" setter="set_expand_to_text_length_enabled" getter="is_expand_to_text_length_enabled" default="false">
			If [code]true[/code], the [LineEdit] width will increase to stay longer than the [member text]. It will [b]not[/b] compress if the [member text] is shortened.
		</member>
		<member name="flat" type="bool" setter="set_flat" getter="is_flat" default="false">
			If [code]true[/code], the [LineEdit] don't display decoration.
		</member>
		<member name="focus_mode" type="int" setter="set_focus_mode" getter="get_focus_mode" overrides="Control" enum="Control.FocusMode" default="2" />
		<member name="language" type="String" setter="set_language" getter="get_language" default="&quot;&quot;">
			Language code used for line-breaking and text shaping algorithms, if left empty current locale is used instead.
		</member>
		<member name="max_length" type="int" setter="set_max_length" getter="get_max_length" default="0">
			Maximum amount of characters that can be entered inside the [LineEdit]. If [code]0[/code], there is no limit.
			When a limit is defined, characters that would exceed [member max_length] are truncated. This happens both for existing [member text] contents when setting the max length, or for new text inserted in the [LineEdit], including pasting. If any input text is truncated, the [signal text_change_rejected] signal is emitted with the truncated substring as parameter.
			[b]Example:[/b]
			[codeblocks]
			[gdscript]
			text = "Hello world"
			max_length = 5
			# `text` becomes "Hello".
			max_length = 10
			text += " goodbye"
			# `text` becomes "Hello good".
			# `text_change_rejected` is emitted with "bye" as parameter.
			[/gdscript]
			[csharp]
			Text = "Hello world";
			MaxLength = 5;
			// `Text` becomes "Hello".
			MaxLength = 10;
			Text += " goodbye";
			// `Text` becomes "Hello good".
			// `text_change_rejected` is emitted with "bye" as parameter.
			[/csharp]
			[/codeblocks]
		</member>
		<member name="middle_mouse_paste_enabled" type="bool" setter="set_middle_mouse_paste_enabled" getter="is_middle_mouse_paste_enabled" default="true">
			If [code]false[/code], using middle mouse button to paste clipboard will be disabled.
			[b]Note:[/b] This method is only implemented on Linux.
		</member>
		<member name="mouse_default_cursor_shape" type="int" setter="set_default_cursor_shape" getter="get_default_cursor_shape" overrides="Control" enum="Control.CursorShape" default="1" />
		<member name="placeholder_alpha" type="float" setter="set_placeholder_alpha" getter="get_placeholder_alpha" default="0.6">
			Opacity of the [member placeholder_text]. From [code]0[/code] to [code]1[/code].
		</member>
		<member name="placeholder_text" type="String" setter="set_placeholder" getter="get_placeholder" default="&quot;&quot;">
			Text shown when the [LineEdit] is empty. It is [b]not[/b] the [LineEdit]'s default value (see [member text]).
		</member>
		<member name="right_icon" type="Texture2D" setter="set_right_icon" getter="get_right_icon">
			Sets the icon that will appear in the right end of the [LineEdit] if there's no [member text], or always, if [member clear_button_enabled] is set to [code]false[/code].
		</member>
		<member name="secret" type="bool" setter="set_secret" getter="is_secret" default="false">
			If [code]true[/code], every character is replaced with the secret character (see [member secret_character]).
		</member>
		<member name="secret_character" type="String" setter="set_secret_character" getter="get_secret_character" default="&quot;*&quot;">
			The character to use to mask secret input (defaults to "*"). Only a single character can be used as the secret character.
		</member>
		<member name="selecting_enabled" type="bool" setter="set_selecting_enabled" getter="is_selecting_enabled" default="true">
			If [code]false[/code], it's impossible to select the text using mouse nor keyboard.
		</member>
		<member name="shortcut_keys_enabled" type="bool" setter="set_shortcut_keys_enabled" getter="is_shortcut_keys_enabled" default="true">
			If [code]false[/code], using shortcuts will be disabled.
		</member>
		<member name="structured_text_bidi_override" type="int" setter="set_structured_text_bidi_override" getter="get_structured_text_bidi_override" enum="Control.StructuredTextParser" default="0">
			Set BiDi algorithm override for the structured text.
		</member>
		<member name="structured_text_bidi_override_options" type="Array" setter="set_structured_text_bidi_override_options" getter="get_structured_text_bidi_override_options" default="[]">
			Set additional options for BiDi override.
		</member>
		<member name="text" type="String" setter="set_text" getter="get_text" default="&quot;&quot;">
			String value of the [LineEdit].
			[b]Note:[/b] Changing text using this property won't emit the [signal text_changed] signal.
		</member>
		<member name="text_direction" type="int" setter="set_text_direction" getter="get_text_direction" enum="Control.TextDirection" default="0">
			Base text writing direction.
		</member>
		<member name="virtual_keyboard_enabled" type="bool" setter="set_virtual_keyboard_enabled" getter="is_virtual_keyboard_enabled" default="true">
			If [code]true[/code], the native virtual keyboard is shown when focused on platforms that support it.
		</member>
	</members>
	<signals>
		<signal name="text_change_rejected">
			<argument index="0" name="rejected_substring" type="String" />
			<description>
				Emitted when appending text that overflows the [member max_length]. The appended text is truncated to fit [member max_length], and the part that couldn't fit is passed as the [code]rejected_substring[/code] argument.
			</description>
		</signal>
		<signal name="text_changed">
			<argument index="0" name="new_text" type="String" />
			<description>
				Emitted when the text changes.
			</description>
		</signal>
		<signal name="text_submitted">
			<argument index="0" name="new_text" type="String" />
			<description>
				Emitted when the user presses [constant KEY_ENTER] on the [LineEdit].
			</description>
		</signal>
	</signals>
	<constants>
		<constant name="MENU_CUT" value="0" enum="MenuItems">
			Cuts (copies and clears) the selected text.
		</constant>
		<constant name="MENU_COPY" value="1" enum="MenuItems">
			Copies the selected text.
		</constant>
		<constant name="MENU_PASTE" value="2" enum="MenuItems">
			Pastes the clipboard text over the selected text (or at the caret's position).
			Non-printable escape characters are automatically stripped from the OS clipboard via [method String.strip_escapes].
		</constant>
		<constant name="MENU_CLEAR" value="3" enum="MenuItems">
			Erases the whole [LineEdit] text.
		</constant>
		<constant name="MENU_SELECT_ALL" value="4" enum="MenuItems">
			Selects the whole [LineEdit] text.
		</constant>
		<constant name="MENU_UNDO" value="5" enum="MenuItems">
			Undoes the previous action.
		</constant>
		<constant name="MENU_REDO" value="6" enum="MenuItems">
			Reverse the last undo action.
		</constant>
		<constant name="MENU_DIR_INHERITED" value="7" enum="MenuItems">
			Sets text direction to inherited.
		</constant>
		<constant name="MENU_DIR_AUTO" value="8" enum="MenuItems">
			Sets text direction to automatic.
		</constant>
		<constant name="MENU_DIR_LTR" value="9" enum="MenuItems">
			Sets text direction to left-to-right.
		</constant>
		<constant name="MENU_DIR_RTL" value="10" enum="MenuItems">
			Sets text direction to right-to-left.
		</constant>
		<constant name="MENU_DISPLAY_UCC" value="11" enum="MenuItems">
			Toggles control character display.
		</constant>
		<constant name="MENU_INSERT_LRM" value="12" enum="MenuItems">
			Inserts left-to-right mark (LRM) character.
		</constant>
		<constant name="MENU_INSERT_RLM" value="13" enum="MenuItems">
			Inserts right-to-left mark (RLM) character.
		</constant>
		<constant name="MENU_INSERT_LRE" value="14" enum="MenuItems">
			Inserts start of left-to-right embedding (LRE) character.
		</constant>
		<constant name="MENU_INSERT_RLE" value="15" enum="MenuItems">
			Inserts start of right-to-left embedding (RLE) character.
		</constant>
		<constant name="MENU_INSERT_LRO" value="16" enum="MenuItems">
			Inserts start of left-to-right override (LRO) character.
		</constant>
		<constant name="MENU_INSERT_RLO" value="17" enum="MenuItems">
			Inserts start of right-to-left override (RLO) character.
		</constant>
		<constant name="MENU_INSERT_PDF" value="18" enum="MenuItems">
			Inserts pop direction formatting (PDF) character.
		</constant>
		<constant name="MENU_INSERT_ALM" value="19" enum="MenuItems">
			Inserts Arabic letter mark (ALM) character.
		</constant>
		<constant name="MENU_INSERT_LRI" value="20" enum="MenuItems">
			Inserts left-to-right isolate (LRI) character.
		</constant>
		<constant name="MENU_INSERT_RLI" value="21" enum="MenuItems">
			Inserts right-to-left isolate (RLI) character.
		</constant>
		<constant name="MENU_INSERT_FSI" value="22" enum="MenuItems">
			Inserts first strong isolate (FSI) character.
		</constant>
		<constant name="MENU_INSERT_PDI" value="23" enum="MenuItems">
			Inserts pop direction isolate (PDI) character.
		</constant>
		<constant name="MENU_INSERT_ZWJ" value="24" enum="MenuItems">
			Inserts zero width joiner (ZWJ) character.
		</constant>
		<constant name="MENU_INSERT_ZWNJ" value="25" enum="MenuItems">
			Inserts zero width non-joiner (ZWNJ) character.
		</constant>
		<constant name="MENU_INSERT_WJ" value="26" enum="MenuItems">
			Inserts word joiner (WJ) character.
		</constant>
		<constant name="MENU_INSERT_SHY" value="27" enum="MenuItems">
			Inserts soft hyphen (SHY) character.
		</constant>
		<constant name="MENU_MAX" value="28" enum="MenuItems">
			Represents the size of the [enum MenuItems] enum.
		</constant>
	</constants>
	<theme_items>
		<theme_item name="caret_color" data_type="color" type="Color" default="Color(0.94, 0.94, 0.94, 1)">
			Color of the [LineEdit]'s caret (text cursor).
		</theme_item>
		<theme_item name="clear_button_color" data_type="color" type="Color" default="Color(0.88, 0.88, 0.88, 1)">
			Color used as default tint for the clear button.
		</theme_item>
		<theme_item name="clear_button_color_pressed" data_type="color" type="Color" default="Color(1, 1, 1, 1)">
			Color used for the clear button when it's pressed.
		</theme_item>
		<theme_item name="font_color" data_type="color" type="Color" default="Color(0.88, 0.88, 0.88, 1)">
			Default font color.
		</theme_item>
		<theme_item name="font_outline_color" data_type="color" type="Color" default="Color(1, 1, 1, 1)">
			The tint of text outline of the [LineEdit].
		</theme_item>
		<theme_item name="font_selected_color" data_type="color" type="Color" default="Color(0, 0, 0, 1)">
			Font color for selected text (inside the selection rectangle).
		</theme_item>
		<theme_item name="font_uneditable_color" data_type="color" type="Color" default="Color(0.88, 0.88, 0.88, 0.5)">
			Font color when editing is disabled.
		</theme_item>
		<theme_item name="selection_color" data_type="color" type="Color" default="Color(0.49, 0.49, 0.49, 1)">
			Color of the selection rectangle.
		</theme_item>
		<theme_item name="minimum_character_width" data_type="constant" type="int" default="4">
			Minimum horizontal space for the text (not counting the clear button and content margins). This value is measured in count of 'M' characters (i.e. this amount of 'M' characters can be displayed without scrolling).
		</theme_item>
		<theme_item name="outline_size" data_type="constant" type="int" default="0">
			The size of the text outline.
		</theme_item>
		<theme_item name="font" data_type="font" type="Font">
			Font used for the text.
		</theme_item>
		<theme_item name="font_size" data_type="font_size" type="int">
			Font size of the [LineEdit]'s text.
		</theme_item>
		<theme_item name="clear" data_type="icon" type="Texture2D">
			Texture for the clear button. See [member clear_button_enabled].
		</theme_item>
		<theme_item name="focus" data_type="style" type="StyleBox">
			Background used when [LineEdit] has GUI focus. The [code]focus[/code] [StyleBox] is displayed [i]over[/i] the base [StyleBox], so a partially transparent [StyleBox] should be used to ensure the base [StyleBox] remains visible. A [StyleBox] that represents an outline or an underline works well for this purpose. To disable the focus visual effect, assign a [StyleBoxEmpty] resource. Note that disabling the focus visual effect will harm keyboard/controller navigation usability, so this is not recommended for accessibility reasons.
		</theme_item>
		<theme_item name="normal" data_type="style" type="StyleBox">
			Default background for the [LineEdit].
		</theme_item>
		<theme_item name="read_only" data_type="style" type="StyleBox">
			Background used when [LineEdit] is in read-only mode ([member editable] is set to [code]false[/code]).
		</theme_item>
	</theme_items>
</class>