00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef COLUMNBREAKER_H
00023 #define COLUMNBREAKER_H
00024
00025 #include "ut_types.h"
00026
00027
00028 class fp_Container;
00029 class fl_DocSectionLayout;
00030 class fp_Page;
00031 class fl_BlockLayout;
00032
00033 class ABI_EXPORT fb_ColumnBreaker
00034 {
00035 public:
00036 fb_ColumnBreaker();
00037 virtual ~fb_ColumnBreaker(void) {}
00038 UT_sint32 breakSection(fl_DocSectionLayout * pSL);
00039 void setStartPage(fp_Page * pPage);
00040 fp_Page * getStartPage(void) { return m_pStartPage;}
00041 private:
00042 bool _isThisBroken(fp_Container * pCon);
00043 void _setLastWantedVBreak(fp_Container * pCon, UT_sint32 iBreakAt);
00044 UT_sint32 _getLastWantedVBreak(fp_Container * pCon);
00045 bool _breakCON(fp_Container *& pOffendingContainer,
00046 fp_Container *& pLastContainerToKeep,
00047 int iMaxColHeight, int iWorkingColHeight,
00048 int iContainerMarginAfter);
00049 bool _breakTable(fp_Container *& pOffendingContainer,
00050 fp_Container *& pLastContainerToKeep,
00051 int iMaxColHeight, int iWorkingColHeight,
00052 int iContainerMarginAfter);
00053 bool _breakTOC(fp_Container *& pOffendingContainer,
00054 fp_Container *& pLastContainerToKeep,
00055 int iMaxColHeight, int iWorkingColHeight,
00056 int iContainerMarginAfter);
00057 fp_Container * _getNext(fp_Container * pCon);
00058 bool _displayAnnotations(void);
00059 fp_Page * m_pStartPage;
00060 bool m_bStartFromStart;
00061 bool m_bReBreak;
00062 fl_DocSectionLayout * m_pDocSec;
00063 fl_BlockLayout * m_pCurrentBlock;
00064 };
00065
00066 #endif