-/*
- * Font.h
- *
- * Created on: Aug 8, 2012
- * Author: holy
- */
-
#ifndef GRAPHICS_FONT_H_
#define GRAPHICS_FONT_H_
#include "Sprite.h"
-#include "../geometry/Vector.h"
+#include "../math/Vector.h"
#include <SDL.h>
class Font {
public:
- explicit Font(const Sprite *sprite, int colOffset = 0, int rowOffset = 0)
+ static const int TYPE_ID = 404;
+
+public:
+ explicit Font(const Sprite *sprite = 0, int colOffset = 0, int rowOffset = 0)
: sprite(sprite), colOffset(colOffset), rowOffset(rowOffset) {
}
public:
int CharWidth() const { return sprite->Width(); }
int CharHeight() const { return sprite->Height(); }
- void DrawChar(char c, SDL_Surface *dest, const geometry::Vector<int> &position) const;
- void DrawString(const char *s, SDL_Surface *dest, const geometry::Vector<int> &position, int maxChars = 0) const;
- void DrawDigit(int d, SDL_Surface *dest, const geometry::Vector<int> &position) const;
- void DrawNumber(int n, SDL_Surface *dest, const geometry::Vector<int> &position, int digits = 0) const;
+ int StringWidth(const char *) const;
+ int StringHeight(const char *) const;
+
+ void DrawChar(char c, SDL_Surface *dest, const math::Vector<int> &position) const;
+ void DrawString(const char *s, SDL_Surface *dest, const math::Vector<int> &position, int maxWidth = 0) const;
+ void DrawStringRight(const char *s, SDL_Surface *dest, const math::Vector<int> &position, int maxWidth = 0) const;
+ void DrawDigit(int d, SDL_Surface *dest, const math::Vector<int> &position) const;
+ void DrawNumber(int n, SDL_Surface *dest, const math::Vector<int> &position, int digits = 0) const;
+ void DrawNumberRight(int n, SDL_Surface *dest, const math::Vector<int> &position, int digits = 0) const;
+
+public:
+ void SetSprite(const Sprite *s) { sprite = s; }
+ void SetColOffset(int n) { colOffset = n; }
+ void SetRowOffset(int n) { rowOffset = n; }
+
+ static void CreateTypeDescription();
+ static void Construct(void *);
private:
const Sprite *sprite;
}
-#endif /* GRAPHICS_FONT_H_ */
+#endif