filters
Outline.h
00001 //======================================================================== 00002 // 00003 // Outline.h 00004 // 00005 // Copyright 2002 Glyph & Cog, LLC 00006 // 00007 //======================================================================== 00008 00009 #ifndef OUTLINE_H 00010 #define OUTLINE_H 00011 00012 #include <aconf.h> 00013 00014 #ifdef USE_GCC_PRAGMAS 00015 #pragma interface 00016 #endif 00017 00018 #include "Object.h" 00019 #include "CharTypes.h" 00020 00021 class GString; 00022 class GList; 00023 class XRef; 00024 class LinkAction; 00025 00026 //------------------------------------------------------------------------ 00027 00028 class Outline { 00029 public: 00030 00031 Outline(Object *outlineObj, XRef *xref); 00032 ~Outline(); 00033 00034 GList *getItems() { return items; } 00035 00036 private: 00037 00038 GList *items; // NULL if document has no outline 00039 // [OutlineItem] 00040 }; 00041 00042 //------------------------------------------------------------------------ 00043 00044 class OutlineItem { 00045 public: 00046 00047 OutlineItem(Dict *dict, XRef *xrefA); 00048 ~OutlineItem(); 00049 00050 static GList *readItemList(Object *itemRef, XRef *xrefA); 00051 00052 void open(); 00053 void close(); 00054 00055 Unicode *getTitle() { return title; } 00056 int getTitleLength() { return titleLen; } 00057 LinkAction *getAction() { return action; } 00058 GBool isOpen() { return startsOpen; } 00059 GBool hasKids() { return firstRef.isRef(); } 00060 GList *getKids() { return kids; } 00061 00062 private: 00063 00064 XRef *xref; 00065 Unicode *title; 00066 int titleLen; 00067 LinkAction *action; 00068 Object firstRef; 00069 Object nextRef; 00070 GBool startsOpen; 00071 GList *kids; // NULL unless this item is open [OutlineItem] 00072 }; 00073 00074 #endif