63 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			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;
 | 
						|
};
 |