Go to the documentation of this file.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(fl_DocSectionLayout * pDSL);
00037 virtual ~fb_ColumnBreaker(void) {}
00038 UT_sint32 breakSection(void);
00039 void setStartPage(fp_Page * pPage);
00040 fp_Page * getStartPage(void) { return m_pStartPage;}
00041 fp_Page * needsRebreak(void);
00042 private:
00043 fp_Page * _getLastValidPage(void);
00044 UT_sint32 _breakSection(fp_Page * pStartPage);
00045 bool _isThisBroken(fp_Container * pCon);
00046 void _setLastWantedVBreak(fp_Container * pCon, UT_sint32 iBreakAt);
00047 UT_sint32 _getLastWantedVBreak(fp_Container * pCon);
00048 bool _breakCON(fp_Container *& pOffendingContainer,
00049 fp_Container *& pLastContainerToKeep,
00050 int iMaxColHeight, int iWorkingColHeight,
00051 int iContainerMarginAfter);
00052 bool _breakTable(fp_Container *& pOffendingContainer,
00053 fp_Container *& pLastContainerToKeep,
00054 int iMaxColHeight, int iWorkingColHeight,
00055 int iContainerMarginAfter);
00056 bool _breakTOC(fp_Container *& pOffendingContainer,
00057 fp_Container *& pLastContainerToKeep,
00058 int iMaxColHeight, int iWorkingColHeight,
00059 int iContainerMarginAfter);
00060 fp_Container * _getNext(fp_Container * pCon);
00061 bool _displayAnnotations(void);
00062 fp_Page * m_pStartPage;
00063 bool m_bStartFromStart;
00064 bool m_bReBreak;
00065 fl_DocSectionLayout * m_pDocSec;
00066 fl_BlockLayout * m_pCurrentBlock;
00067 };
00068
00069 #endif