You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
1.5 KiB
77 lines
1.5 KiB
//======================================================================== |
|
// |
|
// SplashFontFile.h |
|
// |
|
//======================================================================== |
|
|
|
#ifndef SPLASHFONTFILE_H |
|
#define SPLASHFONTFILE_H |
|
|
|
#include <aconf.h> |
|
|
|
#ifdef USE_GCC_PRAGMAS |
|
#pragma interface |
|
#endif |
|
|
|
#include "gtypes.h" |
|
#include "SplashTypes.h" |
|
|
|
class GString; |
|
class SplashFontEngine; |
|
class SplashFont; |
|
class SplashFontFileID; |
|
|
|
//------------------------------------------------------------------------ |
|
// SplashFontFile |
|
//------------------------------------------------------------------------ |
|
|
|
struct SplashFontSrc { |
|
SplashFontSrc(); |
|
~SplashFontSrc(); |
|
|
|
void setFile(GString *file, GBool del); |
|
void setFile(const char *file, GBool del); |
|
void setBuf(char *bufA, int buflenA, GBool del); |
|
|
|
void ref(); |
|
void unref(); |
|
|
|
GBool isFile; |
|
GString *fileName; |
|
char *buf; |
|
int bufLen; |
|
GBool deleteSrc; |
|
int refcnt; |
|
}; |
|
|
|
class SplashFontFile { |
|
public: |
|
|
|
virtual ~SplashFontFile(); |
|
|
|
// Create a new SplashFont, i.e., a scaled instance of this font |
|
// file. |
|
virtual SplashFont *makeFont(SplashCoord *mat) = 0; |
|
|
|
// Get the font file ID. |
|
SplashFontFileID *getID() { return id; } |
|
|
|
// Increment the reference count. |
|
void incRefCnt(); |
|
|
|
// Decrement the reference count. If the new value is zero, delete |
|
// the SplashFontFile object. |
|
void decRefCnt(); |
|
|
|
protected: |
|
|
|
SplashFontFile(SplashFontFileID *idA, SplashFontSrc *srcA); |
|
|
|
SplashFontFileID *id; |
|
SplashFontSrc *src; |
|
int refCnt; |
|
|
|
friend class SplashFontEngine; |
|
}; |
|
|
|
#endif
|
|
|