class DrawingContext;
class Surface;
class Font;
-
-/**
- * Helper class for InfoBox: Represents a line of text
- */
-class InfoBoxLine
-{
-public:
- enum LineType { NORMAL, NORMAL_LEFT, SMALL, HEADING, REFERENCE, IMAGE};
-
- InfoBoxLine(char format_char, const std::string& text);
- ~InfoBoxLine();
-
- void draw(DrawingContext& context, const Rect& bbox, int layer);
- float get_height();
-
- static const std::vector<InfoBoxLine*> split(const std::string& text, float width);
-
-private:
- InfoBoxLine::LineType lineType;
- Font* font;
- Color color;
- std::string text;
- Surface* image;
-
-private:
- InfoBoxLine(const InfoBoxLine&);
- InfoBoxLine& operator=(const InfoBoxLine&);
-};
-
-/** This class is displaying a box with information text inside the game
- */
-class InfoBox
-{
-public:
- InfoBox(const std::string& text);
- ~InfoBox();
-
- void draw(DrawingContext& context);
- void scrolldown();
- void scrollup();
- void pagedown();
- void pageup();
-
-private:
- size_t firstline;
- std::vector<InfoBoxLine*> lines;
- std::map<std::string, Surface*> images;
- Surface* arrow_scrollup;
- Surface* arrow_scrolldown;
-
-private:
- InfoBox(const InfoBox&);
- InfoBox& operator=(const InfoBox&);
-};
+class InfoBoxLine;
/**
* Screen that displays intro text, extro text, etc.