00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00026 #ifndef __FREETYPE_FACE_HEADER_INCLUDED__
00027 #define __FREETYPE_FACE_HEADER_INCLUDED__
00028
00029
00030 #include <boost/smart_ptr.hpp>
00031
00032
00033 #include <string>
00034
00046 namespace freetype {
00047
00048 class CLibrary ;
00049
00057 class CFace
00058 {
00059 public :
00060 struct CBody ;
00061
00062 private :
00065 boost::scoped_ptr<CBody> m_pimpl ;
00066
00067 public :
00068 CFace( CLibrary *lib, const std::string& filename, int index ) ;
00069 ~CFace( ) ;
00070
00071 const std::string Family( ) const ;
00072 const std::string Style( ) const ;
00073 const std::string PSName( ) const ;
00074
00075 int Ascent( ) const ;
00076 int Decent( ) const ;
00077 int UnitsPerEM( ) const ;
00078 int GlyphCount( ) const ;
00079 void BoundBox( int bbox[] ) const ;
00080
00081 int XHeight( ) const ;
00082 int CapHeight( ) const ;
00083
00084 double ItalicAngle( ) const ;
00085
00086 bool IsFixed( ) const ;
00087
00088
00089 void SetSize( double width, double height, int hres, int vres ) ;
00090 unsigned int GetGlyphCode( unsigned long char_code ) const ;
00091
00092 public :
00093
00094 CBody* Pimpl( ) { return m_pimpl.get( ) ; }
00095 const CBody* Pimpl( ) const { return m_pimpl.get( ) ; }
00096
00097 private :
00098 #ifdef _DEBUG
00099 bool IsValid( ) const ;
00100 #endif
00101 } ;
00102
00103 }
00104
00105 #endif