filters
tablehandler.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef TABLEHANDLER_H
00021 #define TABLEHANDLER_H
00022
00023 #include <wv2/functor.h>
00024 #include <wv2/word97_generated.h>
00025 #include <wv2/handlers.h>
00026 #include <qstring.h>
00027 #include <qvaluelist.h>
00028 #include <qobject.h>
00029 #include <deque>
00030
00031 namespace wvWare {
00032 namespace Word97 {
00033 class TC;
00034 class SHD;
00035 }
00036 }
00037 class KoRect;
00038
00039 namespace KWord
00040 {
00041 typedef const wvWare::TableRowFunctor* TableRowFunctorPtr;
00042 typedef wvWare::SharedPtr<const wvWare::Word97::TAP> TAPptr;
00043
00044
00045 struct Row
00046 {
00047 Row() : functorPtr( 0L ), tap( 0L ) {}
00048 Row( TableRowFunctorPtr ptr, TAPptr _tap ) : functorPtr(ptr), tap(_tap) {}
00049 ~Row() {}
00050
00051
00052 TableRowFunctorPtr functorPtr;
00053 TAPptr tap;
00054 };
00055
00056
00057
00058 struct Table
00059 {
00060 QString name;
00061 QValueList<Row> rows;
00062
00063
00064
00065
00066
00067
00068
00069 QMemArray<int> m_cellEdges;
00070
00071 void cacheCellEdge( int cellEdge );
00072 int columnNumber( int cellEdge ) const;
00073 };
00074 }
00075
00076 class KWordTableHandler : public QObject, public wvWare::TableHandler
00077 {
00078 Q_OBJECT
00079 public:
00080 KWordTableHandler();
00081
00083 virtual void tableRowStart( wvWare::SharedPtr<const wvWare::Word97::TAP> tap );
00084 virtual void tableRowEnd();
00085 virtual void tableCellStart();
00086 virtual void tableCellEnd();
00087
00089 void tableStart( KWord::Table* table );
00090 void tableEnd();
00091
00092 signals:
00093
00094 void sigTableCellStart( int row, int column, int rowSpan, int columnSpan, const KoRect& cellRect, const QString& tableName, const wvWare::Word97::BRC& brcTop, const wvWare::Word97::BRC& brcBottom, const wvWare::Word97::BRC& brcLeft, const wvWare::Word97::BRC& brcRight, const wvWare::Word97::SHD& shd );
00095 void sigTableCellEnd();
00096
00097 protected:
00098 double rowHeight() const;
00099
00100 private:
00101 KWord::Table* m_currentTable;
00102 int m_row;
00103 int m_column;
00104 double m_currentY;
00105 wvWare::SharedPtr<const wvWare::Word97::TAP> m_tap;
00106 };
00107
00108 #endif // TABLEHANDLER_H
|