summaryrefslogtreecommitdiffstats
path: root/scene/gui/label.h
diff options
context:
space:
mode:
authorZher Huei Lee <lee.zh.92@gmail.com>2015-09-07 19:56:17 +0100
committerZher Huei Lee <lee.zh.92@gmail.com>2015-09-07 19:56:17 +0100
commit7c5cd0c2966b678b5fd450bd4910a8fe071fd999 (patch)
tree053deb297e99a39229fa207112aa2b3aaa4d52d4 /scene/gui/label.h
parentb0aa49accbd7e45dae38f1bd43b0fbdd11714211 (diff)
downloadredot-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.h39
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;