X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fvideo%2Ffont.hpp;h=5625be1851c60b56cc48d2587be1479f9c0243e1;hb=d427db3e7c37d524e540511dd8cfce6e985bf32b;hp=e3b8875f637109bfb9cfd9114e7ce7caa04612cd;hpb=94f5f77ebdecb14317c610a2a8c686c576e4722a;p=supertux.git diff --git a/src/video/font.hpp b/src/video/font.hpp index e3b8875f6..5625be185 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, @@ -78,9 +80,14 @@ public: */ static std::string wrap_to_chars(const std::string& text, int max_chars, std::string* overflow); + /** + * returns the given string, truncated (preferrably 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, + void draw(Renderer *renderer, const std::string& text, const Vector& pos, FontAlignment allignment = ALIGN_LEFT, DrawingEffect drawing_effect = NO_EFFECT, float alpha = 1.0f) const; @@ -88,11 +95,11 @@ public: 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;