00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef WP6PARAGRAPHGROUP_H
00027 #define WP6PARAGRAPHGROUP_H
00028
00029 #include "WP6VariableLengthGroup.h"
00030
00031
00032 class WP6ParagraphGroup_LineSpacingSubGroup : public WP6VariableLengthGroup_SubGroup
00033 {
00034 public:
00035 WP6ParagraphGroup_LineSpacingSubGroup(WPXInputStream *input);
00036 virtual void parse(WP6Listener *listener, const uint8_t numPrefixIDs, uint16_t const *prefixIDs) const;
00037
00038 private:
00039 float m_lineSpacing;
00040 };
00041
00042 class WP6ParagraphGroup_JustificationModeSubGroup : public WP6VariableLengthGroup_SubGroup
00043 {
00044 public:
00045 WP6ParagraphGroup_JustificationModeSubGroup(WPXInputStream *input);
00046 virtual void parse(WP6Listener *listener, const uint8_t numPrefixIDs, uint16_t const *prefixIDs) const;
00047
00048 private:
00049 uint8_t m_justification;
00050 };
00051
00052 class WP6ParagraphGroup_SpacingAfterParagraphSubGroup : public WP6VariableLengthGroup_SubGroup
00053 {
00054 public:
00055 WP6ParagraphGroup_SpacingAfterParagraphSubGroup(WPXInputStream *input, const uint16_t sizeNonDeletable);
00056 virtual void parse(WP6Listener *listener, const uint8_t numPrefixIDs, uint16_t const *prefixIDs) const;
00057
00058 private:
00059 float m_spacingAfterParagraphAbsolute;
00060 float m_spacingAfterParagraphRelative;
00061 uint16_t m_sizeNonDeletable;
00062 };
00063
00064 class WP6ParagraphGroup_TabSetSubGroup : public WP6VariableLengthGroup_SubGroup
00065 {
00066 public:
00067 WP6ParagraphGroup_TabSetSubGroup(WPXInputStream *input);
00068 ~WP6ParagraphGroup_TabSetSubGroup();
00069 virtual void parse(WP6Listener *listener, const uint8_t numPrefixIDs, uint16_t const *prefixIDs) const;
00070
00071 private:
00072 bool m_isRelative;
00073 float m_tabAdjustValue;
00074 std::vector<bool> m_usePreWP9LeaderMethods;
00075 std::vector<WPXTabStop> m_tabStops;
00076 };
00077
00078 class WP6ParagraphGroup_IndentFirstLineSubGroup : public WP6VariableLengthGroup_SubGroup
00079 {
00080 public:
00081 WP6ParagraphGroup_IndentFirstLineSubGroup(WPXInputStream *input);
00082 virtual void parse(WP6Listener *listener, const uint8_t numPrefixIDs, uint16_t const *prefixIDs) const;
00083
00084 private:
00085 int16_t m_firstLineOffset;
00086 };
00087
00088 class WP6ParagraphGroup_LeftMarginAdjustmentSubGroup : public WP6VariableLengthGroup_SubGroup
00089 {
00090 public:
00091 WP6ParagraphGroup_LeftMarginAdjustmentSubGroup(WPXInputStream *input);
00092 virtual void parse(WP6Listener *listener, const uint8_t numPrefixIDs, uint16_t const *prefixIDs) const;
00093
00094 private:
00095 int16_t m_leftMargin;
00096 };
00097
00098 class WP6ParagraphGroup_RightMarginAdjustmentSubGroup : public WP6VariableLengthGroup_SubGroup
00099 {
00100 public:
00101 WP6ParagraphGroup_RightMarginAdjustmentSubGroup(WPXInputStream *input);
00102 virtual void parse(WP6Listener *listener, const uint8_t numPrefixIDs, uint16_t const *prefixIDs) const;
00103
00104 private:
00105 int16_t m_rightMargin;
00106 };
00107
00108 class WP6ParagraphGroup_OutlineDefineSubGroup : public WP6VariableLengthGroup_SubGroup
00109 {
00110 public:
00111 WP6ParagraphGroup_OutlineDefineSubGroup(WPXInputStream *input);
00112 virtual void parse(WP6Listener *listener, const uint8_t numPrefixIDs, uint16_t const *prefixIDs) const;
00113
00114 private:
00115 uint16_t m_outlineHash;
00116 uint8_t m_numberingMethods[WP6_NUM_LIST_LEVELS];
00117 uint8_t m_outlineFlags;
00118 uint8_t m_tabBehaviourFlag;
00119 };
00120
00121 class WP6ParagraphGroup : public WP6VariableLengthGroup
00122 {
00123 public:
00124 WP6ParagraphGroup(WPXInputStream *input);
00125 ~WP6ParagraphGroup();
00126 virtual void _readContents(WPXInputStream *input);
00127 virtual void parse(WP6Listener *listener);
00128 private:
00129 WP6VariableLengthGroup_SubGroup *m_subGroupData;
00130 };
00131
00132 #endif