Unuk/src/libUnuk/UI/Text.h
2012-01-14 03:39:10 +00:00

63 lines
1.7 KiB
C++

#pragma once
#include <SDL/SDL.h>
#include <SDL/SDL_ttf.h>
#include <string>
#include <list>
#include "../../Unuk/Globals.h"
#include "../Sprite/ApplySurface.h"
#include "../UI/Font.h"
#include "../System/Debug.h"
using namespace std;
enum textSizes_t { vsmall, small, medium, large, vlarge };
class Text {
public:
Text(void);
~Text(void);
static void LoadFonts(void);
static void FreeFonts(void);
int GetWidth(void) { return w; }
int GetHeight(void) { return h; }
int GetX(void) { return x; }
int GetY(void) { return y; }
SDL_Color GetColour(void) { return _textColour; }
void SetXY(int xArg, int yArg);
int GetLineWidth() { return lineWidth; }
void SetLineWidth(int lineWidthArg) { lineWidth = lineWidthArg; }
int SetTextBlended(string textArg, textSizes_t size, SDL_Color, bool wordWrap=false);
int SetTextBlended(string textArg, textSizes_t size, Uint8 r, Uint8 g, Uint8 b, bool wordWrap=false);
int SetTextShaded(string textArg, textSizes_t size, SDL_Color, SDL_Color, bool wordWrap=false);
int SetTextShaded(string textArg, textSizes_t size, Uint8 rF, Uint8 gF, Uint8 bF, Uint8 rB, Uint8 gB, Uint8 bB, bool wordWrap=false);
string GetText(void) { return _textContents; }
void Render(void);
void Render(int xArg, int yArg);
void RenderLiteral(void);
void RenderLiteral(int xArg, int yArg);
private:
int x, y, w, h;
int lineWidth;
string _textContents;
SDL_Color _textColour;
std::list<SDL_Surface*> _lines;
std::string DoWordWrap(TTF_Font* fontArg, const std::string& textArg);
static TTF_Font* vSmallFont;
static TTF_Font* smallFont;
static TTF_Font* mediumFont;
static TTF_Font* largeFont;
static TTF_Font* vLargeFont;
};