InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ExceptionHyphenWord.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: hhorton
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 // ADOBE CONFIDENTIAL
24 //
25 //========================================================================================
26 
27 #ifndef __ExceptionHyphenWord__
28 #define __ExceptionHyphenWord__
29 
30 #include "IHyphenatedWord.h"
31 
32 #include "TextChar.h"
33 
34 class WideString;
35 
36 #define HY_NORM 0x04
37 #define HY_PREF 0x05
38 #define HY_UNPREF 0x06
39 
40 
47 {
48 public:
52  ExceptionHyphenWord( const WideString& word,
53  const HyphenPoints& points,
54  const int32 nMinTail,
55  const int32 nMinHead );
57 
63  virtual int32 GetPointCount() const;
71  virtual int32 GetIndexOfPoint( int32 nNthPoint ) const;
79  virtual int32 GetQualityOfPoint( int32 nNthPoint ) const;
80 
86  virtual WideString GetWord() const;
95  virtual void GetPartsOfPoint( int32 nNthPoint, WideString *pFirstPart, WideString *pLastPart ) const;
103  virtual void GetFirstPartOfPoint( int32 nNthPoint, WideString *pPart ) const;
110  virtual void GetLastPartOfPoint( int32 nNthPoint, WideString *pPart ) const;
117  virtual void Merge( const IHyphenatedWord *pToMergeWith );
121  virtual void ValidatePointRanges(void);
122 
123 protected:
124  HyphenPoints fPoints;
125  WideString fWord;
126 
127 private:
134  void InitTailHead(int32 nMinTail, int32 nMinHead);
142  static inline bool16 IsWordSeparatorChar(textchar c)
143  { switch (c)
144  {
145  case kTextChar_NoBreakHyphen:
146  return kFalse;
147  case kTextChar_Ellipse:
148  case kTextChar_Solidus:
149  case kTextChar_ReverseSolidus:
150  case kTextChar_Underscore:
151  return kTrue;
152  default:
153  break;
154  }
156  }
157  };
158 
159 #endif