diff options
author | Juan Linietsky <reduzio@gmail.com> | 2016-07-10 12:38:28 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-07-10 12:38:28 -0300 |
commit | 5bb552273bf1bf2dd1ce4b79678d0cbd1262dd04 (patch) | |
tree | 8846c9e6f3f98b9a8e4b07fe5be3c5383ad99c67 | |
parent | 637796900080cfcf407e1045f10e6e9040c8d33e (diff) | |
parent | aeb5365e841d610a3b9a0fde0520238909c25c49 (diff) |
Merge pull request #5489 from jejung/richtextlabel-get_text
RichTextLabel-get_text
-rw-r--r-- | doc/base/classes.xml | 19 | ||||
-rw-r--r-- | scene/gui/rich_text_label.cpp | 19 | ||||
-rw-r--r-- | scene/gui/rich_text_label.h | 1 |
3 files changed, 39 insertions, 0 deletions
diff --git a/doc/base/classes.xml b/doc/base/classes.xml index cffbd68939..e49407d2d6 100644 --- a/doc/base/classes.xml +++ b/doc/base/classes.xml @@ -21677,6 +21677,12 @@ <description> </description> </method> + <method name="is_displayed_folded" qualifiers="const"> + <return type="bool"> + </return> + <description> + </description> + </method> <method name="is_fixed_processing" qualifiers="const"> <return type="bool"> </return> @@ -21802,6 +21808,12 @@ <description> </description> </method> + <method name="set_display_folded"> + <argument index="0" name="fold" type="bool"> + </argument> + <description> + </description> + </method> <method name="set_filename"> <argument index="0" name="filename" type="String"> </argument> @@ -31551,6 +31563,13 @@ <description> </description> </method> + <method name="get_text"> + <return type="String"> + </return> + <description> + Returns the raw text, stripping out the formatting information. + </description> + </method> <method name="get_total_character_count" qualifiers="const"> <return type="int"> </return> diff --git a/scene/gui/rich_text_label.cpp b/scene/gui/rich_text_label.cpp index 31cef85aa0..3a9ed4c6c3 100644 --- a/scene/gui/rich_text_label.cpp +++ b/scene/gui/rich_text_label.cpp @@ -1877,11 +1877,30 @@ bool RichTextLabel::is_using_bbcode() const { return use_bbcode; } + +String RichTextLabel::get_text() { + String text = ""; + Item *it = main; + while (it) { + if (it->type == ITEM_TEXT) { + ItemText *t = static_cast<ItemText*>(it); + text += t->text; + } else if (it->type == ITEM_NEWLINE) { + text += "\n"; + } else if (it->type == ITEM_INDENT) { + text += "\t"; + } + it=_get_next_item(it,true); + } + return text; +} + void RichTextLabel::_bind_methods() { ObjectTypeDB::bind_method(_MD("_input_event"),&RichTextLabel::_input_event); ObjectTypeDB::bind_method(_MD("_scroll_changed"),&RichTextLabel::_scroll_changed); + ObjectTypeDB::bind_method(_MD("get_text"),&RichTextLabel::get_text); ObjectTypeDB::bind_method(_MD("add_text","text"),&RichTextLabel::add_text); ObjectTypeDB::bind_method(_MD("add_image","image:Texture"),&RichTextLabel::add_image); ObjectTypeDB::bind_method(_MD("newline"),&RichTextLabel::add_newline); diff --git a/scene/gui/rich_text_label.h b/scene/gui/rich_text_label.h index 635fe87ad4..5147905a0e 100644 --- a/scene/gui/rich_text_label.h +++ b/scene/gui/rich_text_label.h @@ -280,6 +280,7 @@ protected: public: + String get_text(); void add_text(const String& p_text); void add_image(const Ref<Texture>& p_image); void add_newline(); |