Files
core/ASCOfficePDFReader/Outline.h

91 lines
2.0 KiB
C++

#ifndef _OUTLINE_H
#define _OUTLINE_H
#include "Object.h"
#include "CharTypes.h"
class StringExt;
class GList;
class XRef;
class LinkAction;
//-------------------------------------------------------------------------------------------------------------------------------
// Outline
//-------------------------------------------------------------------------------------------------------------------------------
class Outline
{
public:
Outline(Object *pOutlineObject, XRef *pXref);
~Outline();
CList *GetItems()
{
return m_pItems;
}
private:
CList *m_pItems; // NULL, åñëè ó äîêóìåíòà íåò Outline
// [OutlineItem]
};
//-------------------------------------------------------------------------------------------------------------------------------
// OutlineItem
//-------------------------------------------------------------------------------------------------------------------------------
class OutlineItem
{
public:
OutlineItem(Dict *pDict, XRef *pXref);
~OutlineItem();
static CList *ReadItemList(Object *pFirstItemRef, Object *pLastItemRef, XRef *pXref);
void Open();
void Close();
Unicode *GetTitle()
{
return m_pTitle;
}
int GetTitleLength()
{
return m_nTitleLen;
}
LinkAction *GetAction()
{
return m_pAction;
}
BOOL IsOpen()
{
return m_bOpen;
}
BOOL HasKids()
{
return m_oFirstRef.IsRef();
}
CList *GetKids()
{
return m_pKids;
}
private:
XRef *m_pXref; // Òàáëèöà Xref äàííîãî PDF-äîêóìåíòà
Unicode *m_pTitle; // Íàçâàíèå äàííîé çàêëàäêè
int m_nTitleLen; // Äëèíà íàçâàíèÿ
LinkAction *m_pAction; // LinkAction
Object m_oFirstRef; // Ññûëêà(Ref) íà First
Object m_oLastRef; // Ññûëêà(Ref) íà Last
Object m_oNextRef; // Ññûëêà(Ref) íà Next
BOOL m_bOpen; // Áóäåò ëè âêëàäêà îòêðûòîé ïðè îòêðûòèè äîêóìåíòà
CList *m_pKids; // NULL, åñëè äàííûé ïóíêò íå îòêðûò [OutlineItem]
};
#endif /* _OUTLINE_H */