X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Ftextscroller.hpp;h=b232b18956f9a8d88e9e5a134ba35e594263db11;hb=79095ed1df46f16fd9d4767ea7f548531b009ff2;hp=c7803ea47c5d0a5a164d87a25caf136c58137d18;hpb=6e7973207d7bc868eaa9561d17eaf855cd885800;p=supertux.git diff --git a/src/textscroller.hpp b/src/textscroller.hpp index c7803ea47..b232b1895 100644 --- a/src/textscroller.hpp +++ b/src/textscroller.hpp @@ -24,33 +24,37 @@ #include #include #include +#include #include "screen.hpp" -#include "video/font.hpp" +#include "math/vector.hpp" +#include "math/rect.hpp" class DrawingContext; class Surface; +class Font; /** * Helper class for InfoBox: Represents a line of text */ class InfoBoxLine { -private: - enum LineType { NORMAL, NORMAL_LEFT, SMALL, HEADING, REFERENCE, IMAGE, SPACER}; - LineType lineType; - Font* font; - std::string text; - Surface* image; - public: + enum LineType { NORMAL, NORMAL_LEFT, SMALL, HEADING, REFERENCE, IMAGE}; + InfoBoxLine(char format_char, const std::string& text); ~InfoBoxLine(); - void draw(DrawingContext& context, const Vector& position, int layer); + void draw(DrawingContext& context, const Rect& bbox, int layer); float get_height(); - static const std::vector split(const std::string& text, int line_length); + static const std::vector split(const std::string& text, float width); + +private: + InfoBoxLine::LineType lineType; + Font* font; + std::string text; + Surface* image; }; /** This class is displaying a box with information text inside the game @@ -66,7 +70,7 @@ public: void scrollup(); void pagedown(); void pageup(); - + private: size_t firstline; std::vector lines; @@ -75,6 +79,9 @@ private: Surface* arrow_scrolldown; }; +/** + * Screen that displays intro text, extro text, etc. + */ class TextScroller : public Screen { public: @@ -92,7 +99,7 @@ private: std::auto_ptr background; std::vector lines; float scroll; + bool fading; }; #endif -