~ubuntu-branches/ubuntu/edgy/libwpd/edgy-security

« back to all changes in this revision

Viewing changes to src/lib/WP5Listener.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) 2003 Marc Maurer (j.m.maurer@student.utwente.nl)
 
3
 * Copyright (C) 2003 Marc Maurer (uwog@uwog.net)
 
4
 * Copyright (C) 2005-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
26
27
#ifndef WP5LISTENER_H
27
28
#define WP5LISTENER_H
28
29
 
29
 
#include "WPXListener.h"
 
30
#include "WP5PrefixData.h"
 
31
//#include "WP5SubDocument.h"
 
32
#include "WPXPageSpan.h"
30
33
#include "WPXHLListenerImpl.h"
31
 
 
32
 
typedef struct _WP5ParsingState WP5ParsingState;
33
 
struct _WP5ParsingState
34
 
{
35
 
        _WP5ParsingState();
36
 
        ~_WP5ParsingState();
37
 
        WPXString m_textBuffer;
38
 
};
39
 
 
40
 
 
41
 
class WP5Listener : public WPXListener
 
34
#include <list>
 
35
#include <vector>
 
36
 
 
37
class WP5SubDocument;
 
38
 
 
39
class WP5Listener
42
40
{
43
41
public:
44
 
        WP5Listener(std::vector<WPXPageSpan *> *pageList, WPXHLListenerImpl *listenerImpl);
45
 
        virtual ~WP5Listener();
46
 
 
47
 
        virtual void setAlignmentCharacter(const uint16_t character) {};
48
 
        virtual void setLeaderCharacter(const uint16_t character, const uint8_t numberOfSpaces) {};
49
 
        virtual void defineTabStops(const bool isRelative, const std::vector<WPXTabStop> &tabStops, 
50
 
                                const std::vector<bool> &usePreWP9LeaderMethods) {};
51
 
        virtual void insertCharacter(const uint16_t character);
52
 
        virtual void insertTab(const uint8_t tabType, const float tabPosition);
53
 
        virtual void handleLineBreak() {};
54
 
        virtual void insertEOL();
55
 
        virtual void attributeChange(const bool isOn, const uint8_t attribute);
56
 
        virtual void spacingAfterParagraphChange(const float spacingRelative, const float spacingAbsolute) {};
57
 
        virtual void pageMarginChange(const uint8_t side, const uint16_t margin) {};
58
 
        virtual void pageFormChange(const uint16_t length, const uint16_t width, const WPXFormOrientation orientation, const bool isPersistent) {};
59
 
        virtual void marginChange(const uint8_t side, const uint16_t margin);
60
 
        virtual void paragraphMarginChange(const uint8_t side, const int16_t margin) {};
61
 
        virtual void indentFirstLineChange(const int16_t offset) {};
62
 
        virtual void columnChange(const WPXTextColumnType columnType, const uint8_t numColumns, const std::vector<float> &columnWidth,
63
 
                                const std::vector<bool> &isFixedWidth) {};
64
 
        virtual void endDocument();
65
 
 
66
 
        virtual void defineTable(const uint8_t position, const uint16_t leftOffset);
 
42
        WP5Listener(std::list<WPXPageSpan> &pageList, WPXHLListenerImpl *listenerImpl);
 
43
        virtual ~WP5Listener() {};
 
44
 
 
45
        virtual void startDocument() = 0;
 
46
        virtual void setFont(const WPXString fontName, const float fontSize) = 0;
 
47
        virtual void insertCharacter(const uint16_t character) = 0;
 
48
        virtual void insertTab(const uint8_t tabType, float tabPosition) = 0;
 
49
        virtual void handleLineBreak() = 0;
 
50
        virtual void insertEOL() = 0;
 
51
        virtual void insertBreak(const uint8_t breakType) = 0;
 
52
        virtual void lineSpacingChange(const float lineSpacing) = 0;
 
53
        virtual void justificationChange(const uint8_t justification) = 0;
 
54
        virtual void characterColorChange(const uint8_t red, const uint8_t green, const uint8_t blue) = 0;
 
55
        virtual void attributeChange(const bool isOn, const uint8_t attribute) = 0;
 
56
        virtual void pageMarginChange(const uint8_t side, const uint16_t margin) = 0;
 
57
        virtual void pageFormChange(const uint16_t length, const uint16_t width, const WPXFormOrientation orientation, const bool isPersistent) = 0;
 
58
        virtual void marginChange(const uint8_t side, const uint16_t margin) = 0;
 
59
        virtual void endDocument() = 0;
 
60
 
 
61
        virtual void defineTable(const uint8_t position, const uint16_t leftOffset) = 0;
67
62
        virtual void addTableColumnDefinition(const uint32_t width, const uint32_t leftGutter, const uint32_t rightGutter,
68
 
                                const uint32_t attributes, const uint8_t alignment);
69
 
        virtual void startTable();
70
 
        virtual void insertRow(const uint16_t rowHeight, const bool isMinimumHeight, const bool isHeaderRow);
 
63
                                const uint32_t attributes, const uint8_t alignment) = 0;
 
64
        virtual void startTable() = 0;
 
65
        virtual void insertRow(const uint16_t rowHeight, const bool isMinimumHeight, const bool isHeaderRow) = 0;
71
66
        virtual void insertCell(const uint8_t colSpan, const uint8_t rowSpan, const uint8_t borderBits,
72
67
                                const RGBSColor * cellFgColor, const RGBSColor * cellBgColor, 
73
68
                                const RGBSColor * cellBorderColor, const WPXVerticalAlignment cellVerticalAlignment, 
74
 
                                const bool useCellAttributes, const uint32_t cellAttributes);
75
 
        virtual void endTable();
76
 
 
77
 
protected:
78
 
        virtual void _handleSubDocument(const WPXSubDocument *subDocument, const bool isHeaderFooter, WPXTableList tableList, int nextTableIndice = 0) {}
 
69
                                const bool useCellAttributes, const uint32_t cellAttributes) = 0;
 
70
        virtual void endTable() = 0;
 
71
 
 
72
        virtual void insertNoteReference(const WPXString noteReference) = 0;
 
73
        virtual void insertNote(const WPXNoteType noteType, const WP5SubDocument *subDocument) = 0;
 
74
        virtual void headerFooterGroup(const uint8_t headerFooterType, const uint8_t occurenceBits, WP5SubDocument *subDocument) = 0;
 
75
        virtual void suppressPageCharacteristics(const uint8_t suppressCode) = 0;
 
76
 
 
77
        void setPrefixData(WP5PrefixData *prefixData) { m_prefixData = prefixData; }
 
78
        const WP5GeneralPacketData * getGeneralPacketData(const int type) const;
79
79
 
80
80
private:
81
 
        void _flushText();
82
 
        void _changeList() {};
83
 
 
84
 
        WP5ParsingState *m_parseState;
 
81
        WP5PrefixData *m_prefixData;
85
82
};
86
83
 
87
84
#endif /* WP5LISTENER_H */