InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IMojikumiStyle.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: nmccully
6 //
7 // $Author$
8 //
9 // $DateTime$
10 //
11 // $Revision$
12 //
13 // $Change$
14 //
15 // Copyright 1997-2010 Adobe Systems Incorporated. All rights reserved.
16 //
17 // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance
18 // with the terms of the Adobe license agreement accompanying it. If you have received
19 // this file from a source other than Adobe, then your use, modification, or
20 // distribution of it requires the prior written permission of Adobe.
21 //
22 //========================================================================================
23 
24 #ifndef __IMojikumiStyle__
25 #define __IMojikumiStyle__
26 
27 
28 #include "IPMUnknown.h"
29 
30 #include "IMojikumiTable.h"
31 #include "ICompositionStyle.h"
32 #include "CTextEnum.h"
33 #include "CJKID.h"
34 
35 class IKinsokuTable;
36 class ITsumeTable;
37 class PMMatrix;
38 
39 
40 const double kAutoAkiMagicNumber = -1.0;
41 #define kSpacing_Auto kAutoAkiMagicNumber
42 #define kSpacing_2bu 0.5
43 #define kSpacing_4bu 0.25
44 #define kSpacing_2bu4bu 0.75
45 #define kSpacing_8bu 0.125
46 #define kSpacing_None 0.0
47 #define kSpacing_FullWidth 1.0
48 
69 class IMojikumiStyle : public IPMUnknown
70 {
71  public:
72  enum { kDefaultIID = IID_IMOJIKUMISTYLE };
73 
74  //-------------------------------------------------------------------------------
78 
79 
82  virtual void SetMojikumiTable(UID tableID) = 0;
86  virtual UID GetMojikumiTable() const = 0;
90  virtual IMojikumiTable* QueryMojikumiTable() const = 0;
92 
93  //-------------------------------------------------------------------------------
98 
99 
102  virtual void SetKinsokuTable(UID tableID) = 0;
106  virtual UID GetKinsokuTable() const = 0;
110  virtual IKinsokuTable* QueryKinsokuTable() const = 0;
112 
113  //-------------------------------------------------------------------------------
120 
121 
124  virtual void SetTsumeTable(UID tableID) = 0;
128  virtual UID GetTsumeTable() const = 0;
132  virtual ITsumeTable* QueryTsumeTable() const = 0;
134 
135  //-------------------------------------------------------------------------------
137  //-------------------------------------------------------------------------------
142  virtual bool16 LigaturesAllowed(bool16 vertical) const = 0;
143 
144  //-------------------------------------------------------------------------------
148  //-------------------------------------------------------------------------------
152  virtual void SetForceBeforeSpacing(PMReal spacing) = 0;
156  virtual PMReal GetForceBeforeSpacing() const = 0;
160  virtual void SetForceAfterSpacing(PMReal spacing) = 0;
164  virtual PMReal GetForceAfterSpacing() const = 0;
166 
167  //-------------------------------------------------------------------------------
169 
170 
173  virtual void SetRotateAngle(const PMReal& p) = 0;
177  virtual PMReal GetRotateAngle() const = 0;
179 
180  //-------------------------------------------------------------------------------
182 
183 
186  virtual void SetShataiMagnification(PMReal p) = 0;
190  virtual PMReal GetShataiMagnification() const = 0;
194  virtual void SetShataiAngle(PMReal p) = 0;
198  virtual PMReal GetShataiAngle() const = 0;
202  virtual void SetShataiAdjustRotation(bool16 p) = 0;
206  virtual bool16 GetShataiAdjustRotation() const = 0;
210  virtual void SetShataiAdjustTsume(bool16 p) = 0;
214  virtual bool16 GetShataiAdjustTsume() const = 0;
215 
223  virtual void ShataiTransformFontMatrix(PMMatrix *pMatrix, bool16 vertical, PMReal *widthAdjustment = nil, PMReal widthToEmRatio = 1.0, PMMatrix *rawShataiMatrix = nil) const = 0;
225 
226  //-------------------------------------------------------------------------------
228 
229 
232  virtual void SetUseHVKana(bool16 b) = 0;
236  virtual bool16 GetUseHVKana() const = 0;
240  virtual void SetUseProportionalMetrics(bool16 b) = 0;
244  virtual bool16 GetUseProportionalMetrics() const = 0;
248  virtual void SetUseRomanItalics(bool16 b) = 0;
252  virtual bool16 GetUseRomanItalics() const = 0;
254 
255  //-------------------------------------------------------------------------------
257 
258 
260  enum KinsokuType {
261  kKinsoku_PushInFirst = 0,
262  kKinsoku_PushOutFirst,
263  kKinsoku_PushOutOnly,
264  kKinsoku_PushInAlways
265  };
269  virtual void SetKinsokuType(KinsokuType type) = 0;
273  virtual KinsokuType GetKinsokuType() const = 0;
274 
278  kKinsokuHang_None = 0, // no burasagari
279  kKinsokuHang_Regular, // IDJ 1.0 style burasagari
280  kKinsokuHang_Force // AI style burasagari
281  };
285  virtual void SetKinsokuHangType(KinsokuHangType type) = 0;
289  virtual KinsokuHangType GetKinsokuHangType() const = 0;
293  virtual void SetLeadingModel(Text::LeadingModel m) = 0;
297  virtual Text::LeadingModel GetLeadingModel() const = 0;
301  virtual void SetRensuuji(bool16 flag) = 0;
305  virtual bool16 GetRensuuji() const = 0;
309  virtual void SetNotSeparate(bool16 flag) = 0;
313  virtual bool16 GetNotSeparate() const = 0;
317  virtual void SetTreatIdeoSpaceAsSpace(bool16 flag) = 0;
321  virtual bool16 GetTreatIdeoSpaceAsSpace() const = 0;
325  virtual void SetWordWrapOff(bool16 flag) = 0;
329  virtual bool16 GetWordWrapOff() const = 0;
331 
332  // Obsolete/unused methods
334  virtual void SetTsume(const PMReal& ratio) = 0;
335  virtual PMReal GetTsume() const = 0;
336  virtual void SetRomanMojikumi(bool16 flag) = 0;
337  virtual bool16 GetRomanMojikumi() const = 0;
338  virtual void SetAdjustFullWidth(bool16 flag) = 0;
339  virtual bool16 GetAdjustFullWidth() const = 0;
340  virtual void SetAdjustPeriodPos(bool16 flag) = 0;
341  virtual bool16 GetAdjustPeriodPos() const = 0;
342  virtual void SetKinsokuFlag(bool16 flag) = 0;
343  virtual bool16 GetKinsokuFlag() const = 0;
345 };
346 
347 
348 #endif
349  // __IMojikumiStyle__