/*************************************************************************** tableeditor.h - table editor dialog begin : Thu 15 Apr 2004 copyright : (C) 2004 by Andras Mantia ***************************************************************************/ /*************************************************************************** * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * ***************************************************************************/ #ifndef TABLEEDITOR_H #define TABLEEDITOR_H #include #include #include "tableeditors.h" #include "document.h" class TQSpinBox; class TQTable; class TDEPopupMenu; class Tag; struct DTDStruct; class Node; class TableNode { public: Node *node; bool merged; int mergedRow; int mergedCol; TableNode() {node = 0;} }; struct NestedTable { Node *node; int row; int col; int bLine; int bCol; int eLine; int eCol; TQString nestedData;}; class Parser; class TableEditor : public TableEditorS { Q_OBJECT public: TableEditor( TQWidget* parent = 0, const char* name = 0 ); ~TableEditor(); virtual bool setTableArea( int bLine, int bCol, int eLine, int eCol, Parser * docParser ); virtual void setBaseURL( const KURL & url ); virtual TQString readModifiedTable(); virtual void createNewTable( Document * write, const DTDStruct * dtd ); // Set defaults for table: enable word wrap, fit content, allow swapping col/rows with D&D virtual void configureTable( TQTable * table ); virtual void setCellText( TQTable * table, int row, int col, const TQString & text ); // Configure TableItem from tag attributes virtual void configureCell( int row, int col, Node * node ); public slots: virtual void slotContextMenuRequested( int row, int col, const TQPoint & pos ); virtual void slotEditCell(); // Wrapper for setText to use TableItem instead of TQTableItem virtual void slotEditCellText( int r, int ); virtual void slotEditRow(); virtual void slotEditCol(); virtual void slotEditTable(); virtual void slotEditTableBody(); virtual void slotEditTableHeader(); virtual void slotEditTableFooter(); virtual void slotTabChanged( TQWidget * w ); virtual void slotInsertRow(); virtual void slotInsertCol(); virtual void slotAddRemoveRow( int num ); virtual void slotAddRemoveCol( int num ); virtual void slotRemoveRow(); virtual void slotRemoveCol(); virtual void slotMergeCells(); virtual void slotUnmergeCells(); virtual void slotEditChildTable(); virtual void slotHelpInvoked(); protected: TQValueList m_colTags; int m_unmergeCellsId; int m_mergeSeparatorId; int m_mergeCellsId; bool m_createNodes; TQValueList > *m_tableTags; TQValueList > *m_tableFooterTags; TQValueList > *m_tableHeaderTags; TQValueList *m_tableFooterRows; TQValueList *m_tableHeaderRows; TQValueList *m_tableRows; Document* m_write; Tag *m_table; Tag *m_tfoot; Tag *m_thead; int newVariable; Tag *m_tbody; int m_colEditId; int m_rowEditId; int m_cellEditId; int m_col; int m_row; TDEPopupMenu *m_popup; KURL m_baseURL; const DTDStruct *m_dtd; TQValueList > *m_tableDataTags; TQValueList *m_tableDataRows; TQTable *m_dataTable; TQSpinBox *m_rowSpin; TQSpinBox *m_colSpin; int m_bLine, m_bCol, m_eLine, m_eCol; TQValueList m_nestedTables; int m_editChildId; virtual TQString indent( int n ); virtual TQString cellValue( int row, int col ); virtual TQString tableToString(); virtual TQString tagContent( Node * node ); virtual void deleteList( TQValueList * table ); virtual void deleteMatrix( TQValueList > * matrix ); }; #endif