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
KDE Home | KDE Accessibility Home | Description of Access Keys