00001
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
#include <SDL.h>
00024
#include "guitypedefs.h"
00025
#ifdef _WIN32
00026
#pragma warning(push)
00027
00028
#include <yvals.h>
00029
00030
#pragma warning(disable: 4251)
00031
#pragma warning(disable: 4786) // identifier was truncated to 'number' characters in the debug information
00032
00033
00034
00035
00036
00037
#include <sge.h>
00038
00039
#pragma warning(pop)
00040
#else
00041
#include <sge.h>
00042
#endif
00043
00044
#include "TTFont.h"
00045
00046
00047
namespace gui
00048 {
00049
00050 bool TTFont::m_init =
false;
00051
00052 TTFont::TTFont(
const string &filename,
int size) : m_font(NULL)
00053 ,m_h(size)
00054 {
00055
00056
if (!
m_init)
00057 {
00058
m_init =
true;
00059
if (sge_TTF_Init()!=0)
00060 {
00061 fprintf(stderr,
"TT error: %s\n", SDL_GetError());
00062
00063 }
00064 }
00065
00066
m_font = sge_TTF_OpenFont( (
char *)filename.c_str(), size);
00067
if (
m_font == NULL)
00068 {
00069 fprintf(stderr,
"TT error: %s\n", SDL_GetError());
00070
00071 }
00072
00073
00074 }
00075
00076
00077 TTFont::~TTFont()
00078 {
00079
00080
if (
m_font)
00081 {
00082 sge_TTF_CloseFont(
m_font);
00083 }
00084 }
00085
00086
00087 sge_TTFont *TTFont::GetFont()
00088 {
00089
return m_font;
00090 }
00091
00092
00093 int TTFont::GetH()
00094 {
00095
return m_h;
00096 }
00097
00098
00099 void TTFont::SetH(
int h)
00100 {
00101
m_h = h;
00102 sge_TTF_SetFontSize(
m_font, h);
00103 }
00104
00105
00106 void TTFont::GetRect(
const string &str, SDL_Rect &rect)
00107 {
00108 rect = sge_TTF_TextSize(
m_font, (
char *)str.c_str() );
00109 }
00110
00111
00112 }