Hot Door CORE  0.7.1
Adobe® Illustrator® Plug-in Library
hdicoreFont.h
Go to the documentation of this file.
1 
7 #ifndef __HDI_CORE_FONT__
8 #define __HDI_CORE_FONT__
9 
10 #include "hdicoreTypes.h"
11 
12 namespace hdi
13 {
14  namespace plugin
15  {
16  class Font;
17  }
18 
19  namespace core
20  {
21  class Font;
22 
26  class Typeface
27  {
28  public:
40  Typeface();
41 
49  Typeface(const Typeface& tf_);
50 
58  Typeface(const AITypefaceKey aiTF_);
59 
65  virtual ~Typeface();
66 
76  virtual Typeface& operator=(const Typeface& rhs_);
77 
85  virtual bool isEmpty() const;
86 
98  virtual AITypefaceKey aiTypefaceKey() const;
99 
108  virtual bool operator==(const Typeface& rhs_) const;
109 
118  virtual bool operator!=(const Typeface& rhs_) const;
119 
127  virtual int32_t styleCount() const;
128 
137  virtual std::auto_ptr<Font> styleAtIndex(const int32_t index_);
138 
146  virtual std::string name() const;
147 
148 
149  private:
150  friend void* __accessImpl(const Typeface&);
151 
155  void* __data;
156 
162  void* __impl() const;
163  };
164 
165  typedef std::auto_ptr<Typeface> TypefaceAP;
166 
170  class Font
171  {
172  public:
176  class Info
177  {
178  public:
182  enum Format
183  {
184  UnknownFormat = 0,
185  TypeOneFormat = 10,
186  TrueTypeFormat = 20
187  };
188 
192  enum Encoding
193  {
194  UnknownEncoding = 0,
195  DontCareEncoding = 10,
196  StandardEncoding = 20,
197  SpecialEncoding = 30
198  };
199 
203  enum Script
204  {
205  UnknownScript = 0,
206  NativeScript = 10,
207  RomanScript = 20,
208  JapaneseScript = 30,
209  ChineseTraditionalScript = 40,
210  ChineseSimplifiedScript = 50,
211  KoreanScript = 60,
212  ArabicScript = 70,
213  HebrewScript = 80,
214  GreekScript = 90,
215  CyrillicScript = 100,
216  EastEuropeanRomanScript = 110,
217  TurkishScript = 120,
218  BalticScript = 130,
219  SymbolScript = 140,
220  EmojiScript = 150 // Only available in Illustrator 22 and above
221  };
222 
227  {
228  MojiZumeUnknown = 0,
229  MojiZumeNone = 10,
230  MojiZumeGXTrueType = 20,
231  MojiZumePageMakerJ = 30,
232  MojiZumeSfntATM = 40
233  };
234 
239 
244 
249 
254 
259 
264 
268  bool isCID;
269 
274 
278  bool isOTF;
279 
283  bool isBitmap;
284 
288  bool isOCF;
289 
293  bool isATC;
294 
301 
307  Info();
308 
314  virtual ~Info();
315  };
316 
317  typedef std::auto_ptr<Info> InfoAP;
318 
326  Font();
327 
335  Font(const Font& f_);
336 
344  Font(const AIFontKey aiFont_);
345 
351  virtual ~Font();
352 
361  virtual Font& operator=(const Font& rhs_);
362 
371  virtual bool operator==(const Font& rhs_) const;
372 
381  virtual bool operator!=(const Font& rhs_) const;
382 
394  virtual AIFontKey aiFontKey() const;
395 
403  virtual Info info() const;
404 
412  virtual std::string name() const;
413 
421  virtual std::string familyName() const;
422 
430  virtual std::string styleName() const;
431 
441  virtual bool typefaceAndStyle(Typeface& tf__, int32_t& style__);
442 
443  #if HDI_CORE_COMPILE_AI17_PLUS
444 
451  virtual bool substituted() const;
452  #endif
453 
454 
455  private:
456  friend plugin::Font* __accessImpl(const Font&);
457  friend Font __accessCtor(const plugin::Font&);
458 
462  plugin::Font* __impl;
463 
469  Font(const plugin::Font&);
470  };
471 
472  typedef std::auto_ptr<Font> FontAP;
473 
474  extern void* __accessImpl(const Typeface&);
475  extern plugin::Font* __accessImpl(const Font&);
476  extern Font __accessCtor(const plugin::Font&);
477  }
478 }
479 
480 #endif
481 // __HDI_CORE_FONT__
Format
Describes the font format.
Definition: hdicoreFont.h:182
bool isATC
Is the font Adobe Type Composer?
Definition: hdicoreFont.h:293
Typeface class to allow for easy typeface manipulation.
Definition: hdicoreFont.h:26
Encoding
Describes the font encoding.
Definition: hdicoreFont.h:192
bool fauxedInstalled
Is the font fauxed for another missing font?
Definition: hdicoreFont.h:263
Encoding encoding
Font face encoding.
Definition: hdicoreFont.h:243
bool originalEncoding
Is the font the original encoding?
Definition: hdicoreFont.h:253
Describes style information for an individual font.
Definition: hdicoreFont.h:176
Script script
Font face script.
Definition: hdicoreFont.h:248
Header file for a wide variety of necessary typedefs, enums, and forwards declarations.
Font class to allow for easy font manipulation.
Definition: hdicoreFont.h:170
bool isBitmap
Is the font bitmap?
Definition: hdicoreFont.h:283
bool isOCF
Is the font Original Composer Format?
Definition: hdicoreFont.h:288
Format format
Font face formatting.
Definition: hdicoreFont.h:238
Definition: hdicoreaiArray.h:12
bool isOTF
Is the font OpenType?
Definition: hdicoreFont.h:278
MojiZumeType mojiZumeType
MojiZume type of the font.
Definition: hdicoreFont.h:273
bool familyInstalled
Is the font family installed?
Definition: hdicoreFont.h:258
MojiZumeType
Describes the font MojiZume type.
Definition: hdicoreFont.h:226
bool isMultipleMaster
Is the font Adobe Multiple Master?
Definition: hdicoreFont.h:300
Script
Describes the font script.
Definition: hdicoreFont.h:203
bool isCID
Is the font character ID-keyed?
Definition: hdicoreFont.h:268