Fixed textscroller's problem with blank lines
authorChristoph Sommer <mail@christoph-sommer.de>
Sat, 22 Apr 2006 14:32:20 +0000 (14:32 +0000)
committerChristoph Sommer <mail@christoph-sommer.de>
Sat, 22 Apr 2006 14:32:20 +0000 (14:32 +0000)
SVN-Revision: 3382

src/textscroller.cpp
src/textscroller.hpp

index 85b7c08..0f0a5c1 100644 (file)
@@ -263,7 +263,14 @@ InfoBoxLine::split(const std::string& text, int line_length)
   std::string::size_type l;
   char format_char = '#';
   while(i < text.size()) {
+    // take care of empty lines - represent them as blank lines of normal text
+    if (text[i] == '\n') {
+      lines.push_back(new InfoBoxLine('\t', ""));
+      i++;
+      continue;
+    }
 
+    // extract the format_char
     format_char = text[i];
     i++;
     if (i >= text.size()) break;
@@ -301,7 +308,6 @@ void
 InfoBoxLine::draw(DrawingContext& context, const Vector& position, int layer)
 {
   switch (lineType) {
-    case SPACER:
     case IMAGE:
       context.draw_surface(image, Vector( (SCREEN_WIDTH - image->get_width()) / 2, position.y), layer);
       break;
@@ -318,8 +324,6 @@ float
 InfoBoxLine::get_height()
 {
   switch (lineType) {
-    case SPACER:
-      return font->get_height() + ITEMS_SPACE;    
     case IMAGE:
       return image->get_height() + ITEMS_SPACE;
     case NORMAL_LEFT:
index c7803ea..604af08 100644 (file)
@@ -37,7 +37,7 @@ class Surface;
 class InfoBoxLine
 {
 private:
-  enum LineType { NORMAL, NORMAL_LEFT, SMALL, HEADING, REFERENCE, IMAGE, SPACER};
+  enum LineType { NORMAL, NORMAL_LEFT, SMALL, HEADING, REFERENCE, IMAGE};
   LineType lineType;
   Font* font;
   std::string text;