~ubuntu-branches/ubuntu/trusty/libwpd/trusty

« back to all changes in this revision

Viewing changes to src/lib/WP5StylesListener.h

  • Committer: Bazaar Package Importer
  • Author(s): Rene Engelhard
  • Date: 2006-06-11 23:56:17 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20060611235617-ce504k38fuqe8twa
Tags: 0.8.5-2
* dpatch'ize 
* add patch from upstream fixing WP5 font handling regression

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/* libwpd
2
2
 * Copyright (C) 2003 William Lachance (william.lachance@sympatico.ca)
3
 
 * Copyright (C) 2004 Marc Maurer (j.m.maurer@student.utwente.nl)
 
3
 * Copyright (C) 2004 Marc Maurer (uwog@uwog.net)
 
4
 * Copyright (C) 2006 Fridrich Strba (fridrich.strba@bluewin.ch)
4
5
 *
5
6
 * This library is free software; you can redistribute it and/or
6
7
 * modify it under the terms of the GNU Library General Public
27
28
#define WP5STYLESLISTENER_H
28
29
 
29
30
#include "WP5Listener.h"
 
31
#include "WPXStylesListener.h"
30
32
#include <vector>
 
33
#include <list>
 
34
#include <set>
31
35
#include "WPXPageSpan.h"
32
36
#include "WPXTable.h"
 
37
#include "WP5SubDocument.h"
33
38
 
34
 
class WP5StylesListener : public WP5Listener
 
39
class WP5StylesListener : public WP5Listener, public WPXStylesListener
35
40
{
36
41
public:
37
 
        WP5StylesListener(std::vector<WPXPageSpan *> *pageList, WPXTableList tableList);
38
 
 
39
 
        virtual void startDocument() {}
40
 
        virtual void setAlignmentCharacter(const uint16_t character) {}
41
 
        virtual void setLeaderCharacter(const uint16_t character, const uint8_t numberOfSpaces) {}
42
 
        virtual void defineTabStops(const bool isRelative, const std::vector<WPXTabStop> &tabStops, 
43
 
                                    const std::vector<bool> &usePreWP9LeaderMethods) {}
44
 
        virtual void insertCharacter(const uint16_t character) { /*if (!isUndoOn())*/ m_currentPageHasContent = true; }
45
 
        virtual void insertTab(const uint8_t tabType, const uint16_t tabPosition) { /*if (!isUndoOn())*/ m_currentPageHasContent = true; }
46
 
        virtual void insertEOL() { /*if (!isUndoOn())*/ m_currentPageHasContent = true; }
47
 
        virtual void insertBreak(const uint8_t breakType);
48
 
        virtual void attributeChange(const bool isOn, const uint8_t attribute) {}
49
 
        virtual void lineSpacingChange(const float lineSpacing) {}
50
 
        virtual void spacingAfterParagraphChange(const float spacingRelative, const float spacingAbsolute) {}
51
 
        virtual void justificationChange(const uint8_t justification) {}
52
 
        virtual void pageMarginChange(const uint8_t side, const uint16_t margin);
53
 
        virtual void pageFormChange(const uint16_t length, const uint16_t width, const WPXFormOrientation orientation, const bool isPersistent);
54
 
        virtual void marginChange(const uint8_t side, const uint16_t margin);
55
 
        virtual void paragraphMarginChange(const uint8_t side, const int16_t margin) {}
56
 
        virtual void indentFirstLineChange(const int16_t offset) {}
57
 
        virtual void columnChange(const WPXTextColumnType columnType, const uint8_t numColumns, const std::vector<float> &columnWidth,
58
 
                                  const std::vector<bool> &isFixedWidth) {}
59
 
        virtual void endDocument();
60
 
 
61
 
        virtual void defineTable(const uint8_t position, const uint16_t leftOffset){}
