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 
00978         IFont GetFlattenedFont( ) const;
00979 
00986         ATETextDOM::Int32 GetContents( ATETextDOM::Unicode* text, ATETextDOM::Int32 maxLength) const;
00987 
00994         ATETextDOM::Int32 GetContents( char* text, ATETextDOM::Int32 maxLength) const;
00995 
00996 };
00997 
00999 //       --IGlyphRunsIterator--
01001 
01005 class IGlyphRunsIterator
01006 {
01007 private:
01008         GlyphRunsIteratorRef    fGlyphRunsIterator;
01009 public:
01012         IGlyphRunsIterator();
01016         IGlyphRunsIterator(const IGlyphRunsIterator& src);
01020         IGlyphRunsIterator& operator=(const IGlyphRunsIterator& rhs);
01024         bool operator==(const IGlyphRunsIterator& rhs) const;
01028         bool operator!=(const IGlyphRunsIterator& rhs) const;
01034         explicit IGlyphRunsIterator(GlyphRunsIteratorRef glyphrunsiterator);
01036         virtual ~IGlyphRunsIterator();
01039         GlyphRunsIteratorRef GetRef() const;
01042         bool IsNull() const;
01043 
01044         // =======================================================================
01045         // METHODS
01046         // =====================================================================
01049         bool IsNotDone( ) const;
01052         bool IsDone( ) const;
01055         void Next( );
01058         IGlyphRun Item( ) const;
01059 
01060 };
01061 
01063 //       --IMojiKumi--
01065 
01069 class IMojiKumi
01070 {
01071 private:
01072         MojiKumiRef     fMojiKumi;
01073 public:
01076         IMojiKumi();
01080         IMojiKumi(const IMojiKumi& src);
01084         IMojiKumi& operator=(const IMojiKumi& rhs);
01088         bool operator==(const IMojiKumi& rhs) const;
01092         bool operator!=(const IMojiKumi& rhs) const;
01098         explicit IMojiKumi(MojiKumiRef mojikumi);
01100         virtual ~IMojiKumi();
01103         MojiKumiRef GetRef() const;
01106         bool IsNull() const;
01107 
01108         // =======================================================================
01109         // PROPERTIES
01110         // =======================================================================
01111 
01118         ATETextDOM::Int32 GetName( ATETextDOM::Unicode * name, ATETextDOM::Int32 maxLength) const;
01123         ATETextDOM::Int32 GetNameSize( ) const;
01128         void SetName( const ATETextDOM::Unicode * name);
01134         bool MatchesPredefinedResourceTag( ATE::MojikumiTablePredefinedTag tag) const;
01142         void GetEntry( ATETextDOM::Int32 index, ATETextDOM::Float * minExpansion, ATETextDOM::Float * maxExpansion, ATETextDOM::Float * desiredExpansion) const;
01150         void SetEntry( ATETextDOM::Int32 index, ATETextDOM::Real minExpansion, ATETextDOM::Real maxExpansion, ATETextDOM::Real desiredExpansion);
01151 
01152         // =======================================================================
01153         // METHODS
01154         // =======================================================================
01155 
01160         bool IsEquivalent( IMojiKumi rhsMojiKumi) const;
01164         bool IsModified( ) const;
01168         bool IsPredefined( ) const;
01172         IMojiKumi Duplicate( ) const;
01173 
01174 };
01175 
01177 //       --IMojiKumiSet--
01179 
01183 class IMojiKumiSet
01184 {
01185 private:
01186         MojiKumiSetRef  fMojiKumiSet;
01187 public:
01190         IMojiKumiSet();
01194         IMojiKumiSet(const IMojiKumiSet& src);
01198         IMojiKumiSet& operator=(const IMojiKumiSet& rhs);
01202         bool operator==(const IMojiKumiSet& rhs) const;
01206         bool operator!=(const IMojiKumiSet& rhs) const;
01212         explicit IMojiKumiSet(MojiKumiSetRef mojikumiset);
01214         virtual ~IMojiKumiSet();
01217         MojiKumiSetRef GetRef() const;
01220         bool IsNull() const;
01221 
01222         // =======================================================================
01223         // PROPERTIES
01224         // =======================================================================
01225 
01228         ATETextDOM::Int32 GetSize( );
01231         IMojiKumi GetFirst( );
01234         IMojiKumi GetLast( );
01235 
01236         // =======================================================================
01237         // METHODS
01238         // =======================================================================
01239 
01245         IMojiKumi Item( ATETextDOM::Int32 nIndex) const;
01251         ATETextDOM::Int32 Find( const IMojiKumi mojiKumi);
01257         ATETextDOM::Int32 Find( const ATETextDOM::Unicode* name);
01264         ATETextDOM::Int32 Find( MojikumiTablePredefinedTag tag);
01269         bool Remove( ATETextDOM::Int32 nIndex);
01277         ATETextDOM::Int32 Add( IMojiKumi mojiKumi);
01283         bool Replace( ATETextDOM::Int32  nIndex, IMojiKumi mojiKumi);
01292         IMojiKumi CreateNewMojiKumi( const ATETextDOM::Unicode* name, ATETextDOM::Int32* nIndex);
01293 
01294 };
01295 
01297 //       --ITextFrame--
01299 
01306 class ITextFrame
01307 {
01308 private:
01309         TextFrameRef    fTextFrame;
01310 public:
01313         ITextFrame();
01317         ITextFrame(const ITextFrame& src);
01321         ITextFrame& operator=(const ITextFrame& rhs);
01325         bool operator==(const ITextFrame& rhs) const;
01329         bool operator!=(const ITextFrame& rhs) const;
01335         explicit ITextFrame(TextFrameRef textframe);
01337         virtual ~ITextFrame();
01340         TextFrameRef GetRef() const;
01343         bool IsNull() const;
01344 
01345         // =======================================================================
01346         // METHODS
01347         // =====================================================================
01351         IStory GetStory( ) const;
01358         ITextRange GetTextRange( bool bIncludeOverflow = true) const;
01363         ITextLinesIterator GetTextLinesIterator( ) const;
01367         FrameType GetType( ) const;
01371         LineOrientation GetLineOrientation( ) const;
01376         bool GetSelected( ) const;
01380         ATETextDOM::RealMatrix GetMatrix( ) const;
01384         ATETextDOM::Int32 GetRowCount( ) const;
01388         ATETextDOM::Int32 GetColumnCount( ) const;
01392         bool GetRowMajorOrder( ) const;
01396         ATETextDOM::Real GetRowGutter( ) const;
01400         ATETextDOM::Real GetColumnGutter( ) const;
01404         ATETextDOM::Real GetSpacing( ) const;
01408         bool GetOpticalAlignment( ) const;
01409 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
01410 
01413         ParagraphDirection GetStoryDirection( ) const;
01414 #endif
01415 
01419         void SetRowCount( ATETextDOM::Int32 rowCount);
01424         void SetColumnCount( ATETextDOM::Int32 columnCount);
01430         void SetRowMajorOrder( bool isRowMajor);
01435         void SetRowGutter( ATETextDOM::Real gutter);
01440         void SetColumnGutter( ATETextDOM::Real gutter);
01445         void SetSpacing( ATETextDOM::Real spacing);
01451         void SetOpticalAlignment( bool isActive);
01456         void SetLineOrientation( LineOrientation lineOrientation);
01457 
01458 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
01459 
01463         void SetStoryDirection( ParagraphDirection direction);
01464 #endif
01465 };
01466 
01468 //       --ITextFramesIterator--
01470 
01473 class ITextFramesIterator
01474 {
01475 private:
01476         TextFramesIteratorRef   fTextFramesIterator;
01477 public:
01480         ITextFramesIterator();
01484         ITextFramesIterator(const ITextFramesIterator& src);
01488         ITextFramesIterator& operator=(const ITextFramesIterator& rhs);
01492         bool operator==(const ITextFramesIterator& rhs) const;
01496         bool operator!=(const ITextFramesIterator& rhs) const;
01502         explicit ITextFramesIterator(TextFramesIteratorRef textframesiterator);
01504         virtual ~ITextFramesIterator();
01507         TextFramesIteratorRef GetRef() const;
01510         bool IsNull() const;
01511 
01517         ITextFramesIterator( const ITextRange& range);
01518 
01519         // =======================================================================
01520         // METHODS
01521         // =====================================================================
01522 
01525         bool IsNotDone( ) const;
01528         bool IsDone( ) const;
01531         bool IsEmpty( ) const;
01534         void Next( );
01537         void Previous( );
01540         ITextFrame Item( ) const;
01541 
01542 };
01543 
01545 //       --ITextLine--
01547 
01553 class ITextLine
01554 {
01555 private:
01556         TextLineRef     fTextLine;
01557 public:
01560         ITextLine();
01564         ITextLine(const ITextLine& src);
01568         ITextLine& operator=(const ITextLine& rhs);
01572         bool operator==(const ITextLine& rhs) const;
01576         bool operator!=(const ITextLine& rhs) const;
01582         explicit ITextLine(TextLineRef textline);
01584         virtual ~ITextLine();
01587         TextLineRef GetRef() const;
01590         bool IsNull() const;
01591 
01592         // =======================================================================
01593         // METHODS
01594         // =======================================================================
01595 
01601         IGlyphRunsIterator GetGlyphRunsIterator( ) const;
01608         IGlyphRunsIterator GetVisualGlyphRunsIterator( ) const;
01612         ITextFrame GetTextFrame( ) const;
01616         ITextRange GetTextRange( ) const;
01623         IArrayLine GetBaselines() const;
01624 };
01625 
01627 //       --ITextLinesIterator--
01629 
01632 class ITextLinesIterator
01633 {
01634 private:
01635         TextLinesIteratorRef    fTextLinesIterator;
01636 public:
01639         ITextLinesIterator();
01643         ITextLinesIterator(const ITextLinesIterator& src);
01647         ITextLinesIterator& operator=(const ITextLinesIterator& rhs);
01651         bool operator==(const ITextLinesIterator& rhs) const;
01655         bool operator!=(const ITextLinesIterator& rhs) const;
01661         explicit ITextLinesIterator(TextLinesIteratorRef textlinesiterator);
01663         virtual ~ITextLinesIterator();
01666         TextLinesIteratorRef GetRef() const;
01669         bool IsNull() const;
01670 
01671         // =======================================================================
01672         // METHODS
01673         // =======================================================================
01674 
01677         bool IsNotDone( ) const;
01680         bool IsDone( ) const;
01683         bool IsEmpty( ) const;
01686         void Next( );
01689         void Previous( );
01692         ITextLine Item( ) const;
01693 
01694 };
01695 
01697 //       --ITextResources--
01699 
01701 class ITextResources
01702 {
01703 private:
01704         TextResourcesRef        fTextResources;
01705 public:
01706         ITextResources();
01707         ITextResources(const ITextResources& src);
01708         ITextResources& operator=(const ITextResources& rhs);
01709         bool operator==(const ITextResources& rhs) const;
01710         bool operator!=(const ITextResources& rhs) const;
01711         explicit ITextResources(TextResourcesRef textresources);
01712         virtual ~ITextResources();
01713         TextResourcesRef GetRef() const;
01714         bool IsNull() const;
01715 
01716         ITextResources GetTextResources( );
01717 
01718 };
01719 
01721 //       --IApplicationTextResources--
01723 
01724 class IApplicationTextResources
01725 {
01726 private:
01727         ApplicationTextResourcesRef     fApplicationTextResources;
01728 public:
01731         IApplicationTextResources();
01735         IApplicationTextResources(const IApplicationTextResources& src);
01739         IApplicationTextResources& operator=(const IApplicationTextResources& rhs);
01743         bool operator==(const IApplicationTextResources& rhs) const;
01747         bool operator!=(const IApplicationTextResources& rhs) const;
01753         explicit IApplicationTextResources(ApplicationTextResourcesRef applicationtextresources);
01755         virtual ~IApplicationTextResources();
01758         ApplicationTextResourcesRef GetRef() const;
01761         bool IsNull() const;
01762 
01763         // From parent class...
01764         ITextResources GetTextResources( );
01765         // =======================================================================
01766         // PROPERTIES
01767         // =======================================================================
01768         IKinsokuSet GetKinsokuSet( ) const;
01769         IMojiKumiSet GetMojiKumiSet( ) const;
01770         ICompFontClassSet GetCompFontClassSet( ) const;
01771         ICompFontSet GetCompFontSet( ) const;
01772 
01773 };
01774 
01776 //       --IDocumentTextResources--
01778 
01781 class IDocumentTextResources
01782 {
01783 private:
01784         DocumentTextResourcesRef        fDocumentTextResources;
01785 public:
01788         IDocumentTextResources();
01792         IDocumentTextResources(const IDocumentTextResources& src);
01796         IDocumentTextResources& operator=(const IDocumentTextResources& rhs);
01800         bool operator==(const IDocumentTextResources& rhs) const;
01804         bool operator!=(const IDocumentTextResources& rhs) const;
01810         explicit IDocumentTextResources(DocumentTextResourcesRef documenttextresources);
01812         virtual ~IDocumentTextResources();
01815         DocumentTextResourcesRef GetRef() const;
01818         bool IsNull() const;
01819 
01820         // From parent class...
01824         IKinsokuSet GetKinsokuSet( ) const;
01828         IMojiKumiSet GetMojiKumiSet( ) const;
01832         ICompFontClassSet GetCompFontClassSet( ) const;
01836         ICompFontSet GetCompFontSet( ) const;
01840         ITextResources GetTextResources( );
01841 
01845         IFind GetFind( );
01849         ISpell GetSpell( );
01850 
01854         IGlyph GetGlyphAndAlternates( ) const;
01858         IGlyph GetAlternateGlyph( ) const;
01868         void InsertAlternateGlyph( const ATETextDOM::Unicode* theCharacters, const ATEGlyphID glyphID, const char* otFeatureArray, ATETextDOM::Int32 otFeatureCount, const ATETextDOM::Int32* otFeatureIndexArray, bool leaveSelected);
01869 
01873         IArrayInteger GetAlternatesAvailableThroughoutSelection( ) const;
01874 
01879         JapaneseAlternateFeature GetJapaneseAlternateFeatureInSelection( bool* isFeature) const;
01884         void SetJapaneseAlternateFeatureInSelection( JapaneseAlternateFeature feature);
01885 
01889         ICharStyles GetCharStylesInDocument( ) const;
01893         IParaStyles GetParaStylesInDocument( ) const;
01898         ICharStyle GetCharStyle( const ATETextDOM::Unicode* pName) const;
01903         IParaStyle GetParaStyle( const ATETextDOM::Unicode* pName) const;
01907         ICharStyle GetNormalCharStyle( ) const;
01911         IParaStyle GetNormalParaStyle( ) const;
01916         void ResetNormalCharStyle( );
01921         void ResetNormalParaStyle( );
01922 
01929         ICharStyle CreateCharStyle( const ATETextDOM::Unicode* pName);
01936         IParaStyle CreateParaStyle( const ATETextDOM::Unicode* pName);
01945         ICharStyle CreateCharStyleWithFeatures( const ATETextDOM::Unicode* pName, ICharFeatures pFeatures);
01954         IParaStyle CreateParaStyleWithFeatures( const ATETextDOM::Unicode* pName, IParaFeatures pFeatures);
01955 
01961         bool RemoveCharStyle( const ATETextDOM::Unicode* pName);
01967         bool RemoveParaStyle( const ATETextDOM::Unicode* pName);
01968 
01974         void ImportCharStyles( ITextResources pSrcResources);
01980         void ImportParaStyles( ITextResources pSrcResources);
01981 
01986         void SetUseSmartQuotes( bool smartQuotesAreOn);
01993         void SetSmartDoubleQuoteCharacters( ATETextDOM::Unicode openQuote, ATETextDOM::Unicode closeQuote, Language language);
02000         void SetSmartSingleQuoteCharacters( ATETextDOM::Unicode openQuote, ATETextDOM::Unicode closeQuote, Language language);
02004         bool UseSmartQuotes( );
02011         void GetSmartDoubleQuoteCharacters( ATETextDOM::Unicode* openQuote, ATETextDOM::Unicode* closeQuote, Language language);
02018         void GetSmartSingleQuoteCharacters( ATETextDOM::Unicode* openQuote, ATETextDOM::Unicode* closeQuote, Language language);
02019 
02024         ICharFeatures GetInsertionCharFeatures( ) const;
02029         ICharStyle GetInsertionCharStyle( ) const;
02035         void SetInsertionFeaturesAndStyle( const ICharFeatures& pFeatures, const ATETextDOM::Unicode* pStyleName);
02036 
02040         ATETextDOM::Real GetSuperscriptSize( ) const;
02045         void SetSuperscriptSize( ATETextDOM::Real value);
02049         ATETextDOM::Real GetSuperscriptPosition( ) const;
02054         void SetSuperscriptPosition( ATETextDOM::Real value);
02058         ATETextDOM::Real GetSubscriptSize( ) const;
02063         void SetSubscriptSize( ATETextDOM::Real value);
02067         ATETextDOM::Real GetSubscriptPosition( ) const;
02072         void SetSubscriptPosition( ATETextDOM::Real value);
02073 
02077         ATETextDOM::Real GetSmallCapSize( ) const;
02082         void SetSmallCapSize( ATETextDOM::Real value);
02083 
02087         bool GetShowHiddenCharacters( ) const;
02091         void SetShowHiddenCharacters( bool value);
02092 
02096         ATETextDOM::Int32 GetGreekingSize( ) const;
02101         void SetGreekingSize( ATETextDOM::Int32 value);
02102 
02106         bool GetHighlightSubstituteFonts( ) const;
02110         void SetHighlightSubstituteFonts( bool value);
02114         bool GetHighlightAlternateGlyphs( ) const;
02118         void SetHighlightAlternateGlyphs( bool value);
02119 
02120 };
02121 
02123 //       --IVersionInfo--
02125 
02128 class IVersionInfo
02129 {
02130 private:
02131         VersionInfoRef  fVersionInfo;
02132 public:
02135         IVersionInfo();
02139         IVersionInfo(const IVersionInfo& src);
02143         IVersionInfo& operator=(const IVersionInfo& rhs);
02147         bool operator==(const IVersionInfo& rhs) const;
02151         bool operator!=(const IVersionInfo& rhs) const;
02157         explicit IVersionInfo(VersionInfoRef versioninfo);
02159         virtual ~IVersionInfo();
02162         VersionInfoRef GetRef() const;
02165         bool IsNull() const;
02166 
02169         int GetMajorVersion( );
02172         int GetMinorVersion( );
02175         int GetSubMinorVersion( );
02176 
02186         int GetVersionAsUTF16( ASUTF16* versionString, int maxLength);
02187 
02188 };
02189 
02191 //       --IArrayApplicationPaintRef--
02193 
02199 class IArrayApplicationPaintRef
02200 {
02201 private:
02202         ArrayApplicationPaintRefRef     fArrayApplicationPaintRef;
02203 public:
02206         IArrayApplicationPaintRef();
02210         IArrayApplicationPaintRef(const IArrayApplicationPaintRef& src);
02214         IArrayApplicationPaintRef& operator=(const IArrayApplicationPaintRef& rhs);
02218         bool operator==(const IArrayApplicationPaintRef& rhs) const;
02222         bool operator!=(const IArrayApplicationPaintRef& rhs) const;
02228         explicit IArrayApplicationPaintRef(ArrayApplicationPaintRefRef arrayapplicationpaintref);
02230         virtual ~IArrayApplicationPaintRef();
02233         ArrayApplicationPaintRefRef GetRef() const;
02236         bool IsNull() const;
02237 
02238         // ========================================================================
02239         // PROPERTIES
02240         // ========================================================================
02241 
02244         ATETextDOM::Int32 GetSize( ) const;
02247         IApplicationPaint GetFirst( ) const;
02250         IApplicationPaint GetLast( ) const;
02251 
02252         // ========================================================================
02253         // METHODS
02254         // ========================================================================
02255 
02261         IApplicationPaint Item( ATETextDOM::Int32 index) const;
02262 
02263 };
02264 
02266 //       --IArrayReal--
02268 
02269 class IArrayReal
02270 {
02271 private:
02272         ArrayRealRef    fArrayReal;
02273 public:
02276         IArrayReal();
02280         IArrayReal(const IArrayReal& src);
02284         IArrayReal& operator=(const IArrayReal& rhs);
02288         bool operator==(const IArrayReal& rhs) const;
02292         bool operator!=(const IArrayReal& rhs) const;
02298         explicit IArrayReal(ArrayRealRef arrayreal);
02300         virtual ~IArrayReal();
02303         ArrayRealRef GetRef() const;
02306         bool IsNull() const;
02307 
02308         // ========================================================================
02309         // PROPERTIES
02310         // ========================================================================
02311 
02314         ATETextDOM::Int32 GetSize( ) const;
02317         ATETextDOM::Real GetFirst( ) const;
02320         ATETextDOM::Real GetLast( ) const;
02321 
02322         // ========================================================================
02323         // METHODS
02324         // ========================================================================
02325 
02331         ATETextDOM::Real Item( ATETextDOM::Int32 index) const;
02332 
02333 };
02334 
02336 //       --IArrayBool--
02338 
02339 class IArrayBool
02340 {
02341 private:
02342         ArrayBoolRef    fArrayBool;
02343 public:
02346         IArrayBool();
02350         IArrayBool(const IArrayBool& src);
02354         IArrayBool& operator=(const IArrayBool& rhs);
02358         bool operator==(const IArrayBool& rhs) const;
02362         bool operator!=(const IArrayBool& rhs) const;
02368         explicit IArrayBool(ArrayBoolRef arraybool);
02370         virtual ~IArrayBool();
02373         ArrayBoolRef GetRef() const;
02376         bool IsNull() const;
02377 
02378         // ========================================================================
02379         // PROPERTIES
02380         // ========================================================================
02381 
02384         ATETextDOM::Int32 GetSize( ) const;
02387         bool GetFirst( ) const;
02390         bool GetLast( ) const;
02391 
02392         // ========================================================================
02393         // METHODS
02394         // ========================================================================
02395 
02401         bool Item( ATETextDOM::Int32 index) const;
02402 
02403 };
02404 
02406 //       --IArrayInteger--
02408 
02409 class IArrayInteger
02410 {
02411 private:
02412         ArrayIntegerRef fArrayInteger;
02413 public:
02416         IArrayInteger();
02420         IArrayInteger(const IArrayInteger& src);
02424         IArrayInteger& operator=(const IArrayInteger& rhs);
02428         bool operator==(const IArrayInteger& rhs) const;
02432         bool operator!=(const IArrayInteger& rhs) const;
02438         explicit IArrayInteger(ArrayIntegerRef arrayinteger);
02440         virtual ~IArrayInteger();
02443         ArrayIntegerRef GetRef() const;
02446         bool IsNull() const;
02447 
02448         // ========================================================================
02449         // PROPERTIES
02450         // ========================================================================
02451 
02454         ATETextDOM::Int32 GetSize( ) const;
02457         ATETextDOM::Int32 GetFirst( ) const;
02460         ATETextDOM::Int32 GetLast( ) const;
02461 
02462         // ========================================================================
02463         // METHODS
02464         // ========================================================================
02465 
02471         ATETextDOM::Int32 Item( ATETextDOM::Int32 index) const;
02472 
02473 };
02474 
02476 //       --IArrayLineCapType--
02478 
02480 class IArrayLineCapType
02481 {
02482 private:
02483         ArrayLineCapTypeRef     fArrayLineCapType;
02484 public:
02487         IArrayLineCapType();
02491         IArrayLineCapType(const IArrayLineCapType& src);
02495         IArrayLineCapType& operator=(const IArrayLineCapType& rhs);
02499         bool operator==(const IArrayLineCapType& rhs) const;
02503         bool operator!=(const IArrayLineCapType& rhs) const;
02509         explicit IArrayLineCapType(ArrayLineCapTypeRef arraylinecaptype);
02511         virtual ~IArrayLineCapType();
02514         ArrayLineCapTypeRef GetRef() const;
02517         bool IsNull() const;
02518 
02519         // ========================================================================
02520         // PROPERTIES
02521         // ========================================================================
02522 
02525         ATETextDOM::Int32 GetSize( ) const;
02528         LineCapType GetFirst( ) const;
02531         LineCapType GetLast( ) const;
02532 
02533         // ========================================================================
02534         // METHODS
02535         // ========================================================================
02536 
02542         LineCapType Item( ATETextDOM::Int32 index) const;
02543 
02544 };
02545 
02547 //       --IArrayFigureStyle--
02549 
02551 class IArrayFigureStyle
02552 {
02553 private:
02554         ArrayFigureStyleRef     fArrayFigureStyle;
02555 public:
02558         IArrayFigureStyle();
02562         IArrayFigureStyle(const IArrayFigureStyle& src);
02566         IArrayFigureStyle& operator=(const IArrayFigureStyle& rhs);
02570         bool operator==(const IArrayFigureStyle& rhs) const;
02574         bool operator!=(const IArrayFigureStyle& rhs) const;
02580         explicit IArrayFigureStyle(ArrayFigureStyleRef arrayfigurestyle);
02582         virtual ~IArrayFigureStyle();
02585         ArrayFigureStyleRef GetRef() const;
02588         bool IsNull() const;
02589 
02590         // ========================================================================
02591         // PROPERTIES
02592         // ========================================================================
02593 
02596         ATETextDOM::Int32 GetSize( ) const;
02599         FigureStyle GetFirst( ) const;
02602         FigureStyle GetLast( ) const;
02603 
02604         // ========================================================================
02605         // METHODS
02606         // ========================================================================
02607 
02613         FigureStyle Item( ATETextDOM::Int32 index) const;
02614 
02615 };
02616 
02618 //       --IArrayLineJoinType--
02620 
02622 class IArrayLineJoinType
02623 {
02624 private:
02625         ArrayLineJoinTypeRef    fArrayLineJoinType;
02626 public:
02629         IArrayLineJoinType();
02633         IArrayLineJoinType(const IArrayLineJoinType& src);
02637         IArrayLineJoinType& operator=(const IArrayLineJoinType& rhs);
02641         bool operator==(const IArrayLineJoinType& rhs) const;
02645         bool operator!=(const IArrayLineJoinType& rhs) const;
02651         explicit IArrayLineJoinType(ArrayLineJoinTypeRef arraylinejointype);
02653         virtual ~IArrayLineJoinType();
02656         ArrayLineJoinTypeRef GetRef() const;
02659         bool IsNull() const;
02660 
02661         // ========================================================================
02662         // PROPERTIES
02663         // ========================================================================
02664 
02667         ATETextDOM::Int32 GetSize( ) const;
02670         LineJoinType GetFirst( ) const;
02673         LineJoinType GetLast( ) const;
02674 
02675         // ========================================================================
02676         // METHODS
02677         // ========================================================================
02678 
02684         LineJoinType Item( ATETextDOM::Int32 index) const;
02685 
02686 };
02687 
02689 //       --IArrayWariChuJustification--
02691 
02693 class IArrayWariChuJustification
02694 {
02695 private:
02696         ArrayWariChuJustificationRef    fArrayWariChuJustification;
02697 public:
02700         IArrayWariChuJustification();
02704         IArrayWariChuJustification(const IArrayWariChuJustification& src);
02708         IArrayWariChuJustification& operator=(const IArrayWariChuJustification& rhs);
02712         bool operator==(const IArrayWariChuJustification& rhs) const;
02716         bool operator!=(const IArrayWariChuJustification& rhs) const;
02722         explicit IArrayWariChuJustification(ArrayWariChuJustificationRef arraywarichujustification);
02724         virtual ~IArrayWariChuJustification();
02727         ArrayWariChuJustificationRef GetRef() const;
02730         bool IsNull() const;
02731 
02732         // ========================================================================
02733         // PROPERTIES
02734         // ========================================================================
02735 
02738         ATETextDOM::Int32 GetSize( ) const;
02741         WariChuJustification GetFirst( ) const;
02744         WariChuJustification GetLast( ) const;
02745 
02746         // ========================================================================
02747         // METHODS
02748         // ========================================================================
02749 
02755         WariChuJustification Item( ATETextDOM::Int32 index) const;
02756 
02757 };
02758 
02760 //       --IArrayStyleRunAlignment--
02762 
02764 class IArrayStyleRunAlignment
02765 {
02766 private:
02767         ArrayStyleRunAlignmentRef       fArrayStyleRunAlignment;
02768 public:
02771         IArrayStyleRunAlignment();
02775         IArrayStyleRunAlignment(const IArrayStyleRunAlignment& src);
02779         IArrayStyleRunAlignment& operator=(const IArrayStyleRunAlignment& rhs);
02783         bool operator==(const IArrayStyleRunAlignment& rhs) const;
02787         bool operator!=(const IArrayStyleRunAlignment& rhs) const;
02793         explicit IArrayStyleRunAlignment(ArrayStyleRunAlignmentRef arraystylerunalignment);
02795         virtual ~IArrayStyleRunAlignment();
02798         ArrayStyleRunAlignmentRef GetRef() const;
02801         bool IsNull() const;
02802 
02803         // ========================================================================
02804         // PROPERTIES
02805         // ========================================================================
02806 
02809         ATETextDOM::Int32 GetSize( ) const;
02812         StyleRunAlignment GetFirst( ) const;
02815         StyleRunAlignment GetLast( ) const;
02816 
02817         // ========================================================================
02818         // METHODS
02819         // ========================================================================
02820 
02826         StyleRunAlignment Item( ATETextDOM::Int32 index) const;
02827 
02828 };
02829 
02831 //       --IArrayAutoKernType--
02833 
02835 class IArrayAutoKernType
02836 {
02837 private:
02838         ArrayAutoKernTypeRef    fArrayAutoKernType;
02839 public:
02842         IArrayAutoKernType();
02846         IArrayAutoKernType(const IArrayAutoKernType& src);
02850         IArrayAutoKernType& operator=(const IArrayAutoKernType& rhs);
02854         bool operator==(const IArrayAutoKernType& rhs) const;
02858         bool operator!=(const IArrayAutoKernType& rhs) const;
02864         explicit IArrayAutoKernType(ArrayAutoKernTypeRef arrayautokerntype);
02866         virtual ~IArrayAutoKernType();
02869         ArrayAutoKernTypeRef GetRef() const;
02872         bool IsNull() const;
02873 
02874         // ========================================================================
02875         // PROPERTIES
02876         // ========================================================================
02877 
02880         ATETextDOM::Int32 GetSize( ) const;
02883         AutoKernType GetFirst( ) const;
02886         AutoKernType GetLast( ) const;
02887 
02888         // ========================================================================
02889         // METHODS
02890         // ========================================================================
02891 
02897         AutoKernType Item( ATETextDOM::Int32 index) const;
02898 
02899 };
02900 
02902 //       --IArrayBaselineDirection--
02904 
02906 class IArrayBaselineDirection
02907 {
02908 private:
02909         ArrayBaselineDirectionRef       fArrayBaselineDirection;
02910 public:
02913         IArrayBaselineDirection();
02917         IArrayBaselineDirection(const IArrayBaselineDirection& src);
02921         IArrayBaselineDirection& operator=(const IArrayBaselineDirection& rhs);
02925         bool operator==(const IArrayBaselineDirection& rhs) const;
02929         bool operator!=(const IArrayBaselineDirection& rhs) const;
02935         explicit IArrayBaselineDirection(ArrayBaselineDirectionRef arraybaselinedirection);
02937         virtual ~IArrayBaselineDirection();
02940         ArrayBaselineDirectionRef GetRef() const;
02943         bool IsNull() const;
02944 
02945         // ========================================================================
02946         // PROPERTIES
02947         // ========================================================================
02948 
02951         ATETextDOM::Int32 GetSize( ) const;
02954         BaselineDirection GetFirst( ) const;
02957         BaselineDirection GetLast( ) const;
02958 
02959         // ========================================================================
02960         // METHODS
02961         // ========================================================================
02962 
02968         BaselineDirection Item( ATETextDOM::Int32 index) const;
02969 
02970 };
02971 
02973 //       --IArrayLanguage--
02975 
02977 class IArrayLanguage
02978 {
02979 private:
02980         ArrayLanguageRef        fArrayLanguage;
02981 public:
02984         IArrayLanguage();
02988         IArrayLanguage(const IArrayLanguage& src);
02992         IArrayLanguage& operator=(const IArrayLanguage& rhs);
02996         bool operator==(const IArrayLanguage& rhs) const;
03000         bool operator!=(const IArrayLanguage& rhs) const;
03006         explicit IArrayLanguage(ArrayLanguageRef arraylanguage);
03008         virtual ~IArrayLanguage();
03011         ArrayLanguageRef GetRef() const;
03014         bool IsNull() const;
03015 
03016         // ========================================================================
03017         // PROPERTIES
03018         // ========================================================================
03019 
03022         ATETextDOM::Int32 GetSize( ) const;
03025         Language GetFirst( ) const;
03028         Language GetLast( ) const;
03029 
03030         // ========================================================================
03031         // METHODS
03032         // ========================================================================
03033 
03039         Language Item( ATETextDOM::Int32 index) const;
03040 
03041 };
03042 
03044 //       --IArrayFontCapsOption--
03046 
03048 class IArrayFontCapsOption
03049 {
03050 private:
03051         ArrayFontCapsOptionRef  fArrayFontCapsOption;
03052 public:
03055         IArrayFontCapsOption();
03059         IArrayFontCapsOption(const IArrayFontCapsOption& src);
03063         IArrayFontCapsOption& operator=(const IArrayFontCapsOption& rhs);
03067         bool operator==(const IArrayFontCapsOption& rhs) const;
03071         bool operator!=(const IArrayFontCapsOption& rhs) const;
03077         explicit IArrayFontCapsOption(ArrayFontCapsOptionRef arrayfontcapsoption);
03079         virtual ~IArrayFontCapsOption();
03082         ArrayFontCapsOptionRef GetRef() const;
03085         bool IsNull() const;
03086 
03087         // ========================================================================
03088         // PROPERTIES
03089         // ========================================================================
03090 
03093         ATETextDOM::Int32 GetSize( ) const;
03096         FontCapsOption GetFirst( ) const;
03099         FontCapsOption GetLast( ) const;
03100 
03101         // ========================================================================
03102         // METHODS
03103         // ========================================================================
03104 
03110         FontCapsOption Item( ATETextDOM::Int32 index) const;
03111 
03112 };
03113 
03115 //       --IArrayFontBaselineOption--
03117 
03119 class IArrayFontBaselineOption
03120 {
03121 private:
03122         ArrayFontBaselineOptionRef      fArrayFontBaselineOption;
03123 public:
03126         IArrayFontBaselineOption();
03130         IArrayFontBaselineOption(const IArrayFontBaselineOption& src);
03134         IArrayFontBaselineOption& operator=(const IArrayFontBaselineOption& rhs);
03138         bool operator==(const IArrayFontBaselineOption& rhs) const;
03142         bool operator!=(const IArrayFontBaselineOption& rhs) const;
03148         explicit IArrayFontBaselineOption(ArrayFontBaselineOptionRef arrayfontbaselineoption);
03150         virtual ~IArrayFontBaselineOption();
03153         ArrayFontBaselineOptionRef GetRef() const;
03156         bool IsNull() const;
03157 
03158         // ========================================================================
03159         // PROPERTIES
03160         // ========================================================================
03161 
03164         ATETextDOM::Int32 GetSize( ) const;
03167         FontBaselineOption GetFirst( ) const;
03170         FontBaselineOption GetLast( ) const;
03171 
03172         // ========================================================================
03173         // METHODS
03174         // ========================================================================
03175 
03181         FontBaselineOption Item( ATETextDOM::Int32 index) const;
03182 
03183 };
03184 
03186 //       --IArrayFontOpenTypePositionOption--
03188 
03190 class IArrayFontOpenTypePositionOption
03191 {
03192 private:
03193         ArrayFontOpenTypePositionOptionRef      fArrayFontOpenTypePositionOption;
03194 public:
03197         IArrayFontOpenTypePositionOption();
03201         IArrayFontOpenTypePositionOption(const IArrayFontOpenTypePositionOption& src);
03205         IArrayFontOpenTypePositionOption& operator=(const IArrayFontOpenTypePositionOption& rhs);
03209         bool operator==(const IArrayFontOpenTypePositionOption& rhs) const;
03213         bool operator!=(const IArrayFontOpenTypePositionOption& rhs) const;
03219         explicit IArrayFontOpenTypePositionOption(ArrayFontOpenTypePositionOptionRef arrayfontopentypepositionoption);
03221         virtual ~IArrayFontOpenTypePositionOption();
03224         ArrayFontOpenTypePositionOptionRef GetRef() const;
03227         bool IsNull() const;
03228 
03229         // ========================================================================
03230         // PROPERTIES
03231         // ========================================================================
03232 
03235         ATETextDOM::Int32 GetSize( ) const;
03238         FontOpenTypePositionOption GetFirst( ) const;
03241         FontOpenTypePositionOption GetLast( ) const;
03242 
03243         // ========================================================================
03244         // METHODS
03245         // ========================================================================
03246 
03252         FontOpenTypePositionOption Item( ATETextDOM::Int32 index) const;
03253 
03254 };
03255 
03257 //       --IArrayUnderlinePosition--
03259 
03261 class IArrayUnderlinePosition
03262 {
03263 private:
03264         ArrayUnderlinePositionRef       fArrayUnderlinePosition;
03265 public:
03268         IArrayUnderlinePosition();
03272         IArrayUnderlinePosition(const IArrayUnderlinePosition& src);
03276         IArrayUnderlinePosition& operator=(const IArrayUnderlinePosition& rhs);
03280         bool operator==(const IArrayUnderlinePosition& rhs) const;
03284         bool operator!=(const IArrayUnderlinePosition& rhs) const;
03290         explicit IArrayUnderlinePosition(ArrayUnderlinePositionRef arrayunderlineposition);
03292         virtual ~IArrayUnderlinePosition();
03295         ArrayUnderlinePositionRef GetRef() const;
03298         bool IsNull() const;
03299 
03300         // ========================================================================
03301         // PROPERTIES
03302         // ========================================================================
03303 
03306         ATETextDOM::Int32 GetSize( ) const;
03309         UnderlinePosition GetFirst( ) const;
03312         UnderlinePosition GetLast( ) const;
03313 
03314         // ========================================================================
03315         // METHODS
03316         // ========================================================================
03317 
03323         UnderlinePosition Item( ATETextDOM::Int32 index) const;
03324 
03325 };
03326 
03328 //       --IArrayStrikethroughPosition--
03330 
03332 class IArrayStrikethroughPosition
03333 {
03334 private:
03335         ArrayStrikethroughPositionRef   fArrayStrikethroughPosition;
03336 public:
03339         IArrayStrikethroughPosition();
03343         IArrayStrikethroughPosition(const IArrayStrikethroughPosition& src);
03347         IArrayStrikethroughPosition& operator=(const IArrayStrikethroughPosition& rhs);
03351         bool operator==(const IArrayStrikethroughPosition& rhs) const;
03355         bool operator!=(const IArrayStrikethroughPosition& rhs) const;
03361         explicit IArrayStrikethroughPosition(ArrayStrikethroughPositionRef arraystrikethroughposition);
03363         virtual ~IArrayStrikethroughPosition();
03366         ArrayStrikethroughPositionRef GetRef() const;
03369         bool IsNull() const;
03370 
03371         // ========================================================================
03372         // PROPERTIES
03373         // ========================================================================
03374 
03377         ATETextDOM::Int32 GetSize( ) const;
03380         StrikethroughPosition GetFirst( ) const;
03383         StrikethroughPosition GetLast( ) const;
03384 
03385         // ========================================================================
03386         // METHODS
03387         // ========================================================================
03388 
03394         StrikethroughPosition Item( ATETextDOM::Int32 index) const;
03395 
03396 };
03397 
03399 //       --IArrayParagraphJustification--
03401 
03403 class IArrayParagraphJustification
03404 {
03405 private:
03406         ArrayParagraphJustificationRef  fArrayParagraphJustification;
03407 public:
03410         IArrayParagraphJustification();
03414         IArrayParagraphJustification(const IArrayParagraphJustification& src);
03418         IArrayParagraphJustification& operator=(const IArrayParagraphJustification& rhs);
03422         bool operator==(const IArrayParagraphJustification& rhs) const;
03426         bool operator!=(const IArrayParagraphJustification& rhs) const;
03432         explicit IArrayParagraphJustification(ArrayParagraphJustificationRef arrayparagraphjustification);
03434         virtual ~IArrayParagraphJustification();
03437         ArrayParagraphJustificationRef GetRef() const;
03440         bool IsNull() const;
03441 
03442         // ========================================================================
03443         // PROPERTIES
03444         // ========================================================================
03445 
03448         ATETextDOM::Int32 GetSize( ) const;
03451         ParagraphJustification GetFirst( ) const;
03454         ParagraphJustification GetLast( ) const;
03455 
03456         // ========================================================================
03457         // METHODS
03458         // ========================================================================
03459 
03465         ParagraphJustification Item( ATETextDOM::Int32 index) const;
03466 
03467 };
03468 
03470 //       --IArrayArrayReal--
03472 
03473 class IArrayArrayReal
03474 {
03475 private:
03476         ArrayArrayRealRef       fArrayArrayReal;
03477 public:
03480         IArrayArrayReal();
03484         IArrayArrayReal(const IArrayArrayReal& src);
03488         IArrayArrayReal& operator=(const IArrayArrayReal& rhs);
03492         bool operator==(const IArrayArrayReal& rhs) const;
03496         bool operator!=(const IArrayArrayReal& rhs) const;
03502         explicit IArrayArrayReal(ArrayArrayRealRef arrayarrayreal);
03504         virtual ~IArrayArrayReal();
03507         ArrayArrayRealRef GetRef() const;
03510         bool IsNull() const;
03511 
03512         // ========================================================================
03513         // PROPERTIES
03514         // ========================================================================
03515 
03518         ATETextDOM::Int32 GetSize( ) const;
03521         IArrayReal GetFirst( ) const;
03524         IArrayReal GetLast( ) const;
03525 
03526         // ========================================================================
03527         // METHODS
03528         // ========================================================================
03529 
03535         IArrayReal Item( ATETextDOM::Int32 index) const;
03536 
03537 };
03538 
03540 //       --IArrayBurasagariType--
03542 
03544 class IArrayBurasagariType
03545 {
03546 private:
03547         ArrayBurasagariTypeRef  fArrayBurasagariType;
03548 public:
03551         IArrayBurasagariType();
03555         IArrayBurasagariType(const IArrayBurasagariType& src);
03559         IArrayBurasagariType& operator=(const IArrayBurasagariType& rhs);
03563         bool operator==(const IArrayBurasagariType& rhs) const;
03567         bool operator!=(const IArrayBurasagariType& rhs) const;
03573         explicit IArrayBurasagariType(ArrayBurasagariTypeRef arrayburasagaritype);
03575         virtual ~IArrayBurasagariType();
03578         ArrayBurasagariTypeRef GetRef() const;
03581         bool IsNull() const;
03582 
03583         // ========================================================================
03584         // PROPERTIES
03585         // ========================================================================
03586 
03589         ATETextDOM::Int32 GetSize( ) const;
03592         BurasagariType GetFirst( ) const;
03595         BurasagariType GetLast( ) const;
03596 
03597         // ========================================================================
03598         // METHODS
03599         // ========================================================================
03600 
03606         BurasagariType Item( ATETextDOM::Int32 index) const;
03607 
03608 };
03609 
03611 //       --IArrayPreferredKinsokuOrder--
03613 
03615 class IArrayPreferredKinsokuOrder
03616 {
03617 private:
03618         ArrayPreferredKinsokuOrderRef   fArrayPreferredKinsokuOrder;
03619 public:
03622         IArrayPreferredKinsokuOrder();
03626         IArrayPreferredKinsokuOrder(const IArrayPreferredKinsokuOrder& src);
03630         IArrayPreferredKinsokuOrder& operator=(const IArrayPreferredKinsokuOrder& rhs);
03634         bool operator==(const IArrayPreferredKinsokuOrder& rhs) const;
03638         bool operator!=(const IArrayPreferredKinsokuOrder& rhs) const;
03644         explicit IArrayPreferredKinsokuOrder(ArrayPreferredKinsokuOrderRef arraypreferredkinsokuorder);
03646         virtual ~IArrayPreferredKinsokuOrder();
03649         ArrayPreferredKinsokuOrderRef GetRef() const;
03652         bool IsNull() const;
03653 
03654         // ========================================================================
03655         // PROPERTIES
03656         // ========================================================================
03657 
03660         ATETextDOM::Int32 GetSize( ) const;
03663         PreferredKinsokuOrder GetFirst( ) const;
03666         PreferredKinsokuOrder GetLast( ) const;
03667 
03668         // ========================================================================
03669         // METHODS
03670         // ========================================================================
03671 
03677         PreferredKinsokuOrder Item( ATETextDOM::Int32 index) const;
03678 
03679 };
03680 
03682 //       --IArrayKinsokuRef--
03684 
03685 class IArrayKinsokuRef
03686 {
03687 private:
03688         ArrayKinsokuRefRef      fArrayKinsokuRef;
03689 public:
03692         IArrayKinsokuRef();
03696         IArrayKinsokuRef(const IArrayKinsokuRef& src);
03700         IArrayKinsokuRef& operator=(const IArrayKinsokuRef& rhs);
03704         bool operator==(const IArrayKinsokuRef& rhs) const;
03708         bool operator!=(const IArrayKinsokuRef& rhs) const;
03714         explicit IArrayKinsokuRef(ArrayKinsokuRefRef arraykinsokuref);
03716         virtual ~IArrayKinsokuRef();
03719         ArrayKinsokuRefRef GetRef() const;
03722         bool IsNull() const;
03723 
03724         // ========================================================================
03725         // PROPERTIES
03726         // ========================================================================
03727 
03730         ATETextDOM::Int32 GetSize( ) const;
03733         IKinsoku GetFirst( ) const;
03736         IKinsoku GetLast( ) const;
03737 
03738         // ========================================================================
03739         // METHODS
03740         // ========================================================================
03741 
03747         IKinsoku Item( ATETextDOM::Int32 index) const;
03748 
03749 };
03750 
03752 //       --IArrayMojiKumiRef--
03754 
03755 class IArrayMojiKumiRef
03756 {
03757 private:
03758         ArrayMojiKumiRefRef     fArrayMojiKumiRef;
03759 public:
03762         IArrayMojiKumiRef();
03766         IArrayMojiKumiRef(const IArrayMojiKumiRef& src);
03770         IArrayMojiKumiRef& operator=(const IArrayMojiKumiRef& rhs);
03774         bool operator==(const IArrayMojiKumiRef& rhs) const;
03778         bool operator!=(const IArrayMojiKumiRef& rhs) const;
03784         explicit IArrayMojiKumiRef(ArrayMojiKumiRefRef arraymojikumiref);
03786         virtual ~IArrayMojiKumiRef();
03789         ArrayMojiKumiRefRef GetRef() const;
03792         bool IsNull() const;
03793 
03794         // ========================================================================
03795         // PROPERTIES
03796         // ========================================================================
03797 
03800         ATETextDOM::Int32 GetSize( ) const;
03803         IMojiKumi GetFirst( ) const;
03806         IMojiKumi GetLast( ) const;
03807 
03808         // ========================================================================
03809         // METHODS
03810         // ========================================================================
03811 
03817         IMojiKumi Item( ATETextDOM::Int32 index) const;
03818 
03819 };
03820 
03822 //       --IArrayMojiKumiSetRef--
03824 
03825 class IArrayMojiKumiSetRef
03826 {
03827 private:
03828         ArrayMojiKumiSetRefRef  fArrayMojiKumiSetRef;
03829 public:
03832         IArrayMojiKumiSetRef();
03836         IArrayMojiKumiSetRef(const IArrayMojiKumiSetRef& src);
03840         IArrayMojiKumiSetRef& operator=(const IArrayMojiKumiSetRef& rhs);
03844         bool operator==(const IArrayMojiKumiSetRef& rhs) const;
03848         bool operator!=(const IArrayMojiKumiSetRef& rhs) const;
03854         explicit IArrayMojiKumiSetRef(ArrayMojiKumiSetRefRef arraymojikumisetref);
03856         virtual ~IArrayMojiKumiSetRef();
03859         ArrayMojiKumiSetRefRef GetRef() const;
03862         bool IsNull() const;
03863 
03864         // ========================================================================
03865         // PROPERTIES
03866         // ========================================================================
03867 
03870         ATETextDOM::Int32 GetSize( ) const;
03873         IMojiKumiSet GetFirst( ) const;
03876         IMojiKumiSet GetLast( ) const;
03877 
03878         // ========================================================================
03879         // METHODS
03880         // ========================================================================
03881 
03887         IMojiKumiSet Item( ATETextDOM::Int32 index) const;
03888 
03889 };
03890 
03892 //       --IArrayTabStopsRef--
03894 
03895 class IArrayTabStopsRef
03896 {
03897 private:
03898         ArrayTabStopsRefRef     fArrayTabStopsRef;
03899 public:
03902         IArrayTabStopsRef();
03906         IArrayTabStopsRef(const IArrayTabStopsRef& src);
03910         IArrayTabStopsRef& operator=(const IArrayTabStopsRef& rhs);
03914         bool operator==(const IArrayTabStopsRef& rhs) const;
03918         bool operator!=(const IArrayTabStopsRef& rhs) const;
03924         explicit IArrayTabStopsRef(ArrayTabStopsRefRef arraytabstopsref);
03926         virtual ~IArrayTabStopsRef();
03929         ArrayTabStopsRefRef GetRef() const;
03932         bool IsNull() const;
03933 
03934         // ========================================================================
03935         // PROPERTIES
03936         // ========================================================================
03937 
03940         ATETextDOM::Int32 GetSize( ) const;
03943         ITabStops GetFirst( ) const;
03946         ITabStops GetLast( ) const;
03947 
03948         // ========================================================================
03949         // METHODS
03950         // ========================================================================
03951 
03957         ITabStops Item( ATETextDOM::Int32 index) const;
03958 
03959 };
03960 
03962 //       --IArrayLeadingType--
03964 
03966 class IArrayLeadingType
03967 {
03968 private:
03969         ArrayLeadingTypeRef     fArrayLeadingType;
03970 public:
03973         IArrayLeadingType();
03977         IArrayLeadingType(const IArrayLeadingType& src);
03981         IArrayLeadingType& operator=(const IArrayLeadingType& rhs);
03985         bool operator==(const IArrayLeadingType& rhs) const;
03989         bool operator!=(const IArrayLeadingType& rhs) const;
03995         explicit IArrayLeadingType(ArrayLeadingTypeRef arrayleadingtype);
03997         virtual ~IArrayLeadingType();
04000         ArrayLeadingTypeRef GetRef() const;
04003         bool IsNull() const;
04004 
04005         // ========================================================================
04006         // PROPERTIES
04007         // ========================================================================
04008 
04011         ATETextDOM::Int32 GetSize( ) const;
04014         LeadingType GetFirst( ) const;
04017         LeadingType GetLast( ) const;
04018 
04019         // ========================================================================
04020         // METHODS
04021         // ========================================================================
04022 
04028         LeadingType Item( ATETextDOM::Int32 index) const;
04029 
04030 };
04031 
04033 //       --IArrayFontRef--
04035 
04036 class IArrayFontRef
04037 {
04038 private:
04039         ArrayFontRefRef fArrayFontRef;
04040 public:
04043         IArrayFontRef();
04047         IArrayFontRef(const IArrayFontRef& src);
04051         IArrayFontRef& operator=(const IArrayFontRef& rhs);
04055         bool operator==(const IArrayFontRef& rhs) const;
04059         bool operator!=(const IArrayFontRef& rhs) const;
04065         explicit IArrayFontRef(ArrayFontRefRef arrayfontref);
04067         virtual ~IArrayFontRef();
04070         ArrayFontRefRef GetRef() const;
04073         bool IsNull() const;
04074 
04075         // ========================================================================
04076         // PROPERTIES
04077         // ========================================================================
04078 
04081         ATETextDOM::Int32 GetSize( ) const;
04084         IFont GetFirst( ) const;
04087         IFont GetLast( ) const;
04088 
04089         // ========================================================================
04090         // METHODS
04091         // ========================================================================
04092 
04098         IFont Item( ATETextDOM::Int32 index) const;
04099 
04100 };
04101 
04103 //       --IArrayGlyphID--
04105 
04106 class IArrayGlyphID
04107 {
04108 private:
04109         ArrayGlyphIDRef fArrayGlyphID;
04110 public:
04113         IArrayGlyphID();
04117         IArrayGlyphID(const IArrayGlyphID& src);
04121         IArrayGlyphID& operator=(const IArrayGlyphID& rhs);
04125         bool operator==(const IArrayGlyphID& rhs) const;
04129         bool operator!=(const IArrayGlyphID& rhs) const;
04135         explicit IArrayGlyphID(ArrayGlyphIDRef arrayglyphid);
04137         virtual ~IArrayGlyphID();
04140         ArrayGlyphIDRef GetRef() const;
04143         bool IsNull() const;
04144 
04145         // ========================================================================
04146         // PROPERTIES
04147         // ========================================================================
04148 
04151         ATETextDOM::Int32 GetSize( ) const;
04154         ATEGlyphID GetFirst( ) const;
04157         ATEGlyphID GetLast( ) const;
04158 
04159         // ========================================================================
04160         // METHODS
04161         // ========================================================================
04162 
04168         ATEGlyphID Item( ATETextDOM::Int32 index) const;
04169 
04170 };
04171 
04173 //       --IArrayRealPoint--
04175 
04177 class IArrayRealPoint
04178 {
04179 private:
04180         ArrayRealPointRef       fArrayRealPoint;
04181 public:
04184         IArrayRealPoint();
04188         IArrayRealPoint(const IArrayRealPoint& src);
04192         IArrayRealPoint& operator=(const IArrayRealPoint& rhs);
04196         bool operator==(const IArrayRealPoint& rhs) const;
04200         bool operator!=(const IArrayRealPoint& rhs) const;
04206         explicit IArrayRealPoint(ArrayRealPointRef arrayrealpoint);
04208         virtual ~IArrayRealPoint();
04211         ArrayRealPointRef GetRef() const;
04214         bool IsNull() const;
04215 
04216         // ========================================================================
04217         // PROPERTIES
04218         // ========================================================================
04219 
04222         ATETextDOM::Int32 GetSize( ) const;
04225         ATETextDOM::RealPoint GetFirst( ) const;
04228         ATETextDOM::RealPoint GetLast( ) const;
04229 
04230         // ========================================================================
04231         // METHODS
04232         // ========================================================================
04233 
04239         ATETextDOM::RealPoint Item( ATETextDOM::Int32 index) const;
04240 
04241 };
04242 
04244 //       --IArrayRealMatrix--
04246 
04247 class IArrayRealMatrix
04248 {
04249 private:
04250         ArrayRealMatrixRef      fArrayRealMatrix;
04251 public:
04254         IArrayRealMatrix();
04258         IArrayRealMatrix(const IArrayRealMatrix& src);
04262         IArrayRealMatrix& operator=(const IArrayRealMatrix& rhs);
04266         bool operator==(const IArrayRealMatrix& rhs) const;
04270         bool operator!=(const IArrayRealMatrix& rhs) const;
04276         explicit IArrayRealMatrix(ArrayRealMatrixRef arrayrealmatrix);
04278         virtual ~IArrayRealMatrix();
04281         ArrayRealMatrixRef GetRef() const;
04284         bool IsNull() const;
04285 
04286         // ========================================================================
04287         // PROPERTIES
04288         // ========================================================================
04289 
04292         ATETextDOM::Int32 GetSize( ) const;
04295         ATETextDOM::RealMatrix GetFirst( ) const;
04298         ATETextDOM::RealMatrix GetLast( ) const;
04299 
04300         // ========================================================================
04301         // METHODS
04302         // ========================================================================
04303 
04309         ATETextDOM::RealMatrix Item( ATETextDOM::Int32 index) const;
04310 
04311 };
04312 
04314 //       --IArrayLine--
04316 
04319 class IArrayLine 
04320 {
04321 private:
04322         ArrayLineRef    fArrayLine;
04323 public:
04326         IArrayLine();
04330         IArrayLine(const IArrayLine& src);
04334         IArrayLine& operator=(const IArrayLine& rhs);
04338         bool operator==(const IArrayLine& rhs) const;
04342         bool operator!=(const IArrayLine& rhs) const;
04348         explicit IArrayLine(ArrayLineRef ArrayLineRef);
04350         virtual ~IArrayLine();
04353         ArrayLineRef GetRef() const;
04356         bool IsNull() const;
04357 
04358         // ========================================================================
04359         // PROPERTIES
04360         // ========================================================================
04361         
04364         ATETextDOM::Int32 GetSize( ) const;
04365         // ========================================================================
04366         // METHODS
04367         // ========================================================================
04368 
04376         void Item( ATETextDOM::Int32 index, ATETextDOM::FloatPoint* lineStart, ATETextDOM::FloatPoint* lineEnd) const;
04377 };
04378 
04380 //       --IArrayComposerEngine--
04382 
04384 class IArrayComposerEngine
04385 {
04386 private:
04387         ArrayComposerEngineRef  fArrayComposerEngine;
04388 public:
04391         IArrayComposerEngine();
04395         IArrayComposerEngine(const IArrayComposerEngine& src);
04399         IArrayComposerEngine& operator=(const IArrayComposerEngine& rhs);
04403         bool operator==(const IArrayComposerEngine& rhs) const;
04407         bool operator!=(const IArrayComposerEngine& rhs) const;
04413         explicit IArrayComposerEngine(ArrayComposerEngineRef arraycomposerengine);
04415         virtual ~IArrayComposerEngine();
04418         ArrayComposerEngineRef GetRef() const;
04421         bool IsNull() const;
04422 
04423         // ========================================================================
04424         // PROPERTIES
04425         // ========================================================================
04426 
04429         ATETextDOM::Int32 GetSize( ) const;
04432         ComposerEngine GetFirst( ) const;
04435         ComposerEngine GetLast( ) const;
04436 
04437         // ========================================================================
04438         // METHODS
04439         // ========================================================================
04440 
04446         ComposerEngine Item( ATETextDOM::Int32 index) const;
04447 
04448 };
04449 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
04451 //       --IArrayParagraphDirection--
04453 
04455 class IArrayParagraphDirection
04456 {
04457 private:
04458         ArrayParagraphDirectionRef      fArrayParagraphDirection;
04459 public:
04462         IArrayParagraphDirection();
04466         IArrayParagraphDirection(const IArrayParagraphDirection& src);
04470         IArrayParagraphDirection& operator=(const IArrayParagraphDirection& rhs);
04474         bool operator==(const IArrayParagraphDirection& rhs) const;
04478         bool operator!=(const IArrayParagraphDirection& rhs) const;
04484         explicit IArrayParagraphDirection(ArrayParagraphDirectionRef arrayparagraphdirection);
04486         virtual ~IArrayParagraphDirection();
04489         ArrayParagraphDirectionRef GetRef() const;
04492         bool IsNull() const;
04493 
04494         // ========================================================================
04495         // PROPERTIES
04496         // ========================================================================
04497 
04500         ATETextDOM::Int32 GetSize( ) const;
04503         ParagraphDirection GetFirst( ) const;
04506         ParagraphDirection GetLast( ) const;
04507 
04508         // ========================================================================
04509         // METHODS
04510         // ========================================================================
04511 
04517         ParagraphDirection Item( ATETextDOM::Int32 index) const;
04518 
04519 };
04520 
04522 //       --IArrayJustificationMethod--
04524 
04526 class IArrayJustificationMethod
04527 {
04528 private:
04529         ArrayJustificationMethodRef     fArrayJustificationMethod;
04530 public:
04533         IArrayJustificationMethod();
04537         IArrayJustificationMethod(const IArrayJustificationMethod& src);
04541         IArrayJustificationMethod& operator=(const IArrayJustificationMethod& rhs);
04545         bool operator==(const IArrayJustificationMethod& rhs) const;
04549         bool operator!=(const IArrayJustificationMethod& rhs) const;
04555         explicit IArrayJustificationMethod(ArrayJustificationMethodRef arrayjustificationmethod);
04557         virtual ~IArrayJustificationMethod();
04560         ArrayJustificationMethodRef GetRef() const;
04563         bool IsNull() const;
04564 
04565         // ========================================================================
04566         // PROPERTIES
04567         // ========================================================================
04568 
04571         ATETextDOM::Int32 GetSize( ) const;
04574         JustificationMethod GetFirst( ) const;
04577         JustificationMethod GetLast( ) const;
04578 
04579         // ========================================================================
04580         // METHODS
04581         // ========================================================================
04582 
04588         JustificationMethod Item( ATETextDOM::Int32 index) const;
04589 
04590 };
04591 
04593 //       --IArrayKashidaWidth--
04595 
04597 class IArrayKashidaWidth
04598 {
04599 private:
04600         ArrayKashidaWidthRef    fArrayKashidaWidth;
04601 public:
04604         IArrayKashidaWidth();
04608         IArrayKashidaWidth(const IArrayKashidaWidth& src);
04612         IArrayKashidaWidth& operator=(const IArrayKashidaWidth& rhs);
04616         bool operator==(const IArrayKashidaWidth& rhs) const;
04620         bool operator!=(const IArrayKashidaWidth& rhs) const;
04626         explicit IArrayKashidaWidth(ArrayKashidaWidthRef arraykashidawidth);
04628         virtual ~IArrayKashidaWidth();
04631         ArrayKashidaWidthRef GetRef() const;
04634         bool IsNull() const;
04635 
04636         // ========================================================================
04637         // PROPERTIES
04638         // ========================================================================
04639 
04642         ATETextDOM::Int32 GetSize( ) const;
04645         KashidaWidth GetFirst( ) const;
04648         KashidaWidth GetLast( ) const;
04649 
04650         // ========================================================================
04651         // METHODS
04652         // ========================================================================
04653 
04659         KashidaWidth Item( ATETextDOM::Int32 index) const;
04660 
04661 };
04662 
04664 //       --IArrayKashidas--
04666 
04668 class IArrayKashidas
04669 {
04670 private:
04671         ArrayKashidasRef        fArrayKashidas;
04672 public:
04675         IArrayKashidas();
04679         IArrayKashidas(const IArrayKashidas& src);
04683         IArrayKashidas& operator=(const IArrayKashidas& rhs);
04687         bool operator==(const IArrayKashidas& rhs) const;
04691         bool operator!=(const IArrayKashidas& rhs) const;
04697         explicit IArrayKashidas(ArrayKashidasRef arraykashidas);
04699         virtual ~IArrayKashidas();
04702         ArrayKashidasRef GetRef() const;
04705         bool IsNull() const;
04706 
04707         // ========================================================================
04708         // PROPERTIES
04709         // ========================================================================
04710 
04713         ATETextDOM::Int32 GetSize( ) const;
04716         Kashidas GetFirst( ) const;
04719         Kashidas GetLast( ) const;
04720 
04721         // ========================================================================
04722         // METHODS
04723         // ========================================================================
04724 
04730         Kashidas Item( ATETextDOM::Int32 index) const;
04731 
04732 };
04733 
04735 //       --IArrayDirOverride--
04737 
04739 class IArrayDirOverride
04740 {
04741 private:
04742         ArrayDirOverrideRef     fArrayDirOverride;
04743 public:
04746         IArrayDirOverride();
04750         IArrayDirOverride(const IArrayDirOverride& src);
04754         IArrayDirOverride& operator=(const IArrayDirOverride& rhs);
04758         bool operator==(const IArrayDirOverride& rhs) const;
04762         bool operator!=(const IArrayDirOverride& rhs) const;
04768         explicit IArrayDirOverride(ArrayDirOverrideRef arraydiroverride);
04770         virtual ~IArrayDirOverride();
04773         ArrayDirOverrideRef GetRef() const;
04776         bool IsNull() const;
04777 
04778         // ========================================================================
04779         // PROPERTIES
04780         // ========================================================================
04781 
04784         ATETextDOM::Int32 GetSize( ) const;
04787         DirOverride GetFirst( ) const;
04790         DirOverride GetLast( ) const;
04791 
04792         // ========================================================================
04793         // METHODS
04794         // ========================================================================
04795 
04801         DirOverride Item( ATETextDOM::Int32 index) const;
04802 
04803 };
04804 
04806 //       --IArrayDigitSet--
04808 
04810 class IArrayDigitSet
04811 {
04812 private:
04813         ArrayDigitSetRef        fArrayDigitSet;
04814 public:
04817         IArrayDigitSet();
04821         IArrayDigitSet(const IArrayDigitSet& src);
04825         IArrayDigitSet& operator=(const IArrayDigitSet& rhs);
04829         bool operator==(const IArrayDigitSet& rhs) const;
04833         bool operator!=(const IArrayDigitSet& rhs) const;
04839         explicit IArrayDigitSet(ArrayDigitSetRef arraydigitset);
04841         virtual ~IArrayDigitSet();
04844         ArrayDigitSetRef GetRef() const;
04847         bool IsNull() const;
04848 
04849         // ========================================================================
04850         // PROPERTIES
04851         // ========================================================================
04852 
04855         ATETextDOM::Int32 GetSize( ) const;
04858         DigitSet GetFirst( ) const;
04861         DigitSet GetLast( ) const;
04862 
04863         // ========================================================================
04864         // METHODS
04865         // ========================================================================
04866 
04872         DigitSet Item( ATETextDOM::Int32 index) const;
04873 
04874 };
04875 
04877 //       --IArrayDiacVPos--
04879 
04881 class IArrayDiacVPos
04882 {
04883 private:
04884         ArrayDiacVPosRef        fArrayDiacVPos;
04885 public:
04888         IArrayDiacVPos();
04892         IArrayDiacVPos(const IArrayDiacVPos& src);
04896         IArrayDiacVPos& operator=(const IArrayDiacVPos& rhs);
04900         bool operator==(const IArrayDiacVPos& rhs) const;
04904         bool operator!=(const IArrayDiacVPos& rhs) const;
04910         explicit IArrayDiacVPos(ArrayDiacVPosRef arraydiacvpos);
04912         virtual ~IArrayDiacVPos();
04915         ArrayDiacVPosRef GetRef() const;
04918         bool IsNull() const;
04919 
04920         // ========================================================================
04921         // PROPERTIES
04922         // ========================================================================
04923 
04926         ATETextDOM::Int32 GetSize( ) const;
04929         DiacVPos GetFirst( ) const;
04932         DiacVPos GetLast( ) const;
04933 
04934         // ========================================================================
04935         // METHODS
04936         // ========================================================================
04937 
04943         DiacVPos Item( ATETextDOM::Int32 index) const;
04944 
04945 };
04946 #endif
04947 
04948 
04950 //       --ICharFeatures--
04952 
04974 class ICharFeatures
04975 {
04976 private:
04977         CharFeaturesRef fCharFeatures;
04978 public:
04982         ICharFeatures();
04986         ICharFeatures(const ICharFeatures& src);
04990         ICharFeatures& operator=(const ICharFeatures& rhs);
04994         bool operator==(const ICharFeatures& rhs) const;
04998         bool operator!=(const ICharFeatures& rhs) const;
05004         explicit ICharFeatures(CharFeaturesRef charfeatures);
05006         virtual ~ICharFeatures();
05009         CharFeaturesRef GetRef() const;
05012         bool IsNull() const;
05013 
05016         ICharFeatures Clone( ) const;
05017 
05019         // GET PROPERTIES
05021 
05026         IFont GetFont( bool* isAssigned) const;
05031         ATETextDOM::Real GetFontSize( bool* isAssigned) const;
05036         ATETextDOM::Real GetHorizontalScale( bool* isAssigned) const;
05041         ATETextDOM::Real GetVerticalScale( bool* isAssigned) const;
05046         bool GetAutoLeading( bool* isAssigned) const;
05051         ATETextDOM::Real GetLeading( bool* isAssigned) const;
05056         ATETextDOM::Int32 GetTracking( bool* isAssigned) const;
05061         ATETextDOM::Real GetBaselineShift( bool* isAssigned) const;
05066         ATETextDOM::Real GetCharacterRotation( bool* isAssigned) const;
05075         AutoKernType GetAutoKernType( bool* isAssigned) const;
05076 
05081         FontCapsOption GetFontCapsOption( bool* isAssigned) const;
05086         FontBaselineOption GetFontBaselineOption( bool* isAssigned) const;
05091         FontOpenTypePositionOption GetFontOpenTypePositionOption( bool* isAssigned) const;
05096         StrikethroughPosition GetStrikethroughPosition( bool* isAssigned) const;
05101         UnderlinePosition GetUnderlinePosition( bool* isAssigned) const;
05106         ATETextDOM::Real GetUnderlineOffset( bool* isAssigned) const;
05107         // ------------------------------------------------------------------
05108         // OpenType settings
05109         // ------------------------------------------------------------------
05114         bool GetLigature( bool* isAssigned) const;
05119         bool GetDiscretionaryLigatures( bool* isAssigned) const;
05124         bool GetContextualLigatures( bool* isAssigned) const;
05129         bool GetAlternateLigatures( bool* isAssigned) const;
05134         bool GetOldStyle( bool* isAssigned) const;
05139         bool GetFractions( bool* isAssigned) const;
05144         bool GetOrdinals( bool* isAssigned) const;
05149         bool GetSwash( bool* isAssigned) const;
05154         bool GetTitling( bool* isAssigned) const;
05159         bool GetConnectionForms( bool* isAssigned) const;
05164         bool GetStylisticAlternates( bool* isAssigned) const;
05169         bool GetOrnaments( bool* isAssigned) const;
05174         FigureStyle GetFigureStyle( bool* isAssigned) const;
05175         // ------------------------------------------------------------------
05176         // Japanese OpenType settings
05177         // ------------------------------------------------------------------
05182         bool GetProportionalMetrics( bool* isAssigned) const;
05187         bool GetKana( bool* isAssigned) const;
05192         bool GetRuby( bool* isAssigned) const;
05197         bool GetItalics( bool* isAssigned) const;
05202         BaselineDirection GetBaselineDirection( bool* isAssigned) const;
05207         Language GetLanguage( bool* isAssigned) const;
05212         JapaneseAlternateFeature GetJapaneseAlternateFeature( bool* isAssigned) const;
05217         ATETextDOM::Real GetTsume( bool* isAssigned) const;
05222         StyleRunAlignment GetStyleRunAlignment( bool* isAssigned) const;
05223         // ------------------------------------------------------------------
05224         // WariChu settings
05225         // ------------------------------------------------------------------
05230         bool GetWariChuEnabled( bool* isAssigned) const;
05235         ATETextDOM::Int32 GetWariChuLineCount( bool* isAssigned) const;
05240         ATETextDOM::Int32 GetWariChuLineGap( bool* isAssigned) const;
05245         ATETextDOM::Real GetWariChuScale( bool* isAssigned) const;
05250         ATETextDOM::Real GetWariChuSize( bool* isAssigned) const;
05255         ATETextDOM::Int32 GetWariChuWidowAmount( bool* isAssigned) const;
05260         ATETextDOM::Int32 GetWariChuOrphanAmount( bool* isAssigned) const;
05265         WariChuJustification GetWariChuJustification( bool* isAssigned) const;
05270         ATETextDOM::Int32 GetTCYUpDownAdjustment( bool* isAssigned) const;
05275         ATETextDOM::Int32 GetTCYLeftRightAdjustment( bool* isAssigned) const;
05280         ATETextDOM::Real GetLeftAki( bool* isAssigned) const;
05285         ATETextDOM::Real GetRightAki( bool* isAssigned) const;
05286         //---------------------------------------------------------------
05287         // General settings
05288         //---------------------------------------------------------------
05293         bool GetNoBreak( bool* isAssigned) const;
05298         IApplicationPaint GetFillColor( bool* isAssigned) const;
05303         IApplicationPaint GetStrokeColor( bool* isAssigned) const;
05308         bool GetFill( bool* isAssigned) const;
05313         bool GetFillVisible( bool* isAssigned) const;
05318         bool GetStroke( bool* isAssigned) const;
05323         bool GetStrokeVisible( bool* isAssigned) const; 
05328         bool GetFillFirst( bool* isAssigned) const;
05333         bool GetFillOverPrint( bool* isAssigned) const;
05338         bool GetStrokeOverPrint( bool* isAssigned) const;
05343         IApplicationPaint GetFillBackgroundColor( bool* isAssigned) const;
05348         bool GetFillBackground( bool* isAssigned) const;
05353         LineCapType GetLineCap( bool* isAssigned) const;
05358         LineJoinType GetLineJoin( bool* isAssigned) const;
05363         ATETextDOM::Real GetLineWidth( bool* isAssigned) const;
05368         ATETextDOM::Real GetMiterLimit( bool* isAssigned) const;
05373         ATETextDOM::Real GetLineDashOffset( bool* isAssigned) const;
05378         IArrayReal GetLineDashArray( bool* isAssigned) const;
05379 
05380 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
05381         // ------------------------------------------------------------------
05382         // Complex Script Settings
05383         // ------------------------------------------------------------------
05384 
05390         Kashidas GetKashidas( bool* isAssigned) const;
05396         DirOverride GetDirOverride( bool* isAssigned) const;
05402         DigitSet GetDigitSet( bool* isAssigned) const;
05409         DiacVPos GetDiacVPos( bool* isAssigned) const;
05416         ATETextDOM::Real GetDiacXOffset( bool* isAssigned) const;
05423         ATETextDOM::Real GetDiacYOffset( bool* isAssigned) const;
05429         bool GetAutoMydfb( bool* isAssigned) const;
05436         ATETextDOM::Real GetMarkYDistFromBaseline( bool* isAssigned) const;
05443         bool GetOverlapSwash( bool* isAssigned) const;
05450         bool GetJustificationAlternates( bool* isAssigned) const;
05456         bool GetStretchedAlternates( bool* isAssigned) const;
05457 #endif
05458 
05460         // SET PROPERTIES
05462 
05467         void SetFont( IFont newVal);
05472         void SetFontSize( ATETextDOM::Real newVal);
05477         void SetHorizontalScale( ATETextDOM::Real newVal);
05482         void SetVerticalScale( ATETextDOM::Real newVal);
05487         void SetAutoLeading( bool newVal);
05492         void SetLeading( ATETextDOM::Real newVal);
05497         void SetTracking( ATETextDOM::Int32 newVal);
05502         void SetBaselineShift( ATETextDOM::Real newVal);
05507         void SetCharacterRotation( ATETextDOM::Real newVal);
05513         void SetAutoKernType( AutoKernType newVal);
05518         void SetFontCapsOption( FontCapsOption newVal);
05523         void SetFontBaselineOption( FontBaselineOption newVal);
05528         void SetFontOpenTypePositionOption( FontOpenTypePositionOption newVal);
05533         void SetStrikethroughPosition( StrikethroughPosition newVal);
05538         void SetUnderlinePosition( UnderlinePosition newVal);
05543         void SetUnderlineOffset( ATETextDOM::Real newVal);
05544         // ------------------------------------------------------------------
05545         // OpenType settings
05546         // ------------------------------------------------------------------
05551         void SetLigature( bool newVal);
05556         void SetDiscretionaryLigatures( bool newVal);
05561         void SetContextualLigatures( bool newVal);
05566         void SetAlternateLigatures( bool newVal);
05571         void SetOldStyle( bool newVal);
05576         void SetFractions( bool newVal);
05581         void SetOrdinals( bool newVal);
05586         void SetSwash( bool newVal);
05591         void SetTitling( bool newVal);
05596         void SetConnectionForms( bool newVal);
05601         void SetStylisticAlternates( bool newVal);
05606         void SetOrnaments( bool newVal);
05611         void SetFigureStyle( FigureStyle newVal);
05612         // ------------------------------------------------------------------
05613         // Japanese OpenType settings
05614         // ------------------------------------------------------------------
05618         void SetProportionalMetrics( bool newVal);
05622         void SetKana( bool newVal);
05626         void SetItalics( bool newVal);
05630         void SetRuby( bool newVal);
05634         void SetBaselineDirection( BaselineDirection newVal);
05638         void SetLanguage( Language newVal);
05642         void SetJapaneseAlternateFeature( JapaneseAlternateFeature newVal);
05646         void SetTsume( ATETextDOM::Real newVal);
05650         void SetStyleRunAlignment( StyleRunAlignment newVal);
05651         // ------------------------------------------------------------------
05652         // WariChu settings
05653         // ------------------------------------------------------------------
05657         void SetWariChuEnabled( bool newVal);
05661         void SetWariChuLineCount( ATETextDOM::Int32 newVal);
05665         void SetWariChuLineGap( ATETextDOM::Int32 newVal);
05669         void SetWariChuScale( ATETextDOM::Real newVal);
05673         void SetWariChuSize( ATETextDOM::Real newVal);
05677         void SetWariChuWidowAmount( ATETextDOM::Int32 newVal);
05681         void SetWariChuOrphanAmount( ATETextDOM::Int32 newVal);
05685         void SetWariChuJustification( WariChuJustification newVal);
05689         void SetTCYUpDownAdjustment( ATETextDOM::Int32 newVal);
05693         void SetTCYLeftRightAdjustment( ATETextDOM::Int32 newVal);
05697         void SetLeftAki( ATETextDOM::Real newVal);
05701         void SetRightAki( ATETextDOM::Real newVal);
05702         //------------------------------------------------
05703         // General settings
05704         //------------------------------------------------
05708         void SetNoBreak( bool newVal);
05712         void SetFillColor( IApplicationPaint newVal);
05716         void SetStrokeColor( IApplicationPaint newVal);
05720         void SetFill( bool newVal);
05724         void SetFillVisible( bool newVal);      
05728         void SetStroke( bool newVal);
05732         void SetStrokeVisible( bool newVal);
05736         void SetFillFirst( bool newVal);
05740         void SetFillOverPrint( bool newVal);
05744         void SetStrokeOverPrint( bool newVal);
05748         void SetFillBackgroundColor( IApplicationPaint newVal);
05752         void SetFillBackground( bool newVal);
05756         void SetLineCap( LineCapType newVal);
05760         void SetLineJoin( LineJoinType newVal);
05764         void SetLineWidth( ATETextDOM::Real newVal);
05768         void SetMiterLimit( ATETextDOM::Real newVal);
05772         void SetLineDashOffset( ATETextDOM::Real newVal);
05776         void SetLineDashArray( IArrayReal newVal);
05777 
05778 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
05779         // ------------------------------------------------------------------
05780         // Complex Script Settings
05781         // ------------------------------------------------------------------
05782 
05787         void SetKashidas( Kashidas newVal);
05792         void SetDirOverride( DirOverride newVal);
05797         void SetDigitSet( DigitSet newVal);
05802         void SetDiacVPos( DiacVPos newVal);
05807         void SetDiacXOffset( ATETextDOM::Real newVal);
05812         void SetDiacYOffset( ATETextDOM::Real newVal);
05817         void SetAutoMydfb( bool newVal);
05822         void SetMarkYDistFromBaseline( ATETextDOM::Real newVal);
05827         void SetOverlapSwash( bool newVal);
05832         void SetJustificationAlternates( bool newVal);
05837         void SetStretchedAlternates( bool newVal);
05838 #endif
05839 
05840         // ======================================================================
05841         // CLEAR PROPERTIES
05842         // ======================================================================
05843 
05846         void ClearFont( );
05849         void ClearFontSize( );
05852         void ClearHorizontalScale( );
05855         void ClearVerticalScale( );
05858         void ClearAutoLeading( );
05861         void ClearLeading( );
05864         void ClearTracking( );
05867         void ClearBaselineShift( );
05870         void ClearCharacterRotation( );
05874         void ClearAutoKernType( );
05877         void ClearFontCapsOption( );
05880         void ClearFontBaselineOption( );
05883         void ClearFontOpenTypePositionOption( );
05886         void ClearStrikethroughPosition( );
05889         void ClearUnderlinePosition( );
05892         void ClearUnderlineOffset( );
05893         // ------------------------------------------------------------------
05894         // OpenType settings
05895         // ------------------------------------------------------------------
05898         void ClearLigature( );
05901         void ClearDiscretionaryLigatures( );
05904         void ClearContextualLigatures( );
05907         void ClearAlternateLigatures( );
05910         void ClearOldStyle( );
05913         void ClearFractions( );
05916         void ClearOrdinals( );
05919         void ClearSwash( );
05922         void ClearTitling( );
05925         void ClearConnectionForms( );
05928         void ClearStylisticAlternates( );
05931         void ClearOrnaments( );
05934         void ClearFigureStyle( );
05935         // ------------------------------------------------------------------
05936         // Japanese OpenType settings
05937         // ------------------------------------------------------------------
05940         void ClearProportionalMetrics( );
05943         void ClearKana( );
05946         void ClearItalics( );
05949         void ClearRuby( );
05952         void ClearBaselineDirection( );
05955         void ClearLanguage( );
05958         void ClearJapaneseAlternateFeature( );
05961         void ClearTsume( );
05964         void ClearStyleRunAlignment( );
05965         // ------------------------------------------------------------------
05966         // WariChu settings
05967         // ------------------------------------------------------------------
05970         void ClearWariChuEnabled( );
05973         void ClearWariChuLineCount( );
05976         void ClearWariChuLineGap( );
05979         void ClearWariChuSubLineAmount( );
05982         void ClearWariChuWidowAmount( );
05985         void ClearWariChuOrphanAmount( );
05988         void ClearWariChuJustification( );
05991         void ClearTCYUpDownAdjustment( );
05994         void ClearTCYLeftRightAdjustment( );
05997         void ClearLeftAki( );
06000         void ClearRightAki( );
06001         // ------------------------------------------------------------------
06002         // General settings
06003         // ------------------------------------------------------------------
06006         void ClearNoBreak( );
06009         void ClearFillColor( );
06012         void ClearStrokeColor( );
06015         void ClearFill( );
06018         void ClearFillVisible( );
06021         void ClearStroke( );
06024         void ClearStrokeVisible( );
06027         void ClearFillFirst( );
06030         void ClearFillOverPrint( );
06033         void ClearStrokeOverPrint( );
06036         void ClearFillBackgroundColor( );
06039         void ClearFillBackground( );
06042         void ClearLineCap( );
06045         void ClearLineJoin( );
06048         void ClearLineWidth( );
06051         void ClearMiterLimit( );
06054         void ClearLineDashOffset( );
06057         void ClearLineDashArray( );
06058 
06059 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
06060         // ------------------------------------------------------------------
06061         // Complex Script Settings
06062         // ------------------------------------------------------------------
06063 
06067         void ClearKashidas( );
06071         void ClearDirOverride( );
06075         void ClearDigitSet( );
06079         void ClearDiacVPos( );
06083         void ClearDiacXOffset( );
06087         void ClearDiacYOffset( );
06091         void ClearAutoMydfb( );
06095         void ClearMarkYDistFromBaseline( );
06099         void ClearOverlapSwash( );
06103         void ClearJustificationAlternates( );
06107         void ClearStretchedAlternates( );
06108 #endif
06109 
06111         // ALGEBRA METHODS
06113 
06120         bool IntersectFeatures( ICharFeatures rhs);
06125         bool ReplaceOrAddFeatures( ICharFeatures rhs);
06130         bool UnassignEachIfEqual( ICharFeatures rhs);
06131 
06134         bool IsEachNotAssigned( ) const;
06137         bool IsEachAssigned( ) const;
06138 
06139 };
06140 
06142 //       --ICharInspector--
06144 
06155 class ICharInspector
06156 {
06157 private:
06158         CharInspectorRef        fCharInspector;
06159 public:
06163         ICharInspector();
06167         ICharInspector(const ICharInspector& src);
06171         ICharInspector& operator=(const ICharInspector& rhs);
06175         bool operator==(const ICharInspector& rhs) const;
06179         bool operator!=(const ICharInspector& rhs) const;
06185         explicit ICharInspector(CharInspectorRef charinspector);
06187         virtual ~ICharInspector();
06190         CharInspectorRef GetRef() const;
06193         bool IsNull() const;
06194 
06195         //------------------------------------------------------------
06196         // Properties
06197         //------------------------------------------------------------
06198 
06201         IArrayFontRef GetFont( ) const;
06204         IArrayReal GetFontSize( ) const;
06207         IArrayReal GetHorizontalScale( ) const;
06210         IArrayReal GetVerticalScale( ) const;
06213         IArrayBool GetSyntheticBold( ) const;
06216         IArrayBool GetSyntheticItalic( ) const;
06219         IArrayBool GetAutoLeading( ) const;
06222         IArrayReal GetLeading( ) const;
06225         IArrayInteger GetTracking( ) const;
06228         IArrayReal GetBaselineShift( ) const;
06231         IArrayReal GetCharacterRotation( ) const;
06234         IArrayFontCapsOption GetFontCapsOption( ) const;
06237         IArrayFontBaselineOption GetFontBaselineOption( ) const;
06240         IArrayFontOpenTypePositionOption GetFontOpenTypePositionOption( ) const;
06243         IArrayStrikethroughPosition GetStrikethroughPosition( ) const;
06246         IArrayUnderlinePosition GetUnderlinePosition( ) const;
06249         IArrayReal GetUnderlineOffset( ) const;
06250 
06251         // ------------------------------------------------------------------
06252         // OpenType settings
06253         // ------------------------------------------------------------------
06256         IArrayBool GetLigature( ) const;
06259         IArrayBool GetDiscretionaryLigatures( ) const;
06262         IArrayBool GetContextualLigatures( ) const;
06265         IArrayBool GetAlternateLigatures( ) const;
06268         IArrayBool GetOldStyle( ) const;
06271         IArrayBool GetFractions( ) const;
06274         IArrayBool GetOrdinals( ) const;
06277         IArrayBool GetSwash( ) const;
06280         IArrayBool GetTitling( ) const;
06283         IArrayBool GetConnectionForms( ) const;
06286         IArrayBool GetStylisticAlternates( ) const;
06289         IArrayBool GetOrnaments( ) const;
06292         IArrayFigureStyle GetFigureStyle( ) const;
06293         // ------------------------------------------------------------------
06294         // Japanese OpenType settings
06295         // ------------------------------------------------------------------
06298         IArrayBool GetProportionalMetrics( ) const;
06301         IArrayBool GetKana( ) const;
06304         IArrayBool GetItalics( ) const;
06307         IArrayBool GetRuby( ) const;
06310         IArrayBaselineDirection GetBaselineDirection( ) const;
06313         IArrayLanguage GetLanguage( ) const;
06316         IArrayReal GetTsume( ) const;
06319         IArrayStyleRunAlignment GetStyleRunAlignment( ) const;
06320         // ------------------------------------------------------------------
06321         // WariChu settings
06322         // ------------------------------------------------------------------
06325         IArrayInteger GetWariChuLineCount( ) const;
06328         IArrayInteger GetWariChuLineGap( ) const;
06331         IArrayReal GetWariChuScale( ) const;
06334         IArrayReal GetWariChuSize( ) const;
06337         IArrayInteger GetWariChuWidowAmount( ) const;
06340         IArrayInteger GetWariChuOrphanAmount( ) const;
06343         IArrayWariChuJustification GetWariChuJustification( ) const;
06346         IArrayBool GetWariChuEnabled( ) const;
06349         IArrayInteger GetTCYUpDownAdjustment( ) const;
06352         IArrayInteger GetTCYLeftRightAdjustment( ) const;
06355         IArrayReal GetLeftAki( ) const;
06358         IArrayReal GetRightAki( ) const;
06359 
06360         // ------------------------------------------------------------------
06361         // General settings
06362         // ------------------------------------------------------------------
06363 
06366         IArrayBool GetNoBreak( ) const;
06369         IArrayApplicationPaintRef GetFillColor( ) const;
06372         IArrayApplicationPaintRef GetStrokeColor( ) const;
06375         IArrayBool GetFill( ) const;
06378         IArrayBool GetFillVisible( ) const;
06381         IArrayBool GetStroke( ) const;
06384         IArrayBool GetStrokeVisible( ) const;
06387         IArrayBool GetFillFirst( ) const;
06390         IArrayBool GetFillOverPrint( ) const;
06393         IArrayBool GetStrokeOverPrint( ) const;
06396         IArrayApplicationPaintRef GetFillBackgroundColor( ) const;
06399         IArrayBool GetFillBackground( ) const;
06402         IArrayLineCapType GetLineCap( ) const;
06405         IArrayLineJoinType GetLineJoin( ) const;
06408         IArrayReal GetLineWidth( ) const;
06411         IArrayReal GetMiterLimit( ) const;
06414         IArrayReal GetLineDashOffset( ) const;
06417         IArrayArrayReal GetLineDashArray( ) const;
06418 
06419 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
06420         // ------------------------------------------------------------------
06421         // Complex Script Settings
06422         // ------------------------------------------------------------------
06423 
06427         IArrayKashidas GetKashidas( ) const;
06431         IArrayDirOverride GetDirOverride( ) const;
06435         IArrayDigitSet GetDigitSet( ) const;
06439         IArrayDiacVPos GetDiacVPos( ) const;
06443         IArrayReal GetDiacXOffset( ) const;
06447         IArrayReal GetDiacYOffset( ) const;
06451         IArrayBool GetAutoMydfb( ) const;
06455         IArrayReal GetMarkYDistFromBaseline( ) const;
06459         IArrayBool GetOverlapSwash( ) const;
06463         IArrayBool GetJustificationAlternates( ) const;
06467         IArrayBool GetStretchedAlternates( ) const;
06468 #endif
06469 
06470 };
06471 
06473 //       --ICharStyle--
06475 
06491 class ICharStyle
06492 {
06493 private:
06494         CharStyleRef    fCharStyle;
06495 public:
06499         ICharStyle();
06503         ICharStyle(const ICharStyle& src);
06507         ICharStyle& operator=(const ICharStyle& rhs);
06511         bool operator==(const ICharStyle& rhs) const;
06515         bool operator!=(const ICharStyle& rhs) const;
06521         explicit ICharStyle(CharStyleRef charstyle);
06523         virtual ~ICharStyle();
06526         CharStyleRef GetRef() const;
06529         bool IsNull() const;
06530 
06531         //-------------------------------------------------
06532         // Properties
06533         //-------------------------------------------------
06534 
06540         ATETextDOM::Int32 GetName( ATETextDOM::Unicode* pName, ATETextDOM::Int32 maxLength) const;
06546         bool SetName( const ATETextDOM::Unicode* pName);
06550         ICharStyle GetParent( ) const;
06556         bool SetParent( const ICharStyle pStyle);
06560         bool HasParent( ) const;
06564         ICharFeatures GetFeatures( ) const;
06571         void SetFeatures( ICharFeatures pFeatures);
06579         void ReplaceOrAddFeatures( ICharFeatures pFeatures);
06580 
06581 };
06582 
06584 //       --ICharStyles--
06586 
06590 class ICharStyles
06591 {
06592 private:
06593         CharStylesRef   fCharStyles;
06594 public:
06597         ICharStyles();
06601         ICharStyles(const ICharStyles& src);
06605         ICharStyles& operator=(const ICharStyles& rhs);
06609         bool operator==(const ICharStyles& rhs) const;
06613         bool operator!=(const ICharStyles& rhs) const;
06619         explicit ICharStyles(CharStylesRef charstyles);
06621         virtual ~ICharStyles();
06624         CharStylesRef GetRef() const;
06627         bool IsNull() const;
06628 
06629         //-----------------------------------------------------------
06630         // METHODS
06631         //-----------------------------------------------------------
06632 
06635         bool IsEmpty( ) const;
06636 
06639         ATETextDOM::Int32 GetSize( ) const;
06640 
06645         void ShowAllStyles( ) const;
06650         void ShowOnlyUnreferencedStyles( ) const;
06656         void ShowOnlyStylesReferencedIn( ITextRange pRange) const;
06662         void MoveStyleTo( ICharStyle pStyle, ATETextDOM::Int32 position);
06663 
06664 };
06665 
06667 //       --ICharStylesIterator--
06669 
06672 class ICharStylesIterator
06673 {
06674 private:
06675         CharStylesIteratorRef   fCharStylesIterator;
06676 public:
06679         ICharStylesIterator();
06683         ICharStylesIterator(const ICharStylesIterator& src);
06687         ICharStylesIterator& operator=(const ICharStylesIterator& rhs);
06691         bool operator==(const ICharStylesIterator& rhs) const;
06695         bool operator!=(const ICharStylesIterator& rhs) const;
06701         explicit ICharStylesIterator(CharStylesIteratorRef charstylesiterator);
06703         virtual ~ICharStylesIterator();
06706         CharStylesIteratorRef GetRef() const;
06709         bool IsNull() const;
06710 
06717         ICharStylesIterator( ICharStyles pStyles, Direction direction = kForward);
06718 
06719         //------------------------------------------------------
06720         // Methods
06721         //------------------------------------------------------
06724         bool IsNotDone( ) const;
06727         bool IsDone( ) const;
06730         bool IsEmpty( ) const;
06733         void MoveToFirst( );
06736         void MoveToLast( );
06739         void Next( );
06742         void Previous( );
06745         ICharStyle Item( ) const;
06746 
06747 };
06748 
06750 //       --IFind--
06752 
06769 class IFind
06770 {
06771 private:
06772         FindRef fFind;
06773 public:
06776         IFind();
06780         IFind(const IFind& src);
06784         IFind& operator=(const IFind& rhs);
06788         bool operator==(const IFind& rhs) const;
06792         bool operator!=(const IFind& rhs) const;
06798         explicit IFind(FindRef find);
06800         virtual ~IFind();
06803         FindRef GetRef() const;
06806         bool IsNull() const;
06807 
06808         //------------------------------------------------------
06809         // Options
06810         //------------------------------------------------------
06815         Direction GetSearchDirection( ) const;
06820         bool GetIgnoreCase( ) const;
06824         bool GetWholeWord( ) const;
06828         bool GetWrap( ) const;
06832         bool GetFindWordsOutOfBounds( ) const;
06833 
06834 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
06835 
06838         bool GetIgnoreAccents( ) const;
06842         bool GetIgnoreKashidas( ) const;
06843 #endif  
06844 
06849         void SetSearchDirection( Direction newValue);
06855         void SetIgnoreCase( bool newValue);
06861         void SetWholeWord( bool newValue);
06867         void SetWrap( bool newValue);
06873         void SetFindWordsOutOfBounds( bool newValue);
06874 
06875 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
06876 
06880         void SetIgnoreAccents( bool newValue);
06885         void SetIgnoreKashidas( bool newValue);
06886 #endif
06887 
06892         SearchScope GetSearchScope( ) const;
06898         void SetSearchScope( SearchScope searchScope);
06905         void SetSearchRange( ITextRange pRange);
06911         void SetSearchChars( ATETextDOM::Unicode* pSearchChars);
06918         void GetSearchChars( ATETextDOM::Unicode* pSearchChars, ATETextDOM::Int32 length) const;
06924         void SetReplaceChars( ATETextDOM::Unicode* pSearchChars);
06932         void GetReplaceChars( ATETextDOM::Unicode* pSearchChars, ATETextDOM::Int32 length) const;
06933         // Temporary way to reset the engine for modeless operation
06934         void Reset( );
06935         //------------------------------------------------------
06936         // Methods
06937         //------------------------------------------------------
06938         // Searches current user selection.
06944         bool FindMatch( ITextRange pTextRange);
06945         // Skips the current user selection.
06952         bool FindNextMatch( ITextRange pTextRange);
06953 
06965         bool ReplaceMatch( ITextRange pTextRange, bool findNext);
06966 
06968         bool FindAndReplaceAllMatches( ATETextDOM::Int32* pReplaceCount);
06969 
06980         void GetPreReplaceAllSettings( ATETextDOM::Int32* pCurrentPoint, ATETextDOM::Int32* pStartPoint) const;
06981 
06989         void RestorePreReplaceAllSettings( const ATETextDOM::Int32 currentPoint, const ATETextDOM::Int32 startPoint);
06990 
06991 };
06992 
06994 //       --IFont--
06996 
07000 class IFont
07001 {
07002 private:
07003         FontRef fFont;
07004 public:
07007         IFont();
07011         IFont(const IFont& src);
07015         IFont& operator=(const IFont& rhs);
07019         bool operator==(const IFont& rhs) const;
07023         bool operator!=(const IFont& rhs) const;
07029         explicit IFont(FontRef font);
07031         virtual ~IFont();
07034         FontRef GetRef() const;
07037         bool IsNull() const;
07038 
07039         //-----------------------------------------------
07040         // METHODS
07041         //-----------------------------------------------
07045         bool IsCoolTypeTechnology( ) const;
07046 
07052         bool IsVerticalRomanGlyphsOnSideByDefault( bool withItalics, StyleRunAlignment characterAlignment) const;
07053 
07056         void* GetCTFontDict( );
07057 
07058 };
07059 
07061 //       --IGlyph--
07063 
07066 class IGlyph
07067 {
07068 private:
07069         GlyphRef        fGlyph;
07070 public:
07073         IGlyph();
07077         IGlyph(const IGlyph& src);
07081         IGlyph& operator=(const IGlyph& rhs);
07085         bool operator==(const IGlyph& rhs) const;
07089         bool operator!=(const IGlyph& rhs) const;
07095         explicit IGlyph(GlyphRef glyph);
07097         virtual ~IGlyph();
07100         GlyphRef GetRef() const;
07103         bool IsNull() const;
07104 
07105         // ========================================================================
07106         // PROPERTIES
07107         // ========================================================================
07108 
07111         ATEGlyphID GetGlyphID( ) const;
07114         IGlyphs GetAlternateGlyphs( ) const;
07120         void GetOTFeatures( char** otFeatures, ATETextDOM::Int32* otFeatureCount, ATETextDOM::Int32** otFeatureIndex);
07121         // RealMatrix   GetTransformation();
07122 
07123 };
07124 
07126 //       --IGlyphs--
07128 
07132 class IGlyphs
07133 {
07134 private:
07135         GlyphsRef       fGlyphs;
07136 public:
07139         IGlyphs();
07143         IGlyphs(const IGlyphs& src);
07147         IGlyphs& operator=(const IGlyphs& rhs);
07151         bool operator==(const IGlyphs& rhs) const;
07155         bool operator!=(const IGlyphs& rhs) const;
07161         explicit IGlyphs(GlyphsRef glyphs);
07163         virtual ~IGlyphs();
07166         GlyphsRef GetRef() const;
07169         bool IsNull() const;
07170         // ========================================================================
07171         // PROPERTIES
07172         // ========================================================================
07175         ATETextDOM::Int32 GetSize( );
07178         IGlyph GetFirst( );
07181         IGlyph GetLast( );
07182         // navigation objects.
07185         ITextRanges GetTextRanges( ) const;
07188         ITextRanges GetTextSelection( ) const;
07192         IParagraphsIterator GetParagraphsIterator( ) const;
07196         ITextRunsIterator GetTextRunsIterator( ) const;
07200         IWordsIterator GetWordsIterator( ) const;
07201         // ========================================================================
07202         // METHODS
07203         // ========================================================================
07211         void Add( const IGlyph& glyph);
07217         IGlyph Item( ATETextDOM::Int32 nIndex) const;
07220         void RemoveAll( );
07224         void Remove( ATETextDOM::Int32 nIndex);
07225 
07226 };
07227 
07229 //       --IGlyphsIterator--
07231 
07233 class IGlyphsIterator
07234 {
07235 private:
07236         GlyphsIteratorRef       fGlyphsIterator;
07237 public:
07240         IGlyphsIterator();
07244         IGlyphsIterator(const IGlyphsIterator& src);
07248         IGlyphsIterator& operator=(const IGlyphsIterator& rhs);
07252         bool operator==(const IGlyphsIterator& rhs) const;
07256         bool operator!=(const IGlyphsIterator& rhs) const;
07262         explicit IGlyphsIterator(GlyphsIteratorRef glyphsiterator);
07264         virtual ~IGlyphsIterator();
07267         GlyphsIteratorRef GetRef() const;
07270         bool IsNull() const;
07271 
07278         IGlyphsIterator( IGlyphs glyphs, Direction direction = kForward);
07279 
07280         //------------------------------------------------------
07281         // Methods
07282         //------------------------------------------------------
07285         bool IsNotDone( ) const;
07288         bool IsDone( ) const;
07291         bool IsEmpty( ) const;
07294         IGlyph GetFirst( );
07297         IGlyph GetLast( );
07300         IGlyph GetNext( );
07303         IGlyph Item( ) const;
07306         void Next( );
07309         void Previous( );
07310 
07311 };
07312 
07314 //       --IKinsoku--
07316 
07320 class IKinsoku
07321 {
07322 private:
07323         KinsokuRef      fKinsoku;
07324 public:
07327         IKinsoku();
07331         IKinsoku(const IKinsoku& src);
07335         IKinsoku& operator=(const IKinsoku& rhs);
07339         bool operator==(const IKinsoku& rhs) const;
07343         bool operator!=(const IKinsoku& rhs) const;
07349         explicit IKinsoku(KinsokuRef kinsoku);
07351         virtual ~IKinsoku();
07354         KinsokuRef GetRef() const;
07357         bool IsNull() const;
07358 
07359         //========================================================================
07360         // PROPERTIES
07361         // =======================================================================
07366         ATETextDOM::Int32 GetName( ATETextDOM::Unicode* name, ATETextDOM::Int32 maxLength) const;
07369         ATETextDOM::Int32 GetNameSize( ) const;
07373         void SetName( const ATETextDOM::Unicode* name);
07378         bool MatchesPredefinedResourceTag( ATE::KinsokuPredefinedTag tag) const;
07383         ATETextDOM::Int32 GetNoStartCharSet( ATETextDOM::Unicode* noStartCharSet, ATETextDOM::Int32 maxLength) const;
07386         ATETextDOM::Int32 GetNoStartCharSetSize( ) const;
07390         void SetNoStartCharSet( const ATETextDOM::Unicode* noStartCharSet);
07395         ATETextDOM::Int32 GetNoEndCharSet( ATETextDOM::Unicode* noEndCharSet, ATETextDOM::Int32 maxLength) const;
07398         ATETextDOM::Int32 GetNoEndCharSetSize( ) const;
07402         void SetNoEndCharSet( const ATETextDOM::Unicode* noEndCharSet);
07407         ATETextDOM::Int32 GetNoBreakCharSet( ATETextDOM::Unicode* noBreakCharSet, ATETextDOM::Int32 maxLength) const;
07410         ATETextDOM::Int32 GetNoBreakCharSetSize( ) const;
07414         void SetNoBreakCharSet( const ATETextDOM::Unicode* noBreakCharSet);
07419         ATETextDOM::Int32 GetHangingCharSet( ATETextDOM::Unicode* hangingCharSet, ATETextDOM::Int32 maxLength) const;
07422         ATETextDOM::Int32 GetHangingCharSetSize( ) const;
07426         void SetHangingCharSet( const ATETextDOM::Unicode* hangingCharSet);
07427         // =======================================================================
07428         // METHODS
07429         // =======================================================================
07430 
07434         bool IsNoStartChar( ATETextDOM::Unicode character) const;
07438         bool IsNoEndChar( ATETextDOM::Unicode character) const;
07442         bool IsNoBreakChar( ATETextDOM::Unicode character) const;
07446         bool IsHangingChar( ATETextDOM::Unicode character) const;
07447 
07450 
07453         bool IsEquivalent( IKinsoku rhsKinsoku) const;
07456         bool IsModified( ) const;
07459         bool IsPredefined( ) const;
07462         IKinsoku Duplicate( ) const;
07463 
07464 };
07465 
07467 //       --IKinsokuSet--
07469 
07471 class IKinsokuSet
07472 {
07473 private:
07474         KinsokuSetRef   fKinsokuSet;
07475 public:
07478         IKinsokuSet();
07482         IKinsokuSet(const IKinsokuSet& src);
07486         IKinsokuSet& operator=(const IKinsokuSet& rhs);
07490         bool operator==(const IKinsokuSet& rhs) const;
07494         bool operator!=(const IKinsokuSet& rhs) const;
07500         explicit IKinsokuSet(KinsokuSetRef kinsokuset);
07502         virtual ~IKinsokuSet();
07505         KinsokuSetRef GetRef() const;
07508         bool IsNull() const;
07509 
07510         // =======================================================================
07511         // PROPERTIES
07512         // =======================================================================
07515         ATETextDOM::Int32 GetSize( );
07518         IKinsoku GetFirst( );
07521         IKinsoku GetLast( );
07522 
07523         // =======================================================================
07524         // METHODS
07525         // =======================================================================
07531         IKinsoku Item( ATETextDOM::Int32 nIndex) const;
07537         ATETextDOM::Int32 Find( IKinsoku kinsoku);
07543         ATETextDOM::Int32 Find( const ATETextDOM::Unicode* name);
07550         ATETextDOM::Int32 Find( KinsokuPredefinedTag tag);
07554         bool Remove( ATETextDOM::Int32 nIndex);
07562         ATETextDOM::Int32 Add( IKinsoku kinsoku);
07568         bool Replace( ATETextDOM::Int32 nIndex, IKinsoku kinsoku);
07569 
07570 };
07571 
07573 //       --IParaFeatures--
07575 
07590 class IParaFeatures
07591 {
07592 private:
07593         ParaFeaturesRef fParaFeatures;
07594 public:
07598         IParaFeatures();
07602         IParaFeatures(const IParaFeatures& src);
07606         IParaFeatures& operator=(const IParaFeatures& rhs);
07610         bool operator==(const IParaFeatures& rhs) const;
07614         bool operator!=(const IParaFeatures& rhs) const;
07620         explicit IParaFeatures(ParaFeaturesRef parafeatures);
07622         virtual ~IParaFeatures();
07625         ParaFeaturesRef GetRef() const;
07628         bool IsNull() const;
07631         IParaFeatures Clone( ) const;
07632 
07633         // ------------------------------------------------------------------
07634         // Justification
07635         // ------------------------------------------------------------------
07640         ParagraphJustification GetJustification( bool* isAssigned) const;
07645         ATETextDOM::Real GetFirstLineIndent( bool* isAssigned) const;
07650         ATETextDOM::Real GetStartIndent( bool* isAssigned) const;
07655         ATETextDOM::Real GetEndIndent( bool* isAssigned) const;
07660         ATETextDOM::Real GetSpaceBefore( bool* isAssigned) const;
07665         ATETextDOM::Real GetSpaceAfter( bool* isAssigned) const;
07666         // ------------------------------------------------------------------
07667         // Hyphenation
07668         // ------------------------------------------------------------------
07673         bool GetAutoHyphenate( bool* isAssigned) const;
07678         ATETextDOM::Int32 GetHyphenatedWordSize( bool* isAssigned) const;
07683         ATETextDOM::Int32 GetPreHyphenSize( bool* isAssigned) const;
07688         ATETextDOM::Int32 GetPostHyphenSize( bool* isAssigned) const;
07693         ATETextDOM::Int32 GetConsecutiveHyphenLimit( bool* isAssigned) const;
07698         ATETextDOM::Real GetHyphenationZone( bool* isAssigned) const;
07703         bool GetHyphenateCapitalized( bool* isAssigned) const;
07708         ATETextDOM::Real GetHyphenationPreference( bool* isAssigned) const;
07709         // ------------------------------------------------------------------
07710         // Justification Features
07711         // ------------------------------------------------------------------
07716         ATETextDOM::Real GetDesiredWordSpacing( bool* isAssigned) const;
07721         ATETextDOM::Real GetMaxWordSpacing( bool* isAssigned) const;
07726         ATETextDOM::Real GetMinWordSpacing( bool* isAssigned) const;
07731         ATETextDOM::Real GetDesiredLetterSpacing( bool* isAssigned) const;
07736         ATETextDOM::Real GetMaxLetterSpacing( bool* isAssigned) const;
07741         ATETextDOM::Real GetMinLetterSpacing( bool* isAssigned) const;
07746         ATETextDOM::Real GetDesiredGlyphScaling( bool* isAssigned) const;
07751         ATETextDOM::Real GetMaxGlyphScaling( bool* isAssigned) const;
07756         ATETextDOM::Real GetMinGlyphScaling( bool* isAssigned) const;
07761         ParagraphJustification GetSingleWordJustification( bool* isAssigned) const;
07766         ATETextDOM::Real GetAutoLeadingPercentage( bool* isAssigned) const;
07771         LeadingType GetLeadingType( bool* isAssigned) const;
07776         ITabStops GetTabStops( bool* isAssigned) const;
07781         ATETextDOM::Real GetDefaultTabWidth( bool* isAssigned) const;
07782         // ------------------------------------------------------------------
07783         // Japanese Features
07784         // ------------------------------------------------------------------
07789         bool GetHangingRoman( bool* isAssigned) const;
07794         ATETextDOM::Int32 GetAutoTCY( bool* isAssigned) const;
07799         bool GetBunriKinshi( bool* isAssigned) const;
07804         BurasagariType GetBurasagariType( bool* isAssigned) const;
07809         PreferredKinsokuOrder GetPreferredKinsokuOrder( bool* isAssigned) const;
07814         bool GetKurikaeshiMojiShori( bool* isAssigned) const;
07819         IKinsoku GetKinsoku( bool* isAssigned) const;
07824         IMojiKumi GetMojiKumi( bool* isAssigned) const;
07825         // ------------------------------------------------------------------
07826         // Other Features
07827         // ------------------------------------------------------------------
07832         bool GetEveryLineComposer( bool* isAssigned) const;
07837         ICharFeatures GetDefaultCharFeatures( bool* isAssigned) const;
07838 
07839 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
07840         // ------------------------------------------------------------------
07841         // Complex Script Features
07842         // ------------------------------------------------------------------
07848         ATE::ParagraphDirection GetParagraphDirection( bool* isAssigned) const;
07854         ATE::JustificationMethod GetJustificationMethod( bool* isAssigned) const;
07860         ATE::KashidaWidth GetKashidaWidth( bool* isAssigned) const;
07861 #endif
07862 
07867         ATE::ComposerEngine GetComposerEngine( bool* isAssigned ) const;
07868 
07869         // ======================================================================
07870         // SET PROPERTIES
07871         // ======================================================================
07872         // ------------------------------------------------------------------
07873         // Justification
07874         // ------------------------------------------------------------------
07878         void SetJustification( ParagraphJustification newVal);
07882         void SetFirstLineIndent( ATETextDOM::Real newVal);
07886         void SetStartIndent( ATETextDOM::Real newVal);
07890         void SetEndIndent( ATETextDOM::Real newVal);
07894         void SetSpaceBefore( ATETextDOM::Real newVal);
07898         void SetSpaceAfter( ATETextDOM::Real newVal);
07899         // ------------------------------------------------------------------
07900         // Hyphenation
07901         // ------------------------------------------------------------------
07905         void SetAutoHyphenate( bool newVal);
07909         void SetHyphenatedWordSize( ATETextDOM::Int32 newVal);
07913         void SetPreHyphenSize( ATETextDOM::Int32 newVal);
07917         void SetPostHyphenSize( ATETextDOM::Int32 newVal);
07921         void SetConsecutiveHyphenLimit( ATETextDOM::Int32 newVal);
07925         void SetHyphenationZone( ATETextDOM::Real newVal);
07929         void SetHyphenateCapitalized( bool newVal);
07933         void SetHyphenationPreference( ATETextDOM::Real newVal);
07934         // ------------------------------------------------------------------
07935         // Justification Features
07936         // ------------------------------------------------------------------
07940         void SetDesiredWordSpacing( ATETextDOM::Real newVal);
07944         void SetMaxWordSpacing( ATETextDOM::Real newVal);
07948         void SetMinWordSpacing( ATETextDOM::Real newVal);
07952         void SetDesiredLetterSpacing( ATETextDOM::Real newVal);
07956         void SetMaxLetterSpacing( ATETextDOM::Real newVal);
07960         void SetMinLetterSpacing( ATETextDOM::Real newVal);
07964         void SetDesiredGlyphScaling( ATETextDOM::Real newVal);
07968         void SetMaxGlyphScaling( ATETextDOM::Real newVal);
07972         void SetMinGlyphScaling( ATETextDOM::Real newVal);
07976         void SetSingleWordJustification( ParagraphJustification newVal);
07980         void SetAutoLeadingPercentage( ATETextDOM::Real newVal);
07984         void SetLeadingType( LeadingType newVal);
07988         void SetTabStops( ITabStops newVal);
07992         void SetDefaultTabWidth( ATETextDOM::Real newVal);
07993         // ------------------------------------------------------------------
07994         // Japanese Features
07995         // ------------------------------------------------------------------
07999         void SetHangingRoman( bool newVal);
08003         void SetAutoTCY( ATETextDOM::Int32 newVal);
08007         void SetBunriKinshi( bool newVal);
08011         void SetBurasagariType( BurasagariType newVal);
08015         void SetPreferredKinsokuOrder( PreferredKinsokuOrder newVal);
08019         void SetKurikaeshiMojiShori( bool newVal);
08023         void SetKinsoku( IKinsoku newVal);
08027         void SetMojiKumi( IMojiKumi newVal);
08028         // ------------------------------------------------------------------
08029         // Other Features
08030         // ------------------------------------------------------------------
08034         void SetEveryLineComposer( bool newVal);
08038         void SetDefaultCharFeatures( ICharFeatures newVal);
08039 
08040 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
08041         // ------------------------------------------------------------------
08042         // Complex Script Features
08043         // ------------------------------------------------------------------
08048         void SetParagraphDirection( ATE::ParagraphDirection newVal);
08053         void SetJustificationMethod( ATE::JustificationMethod newVal);
08058         void SetKashidaWidth( ATE::KashidaWidth newVal);
08059 #endif
08060 
08064         void SetComposerEngine( ATE::ComposerEngine newVal);
08065 
08066         // ======================================================================
08067         // CLEAR PROPERTIES
08068         // ======================================================================
08069         // ------------------------------------------------------------------
08070         // Justification
08071         // ------------------------------------------------------------------
08074         void ClearJustification( );
08077         void ClearFirstLineIndent( );
08080         void ClearStartIndent( );
08083         void ClearEndIndent( );
08086         void ClearSpaceBefore( );
08089         void ClearSpaceAfter( );
08090         // ------------------------------------------------------------------
08091         // Hyphenation
08092         // ------------------------------------------------------------------
08095         void ClearAutoHyphenate( );
08098         void ClearHyphenatedWordSize( );
08101         void ClearPreHyphenSize( );
08104         void ClearPostHyphenSize( );
08107         void ClearConsecutiveHyphenLimit( );
08110         void ClearHyphenationZone( );
08113         void ClearHyphenateCapitalized( );
08116         void ClearHyphenationPreference( );
08117         // ------------------------------------------------------------------
08118         // Justification Features
08119         // ------------------------------------------------------------------
08122         void ClearWordSpacing( );
08125         void ClearLetterSpacing( );
08128         void ClearGlyphScaling( );
08131         void ClearSingleWordJustification( );
08134         void ClearAutoLeadingPercentage( );
08137         void ClearLeadingType( );
08140         void ClearTabStops( );
08141         // ------------------------------------------------------------------
08142         // Japanese Features
08143         // ------------------------------------------------------------------
08146         void ClearHangingRoman( );
08149         void ClearAutoTCY( );
08152         void ClearBunriKinshi( );
08155         void ClearBurasagariType( );
08158         void ClearPreferredKinsokuOrder( );
08161         void ClearKurikaeshiMojiShori( );
08164         void ClearKinsoku( );
08167         void ClearMojiKumi( );
08168         // ------------------------------------------------------------------
08169         // Other Features
08170         // ------------------------------------------------------------------
08173         void ClearEveryLineComposer( );
08176         void ClearDefaultCharFeatures( );
08177 
08178 #if SLO_COMPLEXSCRIPT // Available for use in Middle Eastern versions of the product only.
08179         // ------------------------------------------------------------------
08180         // Complex Script Features
08181         // ------------------------------------------------------------------
08185         void ClearParagraphDirection( );
08189         void ClearJustificationMethod( );
08193         void ClearKashidaWidth( );
08194 #endif
08195 
08198         void ClearComposerEngine( );
08199 
08201         // ALGEBRA METHODS
08203 
08210         bool IntersectFeatures( IParaFeatures rhs);
08215         bool ReplaceOrAddFeatures( IParaFeatures rhs);
08220         bool UnassignEachIfEqual( const IParaFeatures rhs);
08221 
08224         bool IsEachNotAssigned( ) const;
08227         bool IsEachAssigned( ) const;
08228 
08229 };
08230 
08232 //       --IParagraph--
08234 
08244 class IParagraph
08245 {
08246 private:
08247         ParagraphRef    fParagraph;
08248 public:
08251         IParagraph();
08255         IParagraph(const IParagraph& src);
08259         IParagraph& operator=(const IParagraph& rhs);
08263         bool operator==(const IParagraph& rhs) const;
08267         bool operator!=(const IParagraph& rhs) const;
08273         explicit IParagraph(ParagraphRef paragraph);
08275         virtual ~IParagraph();
08278         ParagraphRef GetRef() const;
08281         bool IsNull() const;
08282 
08283         // ========================================================================
08284         // PROPERTIES
08285         // ========================================================================
08288         ATETextDOM::Int32 GetLength( );
08289         // navigation objects.
08292         IStory GetStory( );
08295         ITextRange GetTextRange( );
08298         ITextRanges GetTextRanges( );
08301         ITextRanges GetTextSelection( );
08304         IWordsIterator GetWordsIterator( );
08305         // ========================================================================
08306         // METHODS
08307         // ========================================================================
08310         IParagraph GetNext( );
08313         IParagraph GetPrev( );
08318         ATETextDOM::ATETextDomErr GetContents( ATETextDOM::Unicode* text, ATETextDOM::Int32 maxLength);
08323         ATETextDOM::ATETextDomErr GetContents( char* text, ATETextDOM::Int32 maxLength);
08324 
08325 };
08326 
08328 //       --IParagraphsIterator--
08330 
08336 class IParagraphsIterator
08337 {
08338 private:
08339         ParagraphsIteratorRef   fParagraphsIterator;
08340 public:
08343         IParagraphsIterator();
08347         IParagraphsIterator(const IParagraphsIterator& src);
08351         IParagraphsIterator& operator=(const IParagraphsIterator& rhs);
08355         bool operator==(const IParagraphsIterator& rhs) const;
08359         bool operator!=(const IParagraphsIterator& rhs) const;
08365         explicit IParagraphsIterator(ParagraphsIteratorRef paragraphsiterator);
08367         virtual ~IParagraphsIterator();
08370         ParagraphsIteratorRef GetRef() const;
08373         bool IsNull() const;
08374 
08381         IParagraphsIterator( ITextRanges ranges, Direction direction = kForward);
08382         //------------------------------------------------------
08383         // Methods
08384         //------------------------------------------------------
08387         bool IsDone( ) const;
08390         bool IsNotDone( ) const;
08393         bool IsEmpty( ) const;
08396         void MoveToFirst( );
08399         void MoveToLast( );
08402         void Next( );
08405         IParagraph Item( );
08406 
08407 };
08408 
08410 //       --IParaInspector--
08412 
08422 class IParaInspector
08423 {
08424 private:
08425         ParaInspectorRef        fParaInspector;
08426 public:
08429         IParaInspector();
08433         IParaInspector(const IParaInspector& src);
08437         IParaInspector& operator=(const IParaInspector& rhs);
08441         bool operator==(const IParaInspector& rhs) const;
08445         bool operator!=(const IParaInspector& rhs) const;
08451         explicit IParaInspector(ParaInspectorRef parainspector);
08453         virtual ~IParaInspector();
08456         ParaInspectorRef GetRef() const;
08459         bool IsNull() const;
08460 
08461         // ------------------------------------------------------------------
08462         // Justification
08463         // ------------------------------------------------------------------
08466         IArrayParagraphJustification GetJustification( ) const;
08469         IArrayReal GetFirstLineIndent( ) const;
08472         IArrayReal GetStartIndent( ) const;
08475         IArrayReal GetEndIndent( ) const;
08478         IArrayReal GetSpaceBefore( ) const;
08481         IArrayReal GetSpaceAfter( ) const;
08482         // ------------------------------------------------------------------
08483         // Hyphenation
08484         // ------------------------------------------------------------------
08487         IArrayBool GetAutoHyphenate( ) const;
08490         IArrayInteger GetHyphenatedWordSize( ) const;
08493         IArrayInteger GetPreHyphenSize( ) const;
08496         IArrayInteger GetPostHyphenSize( ) const;
08499         IArrayInteger GetConsecutiveHyphenLimit( ) const;
08502         IArrayReal GetHyphenationZone( ) const;
08505         IArrayBool GetHyphenateCapitalized( ) const;
08508         IArrayReal GetHyphenationPreference( ) const;
08509         // ------------------------------------------------------------------
08510         // Justification Features
08511         // ------------------------------------------------------------------
08514         IArrayReal GetDesiredWordSpacing( ) const;
08517         IArrayReal GetMaxWordSpacing( ) const;
08520         IArrayReal GetMinWordSpacing( ) const;
08523         IArrayReal GetDesiredLetterSpacing( ) const;
08526         IArrayReal GetMaxLetterSpacing( ) const;
08529         IArrayReal GetMinLetterSpacing( ) const;
08532         IArrayReal GetDesiredGlyphScaling( ) const;
08535         IArrayReal GetMaxGlyphScaling( ) const;
08538         IArrayReal GetMinGlyphScaling( ) const;
08541         IArrayParagraphJustification GetSingleWordJustification( ) const;
08544         IArrayReal GetAutoLeadingPercentage( ) const;
08547         IArrayLeadingType GetLeadingType( ) const;
08550         IArrayTabStopsRef GetTabStops( ) const;
08553         IArrayReal GetDefaultTabWidth( ) const;
08554         // ------------------------------------------------------------------
08555         // Japanese Features
08556         // ------------------------------------------------------------------
08559         IArrayBool GetHangingRoman( ) const;
08562         IArrayInteger GetAutoTCY( ) const;
08565         IArrayBool GetBunriKinshi( ) const;
08568         IArrayBurasagariType GetBurasagariType( ) const;
08571         IArrayPreferredKinsokuOrder GetPreferredKinsokuOrder( ) const;
08574         IArrayBool GetKurikaeshiMojiShori( ) const;
08577         IArrayKinsokuRef GetKinsoku( ) const;
08580         IArrayMojiKumiRef GetMojiKumi( ) const;
08581         // ------------------------------------------------------------------
08582         // Other Features
08583         // ------------------------------------------------------------------
08586         IArrayBool GetEveryLineComposer( ) const;
08587 
08588 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
08589         // ------------------------------------------------------------------
08590         // Complex Script Features
08591         // ------------------------------------------------------------------
08595         IArrayParagraphDirection GetParagraphDirection( ) const;
08599         IArrayJustificationMethod GetJustificationMethod( ) const;
08603         IArrayKashidaWidth GetKashidaWidth( ) const;
08604 #endif
08605 
08608         IArrayComposerEngine GetComposerEngine( ) const;
08609 
08610 };
08611 
08613 //       --IParaStyle--
08615 
08631 class IParaStyle
08632 {
08633 private:
08634         ParaStyleRef    fParaStyle;
08635 public:
08638         IParaStyle();
08642         IParaStyle(const IParaStyle& src);
08646         IParaStyle& operator=(const IParaStyle& rhs);
08650         bool operator==(const IParaStyle& rhs) const;
08654         bool operator!=(const IParaStyle& rhs) const;
08660         explicit IParaStyle(ParaStyleRef parastyle);
08662         virtual ~IParaStyle();
08665         ParaStyleRef GetRef() const;
08668         bool IsNull() const;
08669 
08675         ATETextDOM::Int32 GetName( ATETextDOM::Unicode* pName, ATETextDOM::Int32 maxLength) const;
08681         bool SetName( const ATETextDOM::Unicode* pName);
08685         IParaStyle GetParent( ) const;
08691         bool SetParent( const IParaStyle pStyle);
08695         bool HasParent( ) const;
08699         IParaFeatures GetFeatures( ) const;
08706         void SetFeatures( IParaFeatures pFeatures);
08714         void ReplaceOrAddFeatures( IParaFeatures pFeatures);
08715 
08716 };
08717 
08719 //       --IParaStyles--
08721 
08725 class IParaStyles
08726 {
08727 private:
08728         ParaStylesRef   fParaStyles;
08729 public:
08732         IParaStyles();
08736         IParaStyles(const IParaStyles& src);
08740         IParaStyles& operator=(const IParaStyles& rhs);
08744         bool operator==(const IParaStyles& rhs) const;
08748         bool operator!=(const IParaStyles& rhs) const;
08754         explicit IParaStyles(ParaStylesRef parastyles);
08756         virtual ~IParaStyles();
08759         ParaStylesRef GetRef() const;
08762         bool IsNull() const;
08763 
08764         //------------------------------------------------------
08765         // Methods
08766         //------------------------------------------------------
08769         bool IsEmpty( ) const;
08772         ATETextDOM::Int32 GetSize( ) const;
08777         void ShowAllStyles( ) const;
08782         void ShowOnlyUnreferencedStyles( ) const;
08788         void ShowOnlyStylesReferencedIn( ITextRange pRange) const;
08794         void MoveStyleTo( IParaStyle pStyle, ATETextDOM::Int32 position);
08795 
08796 };
08797 
08799 //       --IParaStylesIterator--
08801 
08805 class IParaStylesIterator
08806 {
08807 private:
08808         ParaStylesIteratorRef   fParaStylesIterator;
08809 public:
08812         IParaStylesIterator();
08816         IParaStylesIterator(const IParaStylesIterator& src);
08820         IParaStylesIterator& operator=(const IParaStylesIterator& rhs);
08824         bool operator==(const IParaStylesIterator& rhs) const;
08828         bool operator!=(const IParaStylesIterator& rhs) const;
08834         explicit IParaStylesIterator(ParaStylesIteratorRef parastylesiterator);
08836         virtual ~IParaStylesIterator();
08839         ParaStylesIteratorRef GetRef() const;
08842         bool IsNull() const;
08843 
08850         IParaStylesIterator( IParaStyles paraStyles, Direction direction = kForward);
08851         //------------------------------------------------------
08852         // Methods
08853         //------------------------------------------------------
08856         bool IsNotDone( ) const;
08859         bool IsDone( ) const;
08862         bool IsEmpty( ) const;
08865         void MoveToFirst( );
08868         void MoveToLast( );
08871         void Next( );
08874         void Previous( );
08877         IParaStyle Item( ) const;
08878 
08879 };
08880 
08882 //       --ISpell--
08884 
08901 class ISpell
08902 {
08903 private:
08904         SpellRef        fSpell;
08905 public:
08908         ISpell();
08912         ISpell(const ISpell& src);
08916         ISpell& operator=(const ISpell& rhs);
08920         bool operator==(const ISpell& rhs) const;
08924         bool operator!=(const ISpell& rhs) const;
08930         explicit ISpell(SpellRef spell);
08932         virtual ~ISpell();
08935         SpellRef GetRef() const;
08938         bool IsNull() const;
08939 
08940         // ========================================================================
08941         // Options
08942         // ========================================================================
08945         void Initialize( );
08948         bool IsInitialized( );
08951         bool GetIgnoreWordsInAllUppercase( ) const;
08954         bool GetIgnoreWordsWithNumbers( ) const;
08957         bool GetIgnoreRomanNumerals( ) const;
08960         bool GetIgnoreRepeatedWords( ) const;
08963         bool GetIgnoreUncapitalizedStartOfSentence( ) const;
08964 
08965 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
08966 
08969         bool GetStrictYeh( ) const;
08973         bool GetStrictAlef( ) const;
08974 #endif
08975 
08979         void SetIgnoreWordsInAllUppercase( bool newValue);
08983         void SetIgnoreWordsWithNumbers( bool newValue);
08987         void SetIgnoreRomanNumerals( bool newValue);
08991         void SetIgnoreRepeatedWords( bool newValue);
08995         void SetIgnoreUncapitalizedStartOfSentence( bool newValue);
08996 
08997 #if SLO_COMPLEXSCRIPT // Middle Eastern specific features only
08998 
09002         void SetStrictYeh( bool newValue);
09007         void SetStrictAlef( bool newValue);
09008 #endif
09009 
09013         SearchScope GetSearchScope( ) const;
09017         void SetSearchScope( SearchScope searchScope);
09018 
09027         void SetSearchRange( const ITextRange& pRange, const bool resetEndOfSentence = true, const bool resetCurPos = true);
09028 
09031         void Reset( );
09039         void ResumeFrom( const ATETextDOM::Int32 resumePoint);
09040         // Use this to resume from the current insertion point.
09043         void ResumeFromInsertionPoint( );
09044 
09045         // ========================================================================
09046         // Methods
09047         // ========================================================================
09048 
09057         bool FindOneMisspelledWord( SpellCheckingResult* pResult, ITextRange pRange, Language* pLanguage = NULL);
09062         ATETextDOM::Int32 GetWordListSize( );
09071         void GetWordListContents( ATETextDOM::Unicode*   pWordListBuffer, ATETextDOM::Int32    sizeOfBuffer, ATETextDOM::Int32*   pNumberOfWords);
09076         void Replace( ITextRange pRange, const ATETextDOM::Unicode* pCorrection);
09077 
09078         // Use this to add an entry to a pair dictionary, binding the selected word to rCorrection.
09083         void AddSelectedToReplaceAllDict( const ATETextDOM::Unicode* pCorrection);
09084 
09087         bool DoReplaceAll( );
09088 
09099         void GetPreReplaceAllSettings( ATETextDOM::Int32* pCurrentPoint, bool* pFoundSentenceEnd) const;
09100         // Implement a loop to go through all the text objects you want to replace all with.
09101         // Use this to find all instances of the target word in the current text object.
09102         // Keep calling it until it returns false, making sure to set firstTimeInThisObject as needed.
09103         // It will return the text range to select and call ReplaceSelected( ) with.
09112         bool FindReplaceAllWord( ITextRange pRange, const bool firstTimeInThisObject);
09121         void RestorePreReplaceAllSettings( const ATETextDOM::Int32 currentPoint, const bool foundSentenceEnd);
09122 
09124 
09128         void ClearPairDictionary( );
09129 
09132         void AddSelectedToUserDict( );
09133 
09138         void GetUserDictionaryContents( );
09143         bool AddToUserDictionary( const ATETextDOM::Unicode* pWord);
09147         void DeleteFromUserDictionary( const ATETextDOM::Unicode* pWord);
09151         bool WordExistsInUserDictionary( const ATETextDOM::Unicode* pWord);
09155         void AddSelectedToIgnoreList( );
09159         void ClearIgnoreList( );
09162         Language GetLanguageOfLastMissingDictionary( );
09163         //param @out : the size of the length of the path
09164         //      @in  : the memory where the path is to be stored
09165         ATETextDOM::Int32 GetSpellingDictionaryPath(ATETextDOM::Unicode* path);
09166 };
09167 
09169 //       --IStories--
09171 
09174 class IStories
09175 {
09176 private:
09177         StoriesRef      fStories;
09178 public:
09181         IStories();
09185         IStories(const IStories& src);
09189         IStories& operator=(const IStories& rhs);
09193         bool operator==(const IStories& rhs) const;
09197         bool operator!=(const IStories& rhs) const;
09203         explicit IStories(StoriesRef stories);
09205         virtual ~IStories();
09208         StoriesRef GetRef() const;
09211         bool IsNull() const;
09212 
09215         ATETextDOM::Int32 GetSize( ) const;
09218         IStory GetFirst( );
09221         IStory GetLast( );
09222         // Focus methods
09228         bool HasFocus( ) const;
09231         IStory GetFocus( ) const;
09235         void SetFocus( const IStory& story);
09239         void LoseFocus( );
09240         // Navigation objects.
09243         ITextRanges GetTextRanges( ) const;
09246         ITextRanges GetTextSelection( ) const;
09249         IParagraphsIterator GetParagraphsIterator( ) const;
09252         IWordsIterator GetWordsIterator( ) const;
09255         ITextRunsIterator GetTextRunsIterator( ) const;
09258         IDocumentTextResources GetDocumentTextResources( ) const;
09259         // ========================================================================
09260         // METHODS
09261         // ========================================================================
09267         IStory Item( ATETextDOM::Int32 nIndex) const;
09272         void SuspendReflow( );
09275         void ResumeReflow( );
09276 
09277 };
09278 
09280 //       --IStory--
09282 
09294 class IStory
09295 {
09296 private:
09297         StoryRef        fStory;
09298 public:
09301         IStory();
09305         IStory(const IStory& src);
09309         IStory& operator=(const IStory& rhs);
09313         bool operator==(const IStory& rhs) const;
09317         bool operator!=(const IStory& rhs) const;
09323         explicit IStory(StoryRef story);
09325         virtual ~IStory();
09328         StoryRef GetRef() const;
09331         bool IsNull() const;
09332 
09333         // ========================================================================
09334         // PROPERTIES
09335         // ========================================================================
09336 
09339         ATETextDOM::Int32 GetIndex( ) const;
09342         ATETextDOM::Int32 GetSize( ) const;
09344 
09346         IStories GetStories( ) const;
09349         ITextRange GetTextRange( ) const;
09352         ITextRanges GetTextSelection( ) const;
09355         IParagraphsIterator GetParagraphsIterator( ) const;
09358         IWordsIterator GetWordsIterator( ) const;
09361         ITextRunsIterator GetTextRunsIterator( ) const;
09364         ITextFramesIterator GetTextFramesIterator( ) const;
09368         ITextFrame GetFrame( ATETextDOM::Int32 frameIndex) const;
09369 
09372 
09376         void SetKernForSelection( const ITextRange& textRange, AutoKernType autoKernType);
09378 
09382         void SetKernAtChar( ATETextDOM::Int32 charIndex, ATETextDOM::Int32 value);
09388         void GetKern( const ITextRange& textRange, AutoKernType* pAutoKernType, ATETextDOM::Int32* value) const;
09393         AutoKernType GetModelKernAtChar( ATETextDOM::Int32 charIndex, ATETextDOM::Int32* pManualKernValue) const;
09394         // ========================================================================
09395         // METHODS
09396         // ========================================================================
09403         ITextRange GetTextRange( ATETextDOM::Int32 start, ATETextDOM::Int32 end) const;
09406         IStory Duplicate( );
09411         void SuspendReflow( );
09414         void ResumeReflow( );
09415 
09416 };
09417 
09419 //       --ITabStop--
09421 
09425 class ITabStop
09426 {
09427 private:
09428         TabStopRef      fTabStop;
09429 public:
09432         ITabStop();
09436         ITabStop(const ITabStop& src);
09440         ITabStop& operator=(const ITabStop& rhs);
09444         bool operator==(const ITabStop& rhs) const;
09448         bool operator!=(const ITabStop& rhs) const;
09454         explicit ITabStop(TabStopRef tabstop);
09456         virtual ~ITabStop();
09459         TabStopRef GetRef() const;
09462         bool IsNull() const;
09463 
09464         // =======================================================================
09465         // PROPERTIES
09466         // =======================================================================
09469         TabType GetTabType( ) const;
09473         void SetTabType( TabType tabType);
09476         ATETextDOM::Real GetPosition( ) const;
09480         void SetPosition( ATETextDOM::Real position);
09483         bool HasLeader( ) const;
09488         void GetLeader( ATETextDOM::Unicode* leader, ATETextDOM::Int32 maxLength) const;
09492         void SetLeader( ATETextDOM::Unicode* leader);
09495         ATETextDOM::Unicode GetDecimalCharacter( ) const;
09498         void SetDecimalCharacter( ATETextDOM::Unicode decimalChar);
09499 
09500 };
09501 
09503 //       --ITabStops--
09505 
09514 class ITabStops
09515 {
09516 private:
09517         TabStopsRef     fTabStops;
09518 public:
09521         ITabStops();
09525         ITabStops(const ITabStops& src);
09529         ITabStops& operator=(const ITabStops& rhs);
09533         bool operator==(const ITabStops& rhs) const;
09537         bool operator!=(const ITabStops& rhs) const;
09543         explicit ITabStops(TabStopsRef tabstops);
09545         virtual ~ITabStops();
09548         TabStopsRef GetRef() const;
09551         bool IsNull() const;
09552 
09553         // =======================================================================
09554         // PROPERTIES
09555         // =======================================================================
09558         ATETextDOM::Int32 GetSize( ) const;
09561         ITabStop GetFirst( ) const;
09564         ITabStop GetLast( ) const;
09565         // =======================================================================
09566         // METHODS
09567         // =======================================================================
09572         void ReplaceOrAdd( const ITabStop& pTabStop);
09578         ITabStop Item( ATETextDOM::Int32 nIndex) const;
09582         void Remove( ATETextDOM::Int32 nIndex);
09585         void RemoveAll( );
09586 };
09587 
09589 //       --ITabStopsIterator--
09591 
09595 class ITabStopsIterator
09596 {
09597 private:
09598         TabStopsIteratorRef     fTabStopsIterator;
09599 public:
09602         ITabStopsIterator();
09606         ITabStopsIterator(const ITabStopsIterator& src);
09610         ITabStopsIterator& operator=(const ITabStopsIterator& rhs);
09614         bool operator==(const ITabStopsIterator& rhs) const;
09618         bool operator!=(const ITabStopsIterator& rhs) const;
09624         explicit ITabStopsIterator(TabStopsIteratorRef tabstopsiterator);
09626         virtual ~ITabStopsIterator();
09629         TabStopsIteratorRef GetRef() const;
09632         bool IsNull() const;
09633 
09640         ITabStopsIterator( ITabStops tabStops, Direction direction = kForward);
09641 
09642 
09645         bool IsDone( ) const;
09648         bool IsNotDone( ) const;
09651         bool IsEmpty( );
09654         void MoveToFirst( );
09657         void MoveToLast( );
09660         void Next( );
09663         ITabStop Item( ) const;
09664 
09665 };
09666 
09700 
09701 //       --ITextRange--
09703 class ITextRange
09704 {
09705 private:
09706         TextRangeRef    fTextRange;
09707 public:
09710         ITextRange();
09714         ITextRange(const ITextRange& src);
09718         ITextRange& operator=(const ITextRange& rhs);
09722         bool operator==(const ITextRange& rhs) const;
09726         bool operator!=(const ITextRange& rhs) const;
09732         explicit ITextRange(TextRangeRef textrange);
09734         virtual ~ITextRange();
09737         TextRangeRef GetRef() const;
09740         bool IsNull() const;
09741 
09742         // =======================================================================
09743         // PROPERTIES
09744         // ========================================================================
09748         ATETextDOM::Int32 GetStart( ) const;
09753         void SetStart( ATETextDOM::Int32 start);
09757         ATETextDOM::Int32 GetEnd( ) const;
09762         void SetEnd( ATETextDOM::Int32 end);
09765         ATETextDOM::Int32 GetSize( ) const;
09766         // =======================================================================
09767         // NAVIGATION OBJECTS
09768         // ========================================================================
09771         IStory GetStory( ) const;
09774         ITextRanges GetTextSelection( ) const;
09777         ITextFramesIterator GetTextFramesIterator( ) const;
09780         IParagraphsIterator GetParagraphsIterator( ) const;
09783         IWordsIterator GetWordsIterator( ) const;
09787         ITextRunsIterator GetTextRunsIterator( ) const;
09788         // =======================================================================
09789         // ATTRIBUTE INSPECTION AND MODIFICATION
09790         // ========================================================================
09794         ICharInspector GetCharInspector( ) const;
09798         IParaInspector GetParaInspector( ) const;
09801         ICharStyles GetNamedCharStyles( ) const;
09804         IParaStyles GetNamedParaStyles( ) const;
09811         bool SetNamedCharStyle( const ATETextDOM::Unicode* pName);
09818         bool SetNamedParaStyle( const ATETextDOM::Unicode* pName);
09823         void ClearNamedCharStyle( );
09828         void ClearNamedParaStyle( );
09834         ICharFeatures GetUniqueCharFeatures( ) const;
09840         IParaFeatures GetUniqueParaFeatures( ) const;
09844         bool HasLocalCharFeatures( );
09848         bool HasLocalParaFeatures( );
09855         ICharFeatures GetUniqueLocalCharFeatures( );
09862         IParaFeatures GetUniqueLocalParaFeatures( );
09863 
09876         void SetLocalCharFeatures( const ICharFeatures& pFeatures);
09888         void ReplaceOrAddLocalCharFeatures( const ICharFeatures& pFeatures);
09893         void ClearLocalCharFeatures( );
09894 
09907         void SetLocalParaFeatures( const IParaFeatures& pFeatures);
09918         void ReplaceOrAddLocalParaFeatures( const IParaFeatures& pFeatures);
09923         void ClearLocalParaFeatures( );
09924         // =======================================================================
09925         // METHODS
09926         // ========================================================================
09930         void SetStory( const IStory& story);
09937         void SetRange( ATETextDOM::Int32 start, ATETextDOM::Int32 end);
09943         void Collapse( CollapseDirection direction = CollapseEnd);
09952         ATETextDOM::Int32 Move( ATETextDOM::Int32 unit);
09955         ITextRange Clone( ) const;
09963         void InsertBefore( const ATETextDOM::Unicode* text, ATETextDOM::Int32 length = -1);
09971         void InsertAfter( const ATETextDOM::Unicode* text, ATETextDOM::Int32 length = -1);
09977         void InsertBefore( const ITextRange& anotherRange);
09983         void InsertAfter( const ITextRange& anotherRange);
09984 
09989         ATETextDOM::Int32 GetContents( ATETextDOM::Unicode* text, ATETextDOM::Int32 maxLength) const;
09994         ATETextDOM::Int32 GetContents( char* text, ATETextDOM::Int32 maxLength) const;
09995 
10001         bool GetSingleGlyphInRange( ATEGlyphID* pSingleGlyph) const;
10002 
10008         void Select( bool addToSelection = false);
10012         void DeSelect( );
10016         void ChangeCase( CaseChangeType caseChangeType);
10022         void FitHeadlines( );
10028         void Remove( );
10033         ASCharType GetCharacterType( ) const;
10034 
10035 };
10036 
10038 //       --ITextRanges--
10040 
10043 class ITextRanges
10044 {
10045 private:
10046         TextRangesRef   fTextRanges;
10047 public:
10050         ITextRanges();
10054         ITextRanges(const ITextRanges& src);
10058         ITextRanges& operator=(const ITextRanges& rhs);
10062         bool operator==(const ITextRanges& rhs) const;
10066         bool operator!=(const ITextRanges& rhs) const;
10072         explicit ITextRanges(TextRangesRef textranges);
10074         virtual ~ITextRanges();
10077         TextRangesRef GetRef() const;
10080         bool IsNull() const;
10081 
10082         // =======================================================================
10083         // PROPERTIES
10084         // ======================================================================
10088         ATETextDOM::Int32 GetSize( ) const;
10091         ITextRange GetFirst( ) const;
10094         ITextRange GetLast( ) const;
10095         // navigation objects.
10098         ITextRanges GetTextSelection( ) const;
10101         IParagraphsIterator GetParagraphsIterator( ) const;
10104         IWordsIterator GetWordsIterator( ) const;
10107         ITextRunsIterator GetTextRunsIterator( ) const;
10108         // =======================================================================
10109         // ATTRIBUTE INSPECTION AND MODIFICATION
10110         // ========================================================================
10114         ICharInspector GetCharInspector( ) const;
10118         IParaInspector GetParaInspector( ) const;
10123         void ClearNamedCharStyle( );
10128         void ClearNamedParaStyle( );
10134         ICharFeatures GetUniqueCharFeatures( ) const;
10140         IParaFeatures GetUniqueParaFeatures( ) const;
10144         bool HasLocalCharFeatures( );
10148         bool HasLocalParaFeatures( );
10155         ICharFeatures GetUniqueLocalCharFeatures( );
10162         IParaFeatures GetUniqueLocalParaFeatures( );
10163 
10172         void SetLocalCharFeatures( const ICharFeatures& pFeatures);
10179         void ReplaceOrAddLocalCharFeatures( const ICharFeatures& pFeatures);
10184         void ClearLocalCharFeatures( );
10193         void SetLocalParaFeatures( const IParaFeatures& pFeatures);
10200         void ReplaceOrAddLocalParaFeatures( const IParaFeatures& pFeatures);
10205         void ClearLocalParaFeatures( );
10206         // =======================================================================
10207         // METHODS
10208         // ======================================================================
10214         void Select( bool addToSelection = false);
10219         void DeSelect( );
10224         ATETextDOM::Int32 GetContents( ATETextDOM::Unicode* text, ATETextDOM::Int32 maxLength) const;
10229         ATETextDOM::Int32 GetContents( char* text, ATETextDOM::Int32 maxLength) const;
10233         void ChangeCase( CaseChangeType caseChangeType);
10237         void Add( const ITextRange& textRange);
10243         ITextRange Item( ATETextDOM::Int32 nIndex) const;
10246         void RemoveAll( );
10250         void Remove( ATETextDOM::Int32 nIndex);
10251 
10252 };
10253 
10255 //       --ITextRangesIterator--
10257 
10259 class ITextRangesIterator
10260 {
10261 private:
10262         TextRangesIteratorRef   fTextRangesIterator;
10263 public:
10266         ITextRangesIterator();
10270         ITextRangesIterator(const ITextRangesIterator& src);
10274         ITextRangesIterator& operator=(const ITextRangesIterator& rhs);
10278         bool operator==(const ITextRangesIterator& rhs) const;
10282         bool operator!=(const ITextRangesIterator& rhs) const;
10288         explicit ITextRangesIterator(TextRangesIteratorRef textrangesiterator);
10290         virtual ~ITextRangesIterator();
10293         TextRangesIteratorRef GetRef() const;
10296         bool IsNull() const;
10297 
10304         ITextRangesIterator( ITextRanges textRanges, Direction direction = kForward);
10305 
10308         ITextRangesIterator Clone( ) const;
10309 
10312         bool IsNotDone( ) const;
10315         bool IsDone( ) const;
10318         bool IsEmpty( ) const;
10321         void MoveToFirst( );
10324         void MoveToLast( );
10327         void Next( );
10330         ITextRange Item( ) const;
10331 
10332 };
10333 
10335 //       --ITextRunsIterator--
10337 
10345 class ITextRunsIterator
10346 {
10347 private:
10348         TextRunsIteratorRef     fTextRunsIterator;
10349 public:
10352         ITextRunsIterator();
10356         ITextRunsIterator(const ITextRunsIterator& src);
10360         ITextRunsIterator& operator=(const ITextRunsIterator& rhs);
10364         bool operator==(const ITextRunsIterator& rhs) const;
10368         bool operator!=(const ITextRunsIterator& rhs) const;
10374         explicit ITextRunsIterator(TextRunsIteratorRef textrunsiterator);
10376         virtual ~ITextRunsIterator();
10379         TextRunsIteratorRef GetRef() const;
10382         bool IsNull() const;
10383 
10390         ITextRunsIterator( const ITextRanges& ranges, Direction direction = kForward);
10393         bool IsNotDone( ) const;
10396         bool IsDone( ) const;
10399         bool IsEmpty( ) const;
10402         void MoveToFirst( );
10405         void MoveToLast( );
10408         void Next( );
10414         ITextRange Item( ) const;
10415 
10416 };
10417 
10419 //       --IWordsIterator--
10421 
10426 class IWordsIterator
10427 {
10428 private:
10429         WordsIteratorRef        fWordsIterator;
10430 public:
10433         IWordsIterator();
10437         IWordsIterator(const IWordsIterator& src);
10441         IWordsIterator& operator=(const IWordsIterator& rhs);
10445         bool operator==(const IWordsIterator& rhs) const;
10449         bool operator!=(const IWordsIterator& rhs) const;
10455         explicit IWordsIterator(WordsIteratorRef wordsiterator);
10457         virtual ~IWordsIterator();
10460         WordsIteratorRef GetRef() const;
10463         bool IsNull() const;
10464 
10471         IWordsIterator( const ITextRanges& ranges, Direction direction = kForward);
10472 
10475         bool IsNotDone( ) const;
10478         bool IsDone( ) const;
10481         bool IsEmpty( ) const;
10484         void MoveToFirst( );
10487         void MoveToLast( );
10490         void Next( );
10494         ITextRange Item( ) const;
10495 
10497 
10502         ATETextDOM::Int32 GetTrailingSpaceCount( ) const;
10508         ATETextDOM::Int32 GetTrailingCount( ) const;
10513         ATETextDOM::Int32 GetTrailingTerminatingPunctuationCount( ) const;
10514 
10515 };
10516 
10524 class IInhibitReflow
10525 {
10526 public:
10529    IInhibitReflow()
10530    {
10531    }
10536    IInhibitReflow(const IStory& story)
10537    :fStory(story)
10538    {
10539        fStory.SuspendReflow();
10540    }
10544    IInhibitReflow(const IInhibitReflow& reflow)
10545    :fStory(reflow.fStory)
10546    {
10547        fStory.SuspendReflow();
10548    }
10550    virtual ~IInhibitReflow()
10551    {
10552        if(!fStory.IsNull())
10553            fStory.ResumeReflow();
10554    }
10558    IInhibitReflow& operator=(const IInhibitReflow& rhs)
10559    {
10560        this->~IInhibitReflow( );
10561        fStory = rhs.fStory;
10562        if(!fStory.IsNull())
10563           fStory.SuspendReflow();
10564        return *this;
10565    }
10566 protected:
10567    IStory    fStory;
10568 };
10569 }// namespace ATE
10570 


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