1 #ifndef _KVI_TAL_LISTWIDGET_H_ 2 #define _KVI_TAL_LISTWIDGET_H_ 3 //============================================================================= 4 // 5 // File : KviTalListWidget.h 6 // Creation date : Mon May 05 2008 11:25:08 by Alessandro Carbone 7 // 8 // This file is part of the KVIrc IRC client distribution 9 // Copyright (C) 2008 Alessandro Carbone (elfonol at gmail dot com) 10 // 11 // This program is FREE software. You can redistribute it and/or 12 // modify it under the terms of the GNU General Public License 13 // as published by the Free Software Foundation; either version 2 14 // of the License, or (at your option) any later version. 15 // 16 // This program is distributed in the HOPE that it will be USEFUL, 17 // but WITHOUT ANY WARRANTY; without even the implied warranty of 18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 19 // See the GNU General Public License for more details. 20 // 21 // You should have received a copy of the GNU General Public License 22 // along with this program. If not, write to the Free Software Foundation, 23 // Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 24 // 25 //============================================================================= 26 27 #include "kvi_settings.h" 28 #include "KviTalIconAndRichTextItemDelegate.h" 29 30 #include <QListWidget> 31 32 class KviTalListWidgetItem; 33 34 class KVILIB_API KviTalListWidget : public QListWidget 35 { 36 Q_OBJECT 37 public: 38 KviTalListWidget(QWidget * pParent, QString name, Qt::WindowType f = Qt::Widget); KviTalListWidget(QWidget * pParent)39 KviTalListWidget(QWidget * pParent) 40 : QListWidget(pParent){}; 41 ~KviTalListWidget() = default; 42 43 protected: 44 bool event(QEvent * e) override; 45 bool eventFilter(QObject * o, QEvent * e) override; 46 signals: 47 void tipRequest(QListWidgetItem *, const QPoint &); 48 }; 49 50 class KVILIB_API KviTalListWidgetItem : public QListWidgetItem 51 { 52 public: KviTalListWidgetItem()53 KviTalListWidgetItem() 54 : QListWidgetItem(){}; KviTalListWidgetItem(KviTalListWidget * pParent)55 KviTalListWidgetItem(KviTalListWidget * pParent) 56 : QListWidgetItem(pParent){}; KviTalListWidgetItem(KviTalListWidget * pParent,QString & label)57 KviTalListWidgetItem(KviTalListWidget * pParent, QString & label) 58 : QListWidgetItem(label, pParent){}; listWidget()59 KviTalListWidget * listWidget() { return (KviTalListWidget *)QListWidgetItem::listWidget(); }; 60 ~KviTalListWidgetItem() = default; 61 }; 62 63 class KVILIB_API KviTalListWidgetText : public KviTalListWidgetItem 64 { 65 public: 66 KviTalListWidgetText(KviTalListWidget * listbox, const QString & text = QString()); 67 KviTalListWidgetText(const QString & text = QString()); 68 KviTalListWidgetText(const KviTalListWidgetText &) = delete; 69 ~KviTalListWidgetText(); 70 71 int height(const KviTalListWidget *) const; 72 int width(const KviTalListWidget *) const; 73 74 int rtti() const; 75 enum 76 { 77 RTTI = 1 78 }; 79 80 protected: 81 virtual void paint(QPainter *); 82 }; 83 84 class KVILIB_API KviTalListWidgetPixmap : public KviTalListWidgetItem 85 { 86 public: 87 KviTalListWidgetPixmap(KviTalListWidget * listbox, const QPixmap &); 88 KviTalListWidgetPixmap(const QPixmap &); 89 KviTalListWidgetPixmap(KviTalListWidget * listbox, const QPixmap &, const QString &); 90 KviTalListWidgetPixmap(const QPixmap &, const QString &); 91 KviTalListWidgetPixmap(const KviTalListWidgetPixmap &) = delete; 92 ~KviTalListWidgetPixmap(); 93 pixmap()94 const QPixmap * pixmap() const { return ± } 95 96 int height(const KviTalListWidget *) const; 97 int width(const KviTalListWidget *) const; 98 99 int rtti() const; 100 enum 101 { 102 RTTI = 2 103 }; 104 105 protected: 106 virtual void paint(QPainter *); 107 108 private: 109 QPixmap pm; 110 }; 111 112 #endif // _KVI_TAL_LISTWIDGET_H_ 113