#ifndef _CLASS_TABLEWIDGET_H_ #define _CLASS_TABLEWIDGET_H_ //============================================================================= // // File : KvsObject_tableWidget.h // Creation date : Wed 4 Feb 2009 09:30:05 CEST by Carbone Alessandro // // This file is part of the KVIrc irc client distribution // Copyright (C) 2000 Krzysztof Godlewski // Copyright (C) 2000-2010 Szymon Stefanek (pragma at kvirc dot net) // // 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; either version 2 // of the License, or (at your opinion) any later version. // // This program is distributed in the HOPE that it will be USEFUL, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. // See the GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, write to the Free Software Foundation, // Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. // //============================================================================= #include "KvsObject_widget.h" #include "object_macros.h" #include "KviKvsRunTimeContext.h" #include #include #include #include class KvsObject_tableWidget; class KviCellItemDelegate : public QItemDelegate { public: KviCellItemDelegate(QAbstractItemView * pWidget = 0,KvsObject_tableWidget *pParent=0); ~KviCellItemDelegate(); protected: KvsObject_tableWidget *m_pParentScript; public: QSize sizeHint(const QStyleOptionViewItem & option, const QModelIndex & index) const; void paint(QPainter * pPainter, const QStyleOptionViewItem & option, const QModelIndex & index) const; }; class KvsObject_tableWidget : public KvsObject_widget { Q_OBJECT public: KVSO_DECLARE_OBJECT(KvsObject_tableWidget) public: QWidget * widget() { return (QWidget *)object(); }; bool paint(QPainter * pPainter, const QStyleOptionViewItem & option, const QModelIndex & index); protected: QSqlQueryModel * model; KviKvsRunTimeContext * m_pContext; KviCellItemDelegate * m_pCellItemDelegate; protected: virtual bool init(KviKvsRunTimeContext * pContext,KviKvsVariantList *pParams); bool setText(KviKvsObjectFunctionCall *c); bool setForeground(KviKvsObjectFunctionCall *c); bool setNumber(KviKvsObjectFunctionCall *c); bool setToolTip(KviKvsObjectFunctionCall *c); bool text(KviKvsObjectFunctionCall *c); bool setIcon(KviKvsObjectFunctionCall *c); bool setItemFlags(KviKvsObjectFunctionCall *c); bool setColumnCount(KviKvsObjectFunctionCall *c); bool columnCount(KviKvsObjectFunctionCall *c); bool setRowCount(KviKvsObjectFunctionCall *c); bool currentRow(KviKvsObjectFunctionCall *c); bool currentColumn(KviKvsObjectFunctionCall *c); bool itemRowColAt(KviKvsObjectFunctionCall *c); bool rowCount(KviKvsObjectFunctionCall *c); bool insertRow(KviKvsObjectFunctionCall *c); bool insertColumn(KviKvsObjectFunctionCall *c); bool removeRow(KviKvsObjectFunctionCall *c); bool removeColumn(KviKvsObjectFunctionCall *c); bool setHorizontalHeaderLabels(KviKvsObjectFunctionCall *c); bool setVerticalHeaderLabels(KviKvsObjectFunctionCall *c); bool setCellWidget(KviKvsObjectFunctionCall *c); bool hideHorizontalHeader(KviKvsObjectFunctionCall *c); bool showHorizontalHeader(KviKvsObjectFunctionCall *c); bool hideVerticalHeader(KviKvsObjectFunctionCall *c); bool showVerticalHeader(KviKvsObjectFunctionCall *c); bool clear(KviKvsObjectFunctionCall *c); bool itemEnteredEvent(KviKvsObjectFunctionCall *c); bool cellActivatedEvent(KviKvsObjectFunctionCall *c); bool cellDoubleClickedEvent(KviKvsObjectFunctionCall *c); bool hideColumn(KviKvsObjectFunctionCall *c); bool showColumn(KviKvsObjectFunctionCall *c); bool hideRow(KviKvsObjectFunctionCall *c); bool showRow(KviKvsObjectFunctionCall *c); bool resizeRowsToContents(KviKvsObjectFunctionCall *c); bool resizeColumnsToContents(KviKvsObjectFunctionCall *c); protected slots: void slotItemEntered(QTableWidgetItem *); void cellActivated(int iRow,int iCol); void cellDoubleClicked(int iRow,int iCol); }; #endif // !_CLASS_TABLEWIDGET_H_