/usr/include/tuxcap/ImageFont.h is in libtuxcap-dev 1.4.0.dfsg2-2.2build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 | #ifndef __IMAGEFONT_H__
#define __IMAGEFONT_H__
#include "Font.h"
#include "DescParser.h"
#include "SharedImage.h"
namespace Sexy
{
class SexyAppBase;
class Image;
class CharData
{
public:
Rect mImageRect;
Point mOffset;
char mKerningOffsets[256];
int mWidth;
int mOrder;
public:
CharData();
};
class FontData;
class FontLayer
{
public:
FontData* mFontData;
StringVector mRequiredTags;
StringVector mExcludedTags;
CharData mCharData[256];
Color mColorMult;
Color mColorAdd;
SharedImageRef mImage;
int mDrawMode;
Point mOffset;
int mSpacing;
int mMinPointSize;
int mMaxPointSize;
int mPointSize;
int mAscent;
int mAscentPadding; // How much space is above the avg uppercase char
int mHeight; //
int mDefaultHeight; // Max height of font character image rects
int mLineSpacingOffset; // This plus height should get added between lines
int mBaseOrder;
public:
FontLayer(FontData* theFontData);
FontLayer(const FontLayer& theFontLayer);
};
typedef std::list<FontLayer> FontLayerList;
typedef std::map<std::string, FontLayer*> FontLayerMap;
typedef std::list<Rect> RectList;
class FontData : public DescParser
{
public:
bool mInitialized;
int mRefCount;
SexyAppBase* mApp;
int mDefaultPointSize;
uchar mCharMap[256];
FontLayerList mFontLayerList;
FontLayerMap mFontLayerMap;
std::string mSourceFile;
std::string mFontErrorHeader;
public:
virtual bool Error(const std::string& theError);
bool GetColorFromDataElement(DataElement *theElement, Color &theColor);
bool DataToLayer(DataElement* theSource, FontLayer** theFontLayer);
virtual bool HandleCommand(const ListDataElement& theParams);
public:
FontData();
virtual ~FontData();
void Ref();
void DeRef();
bool Load(SexyAppBase* theSexyApp, const std::string& theFontDescFileName);
bool LoadLegacy(Image* theFontImage, const std::string& theFontDescFileName);
};
class ActiveFontLayer
{
public:
FontLayer* mBaseFontLayer;
Image* mScaledImage;
bool mOwnsImage;
Rect mScaledCharImageRects[256];
public:
ActiveFontLayer();
ActiveFontLayer(const ActiveFontLayer& theActiveFontLayer);
virtual ~ActiveFontLayer();
};
typedef std::list<ActiveFontLayer> ActiveFontLayerList;
class RenderCommand
{
public:
Image* mImage;
int mDest[2];
int mSrc[4];
int mMode;
Color mColor;
RenderCommand* mNext;
};
typedef std::multimap<int, RenderCommand> RenderCommandMap;
class ImageFont : public Font
{
public:
FontData* mFontData;
int mPointSize;
StringVector mTagVector;
bool mActiveListValid;
ActiveFontLayerList mActiveLayerList;
double mScale;
bool mForceScaledImagesWhite;
public:
virtual void GenerateActiveFontLayers();
virtual void DrawStringEx(Graphics* g, int theX, int theY, const SexyString& theString, const Color& theColor, const Rect* theClipRect, RectList* theDrawnAreas, int* theWidth);
public:
ImageFont(SexyAppBase* theSexyApp, std::string theFontDescFileName);
ImageFont(Image *theFontImage); // for constructing your own image font without a file descriptor
ImageFont(const ImageFont& theImageFont);
virtual ~ImageFont();
// Deprecated
ImageFont(Image* theFontImage, const std::string& theFontDescFileName);
//ImageFont(const ImageFont& theImageFont, Image* theImage);
virtual int CharWidth(char theChar);
virtual int CharWidthKern(char theChar, char thePrevChar);
virtual int StringWidth(const SexyString& theString);
virtual void DrawString(Graphics* g, int theX, int theY, const SexyString& theString, const Color& theColor, const Rect& theClipRect);
virtual Font* Duplicate();
virtual void SetPointSize(int thePointSize);
virtual int GetPointSize();
virtual void SetScale(double theScale);
virtual int GetDefaultPointSize();
virtual bool AddTag(const std::string& theTagName);
virtual bool RemoveTag(const std::string& theTagName);
virtual bool HasTag(const std::string& theTagName);
virtual std::string GetDefine(const std::string& theName);
virtual void Prepare();
};
}
#endif //__IMAGEFONT_H__
|