00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef FIFE_FONTS_FONTBASE_H
00023 #define FIFE_FONTS_FONTBASE_H
00024
00025
00026 #include <string>
00027
00028
00029 #include "util/base/fife_stdint.h"
00030
00031
00032 #include <SDL.h>
00033
00034
00035
00036
00037
00038 #include "textrenderpool.h"
00039 #include "abstractfont.h"
00040
00041 struct SDL_Surface;
00042 namespace FIFE {
00043
00048 class FontBase: public AbstractFont {
00049 public:
00050 FontBase();
00051 virtual ~FontBase() {}
00052 void setRowSpacing (int spacing);
00053 int getRowSpacing() const;
00054 void setGlyphSpacing(int spacing);
00055 int getGlyphSpacing() const;
00056 void setAntiAlias(bool antiAlias);
00057 bool isAntiAlias();
00058 virtual int getStringIndexAt(const std::string &text, int x) const;
00059
00060 Image* getAsImage(const std::string& text);
00061 Image* getAsImageMultiline(const std::string& text);
00062 std::string splitTextToWidth (const std::string& text, int render_width);
00063
00064 SDL_Color getColor() const;
00065
00066 virtual SDL_Surface* renderString(const std::string& text) = 0;
00067
00068 protected:
00069 TextRenderPool m_pool;
00070
00071 SDL_Color mColor;
00072 int mGlyphSpacing;
00073 int mRowSpacing;
00074
00075 std::string mFilename;
00076 bool m_antiAlias;
00077 };
00078
00079 }
00080
00081 #endif