filters

powerpoint.h

00001 /* libppt - library to read PowerPoint presentation
00002    Copyright (C) 2005 Yolla Indria <yolla.indria@gmail.com>
00003 
00004    This library is free software; you can redistribute it and/or
00005    modify it under the terms of the GNU Library General Public
00006    License as published by the Free Software Foundation; either
00007    version 2 of the License, or (at your option) any later version.
00008    
00009    This library is distributed in the hope that it will be useful,
00010    but WITHOUT ANY WARRANTY; without even the implied warranty of
00011    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012    Library General Public License for more details.
00013 
00014    You should have received a copy of the GNU Library General Public License
00015    along with this library; see the file COPYING.LIB.  If not, write to
00016    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00017  * Boston, MA 02110-1301, USA
00018 */
00019 
00020 #ifndef LIBPPT_POWERPOINT
00021 #define LIBPPT_POWERPOINT
00022 
00023 #include <iostream>
00024 #include "ustring.h"
00025 
00026 namespace Libppt
00027 {
00028 
00029 // forward declaration
00030 class Presentation;
00031 
00032 class Record
00033 {
00034 public:
00035 
00040   static const unsigned int id;
00041   
00042   virtual unsigned int rtti(){
00043       return this->id;
00044   }
00045   
00049   Record();
00050   
00054   virtual ~Record();
00055   
00059   static Record* create( unsigned type );
00060   
00064   virtual bool isContainer() const { return false; }
00065   
00066   void setParent( Record* parent );
00067   
00068   const Record* parent() const;
00069 
00073   virtual void setData( unsigned size, const unsigned char* data );
00074   virtual void setData( unsigned size, const unsigned char* data, unsigned lastSize );
00075 
00079   void setPosition( unsigned pos );
00080   
00084   unsigned position() const;
00085 
00086   void setInstance( unsigned inst );
00087   unsigned instance() const;
00088   
00092   virtual const char* name(){ return "Unknown"; }
00093 
00097   virtual void dump( std::ostream& out ) const;
00098 
00099 protected:
00100 
00101    // position of this record in the OLE stream
00102    unsigned stream_position;
00103 
00104    unsigned record_instance;
00105    
00106    Record* record_parent;
00107 
00108 private:
00109    // no copy or assign
00110    Record( const Record& );
00111    Record& operator=( const Record& );   
00112 };
00113 
00114 // Container is a special record, it is for holding another records
00115 class Container: public Record
00116 {
00117 public:
00118   Container();
00119   virtual bool isContainer() const { return true; }
00120   const char* name(){ return "Container"; }
00121 
00122 private:
00123    // no copy or assign
00124    Container( const Container& );
00125    Container& operator=( const Container& );   
00126 };
00127 
00128 
00129 class BookmarkCollectionContainer: public Container
00130 {
00131 public:
00132   static const unsigned int id;
00133   BookmarkCollectionContainer();
00134   const char* name(){ return "BookmarkCollectionContainer"; }
00135 
00136 private:
00137   // no copy or assign
00138   BookmarkCollectionContainer( const BookmarkCollectionContainer& );
00139   BookmarkCollectionContainer& operator=( const BookmarkCollectionContainer& );   
00140 };
00141 
00142 class DocumentContainer: public Container
00143 {
00144 public:
00145   static const unsigned int id;
00146   DocumentContainer();
00147   const char* name(){ return "DocumentContainer"; }
00148 
00149 private:
00150   // no copy or assign
00151   DocumentContainer( const DocumentContainer& );
00152   DocumentContainer& operator=( const DocumentContainer& );   
00153 };
00154 
00155 class EnvironmentContainer: public Container
00156 {
00157 public:
00158   static const unsigned int id;
00159   EnvironmentContainer();
00160   const char* name(){ return "EnvironmentContainer"; }
00161 
00162 private:
00163   // no copy or assign
00164   EnvironmentContainer( const EnvironmentContainer& );
00165   EnvironmentContainer& operator=( const EnvironmentContainer& );   
00166 };
00167 
00168 class ExObjListContainer: public Container
00169 {
00170 public:
00171   static const unsigned int id;
00172   ExObjListContainer();
00173   const char* name(){ return "ExObjListContainer"; }
00174 
00175 private:
00176   // no copy or assign
00177   ExObjListContainer( const ExObjListContainer& );
00178   ExObjListContainer& operator=( const ExObjListContainer& );   
00179 };
00180 
00181 class ExHyperlinkContainer : public Container
00182 {
00183 public:
00184   static const unsigned int id;
00185   ExHyperlinkContainer ();
00186   const char* name(){ return "ExHyperlinkContainer "; }
00187 
00188 private:
00189   // no copy or assign
00190   ExHyperlinkContainer ( const ExHyperlinkContainer & );
00191   ExHyperlinkContainer & operator=( const ExHyperlinkContainer & );   
00192 };
00193 
00194 class ExEmbedContainer : public Container
00195 {
00196 public:
00197   static const unsigned int id;
00198   ExEmbedContainer ();
00199   const char* name(){ return "ExEmbedContainer "; }
00200 
00201 private:
00202   // no copy or assign
00203   ExEmbedContainer ( const ExEmbedContainer & );
00204   ExEmbedContainer & operator=( const ExEmbedContainer & );   
00205 };
00206 
00207 class ExLinkContainer : public Container
00208 {
00209 public:
00210   static const unsigned int id;
00211   ExLinkContainer ();
00212   const char* name(){ return "ExLinkContainer "; }
00213 
00214 private:
00215   // no copy or assign
00216   ExLinkContainer ( const ExLinkContainer & );
00217   ExLinkContainer & operator=( const ExLinkContainer & );   
00218 };
00219 
00220 class RunArrayContainer: public Container
00221 {
00222 public:
00223   static const unsigned int id;
00224   RunArrayContainer();
00225   
00226   const char* name(){ return "RunArrayContainer"; }
00227 
00228 private:
00229   // no copy or assign
00230   RunArrayContainer( const RunArrayContainer& );
00231   RunArrayContainer& operator=( const RunArrayContainer& );   
00232 };
00233 
00234 class ExOleObjStgContainer: public Container
00235 {
00236 public:
00237   static const unsigned int id;
00238   ExOleObjStgContainer();
00239   const char* name(){ return "ExOleObjStgContainer"; }
00240 
00241 private:
00242   // no copy or assign
00243   ExOleObjStgContainer( const ExOleObjStgContainer& );
00244   ExOleObjStgContainer& operator=( const ExOleObjStgContainer& );   
00245 };
00246 
00247 class FontCollectionContainer: public Container
00248 {
00249 public:
00250   static const unsigned int id;
00251   FontCollectionContainer();
00252   const char* name(){ return "FontCollectionContainer"; }
00253 
00254 private:
00255   // no copy or assign
00256   FontCollectionContainer( const FontCollectionContainer& );
00257   FontCollectionContainer& operator=( const FontCollectionContainer& );   
00258 };
00259 
00260 class HandoutContainer: public Container
00261 {
00262 public:
00263   static const unsigned int id;
00264   HandoutContainer();
00265   const char* name(){ return "HandoutContainer"; }
00266 
00267 private:
00268   // no copy or assign
00269   HandoutContainer( const HandoutContainer& );
00270   HandoutContainer& operator=( const HandoutContainer& );   
00271 };
00272 
00273 class HeadersFootersContainer: public Container
00274 {
00275 public:
00276   static const unsigned int id;
00277   HeadersFootersContainer();
00278   const char* name(){ return "HeadersFootersContainer"; }
00279 
00280 private:
00281   // no copy or assign
00282   HeadersFootersContainer( const DocumentContainer& );
00283   HeadersFootersContainer& operator=( const DocumentContainer& );   
00284 };
00285 
00286 class ListContainer: public Container
00287 {
00288 public:
00289   static const unsigned int id;
00290   ListContainer();
00291   const char* name(){ return "ListContainer"; }
00292 
00293 private:
00294   // no copy or assign
00295   ListContainer( const ListContainer& );
00296   ListContainer& operator=( const ListContainer& );   
00297 };
00298 
00299 class MainMasterContainer: public Container
00300 {
00301 public:
00302   static const unsigned int id;
00303   MainMasterContainer();
00304   const char* name(){ return "MainMasterContainer"; }
00305 
00306 private:
00307   // no copy or assign
00308   MainMasterContainer( const MainMasterContainer& );
00309   MainMasterContainer& operator=( const MainMasterContainer& );   
00310 };
00311 
00312 class NotesContainer: public Container
00313 {
00314 public:
00315   static const unsigned int id;
00316   NotesContainer();
00317   const char* name(){ return "NotesContainer"; }
00318 
00319 private:
00320   // no copy or assign
00321   NotesContainer( const NotesContainer& );
00322   NotesContainer& operator=( const NotesContainer& );   
00323 };
00324 
00325 class OutlineViewInfoContainer : public Container
00326 {
00327 public:
00328   static const unsigned int id;
00329   OutlineViewInfoContainer ();
00330   const char* name(){ return "OutlineViewInfoContainer "; }
00331 
00332 private:
00333   // no copy or assign
00334   OutlineViewInfoContainer ( const OutlineViewInfoContainer & );
00335   OutlineViewInfoContainer & operator=( const OutlineViewInfoContainer & );   
00336 };
00337 
00338 class PPDrawingContainer : public Container
00339 {
00340 public:
00341   static const unsigned int id;
00342   PPDrawingContainer ();
00343   const char* name(){ return "PPDrawingContainer "; }
00344 
00345 private:
00346   // no copy or assign
00347   PPDrawingContainer ( const PPDrawingContainer & );
00348   PPDrawingContainer & operator=( const PPDrawingContainer & );   
00349 };
00350 
00351 class PPDrawingGroupContainer : public Container
00352 {
00353 public:
00354   static const unsigned int id;
00355   PPDrawingGroupContainer ();
00356   const char* name(){ return "PPDrawingGroupContainer "; }
00357 
00358 private:
00359   // no copy or assign
00360   PPDrawingGroupContainer ( const PPDrawingGroupContainer & );
00361   PPDrawingGroupContainer & operator=( const PPDrawingGroupContainer & );   
00362 };
00363 
00364 class ProgBinaryTagContainer: public Container
00365 {
00366 public:
00367   static const unsigned int id;
00368   ProgBinaryTagContainer();
00369   const char* name(){ return "ProgBinaryTagContainer"; }
00370 
00371 private:
00372   // no copy or assign
00373   ProgBinaryTagContainer( const ProgBinaryTagContainer& );
00374   ProgBinaryTagContainer& operator=( const ProgBinaryTagContainer& );   
00375 };
00376 
00377 class ProgStringTagContainer: public Container
00378 {
00379 public:
00380   static const unsigned int id;
00381   ProgStringTagContainer();
00382   const char* name(){ return "ProgStringTagContainer"; }
00383 
00384 private:
00385   // no copy or assign
00386   ProgStringTagContainer( const ProgStringTagContainer& );
00387   ProgStringTagContainer& operator=( const ProgStringTagContainer& );   
00388 };
00389 
00390 class ProgTagsContainer : public Container
00391 {
00392 public:
00393   static const unsigned int id;
00394   ProgTagsContainer ();
00395   const char* name(){ return "ProgTagsContainer "; }
00396 
00397 private:
00398   // no copy or assign
00399   ProgTagsContainer ( const ProgTagsContainer & );
00400   ProgTagsContainer & operator=( const ProgTagsContainer & );   
00401 };
00402 
00403 class SlideContainer: public Container
00404 {
00405 public:
00406   static const unsigned int id;
00407   SlideContainer();
00408   const char* name(){ return "SlideContainer"; }
00409 
00410 private:
00411   // no copy or assign
00412   SlideContainer( const SlideContainer& );
00413   SlideContainer& operator=( const SlideContainer& );   
00414 };
00415 
00416 class SlideBaseContainer: public Container
00417 {
00418 public:
00419   static const unsigned int id;
00420   SlideBaseContainer();
00421   const char* name(){ return "SlideBaseContainer"; }
00422 
00423 private:
00424   // no copy or assign
00425   SlideBaseContainer( const SlideBaseContainer& );
00426   SlideBaseContainer& operator=( const SlideBaseContainer& );   
00427 };
00428 
00429 class SlideListWithTextContainer: public Container
00430 {
00431 public:
00432   static const unsigned int id;
00433   SlideListWithTextContainer();
00434   const char* name(){ return "SlideListWithTextContainer"; }
00435 
00436 private:
00437   // no copy or assign
00438   SlideListWithTextContainer( const SlideListWithTextContainer& );
00439   SlideListWithTextContainer& operator=( const SlideListWithTextContainer& );   
00440 };
00441  
00442 class SlideViewInfoContainer: public Container
00443 {
00444 public:
00445   static const unsigned int id;
00446   SlideViewInfoContainer();
00447   const char* name(){ return "SlideViewInfoContainer"; }
00448 
00449 private:
00450   // no copy or assign
00451   SlideViewInfoContainer( const SlideViewInfoContainer& );
00452   SlideViewInfoContainer& operator=( const SlideViewInfoContainer& );   
00453 };
00454 
00455 class SorterViewInfoContainer : public Container
00456 {
00457 public:
00458   static const unsigned int id;
00459   SorterViewInfoContainer ();
00460   const char* name(){ return "SorterViewInfoContainer "; }
00461 
00462 private:
00463   // no copy or assign
00464   SorterViewInfoContainer ( const SorterViewInfoContainer & );
00465   SorterViewInfoContainer & operator=( const SorterViewInfoContainer & );   
00466 };
00467 
00468 class SummaryContainer : public Container
00469 {
00470 public:
00471   static const unsigned int id;
00472   SummaryContainer ();
00473   const char* name(){ return "SummaryContainer "; }
00474 
00475 private:
00476   // no copy or assign
00477   SummaryContainer ( const SummaryContainer & );
00478   SummaryContainer & operator=( const SummaryContainer & );   
00479 };
00480 
00481 class SrKinsokuContainer: public Container
00482 {
00483 public:
00484   static const unsigned int id;
00485   SrKinsokuContainer();
00486   const char* name(){ return "SrKinsokuContainer"; }
00487 
00488 private:
00489   // no copy or assign
00490   SrKinsokuContainer( const SrKinsokuContainer& );
00491   SrKinsokuContainer& operator=( const SrKinsokuContainer& );   
00492 };
00493 
00494 class VBAInfoContainer: public Container
00495 {
00496 public:
00497   static const unsigned int id;
00498   VBAInfoContainer();
00499   const char* name(){ return "VBAInfoContainer"; }
00500 
00501 private:
00502   // no copy or assign
00503   VBAInfoContainer( const VBAInfoContainer& );
00504   VBAInfoContainer& operator=( const VBAInfoContainer& );   
00505 };
00506 
00507 class ViewInfoContainer: public Container
00508 {
00509 public:
00510   static const unsigned int id;
00511   ViewInfoContainer();
00512   const char* name(){ return "ViewInfoContainer"; }
00513 
00514 private:
00515   // no copy or assign
00516   ViewInfoContainer( const ViewInfoContainer& );
00517   ViewInfoContainer& operator=( const ViewInfoContainer& );   
00518 };
00519 
00520 class msofbtDgContainer: public Container
00521 {
00522 public:
00523   static const unsigned int id;
00524   msofbtDgContainer();
00525   const char* name(){ return "msofbtDgContainer"; }
00526 
00527 private:
00528   // no copy or assign
00529   msofbtDgContainer( const msofbtDgContainer& );
00530   msofbtDgContainer& operator=( const msofbtDgContainer& );   
00531 };
00532 
00533 class msofbtSpContainer: public Container
00534 {
00535 public:
00536   static const unsigned int id;
00537   msofbtSpContainer();
00538   const char* name(){ return "msofbtSpContainer"; }
00539 
00540 private:
00541   // no copy or assign
00542   msofbtSpContainer( const msofbtSpContainer& );
00543   msofbtSpContainer& operator=( const msofbtSpContainer& );   
00544 };
00545 
00546 class msofbtSpgrContainer: public Container
00547 {
00548 public:
00549   static const unsigned int id;
00550   msofbtSpgrContainer();
00551   const char* name(){ return "msofbtSpgrContainer"; }
00552 
00553 private:
00554   // no copy or assign
00555   msofbtSpgrContainer( const msofbtSpgrContainer& );
00556   msofbtSpgrContainer& operator=( const msofbtSpgrContainer& );   
00557 };
00558 
00559 class msofbtDggContainer: public Container
00560 {
00561 public:
00562   static const unsigned int id;
00563   msofbtDggContainer();
00564   const char* name(){ return "msofbtDggContainer"; }
00565 
00566 private:
00567   // no copy or assign
00568   msofbtDggContainer( const msofbtDggContainer& );
00569   msofbtDggContainer& operator=( const msofbtDggContainer& );   
00570 };
00571 
00572 class msofbtBstoreContainer: public Container
00573 {
00574 public:
00575   static const unsigned int id;
00576   msofbtBstoreContainer();
00577   const char* name(){ return "msofbtBstoreContainer"; }
00578 
00579 private:
00580   // no copy or assign
00581   msofbtBstoreContainer( const msofbtBstoreContainer& );
00582   msofbtBstoreContainer& operator=( const msofbtBstoreContainer& );   
00583 };
00584 
00585 class msofbtSolverContainer: public Container
00586 {
00587 public:
00588   static const unsigned int id;
00589   msofbtSolverContainer();
00590   const char* name(){ return "msofbtSolverContainer"; }
00591 
00592 private:
00593   // no copy or assign
00594   msofbtSolverContainer( const msofbtSolverContainer& );
00595   msofbtSolverContainer& operator=( const msofbtSolverContainer& );   
00596 };
00597 
00598 class BookmarkEntityAtom : public Record
00599 {
00600 public:
00601   static const unsigned int id;
00602   BookmarkEntityAtom ();
00603   ~BookmarkEntityAtom ();
00604   
00605   int bookmarkID() const;
00606   void setBookmarkID( int bookmarkID );
00607   int bookmarkName() const;
00608   void setBookmarkName( int bookmarkName );
00609   
00610   void setData( unsigned size, const unsigned char* data );
00611   const char* name(){ return "BookmarkEntityAtom "; }
00612   void dump( std::ostream& out ) const; 
00613   
00614 private:  
00615   // no copy or assign
00616   BookmarkEntityAtom ( const BookmarkEntityAtom & );
00617   BookmarkEntityAtom & operator=( const BookmarkEntityAtom & );   
00618   
00619   class Private;
00620   Private *d;  
00621 };
00622 
00623 class CStringAtom: public Record
00624 {
00625 public:
00626   static const unsigned int id;
00627   CStringAtom();
00628   ~CStringAtom();
00629   
00630   UString ustring() const;
00631   void setUString( const UString& ustr );
00632   
00633   void setData( unsigned size, const unsigned char* data );
00634   const char* name(){ return "CStringAtom"; }
00635   void dump( std::ostream& out ) const; 
00636   
00637 private:  
00638   // no copy or assign
00639   CStringAtom( const CStringAtom& );
00640   CStringAtom& operator=( const CStringAtom& );   
00641   
00642   class Private;
00643   Private *d;  
00644 };
00645 
00646 class ColorSchemeAtom : public Record
00647 {
00648 public:
00649   static const unsigned int id;
00650   ColorSchemeAtom();
00651   ~ColorSchemeAtom();
00652 
00653   int background() const;
00654   void setBackground( int background );
00655   int textAndLines() const;
00656   void setTextAndLines( int textAndLines );
00657   int shadows() const;
00658   void setShadows( int shadows );
00659   int titleText() const;
00660   void setTitleText( int titleText );
00661   int fills() const;
00662   void setFills( int fills );
00663   int accent() const;
00664   void setAccent( int accent );
00665   int accentAndHyperlink() const;
00666   void setAccentAndHyperlink ( int accentAndHyperlink );
00667   int accentAndFollowedHyperlink() const;
00668   void setAccentAndFollowedHyperlink( int accentAndFollowedHyperlink );
00669   void setData( unsigned size, const unsigned char* data );
00670   const char* name(){ return "ColorSchemeAtom "; }
00671   void dump( std::ostream& out ) const; 
00672   
00673 private:  
00674   // no copy or assign
00675   ColorSchemeAtom ( const ColorSchemeAtom & );
00676   ColorSchemeAtom & operator=( const ColorSchemeAtom & );   
00677   
00678   class Private;
00679   Private *d;  
00680 };
00681 
00682 class CurrentUserAtom : public Record
00683 {
00684 public:
00685   static const unsigned int id;
00686   CurrentUserAtom();
00687   ~CurrentUserAtom();
00688 
00689   int size() const;
00690   void setSize( int size );
00691   int magic() const;
00692   void setMagic( int magic );
00693   int offsetToCurrentEdit() const;
00694   void setOffsetToCurrentEdit( int offsetToCurrentEdit );
00695   int lenUserName() const;
00696   void setLenUserName( int lenUserName );
00697   int docFileVersion() const;
00698   void setDocFileVersion( int docFileVersion );
00699   int majorVersion() const;
00700   void setMajorVersion( int majorVersion );
00701   int minorVersion() const;
00702   void setMinorVersion ( int minorVersion );
00703   void setData( unsigned size, const unsigned char* data );
00704   const char* name(){ return "ColorSchemeAtom "; }
00705   void dump( std::ostream& out ) const; 
00706   
00707 private:  
00708   // no copy or assign
00709   CurrentUserAtom ( const CurrentUserAtom & );
00710   CurrentUserAtom & operator=( const CurrentUserAtom & );   
00711   
00712   class Private;
00713   Private *d;  
00714 };
00715 
00716 class DocumentAtom : public Record
00717 {
00718 public:
00719   static const unsigned int id;
00720   DocumentAtom();
00721   ~DocumentAtom();
00722   
00723   int slideWidth() const;
00724   void setSlideWidth( int w );
00725   int slideHeight() const;
00726   void setSlideHeight( int h );
00727   int notesWidth() const;
00728   void setNotesWidth( int nw );
00729   int notesHeight() const;
00730   void setNotesHeight( int nh );
00731   int zoomNumer() const;
00732   void setZoomNumer( int numer );
00733   int zoomDenom() const;
00734   void setZoomDenom( int denom );
00735   
00736   int notesMasterPersist() const; 
00737   void setNotesMasterPersist( int notesMasterPersist );
00738   
00739   int handoutMasterPersist() const; 
00740   void setHandoutMasterPersist(int handoutMasterPersist);    
00741   
00742   int firstSlideNum() const; 
00743   void setFirstSlideNum( int firstSlideNum ); 
00744   
00745   int slideSizeType() const; 
00746   void setSlideSizeType( int slideSizeType ); 
00747   
00748   int saveWithFonts() const; 
00749   void setSaveWithFonts( int saveWithFonts ); 
00750   
00751   int omitTitlePlace() const; 
00752   void setOmitTitlePlace( int omitTitlePlace ); 
00753   
00754   int rightToLeft() const; 
00755   void setRightToLeft( int rightToLeft ); 
00756   
00757   int showComments() const; 
00758   void setShowComments( int showComments); 
00759   
00760   void setData( unsigned size, const unsigned char* data );
00761   const char* name(){ return "DocumentAtom "; }
00762   void dump( std::ostream& out ) const; 
00763   
00764 private:  
00765   // no copy or assign
00766   DocumentAtom ( const DocumentAtom & );
00767   DocumentAtom & operator=( const DocumentAtom & );   
00768   
00769   class Private;
00770   Private *d;  
00771 };
00772 
00773 class EndDocumentAtom: public Record
00774 {
00775 public:
00776   static const unsigned int id;
00777   EndDocumentAtom();
00778   const char* name(){ return "EndDocumentAtom"; }
00779   void dump( std::ostream& out ) const; 
00780   
00781 private:
00782   // no copy or assign
00783   EndDocumentAtom( const EndDocumentAtom& );
00784   EndDocumentAtom& operator=( const EndDocumentAtom& );   
00785 };
00786 
00787 class ExObjListAtom : public Record
00788 {
00789 public:
00790   static const unsigned int id;
00791   ExObjListAtom();
00792   ~ExObjListAtom();
00793   
00794   int objectIdSeed() const;
00795   void setObjectIdSeed( int objectIdSeed );
00796    
00797   void setData( unsigned size, const unsigned char* data );
00798   const char* name(){ return "ExObjListAtom "; }
00799   void dump( std::ostream& out ) const; 
00800   
00801 private:  
00802   // no copy or assign
00803   ExObjListAtom ( const ExObjListAtom & );
00804   ExObjListAtom & operator=( const ExObjListAtom & );   
00805   
00806   class Private;
00807   Private *d;  
00808 };
00809 
00810 class ExHyperlinkAtom : public Record
00811 {
00812 public:
00813   static const unsigned int id;
00814   ExHyperlinkAtom ();
00815   ~ExHyperlinkAtom (); 
00816     
00817   int objID() const; 
00818   void setObjID (int objID); 
00819 
00820   void setData( unsigned size, const unsigned char* data );
00821   const char* name(){ return "ExHyperlinkAtom   "; }
00822   void dump( std::ostream& out ) const; 
00823   
00824 private:  
00825   // no copy or assign
00826   ExHyperlinkAtom   ( const ExHyperlinkAtom   & );
00827   ExHyperlinkAtom   & operator=( const ExHyperlinkAtom   & );   
00828   
00829   class Private;
00830   Private *d;  
00831 };
00832 
00833 class ExLinkAtom : public Record
00834 {
00835 public:
00836   static const unsigned int id;
00837   ExLinkAtom();
00838   ~ExLinkAtom();
00839 
00840   int exObjId() const; 
00841   void setExObjId( int exObjId); 
00842   int flags() const; 
00843   void setFlags( int flags); 
00844   int unavailable() const; 
00845   void setUnavailable( int unavailable); 
00846   
00847   void setData( unsigned size, const unsigned char* data );
00848   const char* name(){ return "ExLinkAtom"; }
00849   void dump( std::ostream& out ) const; 
00850 private:  
00851    // no copy or assign
00852   ExLinkAtom  ( const ExLinkAtom  & );
00853   ExLinkAtom  & operator=( const ExLinkAtom  & );   
00854   
00855   class Private;
00856   Private *d;  
00857 }; 
00858 
00859 class ExOleObjAtom  : public Record
00860 {
00861 public:
00862   static const unsigned int id;
00863   ExOleObjAtom ();
00864   ~ExOleObjAtom ();
00865   
00866   int drawAspect() const; 
00867   void setDrawAspect(int drawAspect); 
00868   int type() const;
00869   void setType(int type); 
00870   int objID() const; 
00871   void setObjID(int objID); 
00872   int subType() const;
00873   void setSubType(int subType);
00874   int objStgDataRef() const; 
00875   void setObjStgDataRef(int objStgDataRef); 
00876   int isBlank() const;
00877   void setIsBlank(int isBlank); 
00878   
00879   void setData( unsigned size, const unsigned char* data );
00880   const char* name(){ return "ExOleObjAtom "; }
00881   void dump( std::ostream& out ) const; 
00882   
00883 private:  
00884   // no copy or assign
00885   ExOleObjAtom  ( const ExOleObjAtom  & );
00886   ExOleObjAtom  & operator=( const ExOleObjAtom  & );   
00887   
00888   class Private;
00889   Private *d;  
00890 };
00891 
00892 class ExEmbedAtom  : public Record
00893 {
00894 public:
00895   static const unsigned int id;
00896   ExEmbedAtom ();
00897   ~ExEmbedAtom ();
00898   
00899   int followColorScheme() const; 
00900   void setFollowColorScheme(int followColorScheme); 
00901   int cantLockServerB() const;
00902   void setCantLockServerB(int cantLockServerB); 
00903   int noSizeToServerB() const; 
00904   void setNoSizeToServerB(int noSizeToServerB); 
00905   int isTable() const;
00906   void setIsTable(int isTable);
00907   
00908   void setData( unsigned size, const unsigned char* data );
00909   const char* name(){ return "ExEmbedAtom "; }
00910   void dump( std::ostream& out ) const; 
00911   
00912 private:  
00913   // no copy or assign
00914   ExEmbedAtom  ( const ExEmbedAtom  & );
00915   ExEmbedAtom  & operator=( const ExEmbedAtom  & );   
00916   
00917   class Private;
00918   Private *d;  
00919 };
00920 
00921 class FontEntityAtom : public Record
00922 {
00923 public:
00924   static const unsigned int id;
00925   FontEntityAtom();
00926   ~FontEntityAtom();
00927   
00928   UString ustring() const;
00929   void setUString( const UString& ustr );
00930   int charset() const; 
00931   void setCharset( int charset ) ; 
00932   int clipPrecision() const; 
00933   void setClipPrecision( int clipPrecision);
00934   int quality() const; 
00935   void setQuality( int quality );
00936   int pitchAndFamily() const;
00937   void setPitchAndFamily( int pitchAndFamily ); 
00938 
00939   void setData( unsigned size, const unsigned char* data );
00940   const char* name(){ return "FontEntityAtom"; }
00941   void dump( std::ostream& out ) const; 
00942   
00943 private:  
00944   // no copy or assign
00945   FontEntityAtom ( const FontEntityAtom & );
00946   FontEntityAtom & operator=( const FontEntityAtom & );   
00947   
00948   class Private;
00949   Private *d;  
00950 };
00951 
00952 class GuideAtom  : public Record
00953 {
00954 public:
00955   static const unsigned int id;
00956   GuideAtom ();
00957   ~GuideAtom ();
00958   
00959   int type() const; 
00960   void setType(int type); 
00961   int pos() const;
00962   void setPos(int pos);  
00963   
00964   void setData( unsigned size, const unsigned char* data );
00965   const char* name(){ return "GuideAtom "; }
00966   void dump( std::ostream& out ) const; 
00967   
00968 private:  
00969   // no copy or assign
00970   GuideAtom  ( const GuideAtom  & );
00971   GuideAtom  & operator=( const GuideAtom  & );   
00972   
00973   class Private;
00974   Private *d;  
00975 };
00976 
00977 class HeadersFootersAtom  : public Record
00978 {
00979 public:
00980   static const unsigned int id;
00981   HeadersFootersAtom ();
00982   ~HeadersFootersAtom ();
00983   
00984   int formatId() const;
00985   void setFormatId( int slideId );
00986   int flags() const;
00987   void setFlags( int flags );
00988   
00989   void setData( unsigned size, const unsigned char* data );
00990   const char* name(){ return "HeadersFootersAtom  "; }
00991   void dump( std::ostream& out ) const; 
00992   
00993 private:  
00994   // no copy or assign
00995   HeadersFootersAtom  ( const HeadersFootersAtom  & );
00996   HeadersFootersAtom  & operator=( const HeadersFootersAtom  & );   
00997   
00998   class Private;
00999   Private *d;  
01000 };
01001 
01002 class NotesAtom : public Record
01003 {
01004 public:
01005   static const unsigned int id;
01006   NotesAtom();
01007   ~NotesAtom();
01008   
01009   int slideId() const;
01010   void setSlideId( int slideId );
01011   int flags() const;
01012   void setFlags( int flags );
01013   
01014   void setData( unsigned size, const unsigned char* data );
01015   const char* name(){ return "NotesAtom "; }
01016   void dump( std::ostream& out ) const; 
01017   
01018 private:  
01019   // no copy or assign
01020   NotesAtom ( const NotesAtom & );
01021   NotesAtom & operator=( const NotesAtom & );   
01022   
01023   class Private;
01024   Private *d;  
01025 };
01026 
01027 class PersistIncrementalBlockAtom : public Record
01028 {
01029 public:
01030   static const unsigned int id;
01031   PersistIncrementalBlockAtom();
01032   ~PersistIncrementalBlockAtom(); 
01033 
01034   unsigned entryCount() const;
01035   unsigned long reference( unsigned index ) const;
01036   unsigned long offset( unsigned index ) const;
01037 
01038   void setData( unsigned size, const unsigned char* data );
01039   const char* name(){ return "PersistIncrementalBlockAtom "; }
01040   void dump( std::ostream& out ) const; 
01041   
01042 private:
01043   // no copy or assign
01044   PersistIncrementalBlockAtom ( const PersistIncrementalBlockAtom & );
01045   PersistIncrementalBlockAtom & operator=( const PersistIncrementalBlockAtom & );   
01046   
01047   class Private;
01048   Private *d;  
01049 };
01050 
01051 class Record1043 : public Record
01052 {
01053 public:
01054   static const unsigned int id;
01055   Record1043 ();
01056     
01057  // void setData( unsigned size, const unsigned char* data );
01058   const char* name(){ return "Record1043 "; }
01059   void dump( std::ostream& out ) const; 
01060   
01061 private:  
01062   // no copy or assign
01063   Record1043 ( const Record1043 & );
01064   Record1043 & operator=( const Record1043 & );   
01065   
01066   class Private;
01067   Private *d;  
01068 };
01069 
01070 class Record1044 : public Record
01071 {
01072 public:
01073   static const unsigned int id;
01074   Record1044 ();
01075     
01076  // void setData( unsigned size, const unsigned char* data );
01077   const char* name(){ return "Record1044 "; }
01078   void dump( std::ostream& out ) const; 
01079   
01080 private:  
01081   // no copy or assign
01082   Record1044 ( const Record1044 & );
01083   Record1044 & operator=( const Record1044 & );   
01084   
01085   class Private;
01086   Private *d;  
01087 };
01088 
01089 class SSlideLayoutAtom  : public Record
01090 {
01091 public:
01092   static const unsigned int id;
01093   SSlideLayoutAtom ();
01094   ~SSlideLayoutAtom ();
01095 
01096   int geom() const; 
01097   void setGeom( int geom); 
01098   int placeholderId() const; 
01099   void setPlaceholderId( int placeholderId); 
01100    
01101   void setData( unsigned size, const unsigned char* data );
01102   const char* name(){ return "SSlideLayoutAtom "; }
01103   void dump( std::ostream& out ) const; 
01104   
01105 private:  
01106   // no copy or assign
01107   SSlideLayoutAtom  ( const SSlideLayoutAtom  & );
01108   SSlideLayoutAtom  & operator=( const SSlideLayoutAtom  & );   
01109   
01110   class Private;
01111   Private *d;  
01112 };  
01113 
01114 class SlideViewInfoAtom  : public Record
01115 {
01116 public:
01117   static const unsigned int id;
01118   SlideViewInfoAtom ();
01119   ~SlideViewInfoAtom ();
01120 
01121   int showGuides() const; 
01122   void setShowGuides( int showGuides); 
01123   int snapToGrid() const; 
01124   void setSnapToGrid( int snapToGrid); 
01125   int snapToShape() const; 
01126   void setSnapToShape( int snapToShape); 
01127   void setData( unsigned size, const unsigned char* data );
01128   const char* name(){ return "SlideViewInfoAtom "; }
01129   void dump( std::ostream& out ) const; 
01130   
01131 private:  
01132   // no copy or assign
01133   SlideViewInfoAtom  ( const SlideViewInfoAtom  & );
01134   SlideViewInfoAtom  & operator=( const SlideViewInfoAtom  & );   
01135   
01136   class Private;
01137   Private *d;  
01138 };  
01139   
01140 class SlidePersistAtom   : public Record
01141 {
01142 public:
01143   static const unsigned int id;
01144   SlidePersistAtom   ();
01145   virtual ~SlidePersistAtom   ();
01146   
01147   int psrReference() const;
01148   void setPsrReference( int psrReference );
01149   int flags() const;
01150   void setFlags( int flags );
01151   int numberTexts() const;
01152   void setNumberTexts( int numberTexts );
01153   int slideId() const;
01154   void setSlideId( int slideId );
01155   int reserved() const; 
01156   void setReserved(int reserved);
01157      
01158   void setData( unsigned size, const unsigned char* data );
01159   const char* name(){ return "SlidePersistAtom  "; }
01160   void dump( std::ostream& out ) const; 
01161   
01162 private:  
01163   // no copy or assign
01164   SlidePersistAtom  ( const SlidePersistAtom  & );
01165   SlidePersistAtom  & operator=( const SlidePersistAtom  & );   
01166   
01167   class Private;
01168   Private *d;  
01169 };
01170 
01171 class SSDocInfoAtom : public Record
01172 {
01173 public:
01174   static const unsigned int id;
01175   SSDocInfoAtom   ();
01176   ~SSDocInfoAtom   ();
01177   
01178   int penColorRed() const;
01179   void setPenColorRed( int penColorRed );
01180   int penColorGreen() const;
01181   void setPenColorGreen( int penColorGreen );
01182   int penColorBlue() const;
01183   void setPenColorBlue( int penColorBlue );
01184   int penColorIndex() const;
01185   void setPenColorIndex( int penColorIndex );
01186   int restartTime() const;
01187   void setRestartTime( int restartTime );
01188   int startSlide() const;
01189   void setStartSlide( int startSlide );
01190   int endSlide() const;
01191   void setEndSlide( int endSlide );
01192   int namedShow() const; 
01193   void setNamedShow(int namedShow);
01194   int flags() const; 
01195   void setFlags(int flags);
01196          
01197   void setData( unsigned size, const unsigned char* data );
01198   const char* name(){ return "SSDocInfoAtom  "; }
01199   void dump( std::ostream& out ) const; 
01200   
01201 private:  
01202   // no copy or assign
01203   SSDocInfoAtom  ( const SSDocInfoAtom  & );
01204   SSDocInfoAtom  & operator=( const SSDocInfoAtom  & );
01205 
01206   class Private;
01207   Private *d;  
01208 };
01209 
01210 class StyleTextPropAtom   : public Record
01211 {
01212 public:
01213   static const unsigned int id;
01214   StyleTextPropAtom ();
01215   ~StyleTextPropAtom (); 
01216   
01217   // paragraph properties 
01218   int charCount( unsigned index ) const;
01219   int depth( unsigned index ) const;
01220   int bulletOn ( unsigned index ) const;
01221   int bulletHardFont( unsigned index ) const;
01222   int bulletHardColor( unsigned index ) const;
01223   int bulletChar ( unsigned index ) const;
01224   int bulletFont( unsigned index ) const;
01225   int bulletHeight( unsigned index ) const; 
01226   int bulletColor( unsigned index ) const;
01227   int align( unsigned index ) const;
01228   int lineFeed( unsigned index ) const; 
01229   int upperDist( unsigned index ) const; 
01230   int lowerDist( unsigned index ) const; 
01231   int asianLB1( unsigned index ) const; 
01232   int asianLB2( unsigned index ) const; 
01233   int asianLB3( unsigned index ) const; 
01234   int biDi( unsigned index ) const;
01235 
01236 // character properties
01237   int charMask() const; 
01238   int charFlags() const;
01239 
01240   unsigned listSize() const;
01241 
01242   void setData( unsigned size, const unsigned char* data, unsigned lastSize );  
01243   const char* name(){ return "StyleTextPropAtom   "; }
01244   void dump( std::ostream& out ) const; 
01245 private:  
01246   // character properties
01247   void setCharMask ( int charMask );
01248   void setCharFlags( int charFlags );
01249 
01250   // no copy or assign
01251   StyleTextPropAtom   ( const StyleTextPropAtom   & );
01252   StyleTextPropAtom   & operator=( const StyleTextPropAtom   & );   
01253   
01254   class Private;
01255   Private *d;  
01256 };
01257 
01258 class SlideAtom: public Record
01259 {
01260 public:
01261   static const unsigned int id;
01262   SlideAtom();
01263   ~SlideAtom();
01264 
01265   int layoutGeom() const; 
01266   void setLayoutGeom( int layoutGeom );
01267  // see OEPlaceHolderAtom 
01268   int layoutPlaceholderId() const; 
01269  // void setLayoutPlaceholderId(int layoutPlaceholderId);
01270   void setLayoutPlaceholderId(int layoutPlaceholderId1, int layoutPlaceholderId2,int layoutPlaceholderId3,int layoutPlaceholderId4,int layoutPlaceholderId5,int layoutPlaceholderId6,int layoutPlaceholderId7,int layoutPlaceholderId8); 
01271   int masterId() const; 
01272   void setMasterId( int masterId );
01273   int notesId() const; 
01274   void setNotesId( int notesId );
01275   int flags() const; 
01276   void setFlags( int flags );
01277   
01278   void setData( unsigned size, const unsigned char* data );
01279   const char* name(){ return "SlideAtom"; }
01280   void dump( std::ostream& out ) const; 
01281   
01282 private:
01283   // no copy or assign 
01284   SlideAtom( const SlideAtom& );
01285   SlideAtom& operator=( const SlideAtom& );   
01286   
01287   class Private;
01288   Private *d;  
01289 };
01290 
01291 class SSSlideInfoAtom: public Record
01292 {
01293 public:
01294   static const unsigned int id;
01295   SSSlideInfoAtom();
01296   ~SSSlideInfoAtom();
01297   
01298   int transType() const; 
01299   void settransType( int transType );
01300   int speed() const; 
01301   void setspeed(int speed);
01302   int direction() const; 
01303   void setdirection( int direction );
01304   int slideTime() const; 
01305   void setslideTime( int slideTime );
01306   int buildFlags() const; 
01307   void setbuildFlags( int buildFlags );
01308   int soundRef() const; 
01309   void setsoundRef( int soundRef );
01310 
01311   void setData( unsigned size, const unsigned char* data );
01312   const char* name(){ return "SSSlideInfoAtom"; }
01313   void dump( std::ostream& out ) const;
01314 
01315 private:
01316   // no copy or assign
01317   SSSlideInfoAtom( const SSSlideInfoAtom& );
01318   SSSlideInfoAtom& operator=( const SSSlideInfoAtom& );
01319 
01320   class Private;
01321   Private *d;
01322 };
01323 
01324 class SrKinsokuAtom : public Record
01325 {
01326 public:
01327   static const unsigned int id;
01328   SrKinsokuAtom ();
01329   ~SrKinsokuAtom ();
01330     
01331  // void setData( unsigned size, const unsigned char* data );
01332   const char* name(){ return "SrKinsokuAtom "; }
01333   void dump( std::ostream& out ) const; 
01334   
01335 private:  
01336   // no copy or assign
01337   SrKinsokuAtom ( const SrKinsokuAtom & );
01338   SrKinsokuAtom & operator=( const SrKinsokuAtom & );   
01339   
01340   class Private;
01341   Private *d;  
01342 };
01343 
01344 class TxMasterStyleAtom  : public Record
01345 {
01346 public:
01347   static const unsigned int id;
01348   TxMasterStyleAtom();
01349   ~TxMasterStyleAtom(); 
01350     
01351   const char* name(){ return "TxMasterStyleAtom  "; }
01352   void dump( std::ostream& out ) const; 
01353   
01354 private:  
01355   // no copy or assign
01356   TxMasterStyleAtom  ( const TxMasterStyleAtom  & );
01357   TxMasterStyleAtom  & operator=( const TxMasterStyleAtom  & );   
01358   
01359   class Private;
01360   Private *d;  
01361 };
01362 
01363 class TxCFStyleAtom   : public Record
01364 {
01365 public:
01366   static const unsigned int id;
01367   TxCFStyleAtom ();
01368   ~TxCFStyleAtom (); 
01369     
01370   int flags1() const; 
01371   void setFlags1( int flags1 ); 
01372   int flags2() const;
01373   void setFlags2( int flags2 ); 
01374   int flags3() const;
01375   void setFlags3( int flags3 ); 
01376   int n1() const;
01377   void setN1( int n1 ); 
01378   int fontHeight() const;
01379   void setFontHeight( int fontHeight ); 
01380   int fontColor() const; 
01381   void setFontColor( int fontColor ); 
01382 
01383   void setData( unsigned size, const unsigned char* data );
01384   const char* name(){ return "TxCFStyleAtom   "; }
01385   void dump( std::ostream& out ) const; 
01386   
01387 private:  
01388   // no copy or assign
01389   TxCFStyleAtom   ( const TxCFStyleAtom   & );
01390   TxCFStyleAtom   & operator=( const TxCFStyleAtom   & );   
01391   
01392   class Private;
01393   Private *d;  
01394 };
01395 
01396 
01397 class TextCharsAtom   : public Record
01398 {
01399 public:
01400   static const unsigned int id;
01401   TextCharsAtom ();
01402   ~TextCharsAtom (); 
01403   
01404   unsigned listSize() const;
01405   UString strValue( unsigned index ) const;
01406   void setText( UString ustring );
01407    
01408   void setData( unsigned size, const unsigned char* data );
01409   const char* name(){ return "TextCharsAtom   "; }
01410   void dump( std::ostream& out ) const; 
01411   
01412 private:  
01413   // no copy or assign
01414   TextCharsAtom   ( const TextCharsAtom   & );
01415   TextCharsAtom   & operator=( const TextCharsAtom   & );   
01416   
01417   class Private;
01418   Private *d;  
01419 };
01420 
01421 class TxPFStyleAtom   : public Record
01422 {
01423 public:
01424   static const unsigned int id;
01425   TxPFStyleAtom ();
01426   ~TxPFStyleAtom (); 
01427     
01428   const char* name(){ return "TxPFStyleAtom   "; }
01429   void dump( std::ostream& out ) const; 
01430   
01431 private:  
01432   // no copy or assign
01433   TxPFStyleAtom   ( const TxPFStyleAtom  & );
01434   TxPFStyleAtom   & operator=( const TxPFStyleAtom  & );   
01435   
01436   class Private;
01437   Private *d;  
01438 };
01439 
01440 class TxSIStyleAtom    : public Record
01441 {
01442 public:
01443   static const unsigned int id;
01444   TxSIStyleAtom  ();
01445   ~TxSIStyleAtom  (); 
01446     
01447   const char* name(){ return "TxSIStyleAtom    "; }
01448   void dump( std::ostream& out ) const; 
01449   
01450 private:  
01451   // no copy or assign
01452   TxSIStyleAtom    ( const TxSIStyleAtom   & );
01453   TxSIStyleAtom    & operator=( const TxSIStyleAtom   & );   
01454   
01455   class Private;
01456   Private *d;  
01457 };
01458 
01459 class TextHeaderAtom : public Record
01460 {
01461 public:
01462   static const unsigned int id;
01463   TextHeaderAtom ();
01464   ~TextHeaderAtom ();
01465   
01466   int textType() const;
01467   void setTextType( int type );
01468   
01469   void setData( unsigned size, const unsigned char* data );
01470   const char* name(){ return "TextHeaderAtom "; }
01471   void dump( std::ostream& out ) const; 
01472   
01473 private:  
01474   // no copy or assign
01475   TextHeaderAtom ( const TextHeaderAtom & );
01476   TextHeaderAtom & operator=( const TextHeaderAtom & );   
01477   
01478   class Private;
01479   Private *d;  
01480 };
01481 
01482 class TextSpecInfoAtom  : public Record
01483 {
01484 public:
01485   static const unsigned int id;
01486   TextSpecInfoAtom  ();
01487   ~TextSpecInfoAtom  ();
01488   
01489   int charCount() const;
01490   void setCharCount( int txSpecInfo );
01491   int flags() const;
01492   void setFlags( int flags );
01493 
01494   
01495   void setData( unsigned size, const unsigned char* data );
01496   const char* name(){ return "TextSpecInfoAtom  "; }
01497   void dump( std::ostream& out ) const; 
01498   
01499 private:  
01500   // no copy or assign
01501   TextSpecInfoAtom ( const TextSpecInfoAtom & );
01502   TextSpecInfoAtom & operator=( const TextSpecInfoAtom & );   
01503   
01504   class Private;
01505   Private *d;  
01506 };
01507 
01508 class TextBookmarkAtom: public Record
01509 {
01510 public:
01511   static const unsigned int id;
01512   TextBookmarkAtom();
01513   ~TextBookmarkAtom();
01514   
01515   int begin() const;
01516   void setBegin( int begin );
01517   int end() const; 
01518   void setEnd( int end );
01519   int bookmarkID() const; 
01520   void setBookmarkID( int bookmarkID );
01521   
01522   void setData( unsigned size, const unsigned char* data );
01523   const char* name(){ return "TextBookmarkAtom"; }
01524   void dump( std::ostream& out ) const; 
01525   
01526 private:
01527   // no copy or assign
01528   TextBookmarkAtom( const TextBookmarkAtom& );
01529   TextBookmarkAtom& operator=( const TextBookmarkAtom& );   
01530   
01531   class Private;
01532   Private *d;  
01533 };
01534 
01535 class TextBytesAtom : public Record
01536 {
01537 public:
01538   static const unsigned int id;
01539   TextBytesAtom ();
01540   ~TextBytesAtom (); 
01541   
01542   unsigned listSize() const;
01543   unsigned stringLength() const;
01544   void setStringLength( unsigned stringLength );
01545 
01546   UString strValue( unsigned index ) const;
01547   void setText( UString ustring );
01548    
01549   void setData( unsigned size, const unsigned char* data );
01550   const char* name(){ return "TextBytesAtom   "; }
01551   void dump( std::ostream& out ) const; 
01552   
01553 private:  
01554   // no copy or assign
01555   TextBytesAtom   ( const TextBytesAtom   & );
01556   TextBytesAtom   & operator=( const TextBytesAtom   & );   
01557   
01558   class Private;
01559   Private *d;  
01560 };
01561 
01562 class UserEditAtom: public Record
01563 {
01564 public:
01565   static const unsigned int id;
01566   UserEditAtom();
01567   ~UserEditAtom();
01568   
01569   int lastSlideId() const;
01570   void setLastSlideId( int id );
01571   int majorVersion() const; 
01572   void setMajorVersion( int majorVersion );
01573   int minorVersion() const; 
01574   void setMinorVersion( int minorVersion );
01575 
01576   unsigned long offsetLastEdit() const;
01577   void setOffsetLastEdit( unsigned long ofs );
01578   unsigned long offsetPersistDir() const;
01579   void setOffsetPersistDir( unsigned long ofs ) const;
01580   unsigned long documentRef() const; 
01581   void setDocumentRef( unsigned long ref ) const; 
01582 
01583   void setData( unsigned size, const unsigned char* data );
01584   const char* name(){ return "UserEditAtom"; }
01585   void dump( std::ostream& out ) const; 
01586   
01587 private:
01588   // no copy or assign
01589   UserEditAtom( const UserEditAtom& );
01590   UserEditAtom& operator=( const UserEditAtom& );   
01591   
01592   class Private;
01593   Private *d;  
01594 };
01595 
01596 class ViewInfoAtom : public Record
01597 {
01598 public:
01599   static const unsigned int id;
01600   ViewInfoAtom  ();
01601   ~ViewInfoAtom  ();
01602 
01603   int curScaleXNum() const; 
01604   void setCurScaleXNum( int curScaleXNum); 
01605   int curScaleXDen() const; 
01606   void setCurScaleXDen( int curScaleXDen); 
01607   int curScaleYNum() const; 
01608   void setCurScaleYNum( int curScaleYNum); 
01609   int curScaleYDen() const; 
01610   void setCurScaleYDen( int curScaleYDen); 
01611   int prevScaleXNum() const; 
01612   void setPrevScaleXNum( int prevScaleXNum); 
01613   int prevScaleXDen() const; 
01614   void setPrevScaleXDen( int prevScaleXDen); 
01615   int prevScaleYNum() const; 
01616   void setPrevScaleYNum( int prevScaleYNum); 
01617   int prevScaleYDen() const; 
01618   void setPrevScaleYDen( int prevScaleYDen); 
01619   int viewSizeX() const; 
01620   void setViewSizeX( int viewSizeX); 
01621   int viewSizeY() const; 
01622   void setViewSizeY( int viewSizeY); 
01623   int originX() const; 
01624   void setOriginX( int originX); 
01625   int originY() const; 
01626   void setOriginY( int originY); 
01627   int varScale() const; 
01628   void setVarScale( int varScale); 
01629   int draftMode() const; 
01630   void setDraftMode( int draftMode); 
01631   int padding() const; 
01632   void setPadding( int padding); 
01633   
01634   void setData( unsigned size, const unsigned char* data );
01635   const char* name(){ return "ViewInfoAtom  "; }
01636   void dump( std::ostream& out ) const; 
01637   
01638 private:  
01639   // no copy or assign
01640   ViewInfoAtom   ( const ViewInfoAtom   & );
01641   ViewInfoAtom   & operator=( const ViewInfoAtom   & );   
01642   
01643   class Private;
01644   Private *d;  
01645 };    
01646 
01647 class msofbtDgAtom : public Record
01648 {
01649 public:
01650   static const unsigned int id;
01651   msofbtDgAtom ();
01652   ~msofbtDgAtom ();
01653   
01654  // void setData( unsigned size, const unsigned char* data );
01655   const char* name(){ return "msofbtDgAtom "; }
01656   void dump( std::ostream& out ) const; 
01657   
01658 private:  
01659   // no copy or assign
01660   msofbtDgAtom ( const msofbtDgAtom  & );
01661   msofbtDgAtom & operator=( const msofbtDgAtom  & );   
01662   
01663   class Private;
01664   Private *d;  
01665 };
01666 
01667 class msofbtSpgrAtom : public Record
01668 {
01669 public:
01670   static const unsigned int id;
01671   msofbtSpgrAtom ();
01672   ~msofbtSpgrAtom ();
01673   
01674  // void setData( unsigned size, const unsigned char* data );
01675   const char* name(){ return "msofbtSpgrAtom "; }
01676   void dump( std::ostream& out ) const; 
01677   
01678 private:  
01679   // no copy or assign
01680   msofbtSpgrAtom ( const msofbtSpgrAtom  & );
01681   msofbtSpgrAtom & operator=( const msofbtSpgrAtom  & );   
01682   
01683   class Private;
01684   Private *d;  
01685 };
01686 
01687 class msofbtSpAtom : public Record
01688 {
01689 public:
01690   enum
01691    {
01692    msosptMin = 0,
01693    msosptNotPrimitive = msosptMin,
01694    msosptRectangle = 1,
01695    msosptRoundRectangle = 2,
01696    msosptEllipse = 3,
01697    msosptDiamond = 4,
01698    msosptIsoscelesTriangle = 5,
01699    msosptRightTriangle = 6,
01700    msosptParallelogram = 7,
01701    msosptTrapezoid = 8,
01702    msosptHexagon = 9,
01703    msosptOctagon = 10,
01704    msosptPlus = 11,
01705    msosptStar = 12,
01706    msosptArrow = 13,
01707    msosptThickArrow = 14,
01708    msosptHomePlate = 15,
01709    msosptCube = 16,
01710    msosptBalloon = 17,
01711    msosptSeal = 18,
01712    msosptArc = 19,
01713    msosptLine = 20,
01714    msosptPlaque = 21,
01715    msosptCan = 22,
01716    msosptDonut = 23,
01717    msosptTextSimple = 24,
01718    msosptTextOctagon = 25,
01719    msosptTextHexagon = 26,
01720    msosptTextCurve = 27,
01721    msosptTextWave = 28,
01722    msosptTextRing = 29,
01723    msosptTextOnCurve = 30,
01724    msosptTextOnRing = 31,
01725    msosptStraightConnector1 = 32,
01726    msosptBentConnector2 = 33,
01727    msosptBentConnector3 = 34,
01728    msosptBentConnector4 = 35,
01729    msosptBentConnector5 = 36,
01730    msosptCurvedConnector2 = 37,
01731    msosptCurvedConnector3 = 38,
01732    msosptCurvedConnector4 = 39,
01733    msosptCurvedConnector5 = 40,
01734    msosptCallout1 = 41,
01735    msosptCallout2 = 42,
01736    msosptCallout3 = 43,
01737    msosptAccentCallout1 = 44,
01738    msosptAccentCallout2 = 45,
01739    msosptAccentCallout3 = 46,
01740    msosptBorderCallout1 = 47,
01741    msosptBorderCallout2 = 48,
01742    msosptBorderCallout3 = 49,
01743    msosptAccentBorderCallout1 = 50,
01744    msosptAccentBorderCallout2 = 51,
01745    msosptAccentBorderCallout3 = 52,
01746    msosptRibbon = 53,
01747    msosptRibbon2 = 54,
01748    msosptChevron = 55,
01749    msosptPentagon = 56,
01750    msosptNoSmoking = 57,
01751    msosptSeal8 = 58,
01752    msosptSeal16 = 59,
01753    msosptSeal32 = 60,
01754    msosptWedgeRectCallout = 61,
01755    msosptWedgeRRectCallout = 62,
01756    msosptWedgeEllipseCallout = 63,
01757    msosptWave = 64,
01758    msosptFoldedCorner = 65,
01759    msosptLeftArrow = 66,
01760    msosptDownArrow = 67,
01761    msosptUpArrow = 68,
01762    msosptLeftRightArrow = 69,
01763    msosptUpDownArrow = 70,
01764    msosptIrregularSeal1 = 71,
01765    msosptIrregularSeal2 = 72,
01766    msosptLightningBolt = 73,
01767    msosptHeart = 74,
01768    msosptPictureFrame = 75,
01769    msosptQuadArrow = 76,
01770    msosptLeftArrowCallout = 77,
01771    msosptRightArrowCallout = 78,
01772    msosptUpArrowCallout = 79,
01773    msosptDownArrowCallout = 80,
01774    msosptLeftRightArrowCallout = 81,
01775    msosptUpDownArrowCallout = 82,
01776    msosptQuadArrowCallout = 83,
01777    msosptBevel = 84,
01778    msosptLeftBracket = 85,
01779    msosptRightBracket = 86,
01780    msosptLeftBrace = 87,
01781    msosptRightBrace = 88,
01782    msosptLeftUpArrow = 89,
01783    msosptBentUpArrow = 90,
01784    msosptBentArrow = 91,
01785    msosptSeal24 = 92,
01786    msosptStripedRightArrow = 93,
01787    msosptNotchedRightArrow = 94,
01788    msosptBlockArc = 95,
01789    msosptSmileyFace = 96,
01790    msosptVerticalScroll = 97,
01791    msosptHorizontalScroll = 98,
01792    msosptCircularArrow = 99,
01793    msosptNotchedCircularArrow = 100,
01794    msosptUturnArrow = 101,
01795    msosptCurvedRightArrow = 102,
01796    msosptCurvedLeftArrow = 103,
01797    msosptCurvedUpArrow = 104,
01798    msosptCurvedDownArrow = 105,
01799    msosptCloudCallout = 106,
01800    msosptEllipseRibbon = 107,
01801    msosptEllipseRibbon2 = 108,
01802    msosptFlowChartProcess = 109,
01803    msosptFlowChartDecision = 110,
01804    msosptFlowChartInputOutput = 111,
01805    msosptFlowChartPredefinedProcess = 112,
01806    msosptFlowChartInternalStorage = 113,
01807    msosptFlowChartDocument = 114,
01808    msosptFlowChartMultidocument = 115,
01809    msosptFlowChartTerminator = 116,
01810    msosptFlowChartPreparation = 117,
01811    msosptFlowChartManualInput = 118,
01812    msosptFlowChartManualOperation = 119,
01813    msosptFlowChartConnector = 120,
01814    msosptFlowChartPunchedCard = 121,
01815    msosptFlowChartPunchedTape = 122,
01816    msosptFlowChartSummingJunction = 123,
01817    msosptFlowChartOr = 124,
01818    msosptFlowChartCollate = 125,
01819    msosptFlowChartSort = 126,
01820    msosptFlowChartExtract = 127,
01821    msosptFlowChartMerge = 128,
01822    msosptFlowChartOfflineStorage = 129,
01823    msosptFlowChartOnlineStorage = 130,
01824    msosptFlowChartMagneticTape = 131,
01825    msosptFlowChartMagneticDisk = 132,
01826    msosptFlowChartMagneticDrum = 133,
01827    msosptFlowChartDisplay = 134,
01828    msosptFlowChartDelay = 135,
01829    msosptTextPlainText = 136,
01830    msosptTextStop = 137,
01831    msosptTextTriangle = 138,
01832    msosptTextTriangleInverted = 139,
01833    msosptTextChevron = 140,
01834    msosptTextChevronInverted = 141,
01835    msosptTextRingInside = 142,
01836    msosptTextRingOutside = 143,
01837    msosptTextArchUpCurve = 144,
01838    msosptTextArchDownCurve = 145,
01839    msosptTextCircleCurve = 146,
01840    msosptTextButtonCurve = 147,
01841    msosptTextArchUpPour = 148,
01842    msosptTextArchDownPour = 149,
01843    msosptTextCirclePour = 150,
01844    msosptTextButtonPour = 151,
01845    msosptTextCurveUp = 152,
01846    msosptTextCurveDown = 153,
01847    msosptTextCascadeUp = 154,
01848    msosptTextCascadeDown = 155,
01849    msosptTextWave1 = 156,
01850    msosptTextWave2 = 157,
01851    msosptTextWave3 = 158,
01852    msosptTextWave4 = 159,
01853    msosptTextInflate = 160,
01854    msosptTextDeflate = 161,
01855    msosptTextInflateBottom = 162,
01856    msosptTextDeflateBottom = 163,
01857    msosptTextInflateTop = 164,
01858    msosptTextDeflateTop = 165,
01859    msosptTextDeflateInflate = 166,
01860    msosptTextDeflateInflateDeflate = 167,
01861    msosptTextFadeRight = 168,
01862    msosptTextFadeLeft = 169,
01863    msosptTextFadeUp = 170,
01864    msosptTextFadeDown = 171,
01865    msosptTextSlantUp = 172,
01866    msosptTextSlantDown = 173,
01867    msosptTextCanUp = 174,
01868    msosptTextCanDown = 175,
01869    msosptFlowChartAlternateProcess = 176,
01870    msosptFlowChartOffpageConnector = 177,
01871    msosptCallout90 = 178,
01872    msosptAccentCallout90 = 179,
01873    msosptBorderCallout90 = 180,
01874    msosptAccentBorderCallout90 = 181,
01875    msosptLeftRightUpArrow = 182,
01876    msosptSun = 183,
01877    msosptMoon = 184,
01878    msosptBracketPair = 185,
01879    msosptBracePair = 186,
01880    msosptSeal4 = 187,
01881    msosptDoubleWave = 188,
01882    msosptActionButtonBlank = 189,
01883    msosptActionButtonHome = 190,
01884    msosptActionButtonHelp = 191,
01885    msosptActionButtonInformation = 192,
01886    msosptActionButtonForwardNext = 193,
01887    msosptActionButtonBackPrevious = 194,
01888    msosptActionButtonEnd = 195,
01889    msosptActionButtonBeginning = 196,
01890    msosptActionButtonReturn = 197,
01891    msosptActionButtonDocument = 198,
01892    msosptActionButtonSound = 199,
01893    msosptActionButtonMovie = 200,
01894    msosptHostControl = 201,
01895    msosptTextBox = 202,
01896    msosptMax,
01897    msosptNil = 0x0FFF
01898  } ; 
01899 
01900   static const unsigned int id;
01901   msofbtSpAtom ();
01902   ~msofbtSpAtom ();
01903 
01904   unsigned long shapeId() const;
01905   void setShapeId( unsigned long id );
01906   const char* shapeTypeAsString() const;
01907   unsigned long persistentFlag() const;
01908   void setPersistentFlag( unsigned long persistentFlag );
01909 
01910   bool isBackground() const;
01911   void setBackground( bool bg );
01912   bool isVerFlip() const; 
01913   void setVerFlip( bool vFlip ); 
01914   bool isHorFlip() const; 
01915   void setHorFlip( bool hFlip ); 
01916 
01917   void setData( unsigned size, const unsigned char* data );
01918   const char* name(){ return "msofbtSpAtom "; }
01919   void dump( std::ostream& out ) const; 
01920   
01921 private:  
01922   // no copy or assign
01923   msofbtSpAtom ( const msofbtSpAtom  & );
01924   msofbtSpAtom & operator=( const msofbtSpAtom  & );   
01925   
01926   class Private;
01927   Private *d;  
01928 };
01929 
01930 class msofbtOPTAtom : public Record
01931 {
01932 public:
01933   enum {               // PID 
01934     Rotation = 4,
01935     FillType = 384,
01936     FillColor = 385,
01937     LineColor = 448,
01938     LineOpacity = 449,
01939     LineBackColor = 450,
01940     LineType = 452,
01941     LineWidth =  459,
01942     LineDashing = 462,
01943     LineStartArrowhead = 464,
01944     LineEndArrowhead = 465,
01945     LineStartArrowWidth = 466,
01946     LineStartArrowLength = 467,
01947     LineEndArrowWidth = 468,
01948     LineEndArrowLength = 469,
01949     FlagNoLineDrawDash = 511,
01950     ShadowColor = 513,
01951     ShadowOpacity =  516,
01952     ShadowOffsetX = 517,
01953     ShadowOffsetY = 518
01954   };
01955 
01956   enum {
01957    FillSolid,             // Fill with a solid color
01958    FillPattern,           // Fill with a pattern (bitmap)
01959    FillTexture,           // A texture (pattern with its own color map)
01960    FillPicture,           // Center a picture in the shape
01961    FillShade,             // Shade from start to end points
01962    FillShadeCenter,       // Shade from bounding rectangle to end point
01963    FillShadeShape,        // Shade from shape outline to end point
01964    FillShadeScale,        // Similar to msofillShade, but the fillAngle
01965    FillShadeTitle,        // special type - shade to title ---  for PP 
01966    FillBackground         // Use the background fill color/pattern
01967   }; // MSOFILLTYPE
01968 
01969   enum {   
01970    LineSolid,              // Solid (continuous) pen           0
01971    LineDashSys,            // PS_DASH system   dash style      1
01972    LineDotSys,             // PS_DOT system   dash style       2
01973    LineDashDotSys,         // PS_DASHDOT system dash style      3
01974    LineDashDotDotSys,      // PS_DASHDOTDOT system dash style   4
01975    LineDotGEL,             // square dot style                  5                      
01976    LineDashGEL,            // dash style                       6
01977    LineLongDashGEL,        // long dash style                       7  
01978    LineDashDotGEL,         // dash short dash                 8
01979    LineLongDashDotGEL,     // long dash short dash             9
01980    LineLongDashDotDotGEL   // long dash short dash short dash        10   
01981   }; // MSOLINEDASHING
01982 
01983 
01984    enum {
01985    LineNoEnd,
01986    LineArrowEnd,
01987    LineArrowStealthEnd,
01988    LineArrowDiamondEnd,
01989    LineArrowOvalEnd,
01990    LineArrowOpenEnd
01991    };  // MSOLINEEND - line end effect
01992 
01993 
01994    enum {
01995    LineNarrowArrow,
01996    LineMediumWidthArrow,
01997    LineWideArrow
01998    }; // MSOLINEENDWIDTH - size of arrowhead
01999 
02000    enum {
02001    LineShortArrow,
02002    LineMediumLenArrow,
02003    LineLongArrow
02004    };   // MSOLINEENDLENGTH - size of arrowhead
02005 
02006   static const unsigned int id;
02007   msofbtOPTAtom ();
02008   ~msofbtOPTAtom ();
02009 
02010   unsigned propertyCount() const;
02011   unsigned propertyId( unsigned index ) const;
02012   unsigned long propertyValue( unsigned index ) const;
02013   void setProperty( unsigned id, unsigned long value );
02014   
02015   void setData( unsigned size, const unsigned char* data );
02016   const char* name(){ return "msofbtOPTAtom "; }
02017   void dump( std::ostream& out ) const; 
02018   
02019 private:  
02020   // no copy or assign
02021   msofbtOPTAtom ( const msofbtOPTAtom  & );
02022   msofbtOPTAtom & operator=( const msofbtOPTAtom  & );   
02023   
02024   class Private;
02025   Private *d;  
02026 };
02027 
02028 class msofbtChildAnchorAtom : public Record
02029 {
02030 public:
02031   static const unsigned int id;
02032   msofbtChildAnchorAtom ();
02033   ~msofbtChildAnchorAtom ();
02034   
02035  // void setData( unsigned size, const unsigned char* data );
02036   const char* name(){ return "msofbtChildAnchorAtom "; }
02037   void dump( std::ostream& out ) const; 
02038   
02039 private:  
02040   // no copy or assign
02041   msofbtChildAnchorAtom ( const msofbtChildAnchorAtom  & );
02042   msofbtChildAnchorAtom & operator=( const msofbtChildAnchorAtom  & );
02043 
02044   class Private;
02045   Private *d;
02046 };
02047 
02048 class msofbtClientAnchorAtom : public Record
02049 {
02050 public:
02051   static const unsigned int id;
02052   msofbtClientAnchorAtom ();
02053   ~msofbtClientAnchorAtom ();
02054 
02055   int left() const;
02056   void setLeft( int left );
02057   int top() const;
02058   void setTop( int top );
02059   int right() const;
02060   void setRight( int right );
02061   int bottom() const;
02062   void setBottom( int bottom );
02063   
02064   void setData( unsigned size, const unsigned char* data );
02065   const char* name(){ return "msofbtClientAnchorAtom "; }
02066   void dump( std::ostream& out ) const; 
02067   
02068 private:  
02069   // no copy or assign
02070   msofbtClientAnchorAtom ( const msofbtClientAnchorAtom  & );
02071   msofbtClientAnchorAtom & operator=( const msofbtClientAnchorAtom  & );   
02072   
02073   class Private;
02074   Private *d;  
02075 };
02076 
02077 class msofbtClientDataAtom : public Record
02078 {
02079 public:
02080   enum
02081   { None = 0,
02082     MasterTitle,
02083     MasterBody,
02084     MasterCenteredTitle,
02085     MasterNotesSlideImage,
02086     MasterNotesBodyImage,
02087     MasterDate,
02088     MasterSlideNumber,
02089     MasterFooter,
02090     MasterHeader,
02091     MasterSubtitle,
02092     Generic,
02093     Title,
02094     Body,
02095     NotesBody,
02096     CenteredTitle,
02097     Subtitle,
02098     VerticalTextTitle,
02099     VerticalTextBody,
02100     NotesSlideImage,
02101     Object,
02102     Graph,
02103     Table,
02104     ClipArt,
02105     OrganizationChart,
02106     MediaClip
02107   };
02108 
02109   static const unsigned int id;
02110   msofbtClientDataAtom ();
02111   ~msofbtClientDataAtom ();
02112 
02113   unsigned placementId() const;
02114   void setPlacementId( unsigned id );
02115   unsigned placeholderId() const;
02116   void setPlaceholderId( unsigned id );
02117   const char* placeholderIdAsString() const;
02118 
02119   void setData( unsigned size, const unsigned char* data );
02120   const char* name(){ return "msofbtClientDataAtom "; }
02121   void dump( std::ostream& out ) const;
02122 
02123 private:
02124   // no copy or assign
02125   msofbtClientDataAtom ( const msofbtClientDataAtom  & );
02126   msofbtClientDataAtom & operator=( const msofbtClientDataAtom  & );
02127 
02128   class Private;
02129   Private *d;
02130 };
02131 
02132 class msofbtClientTextboxAtom : public Record
02133 {
02134 public:
02135   static const unsigned int id;
02136   msofbtClientTextboxAtom ();
02137   ~msofbtClientTextboxAtom ();
02138 
02139   UString ustring() const;
02140   void setUString( const UString& ustr );
02141   void setData( unsigned size, const unsigned char* data );
02142   const char* name(){ return "msofbtClientTextboxAtom "; }
02143   void dump( std::ostream& out ) const;
02144 
02145 private:
02146   // no copy or assign
02147   msofbtClientTextboxAtom ( const msofbtClientTextboxAtom  & );
02148   msofbtClientTextboxAtom & operator=( const msofbtClientTextboxAtom  & );
02149 
02150   class Private;
02151   Private *d;
02152 };
02153 
02154 class msofbtOleObjectAtom : public Record
02155 {
02156 public:
02157   static const unsigned int id;
02158   msofbtOleObjectAtom ();
02159   ~msofbtOleObjectAtom ();
02160  // void setData( unsigned size, const unsigned char* data );
02161   const char* name(){ return "msofbtOleObjectAtom "; }
02162   void dump( std::ostream& out ) const; 
02163 private:
02164   // no copy or assign
02165   msofbtOleObjectAtom ( const msofbtOleObjectAtom  & );
02166   msofbtOleObjectAtom & operator=( const msofbtOleObjectAtom  & );
02167   class Private;
02168   Private *d;
02169 };
02170 
02171 class msofbtDeletedPsplAtom : public Record
02172 {
02173 public:
02174   static const unsigned int id;
02175   msofbtDeletedPsplAtom ();
02176   ~msofbtDeletedPsplAtom ();
02177  // void setData( unsigned size, const unsigned char* data );
02178   const char* name(){ return "msofbtDeletedPsplAtom "; }
02179   void dump( std::ostream& out ) const;
02180 
02181 private:
02182   // no copy or assign
02183   msofbtDeletedPsplAtom ( const msofbtDeletedPsplAtom  & );
02184   msofbtDeletedPsplAtom & operator=( const msofbtDeletedPsplAtom  & );
02185   class Private;
02186   Private *d;
02187 
02188 };
02189 
02190 class msofbtDggAtom : public Record
02191 {
02192 public:
02193   static const unsigned int id;
02194   msofbtDggAtom ();
02195   ~msofbtDggAtom ();
02196  // void setData( unsigned size, const unsigned char* data );
02197   const char* name(){ return "msofbtDggAtom "; }
02198   void dump( std::ostream& out ) const;
02199 
02200 private:
02201   // no copy or assign
02202   msofbtDggAtom ( const msofbtDggAtom  & );
02203   msofbtDggAtom & operator=( const msofbtDggAtom  & );
02204   
02205   class Private;
02206   Private *d;
02207 };
02208 
02209 class msofbtColorMRUAtom : public Record
02210 {
02211 public:
02212   static const unsigned int id;
02213   msofbtColorMRUAtom ();
02214   ~msofbtColorMRUAtom ();
02215  // void setData( unsigned size, const unsigned char* data );
02216   const char* name(){ return "msofbtColorMRUAtom "; }
02217   void dump( std::ostream& out ) const; 
02218 
02219 private:  
02220   // no copy or assign
02221   msofbtColorMRUAtom ( const msofbtColorMRUAtom  & );
02222   msofbtColorMRUAtom & operator=( const msofbtColorMRUAtom  & );  
02223   
02224   class Private;
02225   Private *d;  
02226 };
02227 
02228 class msofbtSplitMenuColorsAtom : public Record
02229 {
02230 public:
02231   static const unsigned int id;
02232   msofbtSplitMenuColorsAtom ();
02233   ~msofbtSplitMenuColorsAtom ();
02234   
02235   unsigned fillColor() const;
02236   void setFillColor( unsigned fillColor );
02237   unsigned lineColor() const;
02238   void setLineColor( unsigned lineColor );
02239   unsigned shadowColor() const;
02240   void setShadowColor( unsigned shadowColor );
02241   unsigned threeDColor() const;
02242   void setThreeDColor( unsigned threeDColor );
02243 
02244   void setData( unsigned size, const unsigned char* data );
02245   const char* name(){ return "msofbtSplitMenuColorsAtom "; }
02246   void dump( std::ostream& out ) const; 
02247   
02248 private:  
02249   // no copy or assign
02250   msofbtSplitMenuColorsAtom ( const msofbtSplitMenuColorsAtom  & );
02251   msofbtSplitMenuColorsAtom & operator=( const msofbtSplitMenuColorsAtom  & );  
02252   
02253   class Private;
02254   Private *d;  
02255 };
02256 
02257 class msofbtBSEAtom : public Record
02258 {
02259 public:
02260   static const unsigned int id;
02261   msofbtBSEAtom ();
02262   ~msofbtBSEAtom ();
02263   
02264  // void setData( unsigned size, const unsigned char* data );
02265   const char* name(){ return "msofbtBSEAtom "; }
02266   void dump( std::ostream& out ) const; 
02267 
02268 private:  
02269   // no copy or assign
02270   msofbtBSEAtom ( const msofbtBSEAtom  & );
02271   msofbtBSEAtom & operator=( const msofbtBSEAtom  & );  
02272   
02273   class Private;
02274   Private *d;  
02275 };
02276 
02277 class msofbtCLSIDAtom : public Record
02278 {
02279 public:
02280   static const unsigned int id;
02281   msofbtCLSIDAtom ();
02282   ~msofbtCLSIDAtom ();
02283   
02284  // void setData( unsigned size, const unsigned char* data );
02285   const char* name(){ return "msofbtCLSIDAtom "; }
02286   void dump( std::ostream& out ) const; 
02287   
02288 
02289 private:  
02290   // no copy or assign
02291   msofbtCLSIDAtom ( const msofbtCLSIDAtom  & );
02292   msofbtCLSIDAtom & operator=( const msofbtCLSIDAtom  & );  
02293   
02294   class Private;
02295   Private *d;  
02296 };
02297 
02298 class msofbtRegroupItemsAtom : public Record
02299 {
02300 public:
02301   static const unsigned int id;
02302   msofbtRegroupItemsAtom ();
02303   ~msofbtRegroupItemsAtom ();
02304   
02305  // void setData( unsigned size, const unsigned char* data );
02306   const char* name(){ return "msofbtRegroupItemsAtom "; }
02307   void dump( std::ostream& out ) const; 
02308   
02309 private:  
02310   // no copy or assign
02311   msofbtRegroupItemsAtom ( const msofbtRegroupItemsAtom  & );
02312   msofbtRegroupItemsAtom & operator=( const msofbtRegroupItemsAtom  & );  
02313   
02314   class Private;
02315   Private *d;  
02316 };
02317 
02318 class msofbtColorSchemeAtom : public Record
02319 {
02320 public:
02321   static const unsigned int id;
02322   msofbtColorSchemeAtom ();
02323   ~msofbtColorSchemeAtom ();
02324   
02325  // void setData( unsigned size, const unsigned char* data );
02326   const char* name(){ return "msofbtColorSchemeAtom "; }
02327   void dump( std::ostream& out ) const; 
02328   
02329 private:  
02330   // no copy or assign
02331   msofbtColorSchemeAtom ( const msofbtColorSchemeAtom  & );
02332   msofbtColorSchemeAtom & operator=( const msofbtColorSchemeAtom  & );  
02333   
02334   class Private;
02335   Private *d;  
02336 };
02337 
02338 class msofbtAnchorAtom : public Record
02339 {
02340 public:
02341   static const unsigned int id;
02342   msofbtAnchorAtom ();
02343   ~msofbtAnchorAtom ();
02344   
02345  // void setData( unsigned size, const unsigned char* data );
02346   const char* name(){ return "msofbtAnchorAtom "; }
02347   void dump( std::ostream& out ) const; 
02348   
02349 private:  
02350   // no copy or assign
02351   msofbtAnchorAtom ( const msofbtAnchorAtom  & );
02352   msofbtAnchorAtom & operator=( const msofbtAnchorAtom  & );  
02353   
02354   class Private;
02355   Private *d;  
02356 };
02357 
02358 class msofbtConnectorRuleAtom : public Record
02359 {
02360 public:
02361   static const unsigned int id;
02362   msofbtConnectorRuleAtom ();
02363   ~msofbtConnectorRuleAtom ();
02364   
02365  // void setData( unsigned size, const unsigned char* data );
02366   const char* name(){ return "msofbtConnectorRuleAtom "; }
02367   void dump( std::ostream& out ) const; 
02368   
02369 private:  
02370   // no copy or assign
02371   msofbtConnectorRuleAtom ( const msofbtConnectorRuleAtom  & );
02372   msofbtConnectorRuleAtom & operator=( const msofbtConnectorRuleAtom  & );  
02373   
02374   class Private;
02375   Private *d;  
02376 };
02377 
02378 class msofbtAlignRuleAtom : public Record
02379 {
02380 public:
02381   static const unsigned int id;
02382   msofbtAlignRuleAtom ();
02383   ~msofbtAlignRuleAtom ();
02384   
02385   int ruid() const; // rule ID
02386   void setRuid( int ruid );
02387   int align() const;
02388   void setAlign( int align );// alignment
02389   int cProxies() const;
02390   void setCProxies( int cProxies );// number of shapes governed by rule
02391     
02392   void setData( unsigned size, const unsigned char* data );
02393   const char* name(){ return "msofbtAlignRuleAtom "; }
02394   void dump( std::ostream& out ) const; 
02395 
02396 private:  
02397   // no copy or assign
02398   msofbtAlignRuleAtom ( const msofbtAlignRuleAtom  & );
02399   msofbtAlignRuleAtom & operator=( const msofbtAlignRuleAtom  & );
02400 
02401   class Private;
02402   Private *d;  
02403 };
02404 
02405 class msofbtArcRuleAtom : public Record
02406 {
02407 public:
02408   static const unsigned int id;
02409   msofbtArcRuleAtom ();
02410   ~msofbtArcRuleAtom ();
02411   
02412  // void setData( unsigned size, const unsigned char* data );
02413   const char* name(){ return "msofbtArcRuleAtom "; }
02414   void dump( std::ostream& out ) const; 
02415   
02416 private:  
02417   // no copy or assign
02418   msofbtArcRuleAtom ( const msofbtArcRuleAtom  & );
02419   msofbtArcRuleAtom & operator=( const msofbtArcRuleAtom  & );  
02420   
02421   class Private;
02422   Private *d;  
02423 };
02424 
02425 class msofbtClientRuleAtom : public Record
02426 {
02427 public:
02428   static const unsigned int id;
02429   msofbtClientRuleAtom ();
02430   ~msofbtClientRuleAtom ();
02431   
02432  // void setData( unsigned size, const unsigned char* data );
02433   const char* name(){ return "msofbtClientRuleAtom "; }
02434   void dump( std::ostream& out ) const; 
02435   
02436 private:  
02437   // no copy or assign
02438   msofbtClientRuleAtom ( const msofbtClientRuleAtom  & );
02439   msofbtClientRuleAtom & operator=( const msofbtClientRuleAtom  & );  
02440   
02441   class Private;
02442   Private *d;  
02443 };
02444 
02445 class msofbtCalloutRuleAtom : public Record
02446 {
02447 public:
02448   static const unsigned int id;
02449   msofbtCalloutRuleAtom ();
02450   ~msofbtCalloutRuleAtom ();
02451   
02452  // void setData( unsigned size, const unsigned char* data );
02453   const char* name(){ return "msofbtCalloutRuleAtom "; }
02454   void dump( std::ostream& out ) const; 
02455   
02456 private:  
02457   // no copy or assign
02458   msofbtCalloutRuleAtom ( const msofbtCalloutRuleAtom  & );
02459   msofbtCalloutRuleAtom & operator=( const msofbtCalloutRuleAtom  & );  
02460   
02461   class Private;
02462   Private *d;  
02463 };
02464 
02465 class msofbtSelectionAtom : public Record
02466 {
02467 public:
02468   static const unsigned int id;
02469   msofbtSelectionAtom ();
02470   ~msofbtSelectionAtom ();
02471   
02472  // void setData( unsigned size, const unsigned char* data );
02473   const char* name(){ return "msofbtSelectionAtom "; }
02474   void dump( std::ostream& out ) const; 
02475   
02476 private:  
02477   // no copy or assign
02478   msofbtSelectionAtom ( const msofbtSelectionAtom  & );
02479   msofbtSelectionAtom & operator=( const msofbtSelectionAtom  & );  
02480   
02481   class Private;
02482   Private *d;  
02483 };
02484 
02485 class PPTReader
02486 {
02487 public:
02488   PPTReader();
02489   virtual ~PPTReader();
02490   bool load( Presentation* pr, const char* filename );
02491   
02492 protected:  
02493 
02494   void loadUserEdit();
02495   void loadMaster();
02496   void loadSlides();
02497   void loadDocument();
02498   int indexPersistence( unsigned long offset );
02499 
02500   void loadRecord( Record* parent );
02501   void handleRecord( Record* record, int type );
02502   void handleContainer( Container* container, int type, unsigned size );
02503 
02504   void handleDocumentAtom( DocumentAtom* r );
02505   void handleSlidePersistAtom( SlidePersistAtom* r );
02506   void handleTextHeaderAtom( TextHeaderAtom* r );
02507   void handleTextCharsAtom( TextCharsAtom* r );
02508   void handleTextBytesAtom( TextBytesAtom* r ); 
02509   void handleStyleTextPropAtom ( StyleTextPropAtom* r );
02510   void handleColorSchemeAtom( ColorSchemeAtom* r );
02511 
02512   void handleDrawingContainer( msofbtDgContainer* r, unsigned size ); 
02513   void handleEscherGroupContainer( msofbtSpgrContainer* r, unsigned size ); 
02514   void handleSPContainer( msofbtSpContainer* r, unsigned size ); 
02515   void handleEscherGroupAtom( msofbtSpgrAtom* r );
02516   void handleEscherSpAtom( msofbtSpAtom* r );
02517   void handleEscherPropertiesAtom( msofbtOPTAtom* atom );
02518   void handleEscherClientDataAtom( msofbtClientDataAtom* r );
02519   void handleEscherClientAnchorAtom( msofbtClientAnchorAtom* r );
02520   void handleEscherTextBoxAtom( msofbtClientTextboxAtom* r);
02521 
02522 private:  
02523   // no copy or assign
02524   PPTReader( const PPTReader& );
02525   PPTReader& operator=( const PPTReader& );
02526   
02527   class Private;
02528   Private* d;
02529 };
02530 
02531 }
02532 
02533 #endif /* LIBPPT_POWERPOINT */
KDE Home | KDE Accessibility Home | Description of Access Keys