Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2008-11-09 17:44:24 +0000
committerStijn Buys <ingar@osirion.org>2008-11-09 17:44:24 +0000
commit06212c7d8dc20b11f49d54e42f8299740f90a231 (patch)
treeaf179e6015cb86be61ee640154fde1d70967d919 /src/ui/scrollpane.cc
parentf0ba130494173d01c6e800c95e19dc1826ddc68e (diff)
improved client notifications, minor bugfixes
Diffstat (limited to 'src/ui/scrollpane.cc')
-rw-r--r--src/ui/scrollpane.cc27
1 files changed, 22 insertions, 5 deletions
diff --git a/src/ui/scrollpane.cc b/src/ui/scrollpane.cc
index 69bc159..a1de7d5 100644
--- a/src/ui/scrollpane.cc
+++ b/src/ui/scrollpane.cc
@@ -16,12 +16,18 @@ namespace ui
ScrollPane::ScrollPane(Widget *parent, ui::Text &text) : Widget(parent), scrollpane_text(text)
{
set_label("scrollpane");
+ set_alignment(AlignBottom);
}
ScrollPane::~ScrollPane()
{
}
+void ScrollPane::set_alignment(const unsigned int alignment)
+{
+ scrollpane_alignment = alignment;
+}
+
void ScrollPane::set_scroll(int scroll)
{
scrollpane_scroll = scroll;
@@ -157,13 +163,24 @@ void ScrollPane::draw()
render::gl::color(palette()->text());
const math ::Vector2f gl(global_location());
- float y = height() - font()->height();
+ float y = 0;
- for (ui::Text::reverse_iterator rit = lines.rbegin(); (y >= 0) && (rit != lines.rend()); ++rit) {
- render::Text::draw(gl.x, gl.y + y, (*rit));
- y -= font()->height();
+ if ((alignment() & AlignTop) == AlignTop) {
+ int i = (int) lines.size();
+ for (ui::Text::iterator it = lines.begin(); it != lines.end(); it++) {
+ if (i <= text_height) {
+ render::Text::draw(gl.x, gl.y + y, (*it));
+ y += font()->height();
+ }
+ i--;
+ }
+ } else {
+ y = height() - font()->height();
+ for (ui::Text::reverse_iterator rit = lines.rbegin(); (y >= 0) && (rit != lines.rend()); ++rit) {
+ render::Text::draw(gl.x, gl.y + y, (*rit));
+ y -= font()->height();
+ }
}
-
render::gl::disable(GL_TEXTURE_2D);
}