Adobe.com
Contents Suites Classes Class Index Member Index

IText.h

Go to the documentation of this file.
00001 /* -------------------------------------------------------------------------------
00002 
00003     Copyright 2000-2006 Adobe Systems Incorporated. All Rights Reserved.
00004 
00005     NOTICE:  Adobe permits you to use, modify, and distribute this file 
00006     in accordance with the terms of the Adobe license agreement accompanying 
00007     it. If you have received this file from a source other than Adobe, then 
00008     your use, modification, or distribution of it requires the prior written 
00009     permission of Adobe.
00010 
00011  ----------------------------------------------------------------------------------
00012 
00013         File:   IText.h
00014                 
00015         Notes:  Machine Generated file from script version 1.45
00016                 Please don't modify manually!
00017         
00018  ---------------------------------------------------------------------------------- */
00019 #pragma once
00020 
00021 #include "ATESuites.h"
00022 #include "ATEException.h"
00023 #include "SloTextdomTypes.h"
00024 
00025 namespace ATE
00026 {
00027 class IApplicationPaint;
00028 class ICompFont;
00029 class ICompFontClass;
00030 class ICompFontClassSet;
00031 class ICompFontComponent;
00032 class ICompFontSet;
00033 class IGlyphRun;
00034 class IGlyphRunsIterator;
00035 class IMojiKumi;
00036 class IMojiKumiSet;
00037 class ITextFrame;
00038 class ITextFramesIterator;
00039 class ITextLine;
00040 class ITextLinesIterator;
00041 class ITextResources;
00042 class IApplicationTextResources;
00043 class IDocumentTextResources;
00044 class IVersionInfo;
00045 class IArrayApplicationPaintRef;
00046 class IArrayReal;
00047 class IArrayBool;
00048 class IArrayInteger;
00049 class IArrayLineCapType;
00050 class IArrayFigureStyle;
00051 class IArrayLineJoinType;
00052 class IArrayWariChuJustification;
00053 class IArrayStyleRunAlignment;
00054 class IArrayAutoKernType;
00055 class IArrayBaselineDirection;
00056 class IArrayLanguage;
00057 class IArrayFontCapsOption;
00058 class IArrayFontBaselineOption;
00059 class IArrayFontOpenTypePositionOption;
00060 class IArrayUnderlinePosition;
00061 class IArrayStrikethroughPosition;
00062 class IArrayParagraphJustification;
00063 class IArrayArrayReal;
00064 class IArrayBurasagariType;
00065 class IArrayPreferredKinsokuOrder;
00066 class IArrayKinsokuRef;
00067 class IArrayMojiKumiRef;
00068 class IArrayMojiKumiSetRef;
00069 class IArrayTabStopsRef;
00070 class IArrayLeadingType;
00071 class IArrayFontRef;
00072 class IArrayGlyphID;
00073 class IArrayRealPoint;
00074 class IArrayRealMatrix;
00075 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
00076 class IArrayParagraphDirection;
00077 class IArrayJustificationMethod;
00078 class IArrayKashidaWidth;
00079 class IArrayKashidas;
00080 class IArrayDirOverride;
00081 class IArrayDigitSet;
00082 class IArrayDiacVPos;
00083 #endif
00084 class ICharFeatures;
00085 class ICharInspector;
00086 class ICharStyle;
00087 class ICharStyles;
00088 class ICharStylesIterator;
00089 class IFind;
00090 class IFont;
00091 class IGlyph;
00092 class IGlyphs;
00093 class IGlyphsIterator;
00094 class IKinsoku;
00095 class IKinsokuSet;
00096 class IParaFeatures;
00097 class IParagraph;
00098 class IParagraphsIterator;
00099 class IParaInspector;
00100 class IParaStyle;
00101 class IParaStyles;
00102 class IParaStylesIterator;
00103 class ISpell;
00104 class IStories;
00105 class IStory;
00106 class ITabStop;
00107 class ITabStops;
00108 class ITabStopsIterator;
00109 class ITextRange;
00110 class ITextRanges;
00111 class ITextRangesIterator;
00112 class ITextRunsIterator;
00113 class IWordsIterator;
00114 class IArrayLine;
00115 class IArrayComposerEngine;
00117 //       --IApplicationPaint--
00119 
00124 class IApplicationPaint
00125 {
00126 private:
00127         ApplicationPaintRef     fApplicationPaint;
00128 public:
00131         IApplicationPaint();
00135         IApplicationPaint(const IApplicationPaint& src);
00139         IApplicationPaint& operator=(const IApplicationPaint& rhs);
00143         bool operator==(const IApplicationPaint& rhs) const;
00147         bool operator!=(const IApplicationPaint& rhs) const;
00154         explicit IApplicationPaint(ApplicationPaintRef applicationpaint);
00156         virtual ~IApplicationPaint();
00159         ApplicationPaintRef GetRef() const;
00162         bool IsNull() const;
00163 
00164 
00165 };
00166 
00168 //       --ICompFont--
00170 
00174 class ICompFont
00175 {
00176 private:
00177         CompFontRef     fCompFont;
00178 public:
00181         ICompFont();
00185         ICompFont(const ICompFont& src);
00189         ICompFont& operator=(const ICompFont& rhs);
00193         bool operator==(const ICompFont& rhs) const;
00197         bool operator!=(const ICompFont& rhs) const;
00203         explicit ICompFont(CompFontRef compfont);
00205         virtual ~ICompFont();
00208         CompFontRef GetRef() const;
00211         bool IsNull() const;
00212 
00216         ICompFont( ITextResources pResources);
00217 
00218         // =======================================================================
00219         // PROPERTIES
00220         // =======================================================================
00221 
00228         void GetNativeName( ATETextDOM::Unicode* name, ATETextDOM::Int32 maxLength) const;
00229 
00235         void SetNativeName( const ATETextDOM::Unicode* name);
00236 
00243         void GetPostScriptName( ATETextDOM::Unicode* name, ATETextDOM::Int32 maxLength) const;
00244 
00251         void GetPostScriptName( char* name, ATETextDOM::Int32 maxLength) const;
00252 
00258         void SetFontDictionary( void* fontDictionary);
00259 
00264         void* GetFontDictionary( ) const;
00265 
00266         // =======================================================================
00267         // METHODS
00268         // =======================================================================
00272         ICompFont Duplicate( ) const;
00273 
00277         bool IsModified( ) const;
00278 
00282         bool IsEditable( ) const;
00283 
00287         bool IsCommitted( ) const;
00288 
00292         bool VerifyState( ) const;
00293 
00297         bool IsATCFileLoaded( ) const;
00298 
00303         ATETextDOM::Int32 GetComponentCount( ) const;
00304 
00310         ICompFontComponent GetComponent( ATETextDOM::Int32 index) const;
00311 
00317         ATETextDOM::Int32 Find( ICompFontComponent component) const;
00318 
00323         bool RemoveComponent( ATETextDOM::Int32 index);
00324 
00330         ATETextDOM::Int32 AddComponent( ICompFontComponent component);
00331 
00337         bool ReplaceComponent( ATETextDOM::Int32 index, ICompFontComponent component);
00338 
00339 };
00340 
00342 //       --ICompFontClass--
00344 
00348 class ICompFontClass
00349 {
00350 private:
00351         CompFontClassRef        fCompFontClass;
00352 public:
00355         ICompFontClass();
00359         ICompFontClass(const ICompFontClass& src);
00363         ICompFontClass& operator=(const ICompFontClass& rhs);
00367         bool operator==(const ICompFontClass& rhs) const;
00371         bool operator!=(const ICompFontClass& rhs) const;
00377         explicit ICompFontClass(CompFontClassRef compfontclass);
00379         virtual ~ICompFontClass();
00382         CompFontClassRef GetRef() const;
00385         bool IsNull() const;
00386 
00387         // =======================================================================
00388         // PROPERTIES
00389         // =======================================================================
00390 
00397         void GetNativeName( ATETextDOM::Unicode* name, ATETextDOM::Int32 maxLength) const;
00398 
00403         void SetNativeName( const ATETextDOM::Unicode* name);
00404 
00411         ATETextDOM::Int32 GetCodes( ATETextDOM::Unicode* codes, ATETextDOM::Int32 maxLength) const;
00412 
00417         ATETextDOM::Int32 SetCodes( const ATETextDOM::Unicode* codes);
00418 
00419         // =======================================================================
00420         // METHODS
00421         // =======================================================================
00422 
00426         ICompFontClass Duplicate( ) const;
00427 
00431         ATETextDOM::Int32 GetCharacterCount( ) const;
00432 
00436         CompositeFontClassType GetClassType( ) const;
00437 
00442         bool IsCodeInClass( ATETextDOM::Unicode code) const;
00443 
00448         bool IsEditable( ) const;
00449 
00454         bool IsCustomOverride( ) const;
00455 
00459         bool IsModified( ) const;
00460 
00464         bool VerifyState( ) const;
00465 
00466 };
00467 
00469 //       --ICompFontClassSet--
00471 
00475 class ICompFontClassSet
00476 {
00477 private:
00478         CompFontClassSetRef     fCompFontClassSet;
00479 public:
00482         ICompFontClassSet();
00486         ICompFontClassSet(const ICompFontClassSet& src);
00490         ICompFontClassSet& operator=(const ICompFontClassSet& rhs);
00494         bool operator==(const ICompFontClassSet& rhs) const;
00498         bool operator!=(const ICompFontClassSet& rhs) const;
00504         explicit ICompFontClassSet(CompFontClassSetRef compfontclassset);
00506         virtual ~ICompFontClassSet();
00509         CompFontClassSetRef GetRef() const;
00512         bool IsNull() const;
00513 
00514         // =======================================================================
00515         // PROPERTIES
00516         // =======================================================================
00517 
00521         ATETextDOM::Int32 GetSize( ) const;
00525         ICompFontClass GetFirst( ) const;
00529         ICompFontClass GetLast( ) const;
00530 
00531         // =======================================================================
00532         // METHODS
00533         // =======================================================================
00534 
00540         ICompFontClass Item( ATETextDOM::Int32 nIndex) const;
00541 
00547         ATETextDOM::Int32 Find( ICompFontClass compFontClass) const;
00548 
00554         ATETextDOM::Int32 FindPredefined( CompositeFontClassType predefinedType) const;
00555 
00556 };
00557 
00559 //       --ICompFontComponent--
00561 
00565 class ICompFontComponent
00566 {
00567 private:
00568         CompFontComponentRef    fCompFontComponent;
00569 public:
00572         ICompFontComponent();
00576         ICompFontComponent(const ICompFontComponent& src);
00580         ICompFontComponent& operator=(const ICompFontComponent& rhs);
00584         bool operator==(const ICompFontComponent& rhs) const;
00588         bool operator!=(const ICompFontComponent& rhs) const;
00594         explicit ICompFontComponent(CompFontComponentRef compfontcomponent);
00596         virtual ~ICompFontComponent();
00599         CompFontComponentRef GetRef() const;
00602         bool IsNull() const;
00603 
00607         ICompFontComponent( ITextResources pResources);
00608 
00609         // =======================================================================
00610         // PROPERTIES
00611         // =======================================================================
00612 
00616         ICompFontClass GetClass( ) const;
00617 
00622         void SetClass( ICompFontClass charClass);
00623 
00627         IFont GetFont( ) const;
00628 
00633         void SetFont( IFont font);
00634 
00638         ATETextDOM::Real GetSize( ) const;
00639 
00643         void SetSize( ATETextDOM::Real size);
00644 
00648         ATETextDOM::Real GetBaseline( ) const;
00649 
00653         void SetBaseline( ATETextDOM::Real baseline);
00654 
00658         ATETextDOM::Real GetHorizontalScale( ) const;
00659 
00663         void SetHorizontalScale( ATETextDOM::Real horizontalScale);
00664 
00668         ATETextDOM::Real GetVerticalScale( ) const;
00669 
00673         void SetVerticalScale( ATETextDOM::Real verticalScale);
00674 
00678         bool GetCenterGlyph( ) const;
00679 
00684         void SetCenterGlyph( bool centerglyph);
00685 
00686         // =======================================================================
00687         // METHODS
00688         // =======================================================================
00689 
00693         bool IsModified( ) const;
00694 
00695 };
00696 
00698 //       --ICompFontSet--
00700 
00704 class ICompFontSet
00705 {
00706 private:
00707         CompFontSetRef  fCompFontSet;
00708 public:
00711         ICompFontSet();
00715         ICompFontSet(const ICompFontSet& src);
00719         ICompFontSet& operator=(const ICompFontSet& rhs);
00723         bool operator==(const ICompFontSet& rhs) const;
00727         bool operator!=(const ICompFontSet& rhs) const;
00733         explicit ICompFontSet(CompFontSetRef compfontset);
00735         virtual ~ICompFontSet();
00738         CompFontSetRef GetRef() const;
00741         bool IsNull() const;
00742 
00743         // =======================================================================
00744         // PROPERTIES
00745         // =======================================================================
00746 
00750         ATETextDOM::Int32 GetSize( ) const;
00754         ICompFont GetFirst( ) const;
00758         ICompFont GetLast( ) const;
00759         // =======================================================================
00760         // METHODS
00761         // =======================================================================
00762 
00768         ICompFont Item( ATETextDOM::Int32 nIndex) const;
00769 
00775         ATETextDOM::Int32 Find( ICompFont font) const;
00776 
00781         bool Remove( ATETextDOM::Int32 nIndex);
00782 
00788         ATETextDOM::Int32 Add( ICompFont font);
00789 
00795         bool Replace( ATETextDOM::Int32 nIndex, ICompFont newFont);
00796 
00802         void Update( ) const;
00803 
00804 };
00805 
00807 //       --IGlyphRun--
00809 
00815 class IGlyphRun
00816 {
00817 private:
00818         GlyphRunRef     fGlyphRun;
00819 public:
00822         IGlyphRun();
00826         IGlyphRun(const IGlyphRun& src);
00830         IGlyphRun& operator=(const IGlyphRun& rhs);
00834         bool operator==(const IGlyphRun& rhs) const;
00838         bool operator!=(const IGlyphRun& rhs) const;
00844         explicit IGlyphRun(GlyphRunRef glyphrun);
00846         virtual ~IGlyphRun();
00849         GlyphRunRef GetRef() const;
00852         bool IsNull() const;
00853 
00854         // =======================================================================
00855         // METHODS
00856         // =======================================================================
00857 
00861         ITextLine GetTextLine( ) const;
00862 
00868         ATETextDOM::Int32 GetSize( ) const;
00869 
00875         ATETextDOM::Int32 GetCharacterCount( ) const;
00876 
00880         IArrayRealPoint GetOrigins( ) const;
00881 
00885         IArrayGlyphID GetGlyphIDs( ) const;
00886 
00894         ATETextDOM::RealMatrix GetMatrix( ) const;
00895 
00922         ICharFeatures GetCharFeatures( ) const;
00923 
00927         GlyphOrientation GetGlyphOrientation( ) const;
00928 
00932         ATETextDOM::Real GetAscent( ) const;
00933 
00937         ATETextDOM::Real GetDescent( ) const;
00938 
00942         ATETextDOM::Real GetTracking( ) const;
00943 
00947         ATETextDOM::Real GetSpaceGlyphWidth( ) const;
00948 
00952         ATETextDOM::Real GetDistanceToBaseline( ) const;
00953 
00957         ATETextDOM::Real GetUnderlinePosition( ) const;
00958 
00962         ATETextDOM::Real GetUnderlineThickness( ) const;
00963 
00967         ATETextDOM::Real GetMaxCapHeight( ) const;
00968 
00972         ATETextDOM::Real GetMinCapHeight( ) const;
00973 
00977         ATETextDOM::Real GetXHeight() const;
00978 
00983         IFont GetFlattenedFont( ) const;
00984 
00991         ATETextDOM::Int32 GetContents( ATETextDOM::Unicode* text, ATETextDOM::Int32 maxLength) const;
00992 
00999         ATETextDOM::Int32 GetContents( char* text, ATETextDOM::Int32 maxLength) const;
01000 
01001 };
01002 
01004 //       --IGlyphRunsIterator--
01006 
01010 class IGlyphRunsIterator
01011 {
01012 private:
01013         GlyphRunsIteratorRef    fGlyphRunsIterator;
01014 public:
01017         IGlyphRunsIterator();
01021         IGlyphRunsIterator(const IGlyphRunsIterator& src);
01025         IGlyphRunsIterator& operator=(const IGlyphRunsIterator& rhs);
01029         bool operator==(const IGlyphRunsIterator& rhs) const;
01033         bool operator!=(const IGlyphRunsIterator& rhs) const;
01039         explicit IGlyphRunsIterator(GlyphRunsIteratorRef glyphrunsiterator);
01041         virtual ~IGlyphRunsIterator();
01044         GlyphRunsIteratorRef GetRef() const;
01047         bool IsNull() const;
01048 
01049         // =======================================================================
01050         // METHODS
01051         // =====================================================================
01054         bool IsNotDone( ) const;
01057         bool IsDone( ) const;
01060         void Next( );
01063         IGlyphRun Item( ) const;
01064 
01065 };
01066 
01068 //       --IMojiKumi--
01070 
01074 class IMojiKumi
01075 {
01076 private:
01077         MojiKumiRef     fMojiKumi;
01078 public:
01081         IMojiKumi();
01085         IMojiKumi(const IMojiKumi& src);
01089         IMojiKumi& operator=(const IMojiKumi& rhs);
01093         bool operator==(const IMojiKumi& rhs) const;
01097         bool operator!=(const IMojiKumi& rhs) const;
01103         explicit IMojiKumi(MojiKumiRef mojikumi);
01105         virtual ~IMojiKumi();
01108         MojiKumiRef GetRef() const;
01111         bool IsNull() const;
01112 
01113         // =======================================================================
01114         // PROPERTIES
01115         // =======================================================================
01116 
01123         ATETextDOM::Int32 GetName( ATETextDOM::Unicode * name, ATETextDOM::Int32 maxLength) const;
01128         ATETextDOM::Int32 GetNameSize( ) const;
01133         void SetName( const ATETextDOM::Unicode * name);
01139         bool MatchesPredefinedResourceTag( ATE::MojikumiTablePredefinedTag tag) const;
01147         void GetEntry( ATETextDOM::Int32 index, ATETextDOM::Float * minExpansion, ATETextDOM::Float * maxExpansion, ATETextDOM::Float * desiredExpansion) const;
01155         void SetEntry( ATETextDOM::Int32 index, ATETextDOM::Real minExpansion, ATETextDOM::Real maxExpansion, ATETextDOM::Real desiredExpansion);
01156 
01157         // =======================================================================
01158         // METHODS
01159         // =======================================================================
01160 
01165         bool IsEquivalent( IMojiKumi rhsMojiKumi) const;
01169         bool IsModified( ) const;
01173         bool IsPredefined( ) const;
01177         IMojiKumi Duplicate( ) const;
01178 
01179 };
01180 
01182 //       --IMojiKumiSet--
01184 
01188 class IMojiKumiSet
01189 {
01190 private:
01191         MojiKumiSetRef  fMojiKumiSet;
01192 public:
01195         IMojiKumiSet();
01199         IMojiKumiSet(const IMojiKumiSet& src);
01203         IMojiKumiSet& operator=(const IMojiKumiSet& rhs);
01207         bool operator==(const IMojiKumiSet& rhs) const;
01211         bool operator!=(const IMojiKumiSet& rhs) const;
01217         explicit IMojiKumiSet(MojiKumiSetRef mojikumiset);
01219         virtual ~IMojiKumiSet();
01222         MojiKumiSetRef GetRef() const;
01225         bool IsNull() const;
01226 
01227         // =======================================================================
01228         // PROPERTIES
01229         // =======================================================================
01230 
01233         ATETextDOM::Int32 GetSize( );
01236         IMojiKumi GetFirst( );
01239         IMojiKumi GetLast( );
01240 
01241         // =======================================================================
01242         // METHODS
01243         // =======================================================================
01244 
01250         IMojiKumi Item( ATETextDOM::Int32 nIndex) const;
01256         ATETextDOM::Int32 Find( const IMojiKumi mojiKumi);
01262         ATETextDOM::Int32 Find( const ATETextDOM::Unicode* name);
01269         ATETextDOM::Int32 Find( MojikumiTablePredefinedTag tag);
01274         bool Remove( ATETextDOM::Int32 nIndex);
01282         ATETextDOM::Int32 Add( IMojiKumi mojiKumi);
01288         bool Replace( ATETextDOM::Int32  nIndex, IMojiKumi mojiKumi);
01297         IMojiKumi CreateNewMojiKumi( const ATETextDOM::Unicode* name, ATETextDOM::Int32* nIndex);
01298 
01299 };
01300 
01302 //       --ITextFrame--
01304 
01311 class ITextFrame
01312 {
01313 private:
01314         TextFrameRef    fTextFrame;
01315 public:
01318         ITextFrame();
01322         ITextFrame(const ITextFrame& src);
01326         ITextFrame& operator=(const ITextFrame& rhs);
01330         bool operator==(const ITextFrame& rhs) const;
01334         bool operator!=(const ITextFrame& rhs) const;
01340         explicit ITextFrame(TextFrameRef textframe);
01342         virtual ~ITextFrame();
01345         TextFrameRef GetRef() const;
01348         bool IsNull() const;
01349 
01350         // =======================================================================
01351         // METHODS
01352         // =====================================================================
01356         IStory GetStory( ) const;
01363         ITextRange GetTextRange( bool bIncludeOverflow = true) const;
01368         ITextLinesIterator GetTextLinesIterator( ) const;
01372         FrameType GetType( ) const;
01376         LineOrientation GetLineOrientation( ) const;
01381         bool GetSelected( ) const;
01385         ATETextDOM::RealMatrix GetMatrix( ) const;
01389         ATETextDOM::Int32 GetRowCount( ) const;
01393         ATETextDOM::Int32 GetColumnCount( ) const;
01397         bool GetRowMajorOrder( ) const;
01401         ATETextDOM::Real GetRowGutter( ) const;
01405         ATETextDOM::Real GetColumnGutter( ) const;
01409         ATETextDOM::Real GetSpacing( ) const;
01413         bool GetOpticalAlignment( ) const;
01414 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
01415 
01418         ParagraphDirection GetStoryDirection( ) const;
01419 #endif
01420 
01424         void SetRowCount( ATETextDOM::Int32 rowCount);
01429         void SetColumnCount( ATETextDOM::Int32 columnCount);
01435         void SetRowMajorOrder( bool isRowMajor);
01440         void SetRowGutter( ATETextDOM::Real gutter);
01445         void SetColumnGutter( ATETextDOM::Real gutter);
01450         void SetSpacing( ATETextDOM::Real spacing);
01456         void SetOpticalAlignment( bool isActive);
01461         void SetLineOrientation( LineOrientation lineOrientation);
01462 
01463 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
01464 
01468         void SetStoryDirection( ParagraphDirection direction);
01469 #endif
01470 };
01471 
01473 //       --ITextFramesIterator--
01475 
01478 class ITextFramesIterator
01479 {
01480 private:
01481         TextFramesIteratorRef   fTextFramesIterator;
01482 public:
01485         ITextFramesIterator();
01489         ITextFramesIterator(const ITextFramesIterator& src);
01493         ITextFramesIterator& operator=(const ITextFramesIterator& rhs);
01497         bool operator==(const ITextFramesIterator& rhs) const;
01501         bool operator!=(const ITextFramesIterator& rhs) const;
01507         explicit ITextFramesIterator(TextFramesIteratorRef textframesiterator);
01509         virtual ~ITextFramesIterator();
01512         TextFramesIteratorRef GetRef() const;
01515         bool IsNull() const;
01516 
01522         ITextFramesIterator( const ITextRange& range);
01523 
01524         // =======================================================================
01525         // METHODS
01526         // =====================================================================
01527 
01530         bool IsNotDone( ) const;
01533         bool IsDone( ) const;
01536         bool IsEmpty( ) const;
01539         void Next( );
01542         void Previous( );
01545         ITextFrame Item( ) const;
01546 
01547 };
01548 
01550 //       --ITextLine--
01552 
01558 class ITextLine
01559 {
01560 private:
01561         TextLineRef     fTextLine;
01562 public:
01565         ITextLine();
01569         ITextLine(const ITextLine& src);
01573         ITextLine& operator=(const ITextLine& rhs);
01577         bool operator==(const ITextLine& rhs) const;
01581         bool operator!=(const ITextLine& rhs) const;
01587         explicit ITextLine(TextLineRef textline);
01589         virtual ~ITextLine();
01592         TextLineRef GetRef() const;
01595         bool IsNull() const;
01596 
01597         // =======================================================================
01598         // METHODS
01599         // =======================================================================
01600 
01606         IGlyphRunsIterator GetGlyphRunsIterator( ) const;
01613         IGlyphRunsIterator GetVisualGlyphRunsIterator( ) const;
01617         ITextFrame GetTextFrame( ) const;
01621         ITextRange GetTextRange( ) const;
01628         IArrayLine GetBaselines() const;
01629 };
01630 
01632 //       --ITextLinesIterator--
01634 
01637 class ITextLinesIterator
01638 {
01639 private:
01640         TextLinesIteratorRef    fTextLinesIterator;
01641 public:
01644         ITextLinesIterator();
01648         ITextLinesIterator(const ITextLinesIterator& src);
01652         ITextLinesIterator& operator=(const ITextLinesIterator& rhs);
01656         bool operator==(const ITextLinesIterator& rhs) const;
01660         bool operator!=(const ITextLinesIterator& rhs) const;
01666         explicit ITextLinesIterator(TextLinesIteratorRef textlinesiterator);
01668         virtual ~ITextLinesIterator();
01671         TextLinesIteratorRef GetRef() const;
01674         bool IsNull() const;
01675 
01676         // =======================================================================
01677         // METHODS
01678         // =======================================================================
01679 
01682         bool IsNotDone( ) const;
01685         bool IsDone( ) const;
01688         bool IsEmpty( ) const;
01691         void Next( );
01694         void Previous( );
01697         ITextLine Item( ) const;
01698 
01699 };
01700 
01702 //       --ITextResources--
01704 
01706 class ITextResources
01707 {
01708 private:
01709         TextResourcesRef        fTextResources;
01710 public:
01711         ITextResources();
01712         ITextResources(const ITextResources& src);
01713         ITextResources& operator=(const ITextResources& rhs);
01714         bool operator==(const ITextResources& rhs) const;
01715         bool operator!=(const ITextResources& rhs) const;
01716         explicit ITextResources(TextResourcesRef textresources);
01717         virtual ~ITextResources();
01718         TextResourcesRef GetRef() const;
01719         bool IsNull() const;
01720 
01721         ITextResources GetTextResources( );
01722 
01723 };
01724 
01726 //       --IApplicationTextResources--
01728 
01729 class IApplicationTextResources
01730 {
01731 private:
01732         ApplicationTextResourcesRef     fApplicationTextResources;
01733 public:
01736         IApplicationTextResources();
01740         IApplicationTextResources(const IApplicationTextResources& src);
01744         IApplicationTextResources& operator=(const IApplicationTextResources& rhs);
01748         bool operator==(const IApplicationTextResources& rhs) const;
01752         bool operator!=(const IApplicationTextResources& rhs) const;
01758         explicit IApplicationTextResources(ApplicationTextResourcesRef applicationtextresources);
01760         virtual ~IApplicationTextResources();
01763         ApplicationTextResourcesRef GetRef() const;
01766         bool IsNull() const;
01767 
01768         // From parent class...
01769         ITextResources GetTextResources( );
01770         // =======================================================================
01771         // PROPERTIES
01772         // =======================================================================
01773         IKinsokuSet GetKinsokuSet( ) const;
01774         IMojiKumiSet GetMojiKumiSet( ) const;
01775         ICompFontClassSet GetCompFontClassSet( ) const;
01776         ICompFontSet GetCompFontSet( ) const;
01777 
01778 };
01779 
01781 //       --IDocumentTextResources--
01783 
01786 class IDocumentTextResources
01787 {
01788 private:
01789         DocumentTextResourcesRef        fDocumentTextResources;
01790 public:
01793         IDocumentTextResources();
01797         IDocumentTextResources(const IDocumentTextResources& src);
01801         IDocumentTextResources& operator=(const IDocumentTextResources& rhs);
01805         bool operator==(const IDocumentTextResources& rhs) const;
01809         bool operator!=(const IDocumentTextResources& rhs) const;
01815         explicit IDocumentTextResources(DocumentTextResourcesRef documenttextresources);
01817         virtual ~IDocumentTextResources();
01820         DocumentTextResourcesRef GetRef() const;
01823         bool IsNull() const;
01824 
01825         // From parent class...
01829         IKinsokuSet GetKinsokuSet( ) const;
01833         IMojiKumiSet GetMojiKumiSet( ) const;
01837         ICompFontClassSet GetCompFontClassSet( ) const;
01841         ICompFontSet GetCompFontSet( ) const;
01845         ITextResources GetTextResources( );
01846 
01850         IFind GetFind( );
01854         ISpell GetSpell( );
01855 
01859         IGlyph GetGlyphAndAlternates( ) const;
01863         IGlyph GetAlternateGlyph( ) const;
01873         void InsertAlternateGlyph( const ATETextDOM::Unicode* theCharacters, const ATEGlyphID glyphID, const char* otFeatureArray, ATETextDOM::Int32 otFeatureCount, const ATETextDOM::Int32* otFeatureIndexArray, bool leaveSelected);
01874 
01878         IArrayInteger GetAlternatesAvailableThroughoutSelection( ) const;
01879 
01884         JapaneseAlternateFeature GetJapaneseAlternateFeatureInSelection( bool* isFeature) const;
01889         void SetJapaneseAlternateFeatureInSelection( JapaneseAlternateFeature feature);
01890 
01894         ICharStyles GetCharStylesInDocument( ) const;
01898         IParaStyles GetParaStylesInDocument( ) const;
01903         ICharStyle GetCharStyle( const ATETextDOM::Unicode* pName) const;
01908         IParaStyle GetParaStyle( const ATETextDOM::Unicode* pName) const;
01912         ICharStyle GetNormalCharStyle( ) const;
01916         IParaStyle GetNormalParaStyle( ) const;
01921         void ResetNormalCharStyle( );
01926         void ResetNormalParaStyle( );
01927 
01934         ICharStyle CreateCharStyle( const ATETextDOM::Unicode* pName);
01941         IParaStyle CreateParaStyle( const ATETextDOM::Unicode* pName);
01950         ICharStyle CreateCharStyleWithFeatures( const ATETextDOM::Unicode* pName, ICharFeatures pFeatures);
01959         IParaStyle CreateParaStyleWithFeatures( const ATETextDOM::Unicode* pName, IParaFeatures pFeatures);
01960 
01966         bool RemoveCharStyle( const ATETextDOM::Unicode* pName);
01972         bool RemoveParaStyle( const ATETextDOM::Unicode* pName);
01973 
01979         void ImportCharStyles( ITextResources pSrcResources);
01985         void ImportParaStyles( ITextResources pSrcResources);
01986 
01991         void SetUseSmartQuotes( bool smartQuotesAreOn);
01998         void SetSmartDoubleQuoteCharacters( ATETextDOM::Unicode openQuote, ATETextDOM::Unicode closeQuote, Language language);
02005         void SetSmartSingleQuoteCharacters( ATETextDOM::Unicode openQuote, ATETextDOM::Unicode closeQuote, Language language);
02009         bool UseSmartQuotes( );
02016         void GetSmartDoubleQuoteCharacters( ATETextDOM::Unicode* openQuote, ATETextDOM::Unicode* closeQuote, Language language);
02023         void GetSmartSingleQuoteCharacters( ATETextDOM::Unicode* openQuote, ATETextDOM::Unicode* closeQuote, Language language);
02024 
02029         ICharFeatures GetInsertionCharFeatures( ) const;
02034         ICharStyle GetInsertionCharStyle( ) const;
02040         void SetInsertionFeaturesAndStyle( const ICharFeatures& pFeatures, const ATETextDOM::Unicode* pStyleName);
02041 
02045         ATETextDOM::Real GetSuperscriptSize( ) const;
02050         void SetSuperscriptSize( ATETextDOM::Real value);
02054         ATETextDOM::Real GetSuperscriptPosition( ) const;
02059         void SetSuperscriptPosition( ATETextDOM::Real value);
02063         ATETextDOM::Real GetSubscriptSize( ) const;
02068         void SetSubscriptSize( ATETextDOM::Real value);
02072         ATETextDOM::Real GetSubscriptPosition( ) const;
02077         void SetSubscriptPosition( ATETextDOM::Real value);
02078 
02082         ATETextDOM::Real GetSmallCapSize( ) const;
02087         void SetSmallCapSize( ATETextDOM::Real value);
02088 
02092         bool GetShowHiddenCharacters( ) const;
02096         void SetShowHiddenCharacters( bool value);
02097 
02101         ATETextDOM::Int32 GetGreekingSize( ) const;
02106         void SetGreekingSize( ATETextDOM::Int32 value);
02107 
02111         bool GetHighlightSubstituteFonts( ) const;
02115         void SetHighlightSubstituteFonts( bool value);
02119         bool GetHighlightAlternateGlyphs( ) const;
02123         void SetHighlightAlternateGlyphs( bool value);
02124 
02125 };
02126 
02128 //       --IVersionInfo--
02130 
02133 class IVersionInfo
02134 {
02135 private:
02136         VersionInfoRef  fVersionInfo;
02137 public:
02140         IVersionInfo();
02144         IVersionInfo(const IVersionInfo& src);
02148         IVersionInfo& operator=(const IVersionInfo& rhs);
02152         bool operator==(const IVersionInfo& rhs) const;
02156         bool operator!=(const IVersionInfo& rhs) const;
02162         explicit IVersionInfo(VersionInfoRef versioninfo);
02164         virtual ~IVersionInfo();
02167         VersionInfoRef GetRef() const;
02170         bool IsNull() const;
02171 
02174         int GetMajorVersion( );
02177         int GetMinorVersion( );
02180         int GetSubMinorVersion( );
02181 
02191         int GetVersionAsUTF16( ASUTF16* versionString, int maxLength);
02192 
02193 };
02194 
02196 //       --IArrayApplicationPaintRef--
02198 
02204 class IArrayApplicationPaintRef
02205 {
02206 private:
02207         ArrayApplicationPaintRefRef     fArrayApplicationPaintRef;
02208 public:
02211         IArrayApplicationPaintRef();
02215         IArrayApplicationPaintRef(const IArrayApplicationPaintRef& src);
02219         IArrayApplicationPaintRef& operator=(const IArrayApplicationPaintRef& rhs);
02223         bool operator==(const IArrayApplicationPaintRef& rhs) const;
02227         bool operator!=(const IArrayApplicationPaintRef& rhs) const;
02233         explicit IArrayApplicationPaintRef(ArrayApplicationPaintRefRef arrayapplicationpaintref);
02235         virtual ~IArrayApplicationPaintRef();
02238         ArrayApplicationPaintRefRef GetRef() const;
02241         bool IsNull() const;
02242 
02243         // ========================================================================
02244         // PROPERTIES
02245         // ========================================================================
02246 
02249         ATETextDOM::Int32 GetSize( ) const;
02252         IApplicationPaint GetFirst( ) const;
02255         IApplicationPaint GetLast( ) const;
02256 
02257         // ========================================================================
02258         // METHODS
02259         // ========================================================================
02260 
02266         IApplicationPaint Item( ATETextDOM::Int32 index) const;
02267 
02268 };
02269 
02271 //       --IArrayReal--
02273 
02274 class IArrayReal
02275 {
02276 private:
02277         ArrayRealRef    fArrayReal;
02278 public:
02281         IArrayReal();
02285         IArrayReal(const IArrayReal& src);
02289         IArrayReal& operator=(const IArrayReal& rhs);
02293         bool operator==(const IArrayReal& rhs) const;
02297         bool operator!=(const IArrayReal& rhs) const;
02303         explicit IArrayReal(ArrayRealRef arrayreal);
02305         virtual ~IArrayReal();
02308         ArrayRealRef GetRef() const;
02311         bool IsNull() const;
02312 
02313         // ========================================================================
02314         // PROPERTIES
02315         // ========================================================================
02316 
02319         ATETextDOM::Int32 GetSize( ) const;
02322         ATETextDOM::Real GetFirst( ) const;
02325         ATETextDOM::Real GetLast( ) const;
02326 
02327         // ========================================================================
02328         // METHODS
02329         // ========================================================================
02330 
02336         ATETextDOM::Real Item( ATETextDOM::Int32 index) const;
02337 
02338 };
02339 
02341 //       --IArrayBool--
02343 
02344 class IArrayBool
02345 {
02346 private:
02347         ArrayBoolRef    fArrayBool;
02348 public:
02351         IArrayBool();
02355         IArrayBool(const IArrayBool& src);
02359         IArrayBool& operator=(const IArrayBool& rhs);
02363         bool operator==(const IArrayBool& rhs) const;
02367         bool operator!=(const IArrayBool& rhs) const;
02373         explicit IArrayBool(ArrayBoolRef arraybool);
02375         virtual ~IArrayBool();
02378         ArrayBoolRef GetRef() const;
02381         bool IsNull() const;
02382 
02383         // ========================================================================
02384         // PROPERTIES
02385         // ========================================================================
02386 
02389         ATETextDOM::Int32 GetSize( ) const;
02392         bool GetFirst( ) const;
02395         bool GetLast( ) const;
02396 
02397         // ========================================================================
02398         // METHODS
02399         // ========================================================================
02400 
02406         bool Item( ATETextDOM::Int32 index) const;
02407 
02408 };
02409 
02411 //       --IArrayInteger--
02413 
02414 class IArrayInteger
02415 {
02416 private:
02417         ArrayIntegerRef fArrayInteger;
02418 public:
02421         IArrayInteger();
02425         IArrayInteger(const IArrayInteger& src);
02429         IArrayInteger& operator=(const IArrayInteger& rhs);
02433         bool operator==(const IArrayInteger& rhs) const;
02437         bool operator!=(const IArrayInteger& rhs) const;
02443         explicit IArrayInteger(ArrayIntegerRef arrayinteger);
02445         virtual ~IArrayInteger();
02448         ArrayIntegerRef GetRef() const;
02451         bool IsNull() const;
02452 
02453         // ========================================================================
02454         // PROPERTIES
02455         // ========================================================================
02456 
02459         ATETextDOM::Int32 GetSize( ) const;
02462         ATETextDOM::Int32 GetFirst( ) const;
02465         ATETextDOM::Int32 GetLast( ) const;
02466 
02467         // ========================================================================
02468         // METHODS
02469         // ========================================================================
02470 
02476         ATETextDOM::Int32 Item( ATETextDOM::Int32 index) const;
02477 
02478 };
02479 
02481 //       --IArrayLineCapType--
02483 
02485 class IArrayLineCapType
02486 {
02487 private:
02488         ArrayLineCapTypeRef     fArrayLineCapType;
02489 public:
02492         IArrayLineCapType();
02496         IArrayLineCapType(const IArrayLineCapType& src);
02500         IArrayLineCapType& operator=(const IArrayLineCapType& rhs);
02504         bool operator==(const IArrayLineCapType& rhs) const;
02508         bool operator!=(const IArrayLineCapType& rhs) const;
02514         explicit IArrayLineCapType(ArrayLineCapTypeRef arraylinecaptype);
02516         virtual ~IArrayLineCapType();
02519         ArrayLineCapTypeRef GetRef() const;
02522         bool IsNull() const;
02523 
02524         // ========================================================================
02525         // PROPERTIES
02526         // ========================================================================
02527 
02530         ATETextDOM::Int32 GetSize( ) const;
02533         LineCapType GetFirst( ) const;
02536         LineCapType GetLast( ) const;
02537 
02538         // ========================================================================
02539         // METHODS
02540         // ========================================================================
02541 
02547         LineCapType Item( ATETextDOM::Int32 index) const;
02548 
02549 };
02550 
02552 //       --IArrayFigureStyle--
02554 
02556 class IArrayFigureStyle
02557 {
02558 private:
02559         ArrayFigureStyleRef     fArrayFigureStyle;
02560 public:
02563         IArrayFigureStyle();
02567         IArrayFigureStyle(const IArrayFigureStyle& src);
02571         IArrayFigureStyle& operator=(const IArrayFigureStyle& rhs);
02575         bool operator==(const IArrayFigureStyle& rhs) const;
02579         bool operator!=(const IArrayFigureStyle& rhs) const;
02585         explicit IArrayFigureStyle(ArrayFigureStyleRef arrayfigurestyle);
02587         virtual ~IArrayFigureStyle();
02590         ArrayFigureStyleRef GetRef() const;
02593         bool IsNull() const;
02594 
02595         // ========================================================================
02596         // PROPERTIES
02597         // ========================================================================
02598 
02601         ATETextDOM::Int32 GetSize( ) const;
02604         FigureStyle GetFirst( ) const;
02607         FigureStyle GetLast( ) const;
02608 
02609         // ========================================================================
02610         // METHODS
02611         // ========================================================================
02612 
02618         FigureStyle Item( ATETextDOM::Int32 index) const;
02619 
02620 };
02621 
02623 //       --IArrayLineJoinType--
02625 
02627 class IArrayLineJoinType
02628 {
02629 private:
02630         ArrayLineJoinTypeRef    fArrayLineJoinType;
02631 public:
02634         IArrayLineJoinType();
02638         IArrayLineJoinType(const IArrayLineJoinType& src);
02642         IArrayLineJoinType& operator=(const IArrayLineJoinType& rhs);
02646         bool operator==(const IArrayLineJoinType& rhs) const;
02650         bool operator!=(const IArrayLineJoinType& rhs) const;
02656         explicit IArrayLineJoinType(ArrayLineJoinTypeRef arraylinejointype);
02658         virtual ~IArrayLineJoinType();
02661         ArrayLineJoinTypeRef GetRef() const;
02664         bool IsNull() const;
02665 
02666         // ========================================================================
02667         // PROPERTIES
02668         // ========================================================================
02669 
02672         ATETextDOM::Int32 GetSize( ) const;
02675         LineJoinType GetFirst( ) const;
02678         LineJoinType GetLast( ) const;
02679 
02680         // ========================================================================
02681         // METHODS
02682         // ========================================================================
02683 
02689         LineJoinType Item( ATETextDOM::Int32 index) const;
02690 
02691 };
02692 
02694 //       --IArrayWariChuJustification--
02696 
02698 class IArrayWariChuJustification
02699 {
02700 private:
02701         ArrayWariChuJustificationRef    fArrayWariChuJustification;
02702 public:
02705         IArrayWariChuJustification();
02709         IArrayWariChuJustification(const IArrayWariChuJustification& src);
02713         IArrayWariChuJustification& operator=(const IArrayWariChuJustification& rhs);
02717         bool operator==(const IArrayWariChuJustification& rhs) const;
02721         bool operator!=(const IArrayWariChuJustification& rhs) const;
02727         explicit IArrayWariChuJustification(ArrayWariChuJustificationRef arraywarichujustification);
02729         virtual ~IArrayWariChuJustification();
02732         ArrayWariChuJustificationRef GetRef() const;
02735         bool IsNull() const;
02736 
02737         // ========================================================================
02738         // PROPERTIES
02739         // ========================================================================
02740 
02743         ATETextDOM::Int32 GetSize( ) const;
02746         WariChuJustification GetFirst( ) const;
02749         WariChuJustification GetLast( ) const;
02750 
02751         // ========================================================================
02752         // METHODS
02753         // ========================================================================
02754 
02760         WariChuJustification Item( ATETextDOM::Int32 index) const;
02761 
02762 };
02763 
02765 //       --IArrayStyleRunAlignment--
02767 
02769 class IArrayStyleRunAlignment
02770 {
02771 private:
02772         ArrayStyleRunAlignmentRef       fArrayStyleRunAlignment;
02773 public:
02776         IArrayStyleRunAlignment();
02780         IArrayStyleRunAlignment(const IArrayStyleRunAlignment& src);
02784         IArrayStyleRunAlignment& operator=(const IArrayStyleRunAlignment& rhs);
02788         bool operator==(const IArrayStyleRunAlignment& rhs) const;
02792         bool operator!=(const IArrayStyleRunAlignment& rhs) const;
02798         explicit IArrayStyleRunAlignment(ArrayStyleRunAlignmentRef arraystylerunalignment);
02800         virtual ~IArrayStyleRunAlignment();
02803         ArrayStyleRunAlignmentRef GetRef() const;
02806         bool IsNull() const;
02807 
02808         // ========================================================================
02809         // PROPERTIES
02810         // ========================================================================
02811 
02814         ATETextDOM::Int32 GetSize( ) const;
02817         StyleRunAlignment GetFirst( ) const;
02820         StyleRunAlignment GetLast( ) const;
02821 
02822         // ========================================================================
02823         // METHODS
02824         // ========================================================================
02825 
02831         StyleRunAlignment Item( ATETextDOM::Int32 index) const;
02832 
02833 };
02834 
02836 //       --IArrayAutoKernType--
02838 
02840 class IArrayAutoKernType
02841 {
02842 private:
02843         ArrayAutoKernTypeRef    fArrayAutoKernType;
02844 public:
02847         IArrayAutoKernType();
02851         IArrayAutoKernType(const IArrayAutoKernType& src);
02855         IArrayAutoKernType& operator=(const IArrayAutoKernType& rhs);
02859         bool operator==(const IArrayAutoKernType& rhs) const;
02863         bool operator!=(const IArrayAutoKernType& rhs) const;
02869         explicit IArrayAutoKernType(ArrayAutoKernTypeRef arrayautokerntype);
02871         virtual ~IArrayAutoKernType();
02874         ArrayAutoKernTypeRef GetRef() const;
02877         bool IsNull() const;
02878 
02879         // ========================================================================
02880         // PROPERTIES
02881         // ========================================================================
02882 
02885         ATETextDOM::Int32 GetSize( ) const;
02888         AutoKernType GetFirst( ) const;
02891         AutoKernType GetLast( ) const;
02892 
02893         // ========================================================================
02894         // METHODS
02895         // ========================================================================
02896 
02902         AutoKernType Item( ATETextDOM::Int32 index) const;
02903 
02904 };
02905 
02907 //       --IArrayBaselineDirection--
02909 
02911 class IArrayBaselineDirection
02912 {
02913 private:
02914         ArrayBaselineDirectionRef       fArrayBaselineDirection;
02915 public:
02918         IArrayBaselineDirection();
02922         IArrayBaselineDirection(const IArrayBaselineDirection& src);
02926         IArrayBaselineDirection& operator=(const IArrayBaselineDirection& rhs);
02930         bool operator==(const IArrayBaselineDirection& rhs) const;
02934         bool operator!=(const IArrayBaselineDirection& rhs) const;
02940         explicit IArrayBaselineDirection(ArrayBaselineDirectionRef arraybaselinedirection);
02942         virtual ~IArrayBaselineDirection();
02945         ArrayBaselineDirectionRef GetRef() const;
02948         bool IsNull() const;
02949 
02950         // ========================================================================
02951         // PROPERTIES
02952         // ========================================================================
02953 
02956         ATETextDOM::Int32 GetSize( ) const;
02959         BaselineDirection GetFirst( ) const;
02962         BaselineDirection GetLast( ) const;
02963 
02964         // ========================================================================
02965         // METHODS
02966         // ========================================================================
02967 
02973         BaselineDirection Item( ATETextDOM::Int32 index) const;
02974 
02975 };
02976 
02978 //       --IArrayLanguage--
02980 
02982 class IArrayLanguage
02983 {
02984 private:
02985         ArrayLanguageRef        fArrayLanguage;
02986 public:
02989         IArrayLanguage();
02993         IArrayLanguage(const IArrayLanguage& src);
02997         IArrayLanguage& operator=(const IArrayLanguage& rhs);
03001         bool operator==(const IArrayLanguage& rhs) const;
03005         bool operator!=(const IArrayLanguage& rhs) const;
03011         explicit IArrayLanguage(ArrayLanguageRef arraylanguage);
03013         virtual ~IArrayLanguage();
03016         ArrayLanguageRef GetRef() const;
03019         bool IsNull() const;
03020 
03021         // ========================================================================
03022         // PROPERTIES
03023         // ========================================================================
03024 
03027         ATETextDOM::Int32 GetSize( ) const;
03030         Language GetFirst( ) const;
03033         Language GetLast( ) const;
03034 
03035         // ========================================================================
03036         // METHODS
03037         // ========================================================================
03038 
03044         Language Item( ATETextDOM::Int32 index) const;
03045 
03046 };
03047 
03049 //       --IArrayFontCapsOption--
03051 
03053 class IArrayFontCapsOption
03054 {
03055 private:
03056         ArrayFontCapsOptionRef  fArrayFontCapsOption;
03057 public:
03060         IArrayFontCapsOption();
03064         IArrayFontCapsOption(const IArrayFontCapsOption& src);
03068         IArrayFontCapsOption& operator=(const IArrayFontCapsOption& rhs);
03072         bool operator==(const IArrayFontCapsOption& rhs) const;
03076         bool operator!=(const IArrayFontCapsOption& rhs) const;
03082         explicit IArrayFontCapsOption(ArrayFontCapsOptionRef arrayfontcapsoption);
03084         virtual ~IArrayFontCapsOption();
03087         ArrayFontCapsOptionRef GetRef() const;
03090         bool IsNull() const;
03091 
03092         // ========================================================================
03093         // PROPERTIES
03094         // ========================================================================
03095 
03098         ATETextDOM::Int32 GetSize( ) const;
03101         FontCapsOption GetFirst( ) const;
03104         FontCapsOption GetLast( ) const;
03105 
03106         // ========================================================================
03107         // METHODS
03108         // ========================================================================
03109 
03115         FontCapsOption Item( ATETextDOM::Int32 index) const;
03116 
03117 };
03118 
03120 //       --IArrayFontBaselineOption--
03122 
03124 class IArrayFontBaselineOption
03125 {
03126 private:
03127         ArrayFontBaselineOptionRef      fArrayFontBaselineOption;
03128 public:
03131         IArrayFontBaselineOption();
03135         IArrayFontBaselineOption(const IArrayFontBaselineOption& src);
03139         IArrayFontBaselineOption& operator=(const IArrayFontBaselineOption& rhs);
03143         bool operator==(const IArrayFontBaselineOption& rhs) const;
03147         bool operator!=(const IArrayFontBaselineOption& rhs) const;
03153         explicit IArrayFontBaselineOption(ArrayFontBaselineOptionRef arrayfontbaselineoption);
03155         virtual ~IArrayFontBaselineOption();
03158         ArrayFontBaselineOptionRef GetRef() const;
03161         bool IsNull() const;
03162 
03163         // ========================================================================
03164         // PROPERTIES
03165         // ========================================================================
03166 
03169         ATETextDOM::Int32 GetSize( ) const;
03172         FontBaselineOption GetFirst( ) const;
03175         FontBaselineOption GetLast( ) const;
03176 
03177         // ========================================================================
03178         // METHODS
03179         // ========================================================================
03180 
03186         FontBaselineOption Item( ATETextDOM::Int32 index) const;
03187 
03188 };
03189 
03191 //       --IArrayFontOpenTypePositionOption--
03193 
03195 class IArrayFontOpenTypePositionOption
03196 {
03197 private:
03198         ArrayFontOpenTypePositionOptionRef      fArrayFontOpenTypePositionOption;
03199 public:
03202         IArrayFontOpenTypePositionOption();
03206         IArrayFontOpenTypePositionOption(const IArrayFontOpenTypePositionOption& src);
03210         IArrayFontOpenTypePositionOption& operator=(const IArrayFontOpenTypePositionOption& rhs);
03214         bool operator==(const IArrayFontOpenTypePositionOption& rhs) const;
03218         bool operator!=(const IArrayFontOpenTypePositionOption& rhs) const;
03224         explicit IArrayFontOpenTypePositionOption(ArrayFontOpenTypePositionOptionRef arrayfontopentypepositionoption);
03226         virtual ~IArrayFontOpenTypePositionOption();
03229         ArrayFontOpenTypePositionOptionRef GetRef() const;
03232         bool IsNull() const;
03233 
03234         // ========================================================================
03235         // PROPERTIES
03236         // ========================================================================
03237 
03240         ATETextDOM::Int32 GetSize( ) const;
03243         FontOpenTypePositionOption GetFirst( ) const;
03246         FontOpenTypePositionOption GetLast( ) const;
03247 
03248         // ========================================================================
03249         // METHODS
03250         // ========================================================================
03251 
03257         FontOpenTypePositionOption Item( ATETextDOM::Int32 index) const;
03258 
03259 };
03260 
03262 //       --IArrayUnderlinePosition--
03264 
03266 class IArrayUnderlinePosition
03267 {
03268 private:
03269         ArrayUnderlinePositionRef       fArrayUnderlinePosition;
03270 public:
03273         IArrayUnderlinePosition();
03277         IArrayUnderlinePosition(const IArrayUnderlinePosition& src);
03281         IArrayUnderlinePosition& operator=(const IArrayUnderlinePosition& rhs);
03285         bool operator==(const IArrayUnderlinePosition& rhs) const;
03289         bool operator!=(const IArrayUnderlinePosition& rhs) const;
03295         explicit IArrayUnderlinePosition(ArrayUnderlinePositionRef arrayunderlineposition);
03297         virtual ~IArrayUnderlinePosition();
03300         ArrayUnderlinePositionRef GetRef() const;
03303         bool IsNull() const;
03304 
03305         // ========================================================================
03306         // PROPERTIES
03307         // ========================================================================
03308 
03311         ATETextDOM::Int32 GetSize( ) const;
03314         UnderlinePosition GetFirst( ) const;
03317         UnderlinePosition GetLast( ) const;
03318 
03319         // ========================================================================
03320         // METHODS
03321         // ========================================================================
03322 
03328         UnderlinePosition Item( ATETextDOM::Int32 index) const;
03329 
03330 };
03331 
03333 //       --IArrayStrikethroughPosition--
03335 
03337 class IArrayStrikethroughPosition
03338 {
03339 private:
03340         ArrayStrikethroughPositionRef   fArrayStrikethroughPosition;
03341 public:
03344         IArrayStrikethroughPosition();
03348         IArrayStrikethroughPosition(const IArrayStrikethroughPosition& src);
03352         IArrayStrikethroughPosition& operator=(const IArrayStrikethroughPosition& rhs);
03356         bool operator==(const IArrayStrikethroughPosition& rhs) const;
03360         bool operator!=(const IArrayStrikethroughPosition& rhs) const;
03366         explicit IArrayStrikethroughPosition(ArrayStrikethroughPositionRef arraystrikethroughposition);
03368         virtual ~IArrayStrikethroughPosition();
03371         ArrayStrikethroughPositionRef GetRef() const;
03374         bool IsNull() const;
03375 
03376         // ========================================================================
03377         // PROPERTIES
03378         // ========================================================================
03379 
03382         ATETextDOM::Int32 GetSize( ) const;
03385         StrikethroughPosition GetFirst( ) const;
03388         StrikethroughPosition GetLast( ) const;
03389 
03390         // ========================================================================
03391         // METHODS
03392         // ========================================================================
03393 
03399         StrikethroughPosition Item( ATETextDOM::Int32 index) const;
03400 
03401 };
03402 
03404 //       --IArrayParagraphJustification--
03406 
03408 class IArrayParagraphJustification
03409 {
03410 private:
03411         ArrayParagraphJustificationRef  fArrayParagraphJustification;
03412 public:
03415         IArrayParagraphJustification();
03419         IArrayParagraphJustification(const IArrayParagraphJustification& src);
03423         IArrayParagraphJustification& operator=(const IArrayParagraphJustification& rhs);
03427         bool operator==(const IArrayParagraphJustification& rhs) const;
03431         bool operator!=(const IArrayParagraphJustification& rhs) const;
03437         explicit IArrayParagraphJustification(ArrayParagraphJustificationRef arrayparagraphjustification);
03439         virtual ~IArrayParagraphJustification();
03442         ArrayParagraphJustificationRef GetRef() const;
03445         bool IsNull() const;
03446 
03447         // ========================================================================
03448         // PROPERTIES
03449         // ========================================================================
03450 
03453         ATETextDOM::Int32 GetSize( ) const;
03456         ParagraphJustification GetFirst( ) const;
03459         ParagraphJustification GetLast( ) const;
03460 
03461         // ========================================================================
03462         // METHODS
03463         // ========================================================================
03464 
03470         ParagraphJustification Item( ATETextDOM::Int32 index) const;
03471 
03472 };
03473 
03475 //       --IArrayArrayReal--
03477 
03478 class IArrayArrayReal
03479 {
03480 private:
03481         ArrayArrayRealRef       fArrayArrayReal;
03482 public:
03485         IArrayArrayReal();
03489         IArrayArrayReal(const IArrayArrayReal& src);
03493         IArrayArrayReal& operator=(const IArrayArrayReal& rhs);
03497         bool operator==(const IArrayArrayReal& rhs) const;
03501         bool operator!=(const IArrayArrayReal& rhs) const;
03507         explicit IArrayArrayReal(ArrayArrayRealRef arrayarrayreal);
03509         virtual ~IArrayArrayReal();
03512         ArrayArrayRealRef GetRef() const;
03515         bool IsNull() const;
03516 
03517         // ========================================================================
03518         // PROPERTIES
03519         // ========================================================================
03520 
03523         ATETextDOM::Int32 GetSize( ) const;
03526         IArrayReal GetFirst( ) const;
03529         IArrayReal GetLast( ) const;
03530 
03531         // ========================================================================
03532         // METHODS
03533         // ========================================================================
03534 
03540         IArrayReal Item( ATETextDOM::Int32 index) const;
03541 
03542 };
03543 
03545 //       --IArrayBurasagariType--
03547 
03549 class IArrayBurasagariType
03550 {
03551 private:
03552         ArrayBurasagariTypeRef  fArrayBurasagariType;
03553 public:
03556         IArrayBurasagariType();
03560         IArrayBurasagariType(const IArrayBurasagariType& src);
03564         IArrayBurasagariType& operator=(const IArrayBurasagariType& rhs);
03568         bool operator==(const IArrayBurasagariType& rhs) const;
03572         bool operator!=(const IArrayBurasagariType& rhs) const;
03578         explicit IArrayBurasagariType(ArrayBurasagariTypeRef arrayburasagaritype);
03580         virtual ~IArrayBurasagariType();
03583         ArrayBurasagariTypeRef GetRef() const;
03586         bool IsNull() const;
03587 
03588         // ========================================================================
03589         // PROPERTIES
03590         // ========================================================================
03591 
03594         ATETextDOM::Int32 GetSize( ) const;
03597         BurasagariType GetFirst( ) const;
03600         BurasagariType GetLast( ) const;
03601 
03602         // ========================================================================
03603         // METHODS
03604         // ========================================================================
03605 
03611         BurasagariType Item( ATETextDOM::Int32 index) const;
03612 
03613 };
03614 
03616 //       --IArrayPreferredKinsokuOrder--
03618 
03620 class IArrayPreferredKinsokuOrder
03621 {
03622 private:
03623         ArrayPreferredKinsokuOrderRef   fArrayPreferredKinsokuOrder;
03624 public:
03627         IArrayPreferredKinsokuOrder();
03631         IArrayPreferredKinsokuOrder(const IArrayPreferredKinsokuOrder& src);
03635         IArrayPreferredKinsokuOrder& operator=(const IArrayPreferredKinsokuOrder& rhs);
03639         bool operator==(const IArrayPreferredKinsokuOrder& rhs) const;
03643         bool operator!=(const IArrayPreferredKinsokuOrder& rhs) const;
03649         explicit IArrayPreferredKinsokuOrder(ArrayPreferredKinsokuOrderRef arraypreferredkinsokuorder);
03651         virtual ~IArrayPreferredKinsokuOrder();
03654         ArrayPreferredKinsokuOrderRef GetRef() const;
03657         bool IsNull() const;
03658 
03659         // ========================================================================
03660         // PROPERTIES
03661         // ========================================================================
03662 
03665         ATETextDOM::Int32 GetSize( ) const;
03668         PreferredKinsokuOrder GetFirst( ) const;
03671         PreferredKinsokuOrder GetLast( ) const;
03672 
03673         // ========================================================================
03674         // METHODS
03675         // ========================================================================
03676 
03682         PreferredKinsokuOrder Item( ATETextDOM::Int32 index) const;
03683 
03684 };
03685 
03687 //       --IArrayKinsokuRef--
03689 
03690 class IArrayKinsokuRef
03691 {
03692 private:
03693         ArrayKinsokuRefRef      fArrayKinsokuRef;
03694 public:
03697         IArrayKinsokuRef();
03701         IArrayKinsokuRef(const IArrayKinsokuRef& src);
03705         IArrayKinsokuRef& operator=(const IArrayKinsokuRef& rhs);
03709         bool operator==(const IArrayKinsokuRef& rhs) const;
03713         bool operator!=(const IArrayKinsokuRef& rhs) const;
03719         explicit IArrayKinsokuRef(ArrayKinsokuRefRef arraykinsokuref);
03721         virtual ~IArrayKinsokuRef();
03724         ArrayKinsokuRefRef GetRef() const;
03727         bool IsNull() const;
03728 
03729         // ========================================================================
03730         // PROPERTIES
03731         // ========================================================================
03732 
03735         ATETextDOM::Int32 GetSize( ) const;
03738         IKinsoku GetFirst( ) const;
03741         IKinsoku GetLast( ) const;
03742 
03743         // ========================================================================
03744         // METHODS
03745         // ========================================================================
03746 
03752         IKinsoku Item( ATETextDOM::Int32 index) const;
03753 
03754 };
03755 
03757 //       --IArrayMojiKumiRef--
03759 
03760 class IArrayMojiKumiRef
03761 {
03762 private:
03763         ArrayMojiKumiRefRef     fArrayMojiKumiRef;
03764 public:
03767         IArrayMojiKumiRef();
03771         IArrayMojiKumiRef(const IArrayMojiKumiRef& src);
03775         IArrayMojiKumiRef& operator=(const IArrayMojiKumiRef& rhs);
03779         bool operator==(const IArrayMojiKumiRef& rhs) const;
03783         bool operator!=(const IArrayMojiKumiRef& rhs) const;
03789         explicit IArrayMojiKumiRef(ArrayMojiKumiRefRef arraymojikumiref);
03791         virtual ~IArrayMojiKumiRef();
03794         ArrayMojiKumiRefRef GetRef() const;
03797         bool IsNull() const;
03798 
03799         // ========================================================================
03800         // PROPERTIES
03801         // ========================================================================
03802 
03805         ATETextDOM::Int32 GetSize( ) const;
03808         IMojiKumi GetFirst( ) const;
03811         IMojiKumi GetLast( ) const;
03812 
03813         // ========================================================================
03814         // METHODS
03815         // ========================================================================
03816 
03822         IMojiKumi Item( ATETextDOM::Int32 index) const;
03823 
03824 };
03825 
03827 //       --IArrayMojiKumiSetRef--
03829 
03830 class IArrayMojiKumiSetRef
03831 {
03832 private:
03833         ArrayMojiKumiSetRefRef  fArrayMojiKumiSetRef;
03834 public:
03837         IArrayMojiKumiSetRef();
03841         IArrayMojiKumiSetRef(const IArrayMojiKumiSetRef& src);
03845         IArrayMojiKumiSetRef& operator=(const IArrayMojiKumiSetRef& rhs);
03849         bool operator==(const IArrayMojiKumiSetRef& rhs) const;
03853         bool operator!=(const IArrayMojiKumiSetRef& rhs) const;
03859         explicit IArrayMojiKumiSetRef(ArrayMojiKumiSetRefRef arraymojikumisetref);
03861         virtual ~IArrayMojiKumiSetRef();
03864         ArrayMojiKumiSetRefRef GetRef() const;
03867         bool IsNull() const;
03868 
03869         // ========================================================================
03870         // PROPERTIES
03871         // ========================================================================
03872 
03875         ATETextDOM::Int32 GetSize( ) const;
03878         IMojiKumiSet GetFirst( ) const;
03881         IMojiKumiSet GetLast( ) const;
03882 
03883         // ========================================================================
03884         // METHODS
03885         // ========================================================================
03886 
03892         IMojiKumiSet Item( ATETextDOM::Int32 index) const;
03893 
03894 };
03895 
03897 //       --IArrayTabStopsRef--
03899 
03900 class IArrayTabStopsRef
03901 {
03902 private:
03903         ArrayTabStopsRefRef     fArrayTabStopsRef;
03904 public:
03907         IArrayTabStopsRef();
03911         IArrayTabStopsRef(const IArrayTabStopsRef& src);
03915         IArrayTabStopsRef& operator=(const IArrayTabStopsRef& rhs);
03919         bool operator==(const IArrayTabStopsRef& rhs) const;
03923         bool operator!=(const IArrayTabStopsRef& rhs) const;
03929         explicit IArrayTabStopsRef(ArrayTabStopsRefRef arraytabstopsref);
03931         virtual ~IArrayTabStopsRef();
03934         ArrayTabStopsRefRef GetRef() const;
03937         bool IsNull() const;
03938 
03939         // ========================================================================
03940         // PROPERTIES
03941         // ========================================================================
03942 
03945         ATETextDOM::Int32 GetSize( ) const;
03948         ITabStops GetFirst( ) const;
03951         ITabStops GetLast( ) const;
03952 
03953         // ========================================================================
03954         // METHODS
03955         // ========================================================================
03956 
03962         ITabStops Item( ATETextDOM::Int32 index) const;
03963 
03964 };
03965 
03967 //       --IArrayLeadingType--
03969 
03971 class IArrayLeadingType
03972 {
03973 private:
03974         ArrayLeadingTypeRef     fArrayLeadingType;
03975 public:
03978         IArrayLeadingType();
03982         IArrayLeadingType(const IArrayLeadingType& src);
03986         IArrayLeadingType& operator=(const IArrayLeadingType& rhs);
03990         bool operator==(const IArrayLeadingType& rhs) const;
03994         bool operator!=(const IArrayLeadingType& rhs) const;
04000         explicit IArrayLeadingType(ArrayLeadingTypeRef arrayleadingtype);
04002         virtual ~IArrayLeadingType();
04005         ArrayLeadingTypeRef GetRef() const;
04008         bool IsNull() const;
04009 
04010         // ========================================================================
04011         // PROPERTIES
04012         // ========================================================================
04013 
04016         ATETextDOM::Int32 GetSize( ) const;
04019         LeadingType GetFirst( ) const;
04022         LeadingType GetLast( ) const;
04023 
04024         // ========================================================================
04025         // METHODS
04026         // ========================================================================
04027 
04033         LeadingType Item( ATETextDOM::Int32 index) const;
04034 
04035 };
04036 
04038 //       --IArrayFontRef--
04040 
04041 class IArrayFontRef
04042 {
04043 private:
04044         ArrayFontRefRef fArrayFontRef;
04045 public:
04048         IArrayFontRef();
04052         IArrayFontRef(const IArrayFontRef& src);
04056         IArrayFontRef& operator=(const IArrayFontRef& rhs);
04060         bool operator==(const IArrayFontRef& rhs) const;
04064         bool operator!=(const IArrayFontRef& rhs) const;
04070         explicit IArrayFontRef(ArrayFontRefRef arrayfontref);
04072         virtual ~IArrayFontRef();
04075         ArrayFontRefRef GetRef() const;
04078         bool IsNull() const;
04079 
04080         // ========================================================================
04081         // PROPERTIES
04082         // ========================================================================
04083 
04086         ATETextDOM::Int32 GetSize( ) const;
04089         IFont GetFirst( ) const;
04092         IFont GetLast( ) const;
04093 
04094         // ========================================================================
04095         // METHODS
04096         // ========================================================================
04097 
04103         IFont Item( ATETextDOM::Int32 index) const;
04104 
04105 };
04106 
04108 //       --IArrayGlyphID--
04110 
04111 class IArrayGlyphID
04112 {
04113 private:
04114         ArrayGlyphIDRef fArrayGlyphID;
04115 public:
04118         IArrayGlyphID();
04122         IArrayGlyphID(const IArrayGlyphID& src);
04126         IArrayGlyphID& operator=(const IArrayGlyphID& rhs);
04130         bool operator==(const IArrayGlyphID& rhs) const;
04134         bool operator!=(const IArrayGlyphID& rhs) const;
04140         explicit IArrayGlyphID(ArrayGlyphIDRef arrayglyphid);
04142         virtual ~IArrayGlyphID();
04145         ArrayGlyphIDRef GetRef() const;
04148         bool IsNull() const;
04149 
04150         // ========================================================================
04151         // PROPERTIES
04152         // ========================================================================
04153 
04156         ATETextDOM::Int32 GetSize( ) const;
04159         ATEGlyphID GetFirst( ) const;
04162         ATEGlyphID GetLast( ) const;
04163 
04164         // ========================================================================
04165         // METHODS
04166         // ========================================================================
04167 
04173         ATEGlyphID Item( ATETextDOM::Int32 index) const;
04174 
04175 };
04176 
04178 //       --IArrayRealPoint--
04180 
04182 class IArrayRealPoint
04183 {
04184 private:
04185         ArrayRealPointRef       fArrayRealPoint;
04186 public:
04189         IArrayRealPoint();
04193         IArrayRealPoint(const IArrayRealPoint& src);
04197         IArrayRealPoint& operator=(const IArrayRealPoint& rhs);
04201         bool operator==(const IArrayRealPoint& rhs) const;
04205         bool operator!=(const IArrayRealPoint& rhs) const;
04211         explicit IArrayRealPoint(ArrayRealPointRef arrayrealpoint);
04213         virtual ~IArrayRealPoint();
04216         ArrayRealPointRef GetRef() const;
04219         bool IsNull() const;
04220 
04221         // ========================================================================
04222         // PROPERTIES
04223         // ========================================================================
04224 
04227         ATETextDOM::Int32 GetSize( ) const;
04230         ATETextDOM::RealPoint GetFirst( ) const;
04233         ATETextDOM::RealPoint GetLast( ) const;
04234 
04235         // ========================================================================
04236         // METHODS
04237         // ========================================================================
04238 
04244         ATETextDOM::RealPoint Item( ATETextDOM::Int32 index) const;
04245 
04246 };
04247 
04249 //       --IArrayRealMatrix--
04251 
04252 class IArrayRealMatrix
04253 {
04254 private:
04255         ArrayRealMatrixRef      fArrayRealMatrix;
04256 public:
04259         IArrayRealMatrix();
04263         IArrayRealMatrix(const IArrayRealMatrix& src);
04267         IArrayRealMatrix& operator=(const IArrayRealMatrix& rhs);
04271         bool operator==(const IArrayRealMatrix& rhs) const;
04275         bool operator!=(const IArrayRealMatrix& rhs) const;
04281         explicit IArrayRealMatrix(ArrayRealMatrixRef arrayrealmatrix);
04283         virtual ~IArrayRealMatrix();
04286         ArrayRealMatrixRef GetRef() const;
04289         bool IsNull() const;
04290 
04291         // ========================================================================
04292         // PROPERTIES
04293         // ========================================================================
04294 
04297         ATETextDOM::Int32 GetSize( ) const;
04300         ATETextDOM::RealMatrix GetFirst( ) const;
04303         ATETextDOM::RealMatrix GetLast( ) const;
04304 
04305         // ========================================================================
04306         // METHODS
04307         // ========================================================================
04308 
04314         ATETextDOM::RealMatrix Item( ATETextDOM::Int32 index) const;
04315 
04316 };
04317 
04319 //       --IArrayLine--
04321 
04324 class IArrayLine 
04325 {
04326 private:
04327         ArrayLineRef    fArrayLine;
04328 public:
04331         IArrayLine();
04335         IArrayLine(const IArrayLine& src);
04339         IArrayLine& operator=(const IArrayLine& rhs);
04343         bool operator==(const IArrayLine& rhs) const;
04347         bool operator!=(const IArrayLine& rhs) const;
04353         explicit IArrayLine(ArrayLineRef ArrayLineRef);
04355         virtual ~IArrayLine();
04358         ArrayLineRef GetRef() const;
04361         bool IsNull() const;
04362 
04363         // ========================================================================
04364         // PROPERTIES
04365         // ========================================================================
04366         
04369         ATETextDOM::Int32 GetSize( ) const;
04370         // ========================================================================
04371         // METHODS
04372         // ========================================================================
04373 
04381         void Item( ATETextDOM::Int32 index, ATETextDOM::FloatPoint* lineStart, ATETextDOM::FloatPoint* lineEnd) const;
04382 };
04383 
04385 //       --IArrayComposerEngine--
04387 
04389 class IArrayComposerEngine
04390 {
04391 private:
04392         ArrayComposerEngineRef  fArrayComposerEngine;
04393 public:
04396         IArrayComposerEngine();
04400         IArrayComposerEngine(const IArrayComposerEngine& src);
04404         IArrayComposerEngine& operator=(const IArrayComposerEngine& rhs);
04408         bool operator==(const IArrayComposerEngine& rhs) const;
04412         bool operator!=(const IArrayComposerEngine& rhs) const;
04418         explicit IArrayComposerEngine(ArrayComposerEngineRef arraycomposerengine);
04420         virtual ~IArrayComposerEngine();
04423         ArrayComposerEngineRef GetRef() const;
04426         bool IsNull() const;
04427 
04428         // ========================================================================
04429         // PROPERTIES
04430         // ========================================================================
04431 
04434         ATETextDOM::Int32 GetSize( ) const;
04437         ComposerEngine GetFirst( ) const;
04440         ComposerEngine GetLast( ) const;
04441 
04442         // ========================================================================
04443         // METHODS
04444         // ========================================================================
04445 
04451         ComposerEngine Item( ATETextDOM::Int32 index) const;
04452 
04453 };
04454 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
04456 //       --IArrayParagraphDirection--
04458 
04460 class IArrayParagraphDirection
04461 {
04462 private:
04463         ArrayParagraphDirectionRef      fArrayParagraphDirection;
04464 public:
04467         IArrayParagraphDirection();
04471         IArrayParagraphDirection(const IArrayParagraphDirection& src);
04475         IArrayParagraphDirection& operator=(const IArrayParagraphDirection& rhs);
04479         bool operator==(const IArrayParagraphDirection& rhs) const;
04483         bool operator!=(const IArrayParagraphDirection& rhs) const;
04489         explicit IArrayParagraphDirection(ArrayParagraphDirectionRef arrayparagraphdirection);
04491         virtual ~IArrayParagraphDirection();
04494         ArrayParagraphDirectionRef GetRef() const;
04497         bool IsNull() const;
04498 
04499         // ========================================================================
04500         // PROPERTIES
04501         // ========================================================================
04502 
04505         ATETextDOM::Int32 GetSize( ) const;
04508         ParagraphDirection GetFirst( ) const;
04511         ParagraphDirection GetLast( ) const;
04512 
04513         // ========================================================================
04514         // METHODS
04515         // ========================================================================
04516 
04522         ParagraphDirection Item( ATETextDOM::Int32 index) const;
04523 
04524 };
04525 
04527 //       --IArrayJustificationMethod--
04529 
04531 class IArrayJustificationMethod
04532 {
04533 private:
04534         ArrayJustificationMethodRef     fArrayJustificationMethod;
04535 public:
04538         IArrayJustificationMethod();
04542         IArrayJustificationMethod(const IArrayJustificationMethod& src);
04546         IArrayJustificationMethod& operator=(const IArrayJustificationMethod& rhs);
04550         bool operator==(const IArrayJustificationMethod& rhs) const;
04554         bool operator!=(const IArrayJustificationMethod& rhs) const;
04560         explicit IArrayJustificationMethod(ArrayJustificationMethodRef arrayjustificationmethod);
04562         virtual ~IArrayJustificationMethod();
04565         ArrayJustificationMethodRef GetRef() const;
04568         bool IsNull() const;
04569 
04570         // ========================================================================
04571         // PROPERTIES
04572         // ========================================================================
04573 
04576         ATETextDOM::Int32 GetSize( ) const;
04579         JustificationMethod GetFirst( ) const;
04582         JustificationMethod GetLast( ) const;
04583 
04584         // ========================================================================
04585         // METHODS
04586         // ========================================================================
04587 
04593         JustificationMethod Item( ATETextDOM::Int32 index) const;
04594 
04595 };
04596 
04598 //       --IArrayKashidaWidth--
04600 
04602 class IArrayKashidaWidth
04603 {
04604 private:
04605         ArrayKashidaWidthRef    fArrayKashidaWidth;
04606 public:
04609         IArrayKashidaWidth();
04613         IArrayKashidaWidth(const IArrayKashidaWidth& src);
04617         IArrayKashidaWidth& operator=(const IArrayKashidaWidth& rhs);
04621         bool operator==(const IArrayKashidaWidth& rhs) const;
04625         bool operator!=(const IArrayKashidaWidth& rhs) const;
04631         explicit IArrayKashidaWidth(ArrayKashidaWidthRef arraykashidawidth);
04633         virtual ~IArrayKashidaWidth();
04636         ArrayKashidaWidthRef GetRef() const;
04639         bool IsNull() const;
04640 
04641         // ========================================================================
04642         // PROPERTIES
04643         // ========================================================================
04644 
04647         ATETextDOM::Int32 GetSize( ) const;
04650         KashidaWidth GetFirst( ) const;
04653         KashidaWidth GetLast( ) const;
04654 
04655         // ========================================================================
04656         // METHODS
04657         // ========================================================================
04658 
04664         KashidaWidth Item( ATETextDOM::Int32 index) const;
04665 
04666 };
04667 
04669 //       --IArrayKashidas--
04671 
04673 class IArrayKashidas
04674 {
04675 private:
04676         ArrayKashidasRef        fArrayKashidas;
04677 public:
04680         IArrayKashidas();
04684         IArrayKashidas(const IArrayKashidas& src);
04688         IArrayKashidas& operator=(const IArrayKashidas& rhs);
04692         bool operator==(const IArrayKashidas& rhs) const;
04696         bool operator!=(const IArrayKashidas& rhs) const;
04702         explicit IArrayKashidas(ArrayKashidasRef arraykashidas);
04704         virtual ~IArrayKashidas();
04707         ArrayKashidasRef GetRef() const;
04710         bool IsNull() const;
04711 
04712         // ========================================================================
04713         // PROPERTIES
04714         // ========================================================================
04715 
04718         ATETextDOM::Int32 GetSize( ) const;
04721         Kashidas GetFirst( ) const;
04724         Kashidas GetLast( ) const;
04725 
04726         // ========================================================================
04727         // METHODS
04728         // ========================================================================
04729 
04735         Kashidas Item( ATETextDOM::Int32 index) const;
04736 
04737 };
04738 
04740 //       --IArrayDirOverride--
04742 
04744 class IArrayDirOverride
04745 {
04746 private:
04747         ArrayDirOverrideRef     fArrayDirOverride;
04748 public:
04751         IArrayDirOverride();
04755         IArrayDirOverride(const IArrayDirOverride& src);
04759         IArrayDirOverride& operator=(const IArrayDirOverride& rhs);
04763         bool operator==(const IArrayDirOverride& rhs) const;
04767         bool operator!=(const IArrayDirOverride& rhs) const;
04773         explicit IArrayDirOverride(ArrayDirOverrideRef arraydiroverride);
04775         virtual ~IArrayDirOverride();
04778         ArrayDirOverrideRef GetRef() const;
04781         bool IsNull() const;
04782 
04783         // ========================================================================
04784         // PROPERTIES
04785         // ========================================================================
04786 
04789         ATETextDOM::Int32 GetSize( ) const;
04792         DirOverride GetFirst( ) const;
04795         DirOverride GetLast( ) const;
04796 
04797         // ========================================================================
04798         // METHODS
04799         // ========================================================================
04800 
04806         DirOverride Item( ATETextDOM::Int32 index) const;
04807 
04808 };
04809 
04811 //       --IArrayDigitSet--
04813 
04815 class IArrayDigitSet
04816 {
04817 private:
04818         ArrayDigitSetRef        fArrayDigitSet;
04819 public:
04822         IArrayDigitSet();
04826         IArrayDigitSet(const IArrayDigitSet& src);
04830         IArrayDigitSet& operator=(const IArrayDigitSet& rhs);
04834         bool operator==(const IArrayDigitSet& rhs) const;
04838         bool operator!=(const IArrayDigitSet& rhs) const;
04844         explicit IArrayDigitSet(ArrayDigitSetRef arraydigitset);
04846         virtual ~IArrayDigitSet();
04849         ArrayDigitSetRef GetRef() const;
04852         bool IsNull() const;
04853 
04854         // ========================================================================
04855         // PROPERTIES
04856         // ========================================================================
04857 
04860         ATETextDOM::Int32 GetSize( ) const;
04863         DigitSet GetFirst( ) const;
04866         DigitSet GetLast( ) const;
04867 
04868         // ========================================================================
04869         // METHODS
04870         // ========================================================================
04871 
04877         DigitSet Item( ATETextDOM::Int32 index) const;
04878 
04879 };
04880 
04882 //       --IArrayDiacVPos--
04884 
04886 class IArrayDiacVPos
04887 {
04888 private:
04889         ArrayDiacVPosRef        fArrayDiacVPos;
04890 public:
04893         IArrayDiacVPos();
04897         IArrayDiacVPos(const IArrayDiacVPos& src);
04901         IArrayDiacVPos& operator=(const IArrayDiacVPos& rhs);
04905         bool operator==(const IArrayDiacVPos& rhs) const;
04909         bool operator!=(const IArrayDiacVPos& rhs) const;
04915         explicit IArrayDiacVPos(ArrayDiacVPosRef arraydiacvpos);
04917         virtual ~IArrayDiacVPos();
04920         ArrayDiacVPosRef GetRef() const;
04923         bool IsNull() const;
04924 
04925         // ========================================================================
04926         // PROPERTIES
04927         // ========================================================================
04928 
04931         ATETextDOM::Int32 GetSize( ) const;
04934         DiacVPos GetFirst( ) const;
04937         DiacVPos GetLast( ) const;
04938 
04939         // ========================================================================
04940         // METHODS
04941         // ========================================================================
04942 
04948         DiacVPos Item( ATETextDOM::Int32 index) const;
04949 
04950 };
04951 #endif
04952 
04953 
04955 //       --ICharFeatures--
04957 
04979 class ICharFeatures
04980 {
04981 private:
04982         CharFeaturesRef fCharFeatures;
04983 public:
04987         ICharFeatures();
04991         ICharFeatures(const ICharFeatures& src);
04995         ICharFeatures& operator=(const ICharFeatures& rhs);
04999         bool operator==(const ICharFeatures& rhs) const;
05003         bool operator!=(const ICharFeatures& rhs) const;
05009         explicit ICharFeatures(CharFeaturesRef charfeatures);
05011         virtual ~ICharFeatures();
05014         CharFeaturesRef GetRef() const;
05017         bool IsNull() const;
05018 
05021         ICharFeatures Clone( ) const;
05022 
05024         // GET PROPERTIES
05026 
05031         IFont GetFont( bool* isAssigned) const;
05036         ATETextDOM::Real GetFontSize( bool* isAssigned) const;
05041         ATETextDOM::Real GetHorizontalScale( bool* isAssigned) const;
05046         ATETextDOM::Real GetVerticalScale( bool* isAssigned) const;
05051         bool GetAutoLeading( bool* isAssigned) const;
05056         ATETextDOM::Real GetLeading( bool* isAssigned) const;
05061         ATETextDOM::Int32 GetTracking( bool* isAssigned) const;
05066         ATETextDOM::Real GetBaselineShift( bool* isAssigned) const;
05071         ATETextDOM::Real GetCharacterRotation( bool* isAssigned) const;
05080         AutoKernType GetAutoKernType( bool* isAssigned) const;
05081 
05086         FontCapsOption GetFontCapsOption( bool* isAssigned) const;
05091         FontBaselineOption GetFontBaselineOption( bool* isAssigned) const;
05096         FontOpenTypePositionOption GetFontOpenTypePositionOption( bool* isAssigned) const;
05101         StrikethroughPosition GetStrikethroughPosition( bool* isAssigned) const;
05106         UnderlinePosition GetUnderlinePosition( bool* isAssigned) const;
05111         ATETextDOM::Real GetUnderlineOffset( bool* isAssigned) const;
05112         // ------------------------------------------------------------------
05113         // OpenType settings
05114         // ------------------------------------------------------------------
05119         bool GetLigature( bool* isAssigned) const;
05124         bool GetDiscretionaryLigatures( bool* isAssigned) const;
05129         bool GetContextualLigatures( bool* isAssigned) const;
05134         bool GetAlternateLigatures( bool* isAssigned) const;
05139         bool GetOldStyle( bool* isAssigned) const;
05144         bool GetFractions( bool* isAssigned) const;
05149         bool GetOrdinals( bool* isAssigned) const;
05154         bool GetSwash( bool* isAssigned) const;
05159         bool GetTitling( bool* isAssigned) const;
05164         bool GetConnectionForms( bool* isAssigned) const;
05169         bool GetStylisticAlternates( bool* isAssigned) const;
05173         ATETextDOM::Int32 GetStylisticSets(bool* isAssigned) const;
05178         bool GetOrnaments( bool* isAssigned) const;
05183         FigureStyle GetFigureStyle( bool* isAssigned) const;
05184         // ------------------------------------------------------------------
05185         // Japanese OpenType settings
05186         // ------------------------------------------------------------------
05191         bool GetProportionalMetrics( bool* isAssigned) const;
05196         bool GetKana( bool* isAssigned) const;
05201         bool GetRuby( bool* isAssigned) const;
05206         bool GetItalics( bool* isAssigned) const;
05211         BaselineDirection GetBaselineDirection( bool* isAssigned) const;
05216         Language GetLanguage( bool* isAssigned) const;
05221         JapaneseAlternateFeature GetJapaneseAlternateFeature( bool* isAssigned) const;
05226         ATETextDOM::Real GetTsume( bool* isAssigned) const;
05231         StyleRunAlignment GetStyleRunAlignment( bool* isAssigned) const;
05232         // ------------------------------------------------------------------
05233         // WariChu settings
05234         // ------------------------------------------------------------------
05239         bool GetWariChuEnabled( bool* isAssigned) const;
05244         ATETextDOM::Int32 GetWariChuLineCount( bool* isAssigned) const;
05249         ATETextDOM::Int32 GetWariChuLineGap( bool* isAssigned) const;
05254         ATETextDOM::Real GetWariChuScale( bool* isAssigned) const;
05259         ATETextDOM::Real GetWariChuSize( bool* isAssigned) const;
05264         ATETextDOM::Int32 GetWariChuWidowAmount( bool* isAssigned) const;
05269         ATETextDOM::Int32 GetWariChuOrphanAmount( bool* isAssigned) const;
05274         WariChuJustification GetWariChuJustification( bool* isAssigned) const;
05279         ATETextDOM::Int32 GetTCYUpDownAdjustment( bool* isAssigned) const;
05284         ATETextDOM::Int32 GetTCYLeftRightAdjustment( bool* isAssigned) const;
05289         ATETextDOM::Real GetLeftAki( bool* isAssigned) const;
05294         ATETextDOM::Real GetRightAki( bool* isAssigned) const;
05295         //---------------------------------------------------------------
05296         // General settings
05297         //---------------------------------------------------------------
05302         bool GetNoBreak( bool* isAssigned) const;
05307         IApplicationPaint GetFillColor( bool* isAssigned) const;
05312         IApplicationPaint GetStrokeColor( bool* isAssigned) const;
05317         bool GetFill( bool* isAssigned) const;
05322         bool GetFillVisible( bool* isAssigned) const;
05327         bool GetStroke( bool* isAssigned) const;
05332         bool GetStrokeVisible( bool* isAssigned) const; 
05337         bool GetFillFirst( bool* isAssigned) const;
05342         bool GetFillOverPrint( bool* isAssigned) const;
05347         bool GetStrokeOverPrint( bool* isAssigned) const;
05352         IApplicationPaint GetFillBackgroundColor( bool* isAssigned) const;
05357         bool GetFillBackground( bool* isAssigned) const;
05362         LineCapType GetLineCap( bool* isAssigned) const;
05367         LineJoinType GetLineJoin( bool* isAssigned) const;
05372         ATETextDOM::Real GetLineWidth( bool* isAssigned) const;
05377         ATETextDOM::Real GetMiterLimit( bool* isAssigned) const;
05382         ATETextDOM::Real GetLineDashOffset( bool* isAssigned) const;
05387         IArrayReal GetLineDashArray( bool* isAssigned) const;
05388 
05389 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
05390         // ------------------------------------------------------------------
05391         // Complex Script Settings
05392         // ------------------------------------------------------------------
05393 
05399         Kashidas GetKashidas( bool* isAssigned) const;
05405         DirOverride GetDirOverride( bool* isAssigned) const;
05411         DigitSet GetDigitSet( bool* isAssigned) const;
05418         DiacVPos GetDiacVPos( bool* isAssigned) const;
05425         ATETextDOM::Real GetDiacXOffset( bool* isAssigned) const;
05432         ATETextDOM::Real GetDiacYOffset( bool* isAssigned) const;
05438         bool GetAutoMydfb( bool* isAssigned) const;
05445         ATETextDOM::Real GetMarkYDistFromBaseline( bool* isAssigned) const;
05452         bool GetOverlapSwash( bool* isAssigned) const;
05459         bool GetJustificationAlternates( bool* isAssigned) const;
05465         bool GetStretchedAlternates( bool* isAssigned) const;
05466 #endif
05467 
05469         // SET PROPERTIES
05471 
05476         void SetFont( IFont newVal);
05481         void SetFontSize( ATETextDOM::Real newVal);
05486         void SetHorizontalScale( ATETextDOM::Real newVal);
05491         void SetVerticalScale( ATETextDOM::Real newVal);
05496         void SetAutoLeading( bool newVal);
05501         void SetLeading( ATETextDOM::Real newVal);
05506         void SetTracking( ATETextDOM::Int32 newVal);
05511         void SetBaselineShift( ATETextDOM::Real newVal);
05516         void SetCharacterRotation( ATETextDOM::Real newVal);
05522         void SetAutoKernType( AutoKernType newVal);
05527         void SetFontCapsOption( FontCapsOption newVal);
05532         void SetFontBaselineOption( FontBaselineOption newVal);
05537         void SetFontOpenTypePositionOption( FontOpenTypePositionOption newVal);
05542         void SetStrikethroughPosition( StrikethroughPosition newVal);
05547         void SetUnderlinePosition( UnderlinePosition newVal);
05552         void SetUnderlineOffset( ATETextDOM::Real newVal);
05553         // ------------------------------------------------------------------
05554         // OpenType settings
05555         // ------------------------------------------------------------------
05560         void SetLigature( bool newVal);
05565         void SetDiscretionaryLigatures( bool newVal);
05570         void SetContextualLigatures( bool newVal);
05575         void SetAlternateLigatures( bool newVal);
05580         void SetOldStyle( bool newVal);
05585         void SetFractions( bool newVal);
05590         void SetOrdinals( bool newVal);
05595         void SetSwash( bool newVal);
05600         void SetTitling( bool newVal);
05605         void SetConnectionForms( bool newVal);
05610         void SetStylisticAlternates( bool newVal);
05611 
05614         void SetStylisticSets(ATETextDOM::Int32 newVal);
05619         void SetOrnaments( bool newVal);
05624         void SetFigureStyle( FigureStyle newVal);
05625         // ------------------------------------------------------------------
05626         // Japanese OpenType settings
05627         // ------------------------------------------------------------------
05631         void SetProportionalMetrics( bool newVal);
05635         void SetKana( bool newVal);
05639         void SetItalics( bool newVal);
05643         void SetRuby( bool newVal);
05647         void SetBaselineDirection( BaselineDirection newVal);
05651         void SetLanguage( Language newVal);
05655         void SetJapaneseAlternateFeature( JapaneseAlternateFeature newVal);
05659         void SetTsume( ATETextDOM::Real newVal);
05663         void SetStyleRunAlignment( StyleRunAlignment newVal);
05664         // ------------------------------------------------------------------
05665         // WariChu settings
05666         // ------------------------------------------------------------------
05670         void SetWariChuEnabled( bool newVal);
05674         void SetWariChuLineCount( ATETextDOM::Int32 newVal);
05678         void SetWariChuLineGap( ATETextDOM::Int32 newVal);
05682         void SetWariChuScale( ATETextDOM::Real newVal);
05686         void SetWariChuSize( ATETextDOM::Real newVal);
05690         void SetWariChuWidowAmount( ATETextDOM::Int32 newVal);
05694         void SetWariChuOrphanAmount( ATETextDOM::Int32 newVal);
05698         void SetWariChuJustification( WariChuJustification newVal);
05702         void SetTCYUpDownAdjustment( ATETextDOM::Int32 newVal);
05706         void SetTCYLeftRightAdjustment( ATETextDOM::Int32 newVal);
05710         void SetLeftAki( ATETextDOM::Real newVal);
05714         void SetRightAki( ATETextDOM::Real newVal);
05715         //------------------------------------------------
05716         // General settings
05717         //------------------------------------------------
05721         void SetNoBreak( bool newVal);
05725         void SetFillColor( IApplicationPaint newVal);
05729         void SetStrokeColor( IApplicationPaint newVal);
05733         void SetFill( bool newVal);
05737         void SetFillVisible( bool newVal);      
05741         void SetStroke( bool newVal);
05745         void SetStrokeVisible( bool newVal);
05749         void SetFillFirst( bool newVal);
05753         void SetFillOverPrint( bool newVal);
05757         void SetStrokeOverPrint( bool newVal);
05761         void SetFillBackgroundColor( IApplicationPaint newVal);
05765         void SetFillBackground( bool newVal);
05769         void SetLineCap( LineCapType newVal);
05773         void SetLineJoin( LineJoinType newVal);
05777         void SetLineWidth( ATETextDOM::Real newVal);
05781         void SetMiterLimit( ATETextDOM::Real newVal);
05785         void SetLineDashOffset( ATETextDOM::Real newVal);
05789         void SetLineDashArray( IArrayReal newVal);
05790 
05791 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
05792         // ------------------------------------------------------------------
05793         // Complex Script Settings
05794         // ------------------------------------------------------------------
05795 
05800         void SetKashidas( Kashidas newVal);
05805         void SetDirOverride( DirOverride newVal);
05810         void SetDigitSet( DigitSet newVal);
05815         void SetDiacVPos( DiacVPos newVal);
05820         void SetDiacXOffset( ATETextDOM::Real newVal);
05825         void SetDiacYOffset( ATETextDOM::Real newVal);
05830         void SetAutoMydfb( bool newVal);
05835         void SetMarkYDistFromBaseline( ATETextDOM::Real newVal);
05840         void SetOverlapSwash( bool newVal);
05845         void SetJustificationAlternates( bool newVal);
05850         void SetStretchedAlternates( bool newVal);
05851 #endif
05852 
05853         // ======================================================================
05854         // CLEAR PROPERTIES
05855         // ======================================================================
05856 
05859         void ClearFont( );
05862         void ClearFontSize( );
05865         void ClearHorizontalScale( );
05868         void ClearVerticalScale( );
05871         void ClearAutoLeading( );
05874         void ClearLeading( );
05877         void ClearTracking( );
05880         void ClearBaselineShift( );
05883         void ClearCharacterRotation( );
05887         void ClearAutoKernType( );
05890         void ClearFontCapsOption( );
05893         void ClearFontBaselineOption( );
05896         void ClearFontOpenTypePositionOption( );
05899         void ClearStrikethroughPosition( );
05902         void ClearUnderlinePosition( );
05905         void ClearUnderlineOffset( );
05906         // ------------------------------------------------------------------
05907         // OpenType settings
05908         // ------------------------------------------------------------------
05911         void ClearLigature( );
05914         void ClearDiscretionaryLigatures( );
05917         void ClearContextualLigatures( );
05920         void ClearAlternateLigatures( );
05923         void ClearOldStyle( );
05926         void ClearFractions( );
05929         void ClearOrdinals( );
05932         void ClearSwash( );
05935         void ClearTitling( );
05938         void ClearConnectionForms( );
05941         void ClearStylisticAlternates( );
05944         void ClearStylisticSets();
05947         void ClearOrnaments( );
05950         void ClearFigureStyle( );
05951         // ------------------------------------------------------------------
05952         // Japanese OpenType settings
05953         // ------------------------------------------------------------------
05956         void ClearProportionalMetrics( );
05959         void ClearKana( );
05962         void ClearItalics( );
05965         void ClearRuby( );
05968         void ClearBaselineDirection( );
05971         void ClearLanguage( );
05974         void ClearJapaneseAlternateFeature( );
05977         void ClearTsume( );
05980         void ClearStyleRunAlignment( );
05981         // ------------------------------------------------------------------
05982         // WariChu settings
05983         // ------------------------------------------------------------------
05986         void ClearWariChuEnabled( );
05989         void ClearWariChuLineCount( );
05992         void ClearWariChuLineGap( );
05995         void ClearWariChuSubLineAmount( );
05998         void ClearWariChuWidowAmount( );
06001         void ClearWariChuOrphanAmount( );
06004         void ClearWariChuJustification( );
06007         void ClearTCYUpDownAdjustment( );
06010         void ClearTCYLeftRightAdjustment( );
06013         void ClearLeftAki( );
06016         void ClearRightAki( );
06017         // ------------------------------------------------------------------
06018         // General settings
06019         // ------------------------------------------------------------------
06022         void ClearNoBreak( );
06025         void ClearFillColor( );
06028         void ClearStrokeColor( );
06031         void ClearFill( );
06034         void ClearFillVisible( );
06037         void ClearStroke( );
06040         void ClearStrokeVisible( );
06043         void ClearFillFirst( );
06046         void ClearFillOverPrint( );
06049         void ClearStrokeOverPrint( );
06052         void ClearFillBackgroundColor( );
06055         void ClearFillBackground( );
06058         void ClearLineCap( );
06061         void ClearLineJoin( );
06064         void ClearLineWidth( );
06067         void ClearMiterLimit( );
06070         void ClearLineDashOffset( );
06073         void ClearLineDashArray( );
06074 
06075 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
06076         // ------------------------------------------------------------------
06077         // Complex Script Settings
06078         // ------------------------------------------------------------------
06079 
06083         void ClearKashidas( );
06087         void ClearDirOverride( );
06091         void ClearDigitSet( );
06095         void ClearDiacVPos( );
06099         void ClearDiacXOffset( );
06103         void ClearDiacYOffset( );
06107         void ClearAutoMydfb( );
06111         void ClearMarkYDistFromBaseline( );
06115         void ClearOverlapSwash( );
06119         void ClearJustificationAlternates( );
06123         void ClearStretchedAlternates( );
06124 #endif
06125 
06127         // ALGEBRA METHODS
06129 
06136         bool IntersectFeatures( ICharFeatures rhs);
06141         bool ReplaceOrAddFeatures( ICharFeatures rhs);
06146         bool UnassignEachIfEqual( ICharFeatures rhs);
06147 
06150         bool IsEachNotAssigned( ) const;
06153         bool IsEachAssigned( ) const;
06154 
06155 };
06156 
06158 //       --ICharInspector--
06160 
06171 class ICharInspector
06172 {
06173 private:
06174         CharInspectorRef        fCharInspector;
06175 public:
06179         ICharInspector();
06183         ICharInspector(const ICharInspector& src);
06187         ICharInspector& operator=(const ICharInspector& rhs);
06191         bool operator==(const ICharInspector& rhs) const;
06195         bool operator!=(const ICharInspector& rhs) const;
06201         explicit ICharInspector(CharInspectorRef charinspector);
06203         virtual ~ICharInspector();
06206         CharInspectorRef GetRef() const;
06209         bool IsNull() const;
06210 
06211         //------------------------------------------------------------
06212         // Properties
06213         //------------------------------------------------------------
06214 
06217         IArrayFontRef GetFont( ) const;
06220         IArrayReal GetFontSize( ) const;
06223         IArrayReal GetHorizontalScale( ) const;
06226         IArrayReal GetVerticalScale( ) const;
06229         IArrayBool GetSyntheticBold( ) const;
06232         IArrayBool GetSyntheticItalic( ) const;
06235         IArrayBool GetAutoLeading( ) const;
06238         IArrayReal GetLeading( ) const;
06241         IArrayInteger GetTracking( ) const;
06244         IArrayReal GetBaselineShift( ) const;
06247         IArrayReal GetCharacterRotation( ) const;
06250         IArrayFontCapsOption GetFontCapsOption( ) const;
06253         IArrayFontBaselineOption GetFontBaselineOption( ) const;
06256         IArrayFontOpenTypePositionOption GetFontOpenTypePositionOption( ) const;
06259         IArrayStrikethroughPosition GetStrikethroughPosition( ) const;
06262         IArrayUnderlinePosition GetUnderlinePosition( ) const;
06265         IArrayReal GetUnderlineOffset( ) const;
06266 
06267         // ------------------------------------------------------------------
06268         // OpenType settings
06269         // ------------------------------------------------------------------
06272         IArrayBool GetLigature( ) const;
06275         IArrayBool GetDiscretionaryLigatures( ) const;
06278         IArrayBool GetContextualLigatures( ) const;
06281         IArrayBool GetAlternateLigatures( ) const;
06284         IArrayBool GetOldStyle( ) const;
06287         IArrayBool GetFractions( ) const;
06290         IArrayBool GetOrdinals( ) const;
06293         IArrayBool GetSwash( ) const;
06296         IArrayBool GetTitling( ) const;
06299         IArrayBool GetConnectionForms( ) const;
06302         IArrayBool GetStylisticAlternates( ) const;
06305         IArrayInteger GetStylisticSets( ) const;
06308         IArrayBool GetOrnaments( ) const;
06311         IArrayFigureStyle GetFigureStyle( ) const;
06312         // ------------------------------------------------------------------
06313         // Japanese OpenType settings
06314         // ------------------------------------------------------------------
06317         IArrayBool GetProportionalMetrics( ) const;
06320         IArrayBool GetKana( ) const;
06323         IArrayBool GetItalics( ) const;
06326         IArrayBool GetRuby( ) const;
06329         IArrayBaselineDirection GetBaselineDirection( ) const;
06332         IArrayLanguage GetLanguage( ) const;
06335         IArrayReal GetTsume( ) const;
06338         IArrayStyleRunAlignment GetStyleRunAlignment( ) const;
06339         // ------------------------------------------------------------------
06340         // WariChu settings
06341         // ------------------------------------------------------------------
06344         IArrayInteger GetWariChuLineCount( ) const;
06347         IArrayInteger GetWariChuLineGap( ) const;
06350         IArrayReal GetWariChuScale( ) const;
06353         IArrayReal GetWariChuSize( ) const;
06356         IArrayInteger GetWariChuWidowAmount( ) const;
06359         IArrayInteger GetWariChuOrphanAmount( ) const;
06362         IArrayWariChuJustification GetWariChuJustification( ) const;
06365         IArrayBool GetWariChuEnabled( ) const;
06368         IArrayInteger GetTCYUpDownAdjustment( ) const;
06371         IArrayInteger GetTCYLeftRightAdjustment( ) const;
06374         IArrayReal GetLeftAki( ) const;
06377         IArrayReal GetRightAki( ) const;
06378 
06379         // ------------------------------------------------------------------
06380         // General settings
06381         // ------------------------------------------------------------------
06382 
06385         IArrayBool GetNoBreak( ) const;
06388         IArrayApplicationPaintRef GetFillColor( ) const;
06391         IArrayApplicationPaintRef GetStrokeColor( ) const;
06394         IArrayBool GetFill( ) const;
06397         IArrayBool GetFillVisible( ) const;
06400         IArrayBool GetStroke( ) const;
06403         IArrayBool GetStrokeVisible( ) const;
06406         IArrayBool GetFillFirst( ) const;
06409         IArrayBool GetFillOverPrint( ) const;
06412         IArrayBool GetStrokeOverPrint( ) const;
06415         IArrayApplicationPaintRef GetFillBackgroundColor( ) const;
06418         IArrayBool GetFillBackground( ) const;
06421         IArrayLineCapType GetLineCap( ) const;
06424         IArrayLineJoinType GetLineJoin( ) const;
06427         IArrayReal GetLineWidth( ) const;
06430         IArrayReal GetMiterLimit( ) const;
06433         IArrayReal GetLineDashOffset( ) const;
06436         IArrayArrayReal GetLineDashArray( ) const;
06437 
06438 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
06439         // ------------------------------------------------------------------
06440         // Complex Script Settings
06441         // ------------------------------------------------------------------
06442 
06446         IArrayKashidas GetKashidas( ) const;
06450         IArrayDirOverride GetDirOverride( ) const;
06454         IArrayDigitSet GetDigitSet( ) const;
06458         IArrayDiacVPos GetDiacVPos( ) const;
06462         IArrayReal GetDiacXOffset( ) const;
06466         IArrayReal GetDiacYOffset( ) const;
06470         IArrayBool GetAutoMydfb( ) const;
06474         IArrayReal GetMarkYDistFromBaseline( ) const;
06478         IArrayBool GetOverlapSwash( ) const;
06482         IArrayBool GetJustificationAlternates( ) const;
06486         IArrayBool GetStretchedAlternates( ) const;
06487 #endif
06488 
06489 };
06490 
06492 //       --ICharStyle--
06494 
06510 class ICharStyle
06511 {
06512 private:
06513         CharStyleRef    fCharStyle;
06514 public:
06518         ICharStyle();
06522         ICharStyle(const ICharStyle& src);
06526         ICharStyle& operator=(const ICharStyle& rhs);
06530         bool operator==(const ICharStyle& rhs) const;
06534         bool operator!=(const ICharStyle& rhs) const;
06540         explicit ICharStyle(CharStyleRef charstyle);
06542         virtual ~ICharStyle();
06545         CharStyleRef GetRef() const;
06548         bool IsNull() const;
06549 
06550         //-------------------------------------------------
06551         // Properties
06552         //-------------------------------------------------
06553 
06559         ATETextDOM::Int32 GetName( ATETextDOM::Unicode* pName, ATETextDOM::Int32 maxLength) const;
06565         bool SetName( const ATETextDOM::Unicode* pName);
06569         ICharStyle GetParent( ) const;
06575         bool SetParent( const ICharStyle pStyle);
06579         bool HasParent( ) const;
06583         ICharFeatures GetFeatures( ) const;
06590         void SetFeatures( ICharFeatures pFeatures);
06598         void ReplaceOrAddFeatures( ICharFeatures pFeatures);
06599 
06600 };
06601 
06603 //       --ICharStyles--
06605 
06609 class ICharStyles
06610 {
06611 private:
06612         CharStylesRef   fCharStyles;
06613 public:
06616         ICharStyles();
06620         ICharStyles(const ICharStyles& src);
06624         ICharStyles& operator=(const ICharStyles& rhs);
06628         bool operator==(const ICharStyles& rhs) const;
06632         bool operator!=(const ICharStyles& rhs) const;
06638         explicit ICharStyles(CharStylesRef charstyles);
06640         virtual ~ICharStyles();
06643         CharStylesRef GetRef() const;
06646         bool IsNull() const;
06647 
06648         //-----------------------------------------------------------
06649         // METHODS
06650         //-----------------------------------------------------------
06651 
06654         bool IsEmpty( ) const;
06655 
06658         ATETextDOM::Int32 GetSize( ) const;
06659 
06664         void ShowAllStyles( ) const;
06669         void ShowOnlyUnreferencedStyles( ) const;
06675         void ShowOnlyStylesReferencedIn( ITextRange pRange) const;
06681         void MoveStyleTo( ICharStyle pStyle, ATETextDOM::Int32 position);
06682 
06683 };
06684 
06686 //       --ICharStylesIterator--
06688 
06691 class ICharStylesIterator
06692 {
06693 private:
06694         CharStylesIteratorRef   fCharStylesIterator;
06695 public:
06698         ICharStylesIterator();
06702         ICharStylesIterator(const ICharStylesIterator& src);
06706         ICharStylesIterator& operator=(const ICharStylesIterator& rhs);
06710         bool operator==(const ICharStylesIterator& rhs) const;
06714         bool operator!=(const ICharStylesIterator& rhs) const;
06720         explicit ICharStylesIterator(CharStylesIteratorRef charstylesiterator);
06722         virtual ~ICharStylesIterator();
06725         CharStylesIteratorRef GetRef() const;
06728         bool IsNull() const;
06729 
06736         ICharStylesIterator( ICharStyles pStyles, Direction direction = kForward);
06737 
06738         //------------------------------------------------------
06739         // Methods
06740         //------------------------------------------------------
06743         bool IsNotDone( ) const;
06746         bool IsDone( ) const;
06749         bool IsEmpty( ) const;
06752         void MoveToFirst( );
06755         void MoveToLast( );
06758         void Next( );
06761         void Previous( );
06764         ICharStyle Item( ) const;
06765 
06766 };
06767 
06769 //       --IFind--
06771 
06788 class IFind
06789 {
06790 private:
06791         FindRef fFind;
06792 public:
06795         IFind();
06799         IFind(const IFind& src);
06803         IFind& operator=(const IFind& rhs);
06807         bool operator==(const IFind& rhs) const;
06811         bool operator!=(const IFind& rhs) const;
06817         explicit IFind(FindRef find);
06819         virtual ~IFind();
06822         FindRef GetRef() const;
06825         bool IsNull() const;
06826 
06827         //------------------------------------------------------
06828         // Options
06829         //------------------------------------------------------
06834         Direction GetSearchDirection( ) const;
06839         bool GetIgnoreCase( ) const;
06843         bool GetWholeWord( ) const;
06847         bool GetWrap( ) const;
06851         bool GetFindWordsOutOfBounds( ) const;
06852 
06853 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
06854 
06857         bool GetIgnoreAccents( ) const;
06861         bool GetIgnoreKashidas( ) const;
06862 #endif  
06863 
06868         void SetSearchDirection( Direction newValue);
06874         void SetIgnoreCase( bool newValue);
06880         void SetWholeWord( bool newValue);
06886         void SetWrap( bool newValue);
06892         void SetFindWordsOutOfBounds( bool newValue);
06893 
06894 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
06895 
06899         void SetIgnoreAccents( bool newValue);
06904         void SetIgnoreKashidas( bool newValue);
06905 #endif
06906 
06911         SearchScope GetSearchScope( ) const;
06917         void SetSearchScope( SearchScope searchScope);
06924         void SetSearchRange( ITextRange pRange);
06930         void SetSearchChars( ATETextDOM::Unicode* pSearchChars);
06937         void GetSearchChars( ATETextDOM::Unicode* pSearchChars, ATETextDOM::Int32 length) const;
06943         void SetReplaceChars( ATETextDOM::Unicode* pSearchChars);
06951         void GetReplaceChars( ATETextDOM::Unicode* pSearchChars, ATETextDOM::Int32 length) const;
06952         // Temporary way to reset the engine for modeless operation
06953         void Reset( );
06954         //------------------------------------------------------
06955         // Methods
06956         //------------------------------------------------------
06957         // Searches current user selection.
06963         bool FindMatch( ITextRange pTextRange);
06964         // Skips the current user selection.
06971         bool FindNextMatch( ITextRange pTextRange);
06972 
06984         bool ReplaceMatch( ITextRange pTextRange, bool findNext);
06985 
06987         bool FindAndReplaceAllMatches( ATETextDOM::Int32* pReplaceCount);
06988 
06999         void GetPreReplaceAllSettings( ATETextDOM::Int32* pCurrentPoint, ATETextDOM::Int32* pStartPoint) const;
07000 
07008         void RestorePreReplaceAllSettings( const ATETextDOM::Int32 currentPoint, const ATETextDOM::Int32 startPoint);
07009 
07010 };
07011 
07013 //       --IFont--
07015 
07019 class IFont
07020 {
07021 private:
07022         FontRef fFont;
07023 public:
07026         IFont();
07030         IFont(const IFont& src);
07034         IFont& operator=(const IFont& rhs);
07038         bool operator==(const IFont& rhs) const;
07042         bool operator!=(const IFont& rhs) const;
07048         explicit IFont(FontRef font);
07050         virtual ~IFont();
07053         FontRef GetRef() const;
07056         bool IsNull() const;
07057 
07058         //-----------------------------------------------
07059         // METHODS
07060         //-----------------------------------------------
07064         bool IsCoolTypeTechnology( ) const;
07065 
07071         bool IsVerticalRomanGlyphsOnSideByDefault( bool withItalics, StyleRunAlignment characterAlignment) const;
07072 
07075         void* GetCTFontDict( );
07076 
07077 };
07078 
07080 //       --IGlyph--
07082 
07085 class IGlyph
07086 {
07087 private:
07088         GlyphRef        fGlyph;
07089 public:
07092         IGlyph();
07096         IGlyph(const IGlyph& src);
07100         IGlyph& operator=(const IGlyph& rhs);
07104         bool operator==(const IGlyph& rhs) const;
07108         bool operator!=(const IGlyph& rhs) const;
07114         explicit IGlyph(GlyphRef glyph);
07116         virtual ~IGlyph();
07119         GlyphRef GetRef() const;
07122         bool IsNull() const;
07123 
07124         // ========================================================================
07125         // PROPERTIES
07126         // ========================================================================
07127 
07130         ATEGlyphID GetGlyphID( ) const;
07133         IGlyphs GetAlternateGlyphs( ) const;
07139         void GetOTFeatures( char** otFeatures, ATETextDOM::Int32* otFeatureCount, ATETextDOM::Int32** otFeatureIndex);
07140         // RealMatrix   GetTransformation();
07141 
07142 };
07143 
07145 //       --IGlyphs--
07147 
07151 class IGlyphs
07152 {
07153 private:
07154         GlyphsRef       fGlyphs;
07155 public:
07158         IGlyphs();
07162         IGlyphs(const IGlyphs& src);
07166         IGlyphs& operator=(const IGlyphs& rhs);
07170         bool operator==(const IGlyphs& rhs) const;
07174         bool operator!=(const IGlyphs& rhs) const;
07180         explicit IGlyphs(GlyphsRef glyphs);
07182         virtual ~IGlyphs();
07185         GlyphsRef GetRef() const;
07188         bool IsNull() const;
07189         // ========================================================================
07190         // PROPERTIES
07191         // ========================================================================
07194         ATETextDOM::Int32 GetSize( );
07197         IGlyph GetFirst( );
07200         IGlyph GetLast( );
07201         // navigation objects.
07204         ITextRanges GetTextRanges( ) const;
07207         ITextRanges GetTextSelection( ) const;
07211         IParagraphsIterator GetParagraphsIterator( ) const;
07215         ITextRunsIterator GetTextRunsIterator( ) const;
07219         IWordsIterator GetWordsIterator( ) const;
07220         // ========================================================================
07221         // METHODS
07222         // ========================================================================
07230         void Add( const IGlyph& glyph);
07236         IGlyph Item( ATETextDOM::Int32 nIndex) const;
07239         void RemoveAll( );
07243         void Remove( ATETextDOM::Int32 nIndex);
07244 
07245 };
07246 
07248 //       --IGlyphsIterator--
07250 
07252 class IGlyphsIterator
07253 {
07254 private:
07255         GlyphsIteratorRef       fGlyphsIterator;
07256 public:
07259         IGlyphsIterator();
07263         IGlyphsIterator(const IGlyphsIterator& src);
07267         IGlyphsIterator& operator=(const IGlyphsIterator& rhs);
07271         bool operator==(const IGlyphsIterator& rhs) const;
07275         bool operator!=(const IGlyphsIterator& rhs) const;
07281         explicit IGlyphsIterator(GlyphsIteratorRef glyphsiterator);
07283         virtual ~IGlyphsIterator();
07286         GlyphsIteratorRef GetRef() const;
07289         bool IsNull() const;
07290 
07297         IGlyphsIterator( IGlyphs glyphs, Direction direction = kForward);
07298 
07299         //------------------------------------------------------
07300         // Methods
07301         //------------------------------------------------------
07304         bool IsNotDone( ) const;
07307         bool IsDone( ) const;
07310         bool IsEmpty( ) const;
07313         IGlyph GetFirst( );
07316         IGlyph GetLast( );
07319         IGlyph GetNext( );
07322         IGlyph Item( ) const;
07325         void Next( );
07328         void Previous( );
07329 
07330 };
07331 
07333 //       --IKinsoku--
07335 
07339 class IKinsoku
07340 {
07341 private:
07342         KinsokuRef      fKinsoku;
07343 public:
07346         IKinsoku();
07350         IKinsoku(const IKinsoku& src);
07354         IKinsoku& operator=(const IKinsoku& rhs);
07358         bool operator==(const IKinsoku& rhs) const;
07362         bool operator!=(const IKinsoku& rhs) const;
07368         explicit IKinsoku(KinsokuRef kinsoku);
07370         virtual ~IKinsoku();
07373         KinsokuRef GetRef() const;
07376         bool IsNull() const;
07377 
07378         //========================================================================
07379         // PROPERTIES
07380         // =======================================================================
07385         ATETextDOM::Int32 GetName( ATETextDOM::Unicode* name, ATETextDOM::Int32 maxLength) const;
07388         ATETextDOM::Int32 GetNameSize( ) const;
07392         void SetName( const ATETextDOM::Unicode* name);
07397         bool MatchesPredefinedResourceTag( ATE::KinsokuPredefinedTag tag) const;
07402         ATETextDOM::Int32 GetNoStartCharSet( ATETextDOM::Unicode* noStartCharSet, ATETextDOM::Int32 maxLength) const;
07405         ATETextDOM::Int32 GetNoStartCharSetSize( ) const;
07409         void SetNoStartCharSet( const ATETextDOM::Unicode* noStartCharSet);
07414         ATETextDOM::Int32 GetNoEndCharSet( ATETextDOM::Unicode* noEndCharSet, ATETextDOM::Int32 maxLength) const;
07417         ATETextDOM::Int32 GetNoEndCharSetSize( ) const;
07421         void SetNoEndCharSet( const ATETextDOM::Unicode* noEndCharSet);
07426         ATETextDOM::Int32 GetNoBreakCharSet( ATETextDOM::Unicode* noBreakCharSet, ATETextDOM::Int32 maxLength) const;
07429         ATETextDOM::Int32 GetNoBreakCharSetSize( ) const;
07433         void SetNoBreakCharSet( const ATETextDOM::Unicode* noBreakCharSet);
07438         ATETextDOM::Int32 GetHangingCharSet( ATETextDOM::Unicode* hangingCharSet, ATETextDOM::Int32 maxLength) const;
07441         ATETextDOM::Int32 GetHangingCharSetSize( ) const;
07445         void SetHangingCharSet( const ATETextDOM::Unicode* hangingCharSet);
07446         // =======================================================================
07447         // METHODS
07448         // =======================================================================
07449 
07453         bool IsNoStartChar( ATETextDOM::Unicode character) const;
07457         bool IsNoEndChar( ATETextDOM::Unicode character) const;
07461         bool IsNoBreakChar( ATETextDOM::Unicode character) const;
07465         bool IsHangingChar( ATETextDOM::Unicode character) const;
07466 
07469 
07472         bool IsEquivalent( IKinsoku rhsKinsoku) const;
07475         bool IsModified( ) const;
07478         bool IsPredefined( ) const;
07481         IKinsoku Duplicate( ) const;
07482 
07483 };
07484 
07486 //       --IKinsokuSet--
07488 
07490 class IKinsokuSet
07491 {
07492 private:
07493         KinsokuSetRef   fKinsokuSet;
07494 public:
07497         IKinsokuSet();
07501         IKinsokuSet(const IKinsokuSet& src);
07505         IKinsokuSet& operator=(const IKinsokuSet& rhs);
07509         bool operator==(const IKinsokuSet& rhs) const;
07513         bool operator!=(const IKinsokuSet& rhs) const;
07519         explicit IKinsokuSet(KinsokuSetRef kinsokuset);
07521         virtual ~IKinsokuSet();
07524         KinsokuSetRef GetRef() const;
07527         bool IsNull() const;
07528 
07529         // =======================================================================
07530         // PROPERTIES
07531         // =======================================================================
07534         ATETextDOM::Int32 GetSize( );
07537         IKinsoku GetFirst( );
07540         IKinsoku GetLast( );
07541 
07542         // =======================================================================
07543         // METHODS
07544         // =======================================================================
07550         IKinsoku Item( ATETextDOM::Int32 nIndex) const;
07556         ATETextDOM::Int32 Find( IKinsoku kinsoku);
07562         ATETextDOM::Int32 Find( const ATETextDOM::Unicode* name);
07569         ATETextDOM::Int32 Find( KinsokuPredefinedTag tag);
07573         bool Remove( ATETextDOM::Int32 nIndex);
07581         ATETextDOM::Int32 Add( IKinsoku kinsoku);
07587         bool Replace( ATETextDOM::Int32 nIndex, IKinsoku kinsoku);
07588 
07589 };
07590 
07592 //       --IParaFeatures--
07594 
07609 class IParaFeatures
07610 {
07611 private:
07612         ParaFeaturesRef fParaFeatures;
07613 public:
07617         IParaFeatures();
07621         IParaFeatures(const IParaFeatures& src);
07625         IParaFeatures& operator=(const IParaFeatures& rhs);
07629         bool operator==(const IParaFeatures& rhs) const;
07633         bool operator!=(const IParaFeatures& rhs) const;
07639         explicit IParaFeatures(ParaFeaturesRef parafeatures);
07641         virtual ~IParaFeatures();
07644         ParaFeaturesRef GetRef() const;
07647         bool IsNull() const;
07650         IParaFeatures Clone( ) const;
07651 
07652         // ------------------------------------------------------------------
07653         // Justification
07654         // ------------------------------------------------------------------
07659         ParagraphJustification GetJustification( bool* isAssigned) const;
07664         ATETextDOM::Real GetFirstLineIndent( bool* isAssigned) const;
07669         ATETextDOM::Real GetStartIndent( bool* isAssigned) const;
07674         ATETextDOM::Real GetEndIndent( bool* isAssigned) const;
07679         ATETextDOM::Real GetSpaceBefore( bool* isAssigned) const;
07684         ATETextDOM::Real GetSpaceAfter( bool* isAssigned) const;
07685         // ------------------------------------------------------------------
07686         // Hyphenation
07687         // ------------------------------------------------------------------
07692         bool GetAutoHyphenate( bool* isAssigned) const;
07697         ATETextDOM::Int32 GetHyphenatedWordSize( bool* isAssigned) const;
07702         ATETextDOM::Int32 GetPreHyphenSize( bool* isAssigned) const;
07707         ATETextDOM::Int32 GetPostHyphenSize( bool* isAssigned) const;
07712         ATETextDOM::Int32 GetConsecutiveHyphenLimit( bool* isAssigned) const;
07717         ATETextDOM::Real GetHyphenationZone( bool* isAssigned) const;
07722         bool GetHyphenateCapitalized( bool* isAssigned) const;
07727         ATETextDOM::Real GetHyphenationPreference( bool* isAssigned) const;
07728         // ------------------------------------------------------------------
07729         // Justification Features
07730         // ------------------------------------------------------------------
07735         ATETextDOM::Real GetDesiredWordSpacing( bool* isAssigned) const;
07740         ATETextDOM::Real GetMaxWordSpacing( bool* isAssigned) const;
07745         ATETextDOM::Real GetMinWordSpacing( bool* isAssigned) const;
07750         ATETextDOM::Real GetDesiredLetterSpacing( bool* isAssigned) const;
07755         ATETextDOM::Real GetMaxLetterSpacing( bool* isAssigned) const;
07760         ATETextDOM::Real GetMinLetterSpacing( bool* isAssigned) const;
07765         ATETextDOM::Real GetDesiredGlyphScaling( bool* isAssigned) const;
07770         ATETextDOM::Real GetMaxGlyphScaling( bool* isAssigned) const;
07775         ATETextDOM::Real GetMinGlyphScaling( bool* isAssigned) const;
07780         ParagraphJustification GetSingleWordJustification( bool* isAssigned) const;
07785         ATETextDOM::Real GetAutoLeadingPercentage( bool* isAssigned) const;
07790         LeadingType GetLeadingType( bool* isAssigned) const;
07795         ITabStops GetTabStops( bool* isAssigned) const;
07800         ATETextDOM::Real GetDefaultTabWidth( bool* isAssigned) const;
07801         // ------------------------------------------------------------------
07802         // Japanese Features
07803         // ------------------------------------------------------------------
07808         bool GetHangingRoman( bool* isAssigned) const;
07813         ATETextDOM::Int32 GetAutoTCY( bool* isAssigned) const;
07818         bool GetBunriKinshi( bool* isAssigned) const;
07823         BurasagariType GetBurasagariType( bool* isAssigned) const;
07828         PreferredKinsokuOrder GetPreferredKinsokuOrder( bool* isAssigned) const;
07833         bool GetKurikaeshiMojiShori( bool* isAssigned) const;
07838         IKinsoku GetKinsoku( bool* isAssigned) const;
07843         IMojiKumi GetMojiKumi( bool* isAssigned) const;
07844         // ------------------------------------------------------------------
07845         // Other Features
07846         // ------------------------------------------------------------------
07851         bool GetEveryLineComposer( bool* isAssigned) const;
07856         ICharFeatures GetDefaultCharFeatures( bool* isAssigned) const;
07857 
07858 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
07859         // ------------------------------------------------------------------
07860         // Complex Script Features
07861         // ------------------------------------------------------------------
07867         ATE::ParagraphDirection GetParagraphDirection( bool* isAssigned) const;
07873         ATE::JustificationMethod GetJustificationMethod( bool* isAssigned) const;
07879         ATE::KashidaWidth GetKashidaWidth( bool* isAssigned) const;
07880 #endif
07881 
07886         ATE::ComposerEngine GetComposerEngine( bool* isAssigned ) const;
07887 
07888         // ======================================================================
07889         // SET PROPERTIES
07890         // ======================================================================
07891         // ------------------------------------------------------------------
07892         // Justification
07893         // ------------------------------------------------------------------
07897         void SetJustification( ParagraphJustification newVal);
07901         void SetFirstLineIndent( ATETextDOM::Real newVal);
07905         void SetStartIndent( ATETextDOM::Real newVal);
07909         void SetEndIndent( ATETextDOM::Real newVal);
07913         void SetSpaceBefore( ATETextDOM::Real newVal);
07917         void SetSpaceAfter( ATETextDOM::Real newVal);
07918         // ------------------------------------------------------------------
07919         // Hyphenation
07920         // ------------------------------------------------------------------
07924         void SetAutoHyphenate( bool newVal);
07928         void SetHyphenatedWordSize( ATETextDOM::Int32 newVal);
07932         void SetPreHyphenSize( ATETextDOM::Int32 newVal);
07936         void SetPostHyphenSize( ATETextDOM::Int32 newVal);
07940         void SetConsecutiveHyphenLimit( ATETextDOM::Int32 newVal);
07944         void SetHyphenationZone( ATETextDOM::Real newVal);
07948         void SetHyphenateCapitalized( bool newVal);
07952         void SetHyphenationPreference( ATETextDOM::Real newVal);
07953         // ------------------------------------------------------------------
07954         // Justification Features
07955         // ------------------------------------------------------------------
07959         void SetDesiredWordSpacing( ATETextDOM::Real newVal);
07963         void SetMaxWordSpacing( ATETextDOM::Real newVal);
07967         void SetMinWordSpacing( ATETextDOM::Real newVal);
07971         void SetDesiredLetterSpacing( ATETextDOM::Real newVal);
07975         void SetMaxLetterSpacing( ATETextDOM::Real newVal);
07979         void SetMinLetterSpacing( ATETextDOM::Real newVal);
07983         void SetDesiredGlyphScaling( ATETextDOM::Real newVal);
07987         void SetMaxGlyphScaling( ATETextDOM::Real newVal);
07991         void SetMinGlyphScaling( ATETextDOM::Real newVal);
07995         void SetSingleWordJustification( ParagraphJustification newVal);
07999         void SetAutoLeadingPercentage( ATETextDOM::Real newVal);
08003         void SetLeadingType( LeadingType newVal);
08007         void SetTabStops( ITabStops newVal);
08011         void SetDefaultTabWidth( ATETextDOM::Real newVal);
08012         // ------------------------------------------------------------------
08013         // Japanese Features
08014         // ------------------------------------------------------------------
08018         void SetHangingRoman( bool newVal);
08022         void SetAutoTCY( ATETextDOM::Int32 newVal);
08026         void SetBunriKinshi( bool newVal);
08030         void SetBurasagariType( BurasagariType newVal);
08034         void SetPreferredKinsokuOrder( PreferredKinsokuOrder newVal);
08038         void SetKurikaeshiMojiShori( bool newVal);
08042         void SetKinsoku( IKinsoku newVal);
08046         void SetMojiKumi( IMojiKumi newVal);
08047         // ------------------------------------------------------------------
08048         // Other Features
08049         // ------------------------------------------------------------------
08053         void SetEveryLineComposer( bool newVal);
08057         void SetDefaultCharFeatures( ICharFeatures newVal);
08058 
08059 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
08060         // ------------------------------------------------------------------
08061         // Complex Script Features
08062         // ------------------------------------------------------------------
08067         void SetParagraphDirection( ATE::ParagraphDirection newVal);
08072         void SetJustificationMethod( ATE::JustificationMethod newVal);
08077         void SetKashidaWidth( ATE::KashidaWidth newVal);
08078 #endif
08079 
08083         void SetComposerEngine( ATE::ComposerEngine newVal);
08084 
08085         // ======================================================================
08086         // CLEAR PROPERTIES
08087         // ======================================================================
08088         // ------------------------------------------------------------------
08089         // Justification
08090         // ------------------------------------------------------------------
08093         void ClearJustification( );
08096         void ClearFirstLineIndent( );
08099         void ClearStartIndent( );
08102         void ClearEndIndent( );
08105         void ClearSpaceBefore( );
08108         void ClearSpaceAfter( );
08109         // ------------------------------------------------------------------
08110         // Hyphenation
08111         // ------------------------------------------------------------------
08114         void ClearAutoHyphenate( );
08117         void ClearHyphenatedWordSize( );
08120         void ClearPreHyphenSize( );
08123         void ClearPostHyphenSize( );
08126         void ClearConsecutiveHyphenLimit( );
08129         void ClearHyphenationZone( );
08132         void ClearHyphenateCapitalized( );
08135         void ClearHyphenationPreference( );
08136         // ------------------------------------------------------------------
08137         // Justification Features
08138         // ------------------------------------------------------------------
08141         void ClearWordSpacing( );
08144         void ClearLetterSpacing( );
08147         void ClearGlyphScaling( );
08150         void ClearSingleWordJustification( );
08153         void ClearAutoLeadingPercentage( );
08156         void ClearLeadingType( );
08159         void ClearTabStops( );
08160         // ------------------------------------------------------------------
08161         // Japanese Features
08162         // ------------------------------------------------------------------
08165         void ClearHangingRoman( );
08168         void ClearAutoTCY( );
08171         void ClearBunriKinshi( );
08174         void ClearBurasagariType( );
08177         void ClearPreferredKinsokuOrder( );
08180         void ClearKurikaeshiMojiShori( );
08183         void ClearKinsoku( );
08186         void ClearMojiKumi( );
08187         // ------------------------------------------------------------------
08188         // Other Features
08189         // ------------------------------------------------------------------
08192         void ClearEveryLineComposer( );
08195         void ClearDefaultCharFeatures( );
08196 
08197 #if SLO_COMPLEXSCRIPT // Available for use in Middle Eastern versions of the product only.
08198         // ------------------------------------------------------------------
08199         // Complex Script Features
08200         // ------------------------------------------------------------------
08204         void ClearParagraphDirection( );
08208         void ClearJustificationMethod( );
08212         void ClearKashidaWidth( );
08213 #endif
08214 
08217         void ClearComposerEngine( );
08218 
08220         // ALGEBRA METHODS
08222 
08229         bool IntersectFeatures( IParaFeatures rhs);
08234         bool ReplaceOrAddFeatures( IParaFeatures rhs);
08239         bool UnassignEachIfEqual( const IParaFeatures rhs);
08240 
08243         bool IsEachNotAssigned( ) const;
08246         bool IsEachAssigned( ) const;
08247 
08248 };
08249 
08251 //       --IParagraph--
08253 
08263 class IParagraph
08264 {
08265 private:
08266         ParagraphRef    fParagraph;
08267 public:
08270         IParagraph();
08274         IParagraph(const IParagraph& src);
08278         IParagraph& operator=(const IParagraph& rhs);
08282         bool operator==(const IParagraph& rhs) const;
08286         bool operator!=(const IParagraph& rhs) const;
08292         explicit IParagraph(ParagraphRef paragraph);
08294         virtual ~IParagraph();
08297         ParagraphRef GetRef() const;
08300         bool IsNull() const;
08301 
08302         // ========================================================================
08303         // PROPERTIES
08304         // ========================================================================
08307         ATETextDOM::Int32 GetLength( );
08308         // navigation objects.
08311         IStory GetStory( );
08314         ITextRange GetTextRange( );
08317         ITextRanges GetTextRanges( );
08320         ITextRanges GetTextSelection( );
08323         IWordsIterator GetWordsIterator( );
08324         // ========================================================================
08325         // METHODS
08326         // ========================================================================
08329         IParagraph GetNext( );
08332         IParagraph GetPrev( );
08337         ATETextDOM::ATETextDomErr GetContents( ATETextDOM::Unicode* text, ATETextDOM::Int32 maxLength);
08342         ATETextDOM::ATETextDomErr GetContents( char* text, ATETextDOM::Int32 maxLength);
08343 
08344 };
08345 
08347 //       --IParagraphsIterator--
08349 
08355 class IParagraphsIterator
08356 {
08357 private:
08358         ParagraphsIteratorRef   fParagraphsIterator;
08359 public:
08362         IParagraphsIterator();
08366         IParagraphsIterator(const IParagraphsIterator& src);
08370         IParagraphsIterator& operator=(const IParagraphsIterator& rhs);
08374         bool operator==(const IParagraphsIterator& rhs) const;
08378         bool operator!=(const IParagraphsIterator& rhs) const;
08384         explicit IParagraphsIterator(ParagraphsIteratorRef paragraphsiterator);
08386         virtual ~IParagraphsIterator();
08389         ParagraphsIteratorRef GetRef() const;
08392         bool IsNull() const;
08393 
08400         IParagraphsIterator( ITextRanges ranges, Direction direction = kForward);
08401         //------------------------------------------------------
08402         // Methods
08403         //------------------------------------------------------
08406         bool IsDone( ) const;
08409         bool IsNotDone( ) const;
08412         bool IsEmpty( ) const;
08415         void MoveToFirst( );
08418         void MoveToLast( );
08421         void Next( );
08424         IParagraph Item( );
08425 
08426 };
08427 
08429 //       --IParaInspector--
08431 
08441 class IParaInspector
08442 {
08443 private:
08444         ParaInspectorRef        fParaInspector;
08445 public:
08448         IParaInspector();
08452         IParaInspector(const IParaInspector& src);
08456         IParaInspector& operator=(const IParaInspector& rhs);
08460         bool operator==(const IParaInspector& rhs) const;
08464         bool operator!=(const IParaInspector& rhs) const;
08470         explicit IParaInspector(ParaInspectorRef parainspector);
08472         virtual ~IParaInspector();
08475         ParaInspectorRef GetRef() const;
08478         bool IsNull() const;
08479 
08480         // ------------------------------------------------------------------
08481         // Justification
08482         // ------------------------------------------------------------------
08485         IArrayParagraphJustification GetJustification( ) const;
08488         IArrayReal GetFirstLineIndent( ) const;
08491         IArrayReal GetStartIndent( ) const;
08494         IArrayReal GetEndIndent( ) const;
08497         IArrayReal GetSpaceBefore( ) const;
08500         IArrayReal GetSpaceAfter( ) const;
08501         // ------------------------------------------------------------------
08502         // Hyphenation
08503         // ------------------------------------------------------------------
08506         IArrayBool GetAutoHyphenate( ) const;
08509         IArrayInteger GetHyphenatedWordSize( ) const;
08512         IArrayInteger GetPreHyphenSize( ) const;
08515         IArrayInteger GetPostHyphenSize( ) const;
08518         IArrayInteger GetConsecutiveHyphenLimit( ) const;
08521         IArrayReal GetHyphenationZone( ) const;
08524         IArrayBool GetHyphenateCapitalized( ) const;
08527         IArrayReal GetHyphenationPreference( ) const;
08528         // ------------------------------------------------------------------
08529         // Justification Features
08530         // ------------------------------------------------------------------
08533         IArrayReal GetDesiredWordSpacing( ) const;
08536         IArrayReal GetMaxWordSpacing( ) const;
08539         IArrayReal GetMinWordSpacing( ) const;
08542         IArrayReal GetDesiredLetterSpacing( ) const;
08545         IArrayReal GetMaxLetterSpacing( ) const;
08548         IArrayReal GetMinLetterSpacing( ) const;
08551         IArrayReal GetDesiredGlyphScaling( ) const;
08554         IArrayReal GetMaxGlyphScaling( ) const;
08557         IArrayReal GetMinGlyphScaling( ) const;
08560         IArrayParagraphJustification GetSingleWordJustification( ) const;
08563         IArrayReal GetAutoLeadingPercentage( ) const;
08566         IArrayLeadingType GetLeadingType( ) const;
08569         IArrayTabStopsRef GetTabStops( ) const;
08572         IArrayReal GetDefaultTabWidth( ) const;
08573         // ------------------------------------------------------------------
08574         // Japanese Features
08575         // ------------------------------------------------------------------
08578         IArrayBool GetHangingRoman( ) const;
08581         IArrayInteger GetAutoTCY( ) const;
08584         IArrayBool GetBunriKinshi( ) const;
08587         IArrayBurasagariType GetBurasagariType( ) const;
08590         IArrayPreferredKinsokuOrder GetPreferredKinsokuOrder( ) const;
08593         IArrayBool GetKurikaeshiMojiShori( ) const;
08596         IArrayKinsokuRef GetKinsoku( ) const;
08599         IArrayMojiKumiRef GetMojiKumi( ) const;
08600         // ------------------------------------------------------------------
08601         // Other Features
08602         // ------------------------------------------------------------------
08605         IArrayBool GetEveryLineComposer( ) const;
08606 
08607 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
08608         // ------------------------------------------------------------------
08609         // Complex Script Features
08610         // ------------------------------------------------------------------
08614         IArrayParagraphDirection GetParagraphDirection( ) const;
08618         IArrayJustificationMethod GetJustificationMethod( ) const;
08622         IArrayKashidaWidth GetKashidaWidth( ) const;
08623 #endif
08624 
08627         IArrayComposerEngine GetComposerEngine( ) const;
08628 
08629 };
08630 
08632 //       --IParaStyle--
08634 
08650 class IParaStyle
08651 {
08652 private:
08653         ParaStyleRef    fParaStyle;
08654 public:
08657         IParaStyle();
08661         IParaStyle(const IParaStyle& src);
08665         IParaStyle& operator=(const IParaStyle& rhs);
08669         bool operator==(const IParaStyle& rhs) const;
08673         bool operator!=(const IParaStyle& rhs) const;
08679         explicit IParaStyle(ParaStyleRef parastyle);
08681         virtual ~IParaStyle();
08684         ParaStyleRef GetRef() const;
08687         bool IsNull() const;
08688 
08694         ATETextDOM::Int32 GetName( ATETextDOM::Unicode* pName, ATETextDOM::Int32 maxLength) const;
08700         bool SetName( const ATETextDOM::Unicode* pName);
08704         IParaStyle GetParent( ) const;
08710         bool SetParent( const IParaStyle pStyle);
08714         bool HasParent( ) const;
08718         IParaFeatures GetFeatures( ) const;
08725         void SetFeatures( IParaFeatures pFeatures);
08733         void ReplaceOrAddFeatures( IParaFeatures pFeatures);
08734 
08735 };
08736 
08738 //       --IParaStyles--
08740 
08744 class IParaStyles
08745 {
08746 private:
08747         ParaStylesRef   fParaStyles;
08748 public:
08751         IParaStyles();
08755         IParaStyles(const IParaStyles& src);
08759         IParaStyles& operator=(const IParaStyles& rhs);
08763         bool operator==(const IParaStyles& rhs) const;
08767         bool operator!=(const IParaStyles& rhs) const;
08773         explicit IParaStyles(ParaStylesRef parastyles);
08775         virtual ~IParaStyles();
08778         ParaStylesRef GetRef() const;
08781         bool IsNull() const;
08782 
08783         //------------------------------------------------------
08784         // Methods
08785         //------------------------------------------------------
08788         bool IsEmpty( ) const;
08791         ATETextDOM::Int32 GetSize( ) const;
08796         void ShowAllStyles( ) const;
08801         void ShowOnlyUnreferencedStyles( ) const;
08807         void ShowOnlyStylesReferencedIn( ITextRange pRange) const;
08813         void MoveStyleTo( IParaStyle pStyle, ATETextDOM::Int32 position);
08814 
08815 };
08816 
08818 //       --IParaStylesIterator--
08820 
08824 class IParaStylesIterator
08825 {
08826 private:
08827         ParaStylesIteratorRef   fParaStylesIterator;
08828 public:
08831         IParaStylesIterator();
08835         IParaStylesIterator(const IParaStylesIterator& src);
08839         IParaStylesIterator& operator=(const IParaStylesIterator& rhs);
08843         bool operator==(const IParaStylesIterator& rhs) const;
08847         bool operator!=(const IParaStylesIterator& rhs) const;
08853         explicit IParaStylesIterator(ParaStylesIteratorRef parastylesiterator);
08855         virtual ~IParaStylesIterator();
08858         ParaStylesIteratorRef GetRef() const;
08861         bool IsNull() const;
08862 
08869         IParaStylesIterator( IParaStyles paraStyles, Direction direction = kForward);
08870         //------------------------------------------------------
08871         // Methods
08872         //------------------------------------------------------
08875         bool IsNotDone( ) const;
08878         bool IsDone( ) const;
08881         bool IsEmpty( ) const;
08884         void MoveToFirst( );
08887         void MoveToLast( );
08890         void Next( );
08893         void Previous( );
08896         IParaStyle Item( ) const;
08897 
08898 };
08899 
08901 //       --ISpell--
08903 
08920 class ISpell
08921 {
08922 private:
08923         SpellRef        fSpell;
08924 public:
08927         ISpell();
08931         ISpell(const ISpell& src);
08935         ISpell& operator=(const ISpell& rhs);
08939         bool operator==(const ISpell& rhs) const;
08943         bool operator!=(const ISpell& rhs) const;
08949         explicit ISpell(SpellRef spell);
08951         virtual ~ISpell();
08954         SpellRef GetRef() const;
08957         bool IsNull() const;
08958 
08959         // ========================================================================
08960         // Options
08961         // ========================================================================
08964         void Initialize( );
08967         bool IsInitialized( );
08970         bool GetIgnoreWordsInAllUppercase( ) const;
08973         bool GetIgnoreWordsWithNumbers( ) const;
08976         bool GetIgnoreRomanNumerals( ) const;
08979         bool GetIgnoreRepeatedWords( ) const;
08982         bool GetIgnoreUncapitalizedStartOfSentence( ) const;
08983 
08984 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
08985 
08988         bool GetStrictYeh( ) const;
08992         bool GetStrictAlef( ) const;
08993 #endif
08994 
08998         void SetIgnoreWordsInAllUppercase( bool newValue);
09002         void SetIgnoreWordsWithNumbers( bool newValue);
09006         void SetIgnoreRomanNumerals( bool newValue);
09010         void SetIgnoreRepeatedWords( bool newValue);
09014         void SetIgnoreUncapitalizedStartOfSentence( bool newValue);
09015 
09016 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
09017 
09021         void SetStrictYeh( bool newValue);
09026         void SetStrictAlef( bool newValue);
09027 #endif
09028 
09032         SearchScope GetSearchScope( ) const;
09036         void SetSearchScope( SearchScope searchScope);
09037 
09046     void SetSearchRange( const ITextRange& pRange, const bool resetEndOfSentence = true, const bool resetCurPos = true, const bool includeWordsOnSearchBoundary = true);
09047 
09050         void Reset( );
09058         void ResumeFrom( const ATETextDOM::Int32 resumePoint);
09059         // Use this to resume from the current insertion point.
09062         void ResumeFromInsertionPoint( );
09063 
09064         // ========================================================================
09065         // Methods
09066         // ========================================================================
09067 
09077         bool FindOneMisspelledWord( SpellCheckingResult* pResult, ITextRange pRange, Language* pLanguage = NULL, bool populateSuggestionList = true );
09082         ATETextDOM::Int32 GetWordListSize( );
09091         void GetWordListContents( ATETextDOM::Unicode*   pWordListBuffer, ATETextDOM::Int32    sizeOfBuffer, ATETextDOM::Int32*   pNumberOfWords);
09096         void Replace( ITextRange pRange, const ATETextDOM::Unicode* pCorrection);
09097 
09098         // Use this to add an entry to a pair dictionary, binding the selected word to rCorrection.
09103         void AddSelectedToReplaceAllDict( const ATETextDOM::Unicode* pCorrection);
09104 
09107         bool DoReplaceAll( );
09108 
09119         void GetPreReplaceAllSettings( ATETextDOM::Int32* pCurrentPoint, bool* pFoundSentenceEnd) const;
09120         // Implement a loop to go through all the text objects you want to replace all with.
09121         // Use this to find all instances of the target word in the current text object.
09122         // Keep calling it until it returns false, making sure to set firstTimeInThisObject as needed.
09123         // It will return the text range to select and call ReplaceSelected( ) with.
09132         bool FindReplaceAllWord( ITextRange pRange, const bool firstTimeInThisObject);
09141         void RestorePreReplaceAllSettings( const ATETextDOM::Int32 currentPoint, const bool foundSentenceEnd);
09142 
09144 
09148         void ClearPairDictionary( );
09149 
09152         void AddSelectedToUserDict( );
09153 
09158         void GetUserDictionaryContents( );
09163         bool AddToUserDictionary( const ATETextDOM::Unicode* pWord);
09167         void DeleteFromUserDictionary( const ATETextDOM::Unicode* pWord);
09172         bool WordExistsInUserDictionary( const ATETextDOM::Unicode* pWord, const ATE::CheckEquivalentFormsSetting checkEquivalentFormsSetting);
09177     bool WordExistsInIgnoreDictionary( const ATETextDOM::Unicode* pWord, const ATE::CheckEquivalentFormsSetting checkEquivalentFormsSetting);
09181         void AddSelectedToIgnoreList( );
09185         void ClearIgnoreList( );
09188         Language GetLanguageOfLastMissingDictionary( );
09189         //param @out : the size of the length of the path
09190         //      @in  : the memory where the path is to be stored
09191         ATETextDOM::Int32 GetSpellingDictionaryPath(ATETextDOM::Unicode* path);
09192 };
09193 
09195 //       --IStories--
09197 
09200 class IStories
09201 {
09202 private:
09203         StoriesRef      fStories;
09204 public:
09207         IStories();
09211         IStories(const IStories& src);
09215         IStories& operator=(const IStories& rhs);
09219         bool operator==(const IStories& rhs) const;
09223         bool operator!=(const IStories& rhs) const;
09229         explicit IStories(StoriesRef stories);
09231         virtual ~IStories();
09234         StoriesRef GetRef() const;
09237         bool IsNull() const;
09238 
09241         ATETextDOM::Int32 GetSize( ) const;
09244         IStory GetFirst( );
09247         IStory GetLast( );
09248         // Focus methods
09254         bool HasFocus( ) const;
09257         IStory GetFocus( ) const;
09261         void SetFocus( const IStory& story);
09265         void LoseFocus( );
09266         // Navigation objects.
09269         ITextRanges GetTextRanges( ) const;
09272         ITextRanges GetTextSelection( ) const;
09275         IParagraphsIterator GetParagraphsIterator( ) const;
09278         IWordsIterator GetWordsIterator( ) const;
09281         ITextRunsIterator GetTextRunsIterator( ) const;
09284         IDocumentTextResources GetDocumentTextResources( ) const;
09285         // ========================================================================
09286         // METHODS
09287         // ========================================================================
09293         IStory Item( ATETextDOM::Int32 nIndex) const;
09298         void SuspendReflow( );
09301         void ResumeReflow( );
09302 
09303 };
09304 
09306 //       --IStory--
09308 
09320 class IStory
09321 {
09322 private:
09323         StoryRef        fStory;
09324 public:
09327         IStory();
09331         IStory(const IStory& src);
09335         IStory& operator=(const IStory& rhs);
09339         bool operator==(const IStory& rhs) const;
09343         bool operator!=(const IStory& rhs) const;
09349         explicit IStory(StoryRef story);
09351         virtual ~IStory();
09354         StoryRef GetRef() const;
09357         bool IsNull() const;
09358 
09359         // ========================================================================
09360         // PROPERTIES
09361         // ========================================================================
09362 
09365         ATETextDOM::Int32 GetIndex( ) const;
09368         ATETextDOM::Int32 GetSize( ) const;
09370 
09372         IStories GetStories( ) const;
09375         ITextRange GetTextRange( ) const;
09378         ITextRanges GetTextSelection( ) const;
09381         IParagraphsIterator GetParagraphsIterator( ) const;
09384         IWordsIterator GetWordsIterator( ) const;
09387         ITextRunsIterator GetTextRunsIterator( ) const;
09390         ITextFramesIterator GetTextFramesIterator( ) const;
09394         ITextFrame GetFrame( ATETextDOM::Int32 frameIndex) const;
09395 
09398 
09402         void SetKernForSelection( const ITextRange& textRange, AutoKernType autoKernType);
09404 
09408         void SetKernAtChar( ATETextDOM::Int32 charIndex, ATETextDOM::Int32 value);
09414         void GetKern( const ITextRange& textRange, AutoKernType* pAutoKernType, ATETextDOM::Int32* value) const;
09419         AutoKernType GetModelKernAtChar( ATETextDOM::Int32 charIndex, ATETextDOM::Int32* pManualKernValue) const;
09420         // ========================================================================
09421         // METHODS
09422         // ========================================================================
09429         ITextRange GetTextRange( ATETextDOM::Int32 start, ATETextDOM::Int32 end) const;
09432         IStory Duplicate( );
09437         void SuspendReflow( );
09440         void ResumeReflow( );
09441 
09442 };
09443 
09445 //       --ITabStop--
09447 
09451 class ITabStop
09452 {
09453 private:
09454         TabStopRef      fTabStop;
09455 public:
09458         ITabStop();
09462         ITabStop(const ITabStop& src);
09466         ITabStop& operator=(const ITabStop& rhs);
09470         bool operator==(const ITabStop& rhs) const;
09474         bool operator!=(const ITabStop& rhs) const;
09480         explicit ITabStop(TabStopRef tabstop);
09482         virtual ~ITabStop();
09485         TabStopRef GetRef() const;
09488         bool IsNull() const;
09489 
09490         // =======================================================================
09491         // PROPERTIES
09492         // =======================================================================
09495         TabType GetTabType( ) const;
09499         void SetTabType( TabType tabType);
09502         ATETextDOM::Real GetPosition( ) const;
09506         void SetPosition( ATETextDOM::Real position);
09509         bool HasLeader( ) const;
09514         void GetLeader( ATETextDOM::Unicode* leader, ATETextDOM::Int32 maxLength) const;
09518         void SetLeader( ATETextDOM::Unicode* leader);
09521         ATETextDOM::Unicode GetDecimalCharacter( ) const;
09524         void SetDecimalCharacter( ATETextDOM::Unicode decimalChar);
09525 
09526 };
09527 
09529 //       --ITabStops--
09531 
09540 class ITabStops
09541 {
09542 private:
09543         TabStopsRef     fTabStops;
09544 public:
09547         ITabStops();
09551         ITabStops(const ITabStops& src);
09555         ITabStops& operator=(const ITabStops& rhs);
09559         bool operator==(const ITabStops& rhs) const;
09563         bool operator!=(const ITabStops& rhs) const;
09569         explicit ITabStops(TabStopsRef tabstops);
09571         virtual ~ITabStops();
09574         TabStopsRef GetRef() const;
09577         bool IsNull() const;
09578 
09579         // =======================================================================
09580         // PROPERTIES
09581         // =======================================================================
09584         ATETextDOM::Int32 GetSize( ) const;
09587         ITabStop GetFirst( ) const;
09590         ITabStop GetLast( ) const;
09591         // =======================================================================
09592         // METHODS
09593         // =======================================================================
09598         void ReplaceOrAdd( const ITabStop& pTabStop);
09604         ITabStop Item( ATETextDOM::Int32 nIndex) const;
09608         void Remove( ATETextDOM::Int32 nIndex);
09611         void RemoveAll( );
09612 };
09613 
09615 //       --ITabStopsIterator--
09617 
09621 class ITabStopsIterator
09622 {
09623 private:
09624         TabStopsIteratorRef     fTabStopsIterator;
09625 public:
09628         ITabStopsIterator();
09632         ITabStopsIterator(const ITabStopsIterator& src);
09636         ITabStopsIterator& operator=(const ITabStopsIterator& rhs);
09640         bool operator==(const ITabStopsIterator& rhs) const;
09644         bool operator!=(const ITabStopsIterator& rhs) const;
09650         explicit ITabStopsIterator(TabStopsIteratorRef tabstopsiterator);
09652         virtual ~ITabStopsIterator();
09655         TabStopsIteratorRef GetRef() const;
09658         bool IsNull() const;
09659 
09666         ITabStopsIterator( ITabStops tabStops, Direction direction = kForward);
09667 
09668 
09671         bool IsDone( ) const;
09674         bool IsNotDone( ) const;
09677         bool IsEmpty( );
09680         void MoveToFirst( );
09683         void MoveToLast( );
09686         void Next( );
09689         ITabStop Item( ) const;
09690 
09691 };
09692 
09726 
09727 //       --ITextRange--
09729 class ITextRange
09730 {
09731 private:
09732         TextRangeRef    fTextRange;
09733 public:
09736         ITextRange();
09740         ITextRange(const ITextRange& src);
09744         ITextRange& operator=(const ITextRange& rhs);
09748         bool operator==(const ITextRange& rhs) const;
09752         bool operator!=(const ITextRange& rhs) const;
09758         explicit ITextRange(TextRangeRef textrange);
09760         virtual ~ITextRange();
09763         TextRangeRef GetRef() const;
09766         bool IsNull() const;
09767 
09768         // =======================================================================
09769         // PROPERTIES
09770         // ========================================================================
09774         ATETextDOM::Int32 GetStart( ) const;
09779         void SetStart( ATETextDOM::Int32 start);
09783         ATETextDOM::Int32 GetEnd( ) const;
09788         void SetEnd( ATETextDOM::Int32 end);
09791         ATETextDOM::Int32 GetSize( ) const;
09792         // =======================================================================
09793         // NAVIGATION OBJECTS
09794         // ========================================================================
09797         IStory GetStory( ) const;
09800         ITextRanges GetTextSelection( ) const;
09803         ITextFramesIterator GetTextFramesIterator( ) const;
09806         IParagraphsIterator GetParagraphsIterator( ) const;
09809         IWordsIterator GetWordsIterator( ) const;
09813         ITextRunsIterator GetTextRunsIterator( ) const;
09814         // =======================================================================
09815         // ATTRIBUTE INSPECTION AND MODIFICATION
09816         // ========================================================================
09820         ICharInspector GetCharInspector( ) const;
09824         IParaInspector GetParaInspector( ) const;
09827         ICharStyles GetNamedCharStyles( ) const;
09830         IParaStyles GetNamedParaStyles( ) const;
09837         bool SetNamedCharStyle( const ATETextDOM::Unicode* pName);
09844         bool SetNamedParaStyle( const ATETextDOM::Unicode* pName);
09849         void ClearNamedCharStyle( );
09854         void ClearNamedParaStyle( );
09860         ICharFeatures GetUniqueCharFeatures( ) const;
09866         IParaFeatures GetUniqueParaFeatures( ) const;
09870         bool HasLocalCharFeatures( );
09874         bool HasLocalParaFeatures( );
09881         ICharFeatures GetUniqueLocalCharFeatures( );
09888         IParaFeatures GetUniqueLocalParaFeatures( );
09889 
09902         void SetLocalCharFeatures( const ICharFeatures& pFeatures);
09914         void ReplaceOrAddLocalCharFeatures( const ICharFeatures& pFeatures);
09919         void ClearLocalCharFeatures( );
09920 
09933         void SetLocalParaFeatures( const IParaFeatures& pFeatures);
09944         void ReplaceOrAddLocalParaFeatures( const IParaFeatures& pFeatures);
09949         void ClearLocalParaFeatures( );
09950         // =======================================================================
09951         // METHODS
09952         // ========================================================================
09956         void SetStory( const IStory& story);
09963         void SetRange( ATETextDOM::Int32 start, ATETextDOM::Int32 end);
09969         void Collapse( CollapseDirection direction = CollapseEnd);
09978         ATETextDOM::Int32 Move( ATETextDOM::Int32 unit);
09981         ITextRange Clone( ) const;
09989         void InsertBefore( const ATETextDOM::Unicode* text, ATETextDOM::Int32 length = -1);
09997         void InsertAfter( const ATETextDOM::Unicode* text, ATETextDOM::Int32 length = -1);
10003         void InsertBefore( const ITextRange& anotherRange);
10009         void InsertAfter( const ITextRange& anotherRange);
10010 
10015         ATETextDOM::Int32 GetContents( ATETextDOM::Unicode* text, ATETextDOM::Int32 maxLength) const;
10020         ATETextDOM::Int32 GetContents( char* text, ATETextDOM::Int32 maxLength) const;
10021 
10027         bool GetSingleGlyphInRange( ATEGlyphID* pSingleGlyph) const;
10028 
10034         void Select( bool addToSelection = false);
10038         void DeSelect( );
10042         void ChangeCase( CaseChangeType caseChangeType);
10048         void FitHeadlines( );
10054         void Remove( );
10059         ASCharType GetCharacterType( ) const;
10060 
10061 };
10062 
10064 //       --ITextRanges--
10066 
10069 class ITextRanges
10070 {
10071 private:
10072         TextRangesRef   fTextRanges;
10073 public:
10076         ITextRanges();
10080         ITextRanges(const ITextRanges& src);
10084         ITextRanges& operator=(const ITextRanges& rhs);
10088         bool operator==(const ITextRanges& rhs) const;
10092         bool operator!=(const ITextRanges& rhs) const;
10098         explicit ITextRanges(TextRangesRef textranges);
10100         virtual ~ITextRanges();
10103         TextRangesRef GetRef() const;
10106         bool IsNull() const;
10107 
10108         // =======================================================================
10109         // PROPERTIES
10110         // ======================================================================
10114         ATETextDOM::Int32 GetSize( ) const;
10117         ITextRange GetFirst( ) const;
10120         ITextRange GetLast( ) const;
10121         // navigation objects.
10124         ITextRanges GetTextSelection( ) const;
10127         IParagraphsIterator GetParagraphsIterator( ) const;
10130         IWordsIterator GetWordsIterator( ) const;
10133         ITextRunsIterator GetTextRunsIterator( ) const;
10134         // =======================================================================
10135         // ATTRIBUTE INSPECTION AND MODIFICATION
10136         // ========================================================================
10140         ICharInspector GetCharInspector( ) const;
10144         IParaInspector GetParaInspector( ) const;
10149         void ClearNamedCharStyle( );
10154         void ClearNamedParaStyle( );
10160         ICharFeatures GetUniqueCharFeatures( ) const;
10166         IParaFeatures GetUniqueParaFeatures( ) const;
10170         bool HasLocalCharFeatures( );
10174         bool HasLocalParaFeatures( );
10181         ICharFeatures GetUniqueLocalCharFeatures( );
10188         IParaFeatures GetUniqueLocalParaFeatures( );
10189 
10198         void SetLocalCharFeatures( const ICharFeatures& pFeatures);
10205         void ReplaceOrAddLocalCharFeatures( const ICharFeatures& pFeatures);
10210         void ClearLocalCharFeatures( );
10219         void SetLocalParaFeatures( const IParaFeatures& pFeatures);
10226         void ReplaceOrAddLocalParaFeatures( const IParaFeatures& pFeatures);
10231         void ClearLocalParaFeatures( );
10232         // =======================================================================
10233         // METHODS
10234         // ======================================================================
10240         void Select( bool addToSelection = false);
10245         void DeSelect( );
10250         ATETextDOM::Int32 GetContents( ATETextDOM::Unicode* text, ATETextDOM::Int32 maxLength) const;
10255         ATETextDOM::Int32 GetContents( char* text, ATETextDOM::Int32 maxLength) const;
10259         void ChangeCase( CaseChangeType caseChangeType);
10263         void Add( const ITextRange& textRange);
10269         ITextRange Item( ATETextDOM::Int32 nIndex) const;
10272         void RemoveAll( );
10276         void Remove( ATETextDOM::Int32 nIndex);
10277 
10278 };
10279 
10281 //       --ITextRangesIterator--
10283 
10285 class ITextRangesIterator
10286 {
10287 private:
10288         TextRangesIteratorRef   fTextRangesIterator;
10289 public:
10292         ITextRangesIterator();
10296         ITextRangesIterator(const ITextRangesIterator& src);
10300         ITextRangesIterator& operator=(const ITextRangesIterator& rhs);
10304         bool operator==(const ITextRangesIterator& rhs) const;
10308         bool operator!=(const ITextRangesIterator& rhs) const;
10314         explicit ITextRangesIterator(TextRangesIteratorRef textrangesiterator);
10316         virtual ~ITextRangesIterator();
10319         TextRangesIteratorRef GetRef() const;
10322         bool IsNull() const;
10323 
10330         ITextRangesIterator( ITextRanges textRanges, Direction direction = kForward);
10331 
10334         ITextRangesIterator Clone( ) const;
10335 
10338         bool IsNotDone( ) const;
10341         bool IsDone( ) const;
10344         bool IsEmpty( ) const;
10347         void MoveToFirst( );
10350         void MoveToLast( );
10353         void Next( );
10356         ITextRange Item( ) const;
10357 
10358 };
10359 
10361 //       --ITextRunsIterator--
10363 
10371 class ITextRunsIterator
10372 {
10373 private:
10374         TextRunsIteratorRef     fTextRunsIterator;
10375 public:
10378         ITextRunsIterator();
10382         ITextRunsIterator(const ITextRunsIterator& src);
10386         ITextRunsIterator& operator=(const ITextRunsIterator& rhs);
10390         bool operator==(const ITextRunsIterator& rhs) const;
10394         bool operator!=(const ITextRunsIterator& rhs) const;
10400         explicit ITextRunsIterator(TextRunsIteratorRef textrunsiterator);
10402         virtual ~ITextRunsIterator();
10405         TextRunsIteratorRef GetRef() const;
10408         bool IsNull() const;
10409 
10416         ITextRunsIterator( const ITextRanges& ranges, Direction direction = kForward);
10419         bool IsNotDone( ) const;
10422         bool IsDone( ) const;
10425         bool IsEmpty( ) const;
10428         void MoveToFirst( );
10431         void MoveToLast( );
10434         void Next( );
10440         ITextRange Item( ) const;
10441 
10442 };
10443 
10445 //       --IWordsIterator--
10447 
10452 class IWordsIterator
10453 {
10454 private:
10455         WordsIteratorRef        fWordsIterator;
10456 public:
10459         IWordsIterator();
10463         IWordsIterator(const IWordsIterator& src);
10467         IWordsIterator& operator=(const IWordsIterator& rhs);
10471         bool operator==(const IWordsIterator& rhs) const;
10475         bool operator!=(const IWordsIterator& rhs) const;
10481         explicit IWordsIterator(WordsIteratorRef wordsiterator);
10483         virtual ~IWordsIterator();
10486         WordsIteratorRef GetRef() const;
10489         bool IsNull() const;
10490 
10497         IWordsIterator( const ITextRanges& ranges, Direction direction = kForward);
10498 
10501         bool IsNotDone( ) const;
10504         bool IsDone( ) const;
10507         bool IsEmpty( ) const;
10510         void MoveToFirst( );
10513         void MoveToLast( );
10516         void Next( );
10520         ITextRange Item( ) const;
10521 
10523 
10528         ATETextDOM::Int32 GetTrailingSpaceCount( ) const;
10534         ATETextDOM::Int32 GetTrailingCount( ) const;
10539         ATETextDOM::Int32 GetTrailingTerminatingPunctuationCount( ) const;
10540 
10541 };
10542 
10550 class IInhibitReflow
10551 {
10552 public:
10555    IInhibitReflow()
10556    {
10557    }
10562    IInhibitReflow(const IStory& story)
10563    :fStory(story)
10564    {
10565        fStory.SuspendReflow();
10566    }
10570    IInhibitReflow(const IInhibitReflow& reflow)
10571    :fStory(reflow.fStory)
10572    {
10573        fStory.SuspendReflow();
10574    }
10576    virtual ~IInhibitReflow()
10577    {
10578            try
10579            {
10580                    if (!fStory.IsNull())
10581                            fStory.ResumeReflow();
10582            }
10583            catch (...) {}
10584    }
10588    IInhibitReflow& operator=(const IInhibitReflow& rhs)
10589    {
10590        this->~IInhibitReflow( );
10591        fStory = rhs.fStory;
10592        if(!fStory.IsNull())
10593           fStory.SuspendReflow();
10594        return *this;
10595    }
10596 protected:
10597    IStory    fStory;
10598 };
10599 }// namespace ATE
10600 


Contents Suites Classes Class Index Member Index
Adobe Solutions Network
 
Copyright © 2014 Adobe Systems Incorporated. All rights reserved.
Terms of Use Online Privacy Policy Adobe and accessibility Avoid software piracy Permissions and Trademarks