diff options
author | Zher Huei Lee <lee.zh.92@gmail.com> | 2015-09-07 19:56:17 +0100 |
---|---|---|
committer | Zher Huei Lee <lee.zh.92@gmail.com> | 2015-09-07 19:56:17 +0100 |
commit | 7c5cd0c2966b678b5fd450bd4910a8fe071fd999 (patch) | |
tree | 053deb297e99a39229fa207112aa2b3aaa4d52d4 /scene/gui/label.h | |
parent | b0aa49accbd7e45dae38f1bd43b0fbdd11714211 (diff) | |
download | redot-engine-7c5cd0c2966b678b5fd450bd4910a8fe071fd999.tar.gz |
reworked Label class
- no longer inherits Range - instead, more sensible
function names controlling lines visible
- more accurate vertical alignment
- percent_visible preserved even after setting new text
Diffstat (limited to 'scene/gui/label.h')
-rw-r--r-- | scene/gui/label.h | 39 |
1 files changed, 23 insertions, 16 deletions
diff --git a/scene/gui/label.h b/scene/gui/label.h index 81e3ab5676..dc2d4c01e2 100644 --- a/scene/gui/label.h +++ b/scene/gui/label.h @@ -29,17 +29,17 @@ #ifndef LABEL_H #define LABEL_H -#include "scene/gui/range.h" +#include "scene/gui/control.h" /** @author Juan Linietsky <reduzio@gmail.com> */ -class Label : public Range { - - OBJ_TYPE( Label, Range ); -public: - +class Label : public Control { + + OBJ_TYPE( Label, Control ); +public: + enum Align { - + ALIGN_LEFT, ALIGN_CENTER, ALIGN_RIGHT, @@ -63,11 +63,11 @@ private: Size2 minsize; int line_count; bool uppercase; - + int get_longest_line_width() const; - + struct WordCache { - + enum { CHAR_NEWLINE=-1, CHAR_WRAPLINE=-2 @@ -78,23 +78,25 @@ private: int space_count; WordCache *next; WordCache() { char_pos=0; word_len=0; pixel_width=0; next=0; space_count=0;} - }; - + }; + bool word_cache_dirty; void regenerate_word_cache(); float percent_visible; - + WordCache *word_cache; int total_char_cache; int visible_chars; -protected: + int lines_skipped; + int max_lines_visible; +protected: void _notification(int p_what); static void _bind_methods(); // bind helpers public: - + virtual Size2 get_minimum_size() const; void set_align(Align p_align); @@ -105,7 +107,7 @@ public: void set_text(const String& p_string); String get_text() const; - + void set_autowrap(bool p_autowrap); bool has_autowrap() const; @@ -121,6 +123,11 @@ public: void set_percent_visible(float p_percent); float get_percent_visible() const; + void set_lines_skipped(int p_lines); + int get_lines_skipped() const; + + void set_max_lines_visible(int p_lines); + int get_max_lines_visible() const; int get_line_height() const; int get_line_count() const; |