1 /**
2 Label that displays rich text.
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.richtextlabel;
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.texture;
26 import godot.font;
27 import godot.vscrollbar;
28 import godot.canvasitem;
29 import godot.node;
30 /**
31 Label that displays rich text.
32 
33 Rich text can contain custom text, fonts, images and some basic formatting. The label manages these as an internal tag stack. It also adapts itself to given width/heights.
34 Note that assignments to $(D bbcodeText) clear the tag stack and reconstruct it from the property's contents. Any edits made to $(D bbcodeText) will erase previous edits made from other manual sources such as $(D appendBbcode) and the `push_*` / $(D pop) methods.
35 */
36 @GodotBaseClass struct RichTextLabel
37 {
38 	enum string _GODOT_internal_name = "RichTextLabel";
39 public:
40 @nogc nothrow:
41 	union { godot_object _godot_object; Control _GODOT_base; }
42 	alias _GODOT_base this;
43 	alias BaseClasses = AliasSeq!(typeof(_GODOT_base), typeof(_GODOT_base).BaseClasses);
44 	package(godot) __gshared bool _classBindingInitialized = false;
45 	package(godot) static struct _classBinding
46 	{
47 		__gshared:
48 		@GodotName("_gui_input") GodotMethod!(void, InputEvent) _guiInput;
49 		@GodotName("_scroll_changed") GodotMethod!(void, double) _scrollChanged;
50 		@GodotName("get_text") GodotMethod!(String) getText;
51 		@GodotName("add_text") GodotMethod!(void, String) addText;
52 		@GodotName("set_text") GodotMethod!(void, String) setText;
53 		@GodotName("add_image") GodotMethod!(void, Texture) addImage;
54 		@GodotName("newline") GodotMethod!(void) newline;
55 		@GodotName("remove_line") GodotMethod!(bool, long) removeLine;
56 		@GodotName("push_font") GodotMethod!(void, Font) pushFont;
57 		@GodotName("push_color") GodotMethod!(void, Color) pushColor;
58 		@GodotName("push_align") GodotMethod!(void, long) pushAlign;
59 		@GodotName("push_indent") GodotMethod!(void, long) pushIndent;
60 		@GodotName("push_list") GodotMethod!(void, long) pushList;
61 		@GodotName("push_meta") GodotMethod!(void, Variant) pushMeta;
62 		@GodotName("push_underline") GodotMethod!(void) pushUnderline;
63 		@GodotName("push_strikethrough") GodotMethod!(void) pushStrikethrough;
64 		@GodotName("push_table") GodotMethod!(void, long) pushTable;
65 		@GodotName("set_table_column_expand") GodotMethod!(void, long, bool, long) setTableColumnExpand;
66 		@GodotName("push_cell") GodotMethod!(void) pushCell;
67 		@GodotName("pop") GodotMethod!(void) pop;
68 		@GodotName("clear") GodotMethod!(void) clear;
69 		@GodotName("set_meta_underline") GodotMethod!(void, bool) setMetaUnderline;
70 		@GodotName("is_meta_underlined") GodotMethod!(bool) isMetaUnderlined;
71 		@GodotName("set_override_selected_font_color") GodotMethod!(void, bool) setOverrideSelectedFontColor;
72 		@GodotName("is_overriding_selected_font_color") GodotMethod!(bool) isOverridingSelectedFontColor;
73 		@GodotName("set_scroll_active") GodotMethod!(void, bool) setScrollActive;
74 		@GodotName("is_scroll_active") GodotMethod!(bool) isScrollActive;
75 		@GodotName("set_scroll_follow") GodotMethod!(void, bool) setScrollFollow;
76 		@GodotName("is_scroll_following") GodotMethod!(bool) isScrollFollowing;
77 		@GodotName("get_v_scroll") GodotMethod!(VScrollBar) getVScroll;
78 		@GodotName("scroll_to_line") GodotMethod!(void, long) scrollToLine;
79 		@GodotName("set_tab_size") GodotMethod!(void, long) setTabSize;
80 		@GodotName("get_tab_size") GodotMethod!(long) getTabSize;
81 		@GodotName("set_selection_enabled") GodotMethod!(void, bool) setSelectionEnabled;
82 		@GodotName("is_selection_enabled") GodotMethod!(bool) isSelectionEnabled;
83 		@GodotName("parse_bbcode") GodotMethod!(GodotError, String) parseBbcode;
84 		@GodotName("append_bbcode") GodotMethod!(GodotError, String) appendBbcode;
85 		@GodotName("set_bbcode") GodotMethod!(void, String) setBbcode;
86 		@GodotName("get_bbcode") GodotMethod!(String) getBbcode;
87 		@GodotName("set_visible_characters") GodotMethod!(void, long) setVisibleCharacters;
88 		@GodotName("get_visible_characters") GodotMethod!(long) getVisibleCharacters;
89 		@GodotName("set_percent_visible") GodotMethod!(void, double) setPercentVisible;
90 		@GodotName("get_percent_visible") GodotMethod!(double) getPercentVisible;
91 		@GodotName("get_total_character_count") GodotMethod!(long) getTotalCharacterCount;
92 		@GodotName("set_use_bbcode") GodotMethod!(void, bool) setUseBbcode;
93 		@GodotName("is_using_bbcode") GodotMethod!(bool) isUsingBbcode;
94 		@GodotName("get_line_count") GodotMethod!(long) getLineCount;
95 		@GodotName("get_visible_line_count") GodotMethod!(long) getVisibleLineCount;
96 		@GodotName("get_content_height") GodotMethod!(long) getContentHeight;
97 	}
98 	bool opEquals(in RichTextLabel other) const { return _godot_object.ptr is other._godot_object.ptr; }
99 	RichTextLabel opAssign(T : typeof(null))(T n) { _godot_object.ptr = null; }
100 	bool opEquals(typeof(null) n) const { return _godot_object.ptr is null; }
101 	mixin baseCasts;
102 	static RichTextLabel _new()
103 	{
104 		static godot_class_constructor constructor;
105 		if(constructor is null) constructor = _godot_api.godot_get_class_constructor("RichTextLabel");
106 		if(constructor is null) return typeof(this).init;
107 		return cast(RichTextLabel)(constructor());
108 	}
109 	@disable new(size_t s);
110 	/// 
111 	enum Align : int
112 	{
113 		/**
114 		
115 		*/
116 		alignLeft = 0,
117 		/**
118 		
119 		*/
120 		alignCenter = 1,
121 		/**
122 		
123 		*/
124 		alignRight = 2,
125 		/**
126 		
127 		*/
128 		alignFill = 3,
129 	}
130 	/// 
131 	enum ListType : int
132 	{
133 		/**
134 		
135 		*/
136 		listNumbers = 0,
137 		/**
138 		
139 		*/
140 		listLetters = 1,
141 		/**
142 		
143 		*/
144 		listDots = 2,
145 	}
146 	/// 
147 	enum ItemType : int
148 	{
149 		/**
150 		
151 		*/
152 		itemFrame = 0,
153 		/**
154 		
155 		*/
156 		itemText = 1,
157 		/**
158 		
159 		*/
160 		itemImage = 2,
161 		/**
162 		
163 		*/
164 		itemNewline = 3,
165 		/**
166 		
167 		*/
168 		itemFont = 4,
169 		/**
170 		
171 		*/
172 		itemColor = 5,
173 		/**
174 		
175 		*/
176 		itemUnderline = 6,
177 		/**
178 		
179 		*/
180 		itemStrikethrough = 7,
181 		/**
182 		
183 		*/
184 		itemAlign = 8,
185 		/**
186 		
187 		*/
188 		itemIndent = 9,
189 		/**
190 		
191 		*/
192 		itemList = 10,
193 		/**
194 		
195 		*/
196 		itemTable = 11,
197 		/**
198 		
199 		*/
200 		itemMeta = 12,
201 	}
202 	/// 
203 	enum Constants : int
204 	{
205 		listNumbers = 0,
206 		alignLeft = 0,
207 		itemFrame = 0,
208 		itemText = 1,
209 		alignCenter = 1,
210 		listLetters = 1,
211 		alignRight = 2,
212 		listDots = 2,
213 		itemImage = 2,
214 		alignFill = 3,
215 		itemNewline = 3,
216 		itemFont = 4,
217 		itemColor = 5,
218 		itemUnderline = 6,
219 		itemStrikethrough = 7,
220 		itemAlign = 8,
221 		itemIndent = 9,
222 		itemList = 10,
223 		itemTable = 11,
224 		itemMeta = 12,
225 	}
226 	/**
227 	
228 	*/
229 	void _guiInput(InputEvent arg0)
230 	{
231 		Array _GODOT_args = Array.empty_array;
232 		_GODOT_args.append(arg0);
233 		String _GODOT_method_name = String("_gui_input");
234 		this.callv(_GODOT_method_name, _GODOT_args);
235 	}
236 	/**
237 	
238 	*/
239 	void _scrollChanged(in double arg0)
240 	{
241 		Array _GODOT_args = Array.empty_array;
242 		_GODOT_args.append(arg0);
243 		String _GODOT_method_name = String("_scroll_changed");
244 		this.callv(_GODOT_method_name, _GODOT_args);
245 	}
246 	/**
247 	
248 	*/
249 	String getText()
250 	{
251 		checkClassBinding!(typeof(this))();
252 		return ptrcall!(String)(_classBinding.getText, _godot_object);
253 	}
254 	/**
255 	Adds raw non-bbcode-parsed text to the tag stack.
256 	*/
257 	void addText(StringArg0)(in StringArg0 text)
258 	{
259 		checkClassBinding!(typeof(this))();
260 		ptrcall!(void)(_classBinding.addText, _godot_object, text);
261 	}
262 	/**
263 	
264 	*/
265 	void setText(StringArg0)(in StringArg0 text)
266 	{
267 		checkClassBinding!(typeof(this))();
268 		ptrcall!(void)(_classBinding.setText, _godot_object, text);
269 	}
270 	/**
271 	Adds an image's opening and closing tags to the tag stack.
272 	*/
273 	void addImage(Texture image)
274 	{
275 		checkClassBinding!(typeof(this))();
276 		ptrcall!(void)(_classBinding.addImage, _godot_object, image);
277 	}
278 	/**
279 	Adds a newline tag to the tag stack.
280 	*/
281 	void newline()
282 	{
283 		checkClassBinding!(typeof(this))();
284 		ptrcall!(void)(_classBinding.newline, _godot_object);
285 	}
286 	/**
287 	Removes a line of content from the label. Returns `true` if the line exists.
288 	*/
289 	bool removeLine(in long line)
290 	{
291 		checkClassBinding!(typeof(this))();
292 		return ptrcall!(bool)(_classBinding.removeLine, _godot_object, line);
293 	}
294 	/**
295 	Adds a `$(D font)` tag to the tag stack. Overrides default fonts for its duration.
296 	*/
297 	void pushFont(Font font)
298 	{
299 		checkClassBinding!(typeof(this))();
300 		ptrcall!(void)(_classBinding.pushFont, _godot_object, font);
301 	}
302 	/**
303 	Adds a `$(D color)` tag to the tag stack.
304 	*/
305 	void pushColor(in Color color)
306 	{
307 		checkClassBinding!(typeof(this))();
308 		ptrcall!(void)(_classBinding.pushColor, _godot_object, color);
309 	}
310 	/**
311 	Adds an alignment tag based on the given `align` value. See $(D _align) for possible values.
312 	*/
313 	void pushAlign(in long _align)
314 	{
315 		checkClassBinding!(typeof(this))();
316 		ptrcall!(void)(_classBinding.pushAlign, _godot_object, _align);
317 	}
318 	/**
319 	Adds an `$(D indent)` tag to the tag stack. Multiplies "level" by current tab_size to determine new margin length.
320 	*/
321 	void pushIndent(in long level)
322 	{
323 		checkClassBinding!(typeof(this))();
324 		ptrcall!(void)(_classBinding.pushIndent, _godot_object, level);
325 	}
326 	/**
327 	Adds a list tag to the tag stack. Similar to the bbcodes `$(D ol)` or `$(D ul)`, but supports more list types. Not fully implemented!
328 	*/
329 	void pushList(in long type)
330 	{
331 		checkClassBinding!(typeof(this))();
332 		ptrcall!(void)(_classBinding.pushList, _godot_object, type);
333 	}
334 	/**
335 	Adds a meta tag to the tag stack. Similar to the bbcode `$(D url=something){text}$(D /url)`, but supports non-$(D String) metadata types.
336 	*/
337 	void pushMeta(VariantArg0)(in VariantArg0 data)
338 	{
339 		checkClassBinding!(typeof(this))();
340 		ptrcall!(void)(_classBinding.pushMeta, _godot_object, data);
341 	}
342 	/**
343 	Adds a `$(D u)` tag to the tag stack.
344 	*/
345 	void pushUnderline()
346 	{
347 		checkClassBinding!(typeof(this))();
348 		ptrcall!(void)(_classBinding.pushUnderline, _godot_object);
349 	}
350 	/**
351 	Adds a `$(D s)` tag to the tag stack.
352 	*/
353 	void pushStrikethrough()
354 	{
355 		checkClassBinding!(typeof(this))();
356 		ptrcall!(void)(_classBinding.pushStrikethrough, _godot_object);
357 	}
358 	/**
359 	Adds a `$(D table=columns)` tag to the tag stack.
360 	*/
361 	void pushTable(in long columns)
362 	{
363 		checkClassBinding!(typeof(this))();
364 		ptrcall!(void)(_classBinding.pushTable, _godot_object, columns);
365 	}
366 	/**
367 	Edits the selected columns expansion options. If `expand` is `true`, the column expands in proportion to its expansion ratio versus the other columns' ratios.
368 	For example, 2 columns with ratios 3 and 4 plus 70 pixels in available width would expand 30 and 40 pixels, respectively.
369 	Columns with a `false` expand will not contribute to the total ratio.
370 	*/
371 	void setTableColumnExpand(in long column, in bool expand, in long ratio)
372 	{
373 		checkClassBinding!(typeof(this))();
374 		ptrcall!(void)(_classBinding.setTableColumnExpand, _godot_object, column, expand, ratio);
375 	}
376 	/**
377 	Adds a `$(D cell)` tag to the tag stack. Must be inside a $(D table) tag. See $(D pushTable) for details.
378 	*/
379 	void pushCell()
380 	{
381 		checkClassBinding!(typeof(this))();
382 		ptrcall!(void)(_classBinding.pushCell, _godot_object);
383 	}
384 	/**
385 	Terminates the current tag. Use after `push_*` methods to close bbcodes manually. Does not need to follow `add_*` methods.
386 	*/
387 	void pop()
388 	{
389 		checkClassBinding!(typeof(this))();
390 		ptrcall!(void)(_classBinding.pop, _godot_object);
391 	}
392 	/**
393 	Clears the tag stack and sets $(D bbcodeText) to an empty string.
394 	*/
395 	void clear()
396 	{
397 		checkClassBinding!(typeof(this))();
398 		ptrcall!(void)(_classBinding.clear, _godot_object);
399 	}
400 	/**
401 	
402 	*/
403 	void setMetaUnderline(in bool enable)
404 	{
405 		checkClassBinding!(typeof(this))();
406 		ptrcall!(void)(_classBinding.setMetaUnderline, _godot_object, enable);
407 	}
408 	/**
409 	
410 	*/
411 	bool isMetaUnderlined() const
412 	{
413 		checkClassBinding!(typeof(this))();
414 		return ptrcall!(bool)(_classBinding.isMetaUnderlined, _godot_object);
415 	}
416 	/**
417 	
418 	*/
419 	void setOverrideSelectedFontColor(in bool _override)
420 	{
421 		checkClassBinding!(typeof(this))();
422 		ptrcall!(void)(_classBinding.setOverrideSelectedFontColor, _godot_object, _override);
423 	}
424 	/**
425 	
426 	*/
427 	bool isOverridingSelectedFontColor() const
428 	{
429 		checkClassBinding!(typeof(this))();
430 		return ptrcall!(bool)(_classBinding.isOverridingSelectedFontColor, _godot_object);
431 	}
432 	/**
433 	
434 	*/
435 	void setScrollActive(in bool active)
436 	{
437 		checkClassBinding!(typeof(this))();
438 		ptrcall!(void)(_classBinding.setScrollActive, _godot_object, active);
439 	}
440 	/**
441 	
442 	*/
443 	bool isScrollActive() const
444 	{
445 		checkClassBinding!(typeof(this))();
446 		return ptrcall!(bool)(_classBinding.isScrollActive, _godot_object);
447 	}
448 	/**
449 	
450 	*/
451 	void setScrollFollow(in bool follow)
452 	{
453 		checkClassBinding!(typeof(this))();
454 		ptrcall!(void)(_classBinding.setScrollFollow, _godot_object, follow);
455 	}
456 	/**
457 	
458 	*/
459 	bool isScrollFollowing() const
460 	{
461 		checkClassBinding!(typeof(this))();
462 		return ptrcall!(bool)(_classBinding.isScrollFollowing, _godot_object);
463 	}
464 	/**
465 	Returns the vertical scrollbar.
466 	*/
467 	VScrollBar getVScroll()
468 	{
469 		checkClassBinding!(typeof(this))();
470 		return ptrcall!(VScrollBar)(_classBinding.getVScroll, _godot_object);
471 	}
472 	/**
473 	Scrolls the window's top line to match `line`.
474 	*/
475 	void scrollToLine(in long line)
476 	{
477 		checkClassBinding!(typeof(this))();
478 		ptrcall!(void)(_classBinding.scrollToLine, _godot_object, line);
479 	}
480 	/**
481 	
482 	*/
483 	void setTabSize(in long spaces)
484 	{
485 		checkClassBinding!(typeof(this))();
486 		ptrcall!(void)(_classBinding.setTabSize, _godot_object, spaces);
487 	}
488 	/**
489 	
490 	*/
491 	long getTabSize() const
492 	{
493 		checkClassBinding!(typeof(this))();
494 		return ptrcall!(long)(_classBinding.getTabSize, _godot_object);
495 	}
496 	/**
497 	
498 	*/
499 	void setSelectionEnabled(in bool enabled)
500 	{
501 		checkClassBinding!(typeof(this))();
502 		ptrcall!(void)(_classBinding.setSelectionEnabled, _godot_object, enabled);
503 	}
504 	/**
505 	
506 	*/
507 	bool isSelectionEnabled() const
508 	{
509 		checkClassBinding!(typeof(this))();
510 		return ptrcall!(bool)(_classBinding.isSelectionEnabled, _godot_object);
511 	}
512 	/**
513 	The assignment version of $(D appendBbcode). Clears the tag stack and inserts the new content. Returns `OK` if parses `bbcode` successfully.
514 	*/
515 	GodotError parseBbcode(StringArg0)(in StringArg0 bbcode)
516 	{
517 		checkClassBinding!(typeof(this))();
518 		return ptrcall!(GodotError)(_classBinding.parseBbcode, _godot_object, bbcode);
519 	}
520 	/**
521 	Parses `bbcode` and adds tags to the tag stack as needed. Returns the result of the parsing, `OK` if successful.
522 	*/
523 	GodotError appendBbcode(StringArg0)(in StringArg0 bbcode)
524 	{
525 		checkClassBinding!(typeof(this))();
526 		return ptrcall!(GodotError)(_classBinding.appendBbcode, _godot_object, bbcode);
527 	}
528 	/**
529 	
530 	*/
531 	void setBbcode(StringArg0)(in StringArg0 text)
532 	{
533 		checkClassBinding!(typeof(this))();
534 		ptrcall!(void)(_classBinding.setBbcode, _godot_object, text);
535 	}
536 	/**
537 	
538 	*/
539 	String getBbcode() const
540 	{
541 		checkClassBinding!(typeof(this))();
542 		return ptrcall!(String)(_classBinding.getBbcode, _godot_object);
543 	}
544 	/**
545 	
546 	*/
547 	void setVisibleCharacters(in long amount)
548 	{
549 		checkClassBinding!(typeof(this))();
550 		ptrcall!(void)(_classBinding.setVisibleCharacters, _godot_object, amount);
551 	}
552 	/**
553 	
554 	*/
555 	long getVisibleCharacters() const
556 	{
557 		checkClassBinding!(typeof(this))();
558 		return ptrcall!(long)(_classBinding.getVisibleCharacters, _godot_object);
559 	}
560 	/**
561 	
562 	*/
563 	void setPercentVisible(in double percent_visible)
564 	{
565 		checkClassBinding!(typeof(this))();
566 		ptrcall!(void)(_classBinding.setPercentVisible, _godot_object, percent_visible);
567 	}
568 	/**
569 	
570 	*/
571 	double getPercentVisible() const
572 	{
573 		checkClassBinding!(typeof(this))();
574 		return ptrcall!(double)(_classBinding.getPercentVisible, _godot_object);
575 	}
576 	/**
577 	Returns the total number of characters from text tags. Does not include bbcodes.
578 	*/
579 	long getTotalCharacterCount() const
580 	{
581 		checkClassBinding!(typeof(this))();
582 		return ptrcall!(long)(_classBinding.getTotalCharacterCount, _godot_object);
583 	}
584 	/**
585 	
586 	*/
587 	void setUseBbcode(in bool enable)
588 	{
589 		checkClassBinding!(typeof(this))();
590 		ptrcall!(void)(_classBinding.setUseBbcode, _godot_object, enable);
591 	}
592 	/**
593 	
594 	*/
595 	bool isUsingBbcode() const
596 	{
597 		checkClassBinding!(typeof(this))();
598 		return ptrcall!(bool)(_classBinding.isUsingBbcode, _godot_object);
599 	}
600 	/**
601 	Returns the total number of newlines in the tag stack's text tags. Considers wrapped text as one line.
602 	*/
603 	long getLineCount() const
604 	{
605 		checkClassBinding!(typeof(this))();
606 		return ptrcall!(long)(_classBinding.getLineCount, _godot_object);
607 	}
608 	/**
609 	Returns the number of visible lines.
610 	*/
611 	long getVisibleLineCount() const
612 	{
613 		checkClassBinding!(typeof(this))();
614 		return ptrcall!(long)(_classBinding.getVisibleLineCount, _godot_object);
615 	}
616 	/**
617 	Returns the height of the content.
618 	*/
619 	long getContentHeight()
620 	{
621 		checkClassBinding!(typeof(this))();
622 		return ptrcall!(long)(_classBinding.getContentHeight, _godot_object);
623 	}
624 	/**
625 	If `true` the label uses BBCode formatting. Default value: `false`.
626 	*/
627 	@property bool bbcodeEnabled()
628 	{
629 		return isUsingBbcode();
630 	}
631 	/// ditto
632 	@property void bbcodeEnabled(bool v)
633 	{
634 		setUseBbcode(v);
635 	}
636 	/**
637 	The label's text in BBCode format. Is not representative of manual modifications to the internal tag stack. Erases changes made by other methods when edited.
638 	*/
639 	@property String bbcodeText()
640 	{
641 		return getBbcode();
642 	}
643 	/// ditto
644 	@property void bbcodeText(String v)
645 	{
646 		setBbcode(v);
647 	}
648 	/**
649 	The restricted number of characters to display in the label.
650 	*/
651 	@property long visibleCharacters()
652 	{
653 		return getVisibleCharacters();
654 	}
655 	/// ditto
656 	@property void visibleCharacters(long v)
657 	{
658 		setVisibleCharacters(v);
659 	}
660 	/**
661 	The text's visibility, as a $(D double) between 0.0 and 1.0.
662 	*/
663 	@property double percentVisible()
664 	{
665 		return getPercentVisible();
666 	}
667 	/// ditto
668 	@property void percentVisible(double v)
669 	{
670 		setPercentVisible(v);
671 	}
672 	/**
673 	If `true`, the label underlines meta tags such as $(D url){text}$(D /url). Default value: `true`.
674 	*/
675 	@property bool metaUnderlined()
676 	{
677 		return isMetaUnderlined();
678 	}
679 	/// ditto
680 	@property void metaUnderlined(bool v)
681 	{
682 		setMetaUnderline(v);
683 	}
684 	/**
685 	The number of spaces associated with a single tab length. Does not affect "\t" in text tags, only indent tags.
686 	*/
687 	@property long tabSize()
688 	{
689 		return getTabSize();
690 	}
691 	/// ditto
692 	@property void tabSize(long v)
693 	{
694 		setTabSize(v);
695 	}
696 	/**
697 	The raw text of the label.
698 	When set, clears the tag stack and adds a raw text tag to the top of it. Does not parse bbcodes. Does not modify $(D bbcodeText).
699 	*/
700 	@property String text()
701 	{
702 		return getText();
703 	}
704 	/// ditto
705 	@property void text(String v)
706 	{
707 		setText(v);
708 	}
709 	/**
710 	If `true`, the scrollbar is visible. Does not block scrolling completely. See $(D scrollToLine). Default value: `true`.
711 	*/
712 	@property bool scrollActive()
713 	{
714 		return isScrollActive();
715 	}
716 	/// ditto
717 	@property void scrollActive(bool v)
718 	{
719 		setScrollActive(v);
720 	}
721 	/**
722 	If `true`, the window scrolls down to display new content automatically. Default value: `false`.
723 	*/
724 	@property bool scrollFollowing()
725 	{
726 		return isScrollFollowing();
727 	}
728 	/// ditto
729 	@property void scrollFollowing(bool v)
730 	{
731 		setScrollFollow(v);
732 	}
733 	/**
734 	If `true`, the label allows text selection.
735 	*/
736 	@property bool selectionEnabled()
737 	{
738 		return isSelectionEnabled();
739 	}
740 	/// ditto
741 	@property void selectionEnabled(bool v)
742 	{
743 		setSelectionEnabled(v);
744 	}
745 	/**
746 	If `true` the label uses the custom font color. Default value: `false`.
747 	*/
748 	@property bool overrideSelectedFontColor()
749 	{
750 		return isOverridingSelectedFontColor();
751 	}
752 	/// ditto
753 	@property void overrideSelectedFontColor(bool v)
754 	{
755 		setOverrideSelectedFontColor(v);
756 	}
757 }