X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=lib%2Fvideo%2Ffont.h;h=3d1b9fc39fe9810b4009f3a3930a1fc6c5536ede;hb=ca65a4babe2341f4c9b8952cfd516df8d74575e4;hp=f35976250f71dfa2ac60e314185f75d2115a09cb;hpb=edaacb3651cf0560314dd008d7243be4b3b2f8c6;p=supertux.git diff --git a/lib/video/font.h b/lib/video/font.h index f35976250..3d1b9fc39 100644 --- a/lib/video/font.h +++ b/lib/video/font.h @@ -23,21 +23,17 @@ #include -#include "video/surface.h" -#include "math/vector.h" +#include "../video/surface.h" +#include "../math/vector.h" namespace SuperTux { - /** Reads a text file (using LispReader, so it as to be in its formatting) - and displays it in a StarTrek fashion */ - void display_text_file(const std::string& file, float scroll_speed); - - /* Text type */ + /// Font class Font { public: - /* Kinds of texts. */ + /// Kinds of texts. enum FontType { TEXT, // images for all characters NUM // only images for numbers @@ -46,21 +42,33 @@ namespace SuperTux Font(const std::string& file, FontType type, int w, int h, int shadowsize=2); ~Font(); - /** returns the height of the font */ - float get_height() const; /** returns the width of a given text. (Note that I won't add a normal * get_width function here, as we might switch to variable width fonts in the - * future. + * future.) + * Supports breaklines. */ float get_text_width(const std::string& text) const; + /** returns the height of a given text. (Note that I won't add a normal + * get_width function here, as we might switch to variable width fonts in the + * future.) + * Supports breaklines. + * In case, you are positive that your text doesn't use break lines, you can + * just use get_height(). + */ + float get_text_height(const std::string& text) const; + /// returns the height of the font. + float get_height() const; + private: friend class DrawingContext; void draw(const std::string& text, const Vector& pos, - Uint32 drawing_effect = NONE_EFFECT); + Uint32 drawing_effect = NONE_EFFECT, int alpha = 255); + void draw_center(const std::string& text, const Vector& pos, + Uint32 drawing_effect = NONE_EFFECT, int alpha = 255); void draw_chars(Surface* pchars, const std::string& text, - const Vector& position, Uint32 drawing_effect); + const Vector& position, Uint32 drawing_effect, int alpha); Surface* chars; Surface* shadow_chars; @@ -75,6 +83,11 @@ namespace SuperTux int last_char; }; + + /** Reads a text file (using LispReader, so it as to be in its formatting) + and displays it in a StarTrek fashion */ + void display_text_file(const std::string& file, float scroll_speed, Font* heading_font, Font* normal_font, Font* small_font, Font* reference_font ); + } //namespace SuperTux #endif /*SUPERTUX_FONT_H*/