62
 
        virtual void addTableColumnDefinition(const uint32_t width, const uint32_t leftGutter, const uint32_t rightGutter,
 
42
        WP5StylesListener(std::list<WPXPageSpan> &pageList, WPXTableList tableList, std::vector<WP5SubDocument*> &subDocuments);
 
43
 
 
44
        void startDocument() {}
 
45
        void setFont(const WPXString fontName, const float fontSize) {}
 
46
        void insertCharacter(const uint16_t character) { /*if (!isUndoOn())*/ m_currentPageHasContent = true; }
 
47
        void insertTab(const uint8_t tabType, float tabPosition) { /*if (!isUndoOn())*/ m_currentPageHasContent = true; }
 
48
        void handleLineBreak() { /*if (!isUndoOn())*/ m_currentPageHasContent = true; };
 
49
        void characterColorChange(const uint8_t red, const uint8_t green, const uint8_t blue) {};
 
50
        void insertEOL() { /*if (!isUndoOn())*/ m_currentPageHasContent = true; }
 
51
        void insertBreak(const uint8_t breakType);
 
52
        void attributeChange(const bool isOn, const uint8_t attribute) {}
 
53
        void lineSpacingChange(const float lineSpacing) {}
 
54
        void justificationChange(const uint8_t justification) {}
 
55
        void pageMarginChange(const uint8_t side, const uint16_t margin);
 
56
        void pageFormChange(const uint16_t length, const uint16_t width, const WPXFormOrientation orientation, const bool isPersistent);
 
57
        void marginChange(const uint8_t side, const uint16_t margin);
 
58
        void endDocument();
 
59
 
 
60
        void defineTable(const uint8_t position, const uint16_t leftOffset){}
 
61
        void addTableColumnDefinition(const uint32_t width, const uint32_t leftGutter, const uint32_t rightGutter,
63
62
                                const uint32_t attributes, const uint8_t alignment){}
64
 
        virtual void startTable();
65
 
        virtual void insertRow(const uint16_t rowHeight, const bool isMinimumHeight, const bool isHeaderRow);
66
 
        virtual void insertCell(const uint8_t colSpan, const uint8_t rowSpan, const uint8_t borderBits,
 
63
        void startTable();
 
64
        void insertRow(const uint16_t rowHeight, const bool isMinimumHeight, const bool isHeaderRow);
 
65
        void insertCell(const uint8_t colSpan, const uint8_t rowSpan, const uint8_t borderBits,
67
66
                                const RGBSColor * cellFgColor, const RGBSColor * cellBgColor, 
68
67
                                const RGBSColor * cellBorderColor, const WPXVerticalAlignment cellVerticalAlignment, 
69
68
                                const bool useCellAttributes, const uint32_t cellAttributes);
70
 
        virtual void endTable() {}
 
69
        void endTable() {}
71
70
 
 
71
        void insertNoteReference(const WPXString noteReference) {};
 
72
        void insertNote(const WPXNoteType noteType, const WP5SubDocument *subDocument) {};
 
73
        void headerFooterGroup(const uint8_t headerFooterType, const uint8_t occurenceBits, WP5SubDocument *subDocument);
 
74
        void suppressPageCharacteristics(const uint8_t suppressCode);
72
75
 
73
76
protected:
74
 
        virtual void _openPageSpan() { /* FIXME: REMOVE ME WHEN IMPLEMENTED IN WPXListener */ };
 
77
        void _openPageSpan() { /* FIXME: REMOVE ME WHEN IMPLEMENTED IN WPXListener */ }
 
78
 
 
79
        void _handleSubDocument(const WPXSubDocument *subDocument, const bool isHeaderFooter, WPXTableList tableList, int nextTableIndice = 0);
75
80
 
76
81
private:
77
 
        WPXPageSpan *m_currentPage;
 
82
        void _flushText() {}
 
83
        void _changeList() {}
 
84
 
 
85
        WPXPageSpan m_currentPage, m_nextPage;
78
86
 
79
87
        WPXTableList m_tableList;
80
88
        WPXTable *m_currentTable;
81
89
        float m_tempMarginLeft, m_tempMarginRight;
82
90
        bool m_currentPageHasContent;
 
91
        bool m_isSubDocument;
 
92
        std::vector<WP5SubDocument *> &m_subDocuments;
 
93
        std::list<WPXPageSpan>::iterator m_pageListHardPageMark;
83
94
};
84
95
 
85
96
#endif /* WP5STYLESLISTENER_H */