1 /**
2 Multiline text editing control.
3 
4 Copyright:
5 Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur.  
6 Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md)  
7 Copyright (c) 2017-2018 Godot-D contributors  
8 
9 License: $(LINK2 https://opensource.org/licenses/MIT, MIT License)
10 
11 
12 */
13 module godot.textedit;
14 import std.meta : AliasSeq, staticIndexOf;
15 import std.traits : Unqual;
16 import godot.d.meta;
17 import godot.core;
18 import godot.c;
19 import godot.d.bind;
20 import godot.d.reference;
21 import godot.object;
22 import godot.classdb;
23 import godot.control;
24 import godot.inputevent;
25 import godot.popupmenu;
26 import godot.canvasitem;
27 import godot.node;
28 /**
29 Multiline text editing control.
30 
31 TextEdit is meant for editing large, multiline text. It also has facilities for editing code, such as syntax highlighting support and multiple levels of undo/redo.
32 */
33 @GodotBaseClass struct TextEdit
34 {
35 	enum string _GODOT_internal_name = "TextEdit";
36 public:
37 @nogc nothrow:
38 	union { godot_object _godot_object; Control _GODOT_base; }
39 	alias _GODOT_base this;
40 	alias BaseClasses = AliasSeq!(typeof(_GODOT_base), typeof(_GODOT_base).BaseClasses);
41 	package(godot) __gshared bool _classBindingInitialized = false;
42 	package(godot) static struct _classBinding
43 	{
44 		__gshared:
45 		@GodotName("_gui_input") GodotMethod!(void, InputEvent) _guiInput;
46 		@GodotName("_scroll_moved") GodotMethod!(void, double) _scrollMoved;
47 		@GodotName("_cursor_changed_emit") GodotMethod!(void) _cursorChangedEmit;
48 		@GodotName("_text_changed_emit") GodotMethod!(void) _textChangedEmit;
49 		@GodotName("_push_current_op") GodotMethod!(void) _pushCurrentOp;
50 		@GodotName("_click_selection_held") GodotMethod!(void) _clickSelectionHeld;
51 		@GodotName("_toggle_draw_caret") GodotMethod!(void) _toggleDrawCaret;
52 		@GodotName("_v_scroll_input") GodotMethod!(void) _vScrollInput;
53 		@GodotName("set_text") GodotMethod!(void, String) setText;
54 		@GodotName("insert_text_at_cursor") GodotMethod!(void, String) insertTextAtCursor;
55 		@GodotName("get_line_count") GodotMethod!(long) getLineCount;
56 		@GodotName("get_text") GodotMethod!(String) getText;
57 		@GodotName("get_line") GodotMethod!(String, long) getLine;
58 		@GodotName("cursor_set_column") GodotMethod!(void, long, bool) cursorSetColumn;
59 		@GodotName("cursor_set_line") GodotMethod!(void, long, bool, bool, long) cursorSetLine;
60 		@GodotName("cursor_get_column") GodotMethod!(long) cursorGetColumn;
61 		@GodotName("cursor_get_line") GodotMethod!(long) cursorGetLine;
62 		@GodotName("cursor_set_blink_enabled") GodotMethod!(void, bool) cursorSetBlinkEnabled;
63 		@GodotName("cursor_get_blink_enabled") GodotMethod!(bool) cursorGetBlinkEnabled;
64 		@GodotName("cursor_set_blink_speed") GodotMethod!(void, double) cursorSetBlinkSpeed;
65 		@GodotName("cursor_get_blink_speed") GodotMethod!(double) cursorGetBlinkSpeed;
66 		@GodotName("cursor_set_block_mode") GodotMethod!(void, bool) cursorSetBlockMode;
67 		@GodotName("cursor_is_block_mode") GodotMethod!(bool) cursorIsBlockMode;
68 		@GodotName("set_right_click_moves_caret") GodotMethod!(void, bool) setRightClickMovesCaret;
69 		@GodotName("is_right_click_moving_caret") GodotMethod!(bool) isRightClickMovingCaret;
70 		@GodotName("set_readonly") GodotMethod!(void, bool) setReadonly;
71 		@GodotName("is_readonly") GodotMethod!(bool) isReadonly;
72 		@GodotName("set_wrap_enabled") GodotMethod!(void, bool) setWrapEnabled;
73 		@GodotName("is_wrap_enabled") GodotMethod!(bool) isWrapEnabled;
74 		@GodotName("set_context_menu_enabled") GodotMethod!(void, bool) setContextMenuEnabled;
75 		@GodotName("is_context_menu_enabled") GodotMethod!(bool) isContextMenuEnabled;
76 		@GodotName("cut") GodotMethod!(void) cut;
77 		@GodotName("copy") GodotMethod!(void) copy;
78 		@GodotName("paste") GodotMethod!(void) paste;
79 		@GodotName("select") GodotMethod!(void, long, long, long, long) select;
80 		@GodotName("select_all") GodotMethod!(void) selectAll;
81 		@GodotName("deselect") GodotMethod!(void) deselect;
82 		@GodotName("is_selection_active") GodotMethod!(bool) isSelectionActive;
83 		@GodotName("get_selection_from_line") GodotMethod!(long) getSelectionFromLine;
84 		@GodotName("get_selection_from_column") GodotMethod!(long) getSelectionFromColumn;
85 		@GodotName("get_selection_to_line") GodotMethod!(long) getSelectionToLine;
86 		@GodotName("get_selection_to_column") GodotMethod!(long) getSelectionToColumn;
87 		@GodotName("get_selection_text") GodotMethod!(String) getSelectionText;
88 		@GodotName("get_word_under_cursor") GodotMethod!(String) getWordUnderCursor;
89 		@GodotName("search") GodotMethod!(PoolIntArray, String, long, long, long) search;
90 		@GodotName("undo") GodotMethod!(void) undo;
91 		@GodotName("redo") GodotMethod!(void) redo;
92 		@GodotName("clear_undo_history") GodotMethod!(void) clearUndoHistory;
93 		@GodotName("set_show_line_numbers") GodotMethod!(void, bool) setShowLineNumbers;
94 		@GodotName("is_show_line_numbers_enabled") GodotMethod!(bool) isShowLineNumbersEnabled;
95 		@GodotName("set_breakpoint_gutter_enabled") GodotMethod!(void, bool) setBreakpointGutterEnabled;
96 		@GodotName("is_breakpoint_gutter_enabled") GodotMethod!(bool) isBreakpointGutterEnabled;
97 		@GodotName("set_hiding_enabled") GodotMethod!(void, long) setHidingEnabled;
98 		@GodotName("is_hiding_enabled") GodotMethod!(long) isHidingEnabled;
99 		@GodotName("set_line_as_hidden") GodotMethod!(void, long, bool) setLineAsHidden;
100 		@GodotName("is_line_hidden") GodotMethod!(bool, long) isLineHidden;
101 		@GodotName("fold_all_lines") GodotMethod!(void) foldAllLines;
102 		@GodotName("unhide_all_lines") GodotMethod!(void) unhideAllLines;
103 		@GodotName("fold_line") GodotMethod!(void, long) foldLine;
104 		@GodotName("unfold_line") GodotMethod!(void, long) unfoldLine;
105 		@GodotName("toggle_fold_line") GodotMethod!(void, long) toggleFoldLine;
106 		@GodotName("can_fold") GodotMethod!(bool, long) canFold;
107 		@GodotName("is_folded") GodotMethod!(bool, long) isFolded;
108 		@GodotName("set_highlight_all_occurrences") GodotMethod!(void, bool) setHighlightAllOccurrences;
109 		@GodotName("is_highlight_all_occurrences_enabled") GodotMethod!(bool) isHighlightAllOccurrencesEnabled;
110 		@GodotName("set_override_selected_font_color") GodotMethod!(void, bool) setOverrideSelectedFontColor;
111 		@GodotName("is_overriding_selected_font_color") GodotMethod!(bool) isOverridingSelectedFontColor;
112 		@GodotName("set_syntax_coloring") GodotMethod!(void, bool) setSyntaxColoring;
113 		@GodotName("is_syntax_coloring_enabled") GodotMethod!(bool) isSyntaxColoringEnabled;
114 		@GodotName("set_highlight_current_line") GodotMethod!(void, bool) setHighlightCurrentLine;
115 		@GodotName("is_highlight_current_line_enabled") GodotMethod!(bool) isHighlightCurrentLineEnabled;
116 		@GodotName("set_smooth_scroll_enable") GodotMethod!(void, bool) setSmoothScrollEnable;
117 		@GodotName("is_smooth_scroll_enabled") GodotMethod!(bool) isSmoothScrollEnabled;
118 		@GodotName("set_v_scroll_speed") GodotMethod!(void, double) setVScrollSpeed;
119 		@GodotName("get_v_scroll_speed") GodotMethod!(double) getVScrollSpeed;
120 		@GodotName("add_keyword_color") GodotMethod!(void, String, Color) addKeywordColor;
121 		@GodotName("has_keyword_color") GodotMethod!(bool, String) hasKeywordColor;
122 		@GodotName("get_keyword_color") GodotMethod!(Color, String) getKeywordColor;
123 		@GodotName("add_color_region") GodotMethod!(void, String, String, Color, bool) addColorRegion;
124 		@GodotName("clear_colors") GodotMethod!(void) clearColors;
125 		@GodotName("menu_option") GodotMethod!(void, long) menuOption;
126 		@GodotName("get_menu") GodotMethod!(PopupMenu) getMenu;
127 		@GodotName("get_breakpoints") GodotMethod!(Array) getBreakpoints;
128 		@GodotName("remove_breakpoints") GodotMethod!(void) removeBreakpoints;
129 	}
130 	bool opEquals(in TextEdit other) const { return _godot_object.ptr is other._godot_object.ptr; }
131 	TextEdit opAssign(T : typeof(null))(T n) { _godot_object.ptr = null; }
132 	bool opEquals(typeof(null) n) const { return _godot_object.ptr is null; }
133 	mixin baseCasts;
134 	static TextEdit _new()
135 	{
136 		static godot_class_constructor constructor;
137 		if(constructor is null) constructor = _godot_api.godot_get_class_constructor("TextEdit");
138 		if(constructor is null) return typeof(this).init;
139 		return cast(TextEdit)(constructor());
140 	}
141 	@disable new(size_t s);
142 	/// 
143 	enum SearchFlags : int
144 	{
145 		/**
146 		Match case when searching.
147 		*/
148 		searchMatchCase = 1,
149 		/**
150 		Match whole words when searching.
151 		*/
152 		searchWholeWords = 2,
153 		/**
154 		Search from end to beginning.
155 		*/
156 		searchBackwards = 4,
157 	}
158 	/// 
159 	enum MenuItems : int
160 	{
161 		/**
162 		Cuts (Copies and clears) the selected text.
163 		*/
164 		menuCut = 0,
165 		/**
166 		Copies the selected text.
167 		*/
168 		menuCopy = 1,
169 		/**
170 		Pastes the clipboard text over the selected text (or at the cursor's position).
171 		*/
172 		menuPaste = 2,
173 		/**
174 		Erases the whole $(D TextEdit) text.
175 		*/
176 		menuClear = 3,
177 		/**
178 		Selects the whole $(D TextEdit) text.
179 		*/
180 		menuSelectAll = 4,
181 		/**
182 		Undoes the previous action.
183 		*/
184 		menuUndo = 5,
185 		/**
186 		
187 		*/
188 		menuMax = 6,
189 	}
190 	/// 
191 	enum Constants : int
192 	{
193 		menuCut = 0,
194 		menuCopy = 1,
195 		searchMatchCase = 1,
196 		searchWholeWords = 2,
197 		menuPaste = 2,
198 		menuClear = 3,
199 		searchBackwards = 4,
200 		menuSelectAll = 4,
201 		menuUndo = 5,
202 		menuMax = 6,
203 	}
204 	/**
205 	
206 	*/
207 	void _guiInput(InputEvent arg0)
208 	{
209 		Array _GODOT_args = Array.empty_array;
210 		_GODOT_args.append(arg0);
211 		String _GODOT_method_name = String("_gui_input");
212 		this.callv(_GODOT_method_name, _GODOT_args);
213 	}
214 	/**
215 	
216 	*/
217 	void _scrollMoved(in double arg0)
218 	{
219 		Array _GODOT_args = Array.empty_array;
220 		_GODOT_args.append(arg0);
221 		String _GODOT_method_name = String("_scroll_moved");
222 		this.callv(_GODOT_method_name, _GODOT_args);
223 	}
224 	/**
225 	
226 	*/
227 	void _cursorChangedEmit()
228 	{
229 		Array _GODOT_args = Array.empty_array;
230 		String _GODOT_method_name = String("_cursor_changed_emit");
231 		this.callv(_GODOT_method_name, _GODOT_args);
232 	}
233 	/**
234 	
235 	*/
236 	void _textChangedEmit()
237 	{
238 		Array _GODOT_args = Array.empty_array;
239 		String _GODOT_method_name = String("_text_changed_emit");
240 		this.callv(_GODOT_method_name, _GODOT_args);
241 	}
242 	/**
243 	
244 	*/
245 	void _pushCurrentOp()
246 	{
247 		Array _GODOT_args = Array.empty_array;
248 		String _GODOT_method_name = String("_push_current_op");
249 		this.callv(_GODOT_method_name, _GODOT_args);
250 	}
251 	/**
252 	
253 	*/
254 	void _clickSelectionHeld()
255 	{
256 		Array _GODOT_args = Array.empty_array;
257 		String _GODOT_method_name = String("_click_selection_held");
258 		this.callv(_GODOT_method_name, _GODOT_args);
259 	}
260 	/**
261 	
262 	*/
263 	void _toggleDrawCaret()
264 	{
265 		Array _GODOT_args = Array.empty_array;
266 		String _GODOT_method_name = String("_toggle_draw_caret");
267 		this.callv(_GODOT_method_name, _GODOT_args);
268 	}
269 	/**
270 	
271 	*/
272 	void _vScrollInput()
273 	{
274 		Array _GODOT_args = Array.empty_array;
275 		String _GODOT_method_name = String("_v_scroll_input");
276 		this.callv(_GODOT_method_name, _GODOT_args);
277 	}
278 	/**
279 	
280 	*/
281 	void setText(StringArg0)(in StringArg0 text)
282 	{
283 		checkClassBinding!(typeof(this))();
284 		ptrcall!(void)(_classBinding.setText, _godot_object, text);
285 	}
286 	/**
287 	Insert a given text at the cursor position.
288 	*/
289 	void insertTextAtCursor(StringArg0)(in StringArg0 text)
290 	{
291 		checkClassBinding!(typeof(this))();
292 		ptrcall!(void)(_classBinding.insertTextAtCursor, _godot_object, text);
293 	}
294 	/**
295 	Return the amount of total lines in the text.
296 	*/
297 	long getLineCount() const
298 	{
299 		checkClassBinding!(typeof(this))();
300 		return ptrcall!(long)(_classBinding.getLineCount, _godot_object);
301 	}
302 	/**
303 	
304 	*/
305 	String getText()
306 	{
307 		checkClassBinding!(typeof(this))();
308 		return ptrcall!(String)(_classBinding.getText, _godot_object);
309 	}
310 	/**
311 	Return the text of a specific line.
312 	*/
313 	String getLine(in long line) const
314 	{
315 		checkClassBinding!(typeof(this))();
316 		return ptrcall!(String)(_classBinding.getLine, _godot_object, line);
317 	}
318 	/**
319 	
320 	*/
321 	void cursorSetColumn(in long column, in bool adjust_viewport = true)
322 	{
323 		checkClassBinding!(typeof(this))();
324 		ptrcall!(void)(_classBinding.cursorSetColumn, _godot_object, column, adjust_viewport);
325 	}
326 	/**
327 	
328 	*/
329 	void cursorSetLine(in long line, in bool adjust_viewport = true, in bool can_be_hidden = true, in long wrap_index = 0)
330 	{
331 		checkClassBinding!(typeof(this))();
332 		ptrcall!(void)(_classBinding.cursorSetLine, _godot_object, line, adjust_viewport, can_be_hidden, wrap_index);
333 	}
334 	/**
335 	Return the column the editing cursor is at.
336 	*/
337 	long cursorGetColumn() const
338 	{
339 		checkClassBinding!(typeof(this))();
340 		return ptrcall!(long)(_classBinding.cursorGetColumn, _godot_object);
341 	}
342 	/**
343 	Return the line the editing cursor is at.
344 	*/
345 	long cursorGetLine() const
346 	{
347 		checkClassBinding!(typeof(this))();
348 		return ptrcall!(long)(_classBinding.cursorGetLine, _godot_object);
349 	}
350 	/**
351 	
352 	*/
353 	void cursorSetBlinkEnabled(in bool enable)
354 	{
355 		checkClassBinding!(typeof(this))();
356 		ptrcall!(void)(_classBinding.cursorSetBlinkEnabled, _godot_object, enable);
357 	}
358 	/**
359 	
360 	*/
361 	bool cursorGetBlinkEnabled() const
362 	{
363 		checkClassBinding!(typeof(this))();
364 		return ptrcall!(bool)(_classBinding.cursorGetBlinkEnabled, _godot_object);
365 	}
366 	/**
367 	
368 	*/
369 	void cursorSetBlinkSpeed(in double blink_speed)
370 	{
371 		checkClassBinding!(typeof(this))();
372 		ptrcall!(void)(_classBinding.cursorSetBlinkSpeed, _godot_object, blink_speed);
373 	}
374 	/**
375 	
376 	*/
377 	double cursorGetBlinkSpeed() const
378 	{
379 		checkClassBinding!(typeof(this))();
380 		return ptrcall!(double)(_classBinding.cursorGetBlinkSpeed, _godot_object);
381 	}
382 	/**
383 	
384 	*/
385 	void cursorSetBlockMode(in bool enable)
386 	{
387 		checkClassBinding!(typeof(this))();
388 		ptrcall!(void)(_classBinding.cursorSetBlockMode, _godot_object, enable);
389 	}
390 	/**
391 	
392 	*/
393 	bool cursorIsBlockMode() const
394 	{
395 		checkClassBinding!(typeof(this))();
396 		return ptrcall!(bool)(_classBinding.cursorIsBlockMode, _godot_object);
397 	}
398 	/**
399 	
400 	*/
401 	void setRightClickMovesCaret(in bool enable)
402 	{
403 		checkClassBinding!(typeof(this))();
404 		ptrcall!(void)(_classBinding.setRightClickMovesCaret, _godot_object, enable);
405 	}
406 	/**
407 	
408 	*/
409 	bool isRightClickMovingCaret() const
410 	{
411 		checkClassBinding!(typeof(this))();
412 		return ptrcall!(bool)(_classBinding.isRightClickMovingCaret, _godot_object);
413 	}
414 	/**
415 	
416 	*/
417 	void setReadonly(in bool enable)
418 	{
419 		checkClassBinding!(typeof(this))();
420 		ptrcall!(void)(_classBinding.setReadonly, _godot_object, enable);
421 	}
422 	/**
423 	
424 	*/
425 	bool isReadonly() const
426 	{
427 		checkClassBinding!(typeof(this))();
428 		return ptrcall!(bool)(_classBinding.isReadonly, _godot_object);
429 	}
430 	/**
431 	
432 	*/
433 	void setWrapEnabled(in bool enable)
434 	{
435 		checkClassBinding!(typeof(this))();
436 		ptrcall!(void)(_classBinding.setWrapEnabled, _godot_object, enable);
437 	}
438 	/**
439 	
440 	*/
441 	bool isWrapEnabled() const
442 	{
443 		checkClassBinding!(typeof(this))();
444 		return ptrcall!(bool)(_classBinding.isWrapEnabled, _godot_object);
445 	}
446 	/**
447 	
448 	*/
449 	void setContextMenuEnabled(in bool enable)
450 	{
451 		checkClassBinding!(typeof(this))();
452 		ptrcall!(void)(_classBinding.setContextMenuEnabled, _godot_object, enable);
453 	}
454 	/**
455 	
456 	*/
457 	bool isContextMenuEnabled()
458 	{
459 		checkClassBinding!(typeof(this))();
460 		return ptrcall!(bool)(_classBinding.isContextMenuEnabled, _godot_object);
461 	}
462 	/**
463 	Cut the current selection.
464 	*/
465 	void cut()
466 	{
467 		checkClassBinding!(typeof(this))();
468 		ptrcall!(void)(_classBinding.cut, _godot_object);
469 	}
470 	/**
471 	Copy the current selection.
472 	*/
473 	void copy()
474 	{
475 		checkClassBinding!(typeof(this))();
476 		ptrcall!(void)(_classBinding.copy, _godot_object);
477 	}
478 	/**
479 	Paste the current selection.
480 	*/
481 	void paste()
482 	{
483 		checkClassBinding!(typeof(this))();
484 		ptrcall!(void)(_classBinding.paste, _godot_object);
485 	}
486 	/**
487 	Perform selection, from line/column to line/column.
488 	*/
489 	void select(in long from_line, in long from_column, in long to_line, in long to_column)
490 	{
491 		checkClassBinding!(typeof(this))();
492 		ptrcall!(void)(_classBinding.select, _godot_object, from_line, from_column, to_line, to_column);
493 	}
494 	/**
495 	Select all the text.
496 	*/
497 	void selectAll()
498 	{
499 		checkClassBinding!(typeof(this))();
500 		ptrcall!(void)(_classBinding.selectAll, _godot_object);
501 	}
502 	/**
503 	Clears the current selection.
504 	*/
505 	void deselect()
506 	{
507 		checkClassBinding!(typeof(this))();
508 		ptrcall!(void)(_classBinding.deselect, _godot_object);
509 	}
510 	/**
511 	Return true if the selection is active.
512 	*/
513 	bool isSelectionActive() const
514 	{
515 		checkClassBinding!(typeof(this))();
516 		return ptrcall!(bool)(_classBinding.isSelectionActive, _godot_object);
517 	}
518 	/**
519 	Return the selection begin line.
520 	*/
521 	long getSelectionFromLine() const
522 	{
523 		checkClassBinding!(typeof(this))();
524 		return ptrcall!(long)(_classBinding.getSelectionFromLine, _godot_object);
525 	}
526 	/**
527 	Return the selection begin column.
528 	*/
529 	long getSelectionFromColumn() const
530 	{
531 		checkClassBinding!(typeof(this))();
532 		return ptrcall!(long)(_classBinding.getSelectionFromColumn, _godot_object);
533 	}
534 	/**
535 	Return the selection end line.
536 	*/
537 	long getSelectionToLine() const
538 	{
539 		checkClassBinding!(typeof(this))();
540 		return ptrcall!(long)(_classBinding.getSelectionToLine, _godot_object);
541 	}
542 	/**
543 	Return the selection end column.
544 	*/
545 	long getSelectionToColumn() const
546 	{
547 		checkClassBinding!(typeof(this))();
548 		return ptrcall!(long)(_classBinding.getSelectionToColumn, _godot_object);
549 	}
550 	/**
551 	Return the text inside the selection.
552 	*/
553 	String getSelectionText() const
554 	{
555 		checkClassBinding!(typeof(this))();
556 		return ptrcall!(String)(_classBinding.getSelectionText, _godot_object);
557 	}
558 	/**
559 	
560 	*/
561 	String getWordUnderCursor() const
562 	{
563 		checkClassBinding!(typeof(this))();
564 		return ptrcall!(String)(_classBinding.getWordUnderCursor, _godot_object);
565 	}
566 	/**
567 	Perform a search inside the text. Search flags can be specified in the SEARCH_* enum.
568 	*/
569 	PoolIntArray search(StringArg0)(in StringArg0 key, in long flags, in long from_line, in long from_column) const
570 	{
571 		checkClassBinding!(typeof(this))();
572 		return ptrcall!(PoolIntArray)(_classBinding.search, _godot_object, key, flags, from_line, from_column);
573 	}
574 	/**
575 	Perform undo operation.
576 	*/
577 	void undo()
578 	{
579 		checkClassBinding!(typeof(this))();
580 		ptrcall!(void)(_classBinding.undo, _godot_object);
581 	}
582 	/**
583 	Perform redo operation.
584 	*/
585 	void redo()
586 	{
587 		checkClassBinding!(typeof(this))();
588 		ptrcall!(void)(_classBinding.redo, _godot_object);
589 	}
590 	/**
591 	Clear the undo history.
592 	*/
593 	void clearUndoHistory()
594 	{
595 		checkClassBinding!(typeof(this))();
596 		ptrcall!(void)(_classBinding.clearUndoHistory, _godot_object);
597 	}
598 	/**
599 	
600 	*/
601 	void setShowLineNumbers(in bool enable)
602 	{
603 		checkClassBinding!(typeof(this))();
604 		ptrcall!(void)(_classBinding.setShowLineNumbers, _godot_object, enable);
605 	}
606 	/**
607 	
608 	*/
609 	bool isShowLineNumbersEnabled() const
610 	{
611 		checkClassBinding!(typeof(this))();
612 		return ptrcall!(bool)(_classBinding.isShowLineNumbersEnabled, _godot_object);
613 	}
614 	/**
615 	
616 	*/
617 	void setBreakpointGutterEnabled(in bool enable)
618 	{
619 		checkClassBinding!(typeof(this))();
620 		ptrcall!(void)(_classBinding.setBreakpointGutterEnabled, _godot_object, enable);
621 	}
622 	/**
623 	
624 	*/
625 	bool isBreakpointGutterEnabled() const
626 	{
627 		checkClassBinding!(typeof(this))();
628 		return ptrcall!(bool)(_classBinding.isBreakpointGutterEnabled, _godot_object);
629 	}
630 	/**
631 	
632 	*/
633 	void setHidingEnabled(in long enable)
634 	{
635 		checkClassBinding!(typeof(this))();
636 		ptrcall!(void)(_classBinding.setHidingEnabled, _godot_object, enable);
637 	}
638 	/**
639 	
640 	*/
641 	long isHidingEnabled() const
642 	{
643 		checkClassBinding!(typeof(this))();
644 		return ptrcall!(long)(_classBinding.isHidingEnabled, _godot_object);
645 	}
646 	/**
647 	
648 	*/
649 	void setLineAsHidden(in long line, in bool enable)
650 	{
651 		checkClassBinding!(typeof(this))();
652 		ptrcall!(void)(_classBinding.setLineAsHidden, _godot_object, line, enable);
653 	}
654 	/**
655 	
656 	*/
657 	bool isLineHidden(in long line) const
658 	{
659 		checkClassBinding!(typeof(this))();
660 		return ptrcall!(bool)(_classBinding.isLineHidden, _godot_object, line);
661 	}
662 	/**
663 	
664 	*/
665 	void foldAllLines()
666 	{
667 		checkClassBinding!(typeof(this))();
668 		ptrcall!(void)(_classBinding.foldAllLines, _godot_object);
669 	}
670 	/**
671 	
672 	*/
673 	void unhideAllLines()
674 	{
675 		checkClassBinding!(typeof(this))();
676 		ptrcall!(void)(_classBinding.unhideAllLines, _godot_object);
677 	}
678 	/**
679 	
680 	*/
681 	void foldLine(in long line)
682 	{
683 		checkClassBinding!(typeof(this))();
684 		ptrcall!(void)(_classBinding.foldLine, _godot_object, line);
685 	}
686 	/**
687 	
688 	*/
689 	void unfoldLine(in long line)
690 	{
691 		checkClassBinding!(typeof(this))();
692 		ptrcall!(void)(_classBinding.unfoldLine, _godot_object, line);
693 	}
694 	/**
695 	Toggle the folding of the code block at the given line.
696 	*/
697 	void toggleFoldLine(in long line)
698 	{
699 		checkClassBinding!(typeof(this))();
700 		ptrcall!(void)(_classBinding.toggleFoldLine, _godot_object, line);
701 	}
702 	/**
703 	
704 	*/
705 	bool canFold(in long line) const
706 	{
707 		checkClassBinding!(typeof(this))();
708 		return ptrcall!(bool)(_classBinding.canFold, _godot_object, line);
709 	}
710 	/**
711 	
712 	*/
713 	bool isFolded(in long line) const
714 	{
715 		checkClassBinding!(typeof(this))();
716 		return ptrcall!(bool)(_classBinding.isFolded, _godot_object, line);
717 	}
718 	/**
719 	
720 	*/
721 	void setHighlightAllOccurrences(in bool enable)
722 	{
723 		checkClassBinding!(typeof(this))();
724 		ptrcall!(void)(_classBinding.setHighlightAllOccurrences, _godot_object, enable);
725 	}
726 	/**
727 	
728 	*/
729 	bool isHighlightAllOccurrencesEnabled() const
730 	{
731 		checkClassBinding!(typeof(this))();
732 		return ptrcall!(bool)(_classBinding.isHighlightAllOccurrencesEnabled, _godot_object);
733 	}
734 	/**
735 	
736 	*/
737 	void setOverrideSelectedFontColor(in bool _override)
738 	{
739 		checkClassBinding!(typeof(this))();
740 		ptrcall!(void)(_classBinding.setOverrideSelectedFontColor, _godot_object, _override);
741 	}
742 	/**
743 	
744 	*/
745 	bool isOverridingSelectedFontColor() const
746 	{
747 		checkClassBinding!(typeof(this))();
748 		return ptrcall!(bool)(_classBinding.isOverridingSelectedFontColor, _godot_object);
749 	}
750 	/**
751 	
752 	*/
753 	void setSyntaxColoring(in bool enable)
754 	{
755 		checkClassBinding!(typeof(this))();
756 		ptrcall!(void)(_classBinding.setSyntaxColoring, _godot_object, enable);
757 	}
758 	/**
759 	
760 	*/
761 	bool isSyntaxColoringEnabled() const
762 	{
763 		checkClassBinding!(typeof(this))();
764 		return ptrcall!(bool)(_classBinding.isSyntaxColoringEnabled, _godot_object);
765 	}
766 	/**
767 	
768 	*/
769 	void setHighlightCurrentLine(in bool enabled)
770 	{
771 		checkClassBinding!(typeof(this))();
772 		ptrcall!(void)(_classBinding.setHighlightCurrentLine, _godot_object, enabled);
773 	}
774 	/**
775 	
776 	*/
777 	bool isHighlightCurrentLineEnabled() const
778 	{
779 		checkClassBinding!(typeof(this))();
780 		return ptrcall!(bool)(_classBinding.isHighlightCurrentLineEnabled, _godot_object);
781 	}
782 	/**
783 	
784 	*/
785 	void setSmoothScrollEnable(in bool enable)
786 	{
787 		checkClassBinding!(typeof(this))();
788 		ptrcall!(void)(_classBinding.setSmoothScrollEnable, _godot_object, enable);
789 	}
790 	/**
791 	
792 	*/
793 	bool isSmoothScrollEnabled() const
794 	{
795 		checkClassBinding!(typeof(this))();
796 		return ptrcall!(bool)(_classBinding.isSmoothScrollEnabled, _godot_object);
797 	}
798 	/**
799 	
800 	*/
801 	void setVScrollSpeed(in double speed)
802 	{
803 		checkClassBinding!(typeof(this))();
804 		ptrcall!(void)(_classBinding.setVScrollSpeed, _godot_object, speed);
805 	}
806 	/**
807 	
808 	*/
809 	double getVScrollSpeed() const
810 	{
811 		checkClassBinding!(typeof(this))();
812 		return ptrcall!(double)(_classBinding.getVScrollSpeed, _godot_object);
813 	}
814 	/**
815 	Add a keyword and its color.
816 	*/
817 	void addKeywordColor(StringArg0)(in StringArg0 keyword, in Color color)
818 	{
819 		checkClassBinding!(typeof(this))();
820 		ptrcall!(void)(_classBinding.addKeywordColor, _godot_object, keyword, color);
821 	}
822 	/**
823 	
824 	*/
825 	bool hasKeywordColor(StringArg0)(in StringArg0 keyword) const
826 	{
827 		checkClassBinding!(typeof(this))();
828 		return ptrcall!(bool)(_classBinding.hasKeywordColor, _godot_object, keyword);
829 	}
830 	/**
831 	
832 	*/
833 	Color getKeywordColor(StringArg0)(in StringArg0 keyword) const
834 	{
835 		checkClassBinding!(typeof(this))();
836 		return ptrcall!(Color)(_classBinding.getKeywordColor, _godot_object, keyword);
837 	}
838 	/**
839 	Add color region (given the delimiters) and its colors.
840 	*/
841 	void addColorRegion(StringArg0, StringArg1)(in StringArg0 begin_key, in StringArg1 end_key, in Color color, in bool line_only = false)
842 	{
843 		checkClassBinding!(typeof(this))();
844 		ptrcall!(void)(_classBinding.addColorRegion, _godot_object, begin_key, end_key, color, line_only);
845 	}
846 	/**
847 	Clear all the syntax coloring information.
848 	*/
849 	void clearColors()
850 	{
851 		checkClassBinding!(typeof(this))();
852 		ptrcall!(void)(_classBinding.clearColors, _godot_object);
853 	}
854 	/**
855 	
856 	*/
857 	void menuOption(in long option)
858 	{
859 		checkClassBinding!(typeof(this))();
860 		ptrcall!(void)(_classBinding.menuOption, _godot_object, option);
861 	}
862 	/**
863 	
864 	*/
865 	PopupMenu getMenu() const
866 	{
867 		checkClassBinding!(typeof(this))();
868 		return ptrcall!(PopupMenu)(_classBinding.getMenu, _godot_object);
869 	}
870 	/**
871 	Return an array containing the line number of each breakpoint.
872 	*/
873 	Array getBreakpoints() const
874 	{
875 		checkClassBinding!(typeof(this))();
876 		return ptrcall!(Array)(_classBinding.getBreakpoints, _godot_object);
877 	}
878 	/**
879 	Removes all the breakpoints (without firing "breakpoint_toggled" signal).
880 	*/
881 	void removeBreakpoints()
882 	{
883 		checkClassBinding!(typeof(this))();
884 		ptrcall!(void)(_classBinding.removeBreakpoints, _godot_object);
885 	}
886 	/**
887 	String value of the $(D TextEdit).
888 	*/
889 	@property String text()
890 	{
891 		return getText();
892 	}
893 	/// ditto
894 	@property void text(String v)
895 	{
896 		setText(v);
897 	}
898 	/**
899 	If `true` read-only mode is enabled. Existing text cannot be modified and new text cannot be added.
900 	*/
901 	@property bool readonly()
902 	{
903 		return isReadonly();
904 	}
905 	/// ditto
906 	@property void readonly(bool v)
907 	{
908 		setReadonly(v);
909 	}
910 	/**
911 	If `true` the line containing the cursor is highlighted.
912 	*/
913 	@property bool highlightCurrentLine()
914 	{
915 		return isHighlightCurrentLineEnabled();
916 	}
917 	/// ditto
918 	@property void highlightCurrentLine(bool v)
919 	{
920 		setHighlightCurrentLine(v);
921 	}
922 	/**
923 	
924 	*/
925 	@property bool syntaxHighlighting()
926 	{
927 		return isSyntaxColoringEnabled();
928 	}
929 	/// ditto
930 	@property void syntaxHighlighting(bool v)
931 	{
932 		setSyntaxColoring(v);
933 	}
934 	/**
935 	If `true` line numbers are displayed to the left of the text.
936 	*/
937 	@property bool showLineNumbers()
938 	{
939 		return isShowLineNumbersEnabled();
940 	}
941 	/// ditto
942 	@property void showLineNumbers(bool v)
943 	{
944 		setShowLineNumbers(v);
945 	}
946 	/**
947 	If `true` the breakpoint gutter is visible.
948 	*/
949 	@property bool breakpointGutter()
950 	{
951 		return isBreakpointGutterEnabled();
952 	}
953 	/// ditto
954 	@property void breakpointGutter(bool v)
955 	{
956 		setBreakpointGutterEnabled(v);
957 	}
958 	/**
959 	
960 	*/
961 	@property bool highlightAllOccurrences()
962 	{
963 		return isHighlightAllOccurrencesEnabled();
964 	}
965 	/// ditto
966 	@property void highlightAllOccurrences(bool v)
967 	{
968 		setHighlightAllOccurrences(v);
969 	}
970 	/**
971 	
972 	*/
973 	@property bool overrideSelectedFontColor()
974 	{
975 		return isOverridingSelectedFontColor();
976 	}
977 	/// ditto
978 	@property void overrideSelectedFontColor(bool v)
979 	{
980 		setOverrideSelectedFontColor(v);
981 	}
982 	/**
983 	If `true` a right click displays the context menu.
984 	*/
985 	@property bool contextMenuEnabled()
986 	{
987 		return isContextMenuEnabled();
988 	}
989 	/// ditto
990 	@property void contextMenuEnabled(bool v)
991 	{
992 		setContextMenuEnabled(v);
993 	}
994 	/**
995 	
996 	*/
997 	@property bool smoothScrolling()
998 	{
999 		return isSmoothScrollEnabled();
1000 	}
1001 	/// ditto
1002 	@property void smoothScrolling(bool v)
1003 	{
1004 		setSmoothScrollEnable(v);
1005 	}
1006 	/**
1007 	If `true`, enables text wrapping when it goes beyond he edge of what is visible.
1008 	*/
1009 	@property double vScrollSpeed()
1010 	{
1011 		return getVScrollSpeed();
1012 	}
1013 	/// ditto
1014 	@property void vScrollSpeed(double v)
1015 	{
1016 		setVScrollSpeed(v);
1017 	}
1018 	/**
1019 	
1020 	*/
1021 	@property long hidingEnabled()
1022 	{
1023 		return isHidingEnabled();
1024 	}
1025 	/// ditto
1026 	@property void hidingEnabled(long v)
1027 	{
1028 		setHidingEnabled(v);
1029 	}
1030 	/**
1031 	
1032 	*/
1033 	@property bool wrapEnabled()
1034 	{
1035 		return isWrapEnabled();
1036 	}
1037 	/// ditto
1038 	@property void wrapEnabled(bool v)
1039 	{
1040 		setWrapEnabled(v);
1041 	}
1042 	/**
1043 	If `true` the caret displays as a rectangle.
1044 	If `false` the caret displays as a bar.
1045 	*/
1046 	@property bool caretBlockMode()
1047 	{
1048 		return cursorIsBlockMode();
1049 	}
1050 	/// ditto
1051 	@property void caretBlockMode(bool v)
1052 	{
1053 		cursorSetBlockMode(v);
1054 	}
1055 	/**
1056 	If `true` the caret (visual cursor) blinks.
1057 	*/
1058 	@property bool caretBlink()
1059 	{
1060 		return cursorGetBlinkEnabled();
1061 	}
1062 	/// ditto
1063 	@property void caretBlink(bool v)
1064 	{
1065 		cursorSetBlinkEnabled(v);
1066 	}
1067 	/**
1068 	Duration (in seconds) of a caret's blinking cycle.
1069 	*/
1070 	@property double caretBlinkSpeed()
1071 	{
1072 		return cursorGetBlinkSpeed();
1073 	}
1074 	/// ditto
1075 	@property void caretBlinkSpeed(double v)
1076 	{
1077 		cursorSetBlinkSpeed(v);
1078 	}
1079 	/**
1080 	If `true` a right click moves the cursor at the mouse position before displaying the context menu.
1081 	If `false` the context menu disregards mouse location.
1082 	*/
1083 	@property bool caretMovingByRightClick()
1084 	{
1085 		return isRightClickMovingCaret();
1086 	}
1087 	/// ditto
1088 	@property void caretMovingByRightClick(bool v)
1089 	{
1090 		setRightClickMovesCaret(v);
1091 	}
1092 }