X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fvideo%2Ffont.hpp;h=82f8151c4ab150c31168ba8d6eee86550acc4740;hb=38105c22495d9439b30221732dd5d7b89f328a0c;hp=e3b8875f637109bfb9cfd9114e7ce7caa04612cd;hpb=94f5f77ebdecb14317c610a2a8c686c576e4722a;p=supertux.git diff --git a/src/video/font.hpp b/src/video/font.hpp index e3b8875f6..82f8151c4 100644 --- a/src/video/font.hpp +++ b/src/video/font.hpp @@ -28,6 +28,8 @@ #include "math/vector.hpp" #include "math/rect.hpp" +class Renderer; + enum FontAlignment { ALIGN_LEFT, ALIGN_CENTER, @@ -74,25 +76,30 @@ public: float get_height() const; /** - * returns the given string, truncated (preferrably at whitespace) to be at most max_chars characters long + * returns the given string, truncated (preferably at whitespace) to be at most max_chars characters long */ static std::string wrap_to_chars(const std::string& text, int max_chars, std::string* overflow); + /** + * returns the given string, truncated (preferably at whitespace) to be at most "width" pixels wide + */ + std::string wrap_to_width(const std::string& text, float width, std::string* overflow); + /** Draws the given text to the screen. Also needs the position. * Type of alignment, drawing effect and alpha are optional. */ - void draw(const std::string& text, const Vector& pos, - FontAlignment allignment = ALIGN_LEFT, + void draw(Renderer *renderer, const std::string& text, const Vector& pos, + FontAlignment alignment = ALIGN_LEFT, DrawingEffect drawing_effect = NO_EFFECT, float alpha = 1.0f) const; private: friend class DrawingContext; - void draw_text(const std::string& text, const Vector& pos, + void draw_text(Renderer *renderer, const std::string& text, const Vector& pos, DrawingEffect drawing_effect = NO_EFFECT, float alpha = 1.0f) const; - void draw_chars(Surface* pchars, const std::string& text, + void draw_chars(Renderer *renderer, Surface* pchars, const std::string& text, const Vector& position, DrawingEffect drawing_effect, float alpha) const;