//============================================================================= // // File : kvi_tal_listbox.cpp // Creation date : Mon Jan 22 2007 11:25:08 by Szymon Stefanek // // This file is part of the KVirc irc client distribution // Copyright (C) 2007 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. // //============================================================================= #define __KVILIB__ #include "kvi_tal_listbox.h" #ifdef COMPILE_USE_QT4 #include #include #include KviTalListBox::KviTalListBox(TQWidget * pParent,TQt::WFlags f) : Q3ListBox(pParent,0,f) { connect(this,TQT_SIGNAL(highlighted(Q3ListBoxItem *)),this,TQT_SLOT(redirect_highlighted(Q3ListBoxItem *))); connect(this,TQT_SIGNAL(selected(Q3ListBoxItem *)),this,TQT_SLOT(redirect_selected(Q3ListBoxItem *))); connect(this,TQT_SIGNAL(selectionChanged(Q3ListBoxItem *)),this,TQT_SLOT(redirect_selectionChanged(Q3ListBoxItem *))); connect(this,TQT_SIGNAL(currentChanged(Q3ListBoxItem *)),this,TQT_SLOT(redirect_currentChanged(Q3ListBoxItem *))); connect(this,TQT_SIGNAL(clicked(Q3ListBoxItem *)),this,TQT_SLOT(redirect_clicked(Q3ListBoxItem *))); connect(this,TQT_SIGNAL(clicked(Q3ListBoxItem *,const TQPoint &)),this,TQT_SLOT(redirect_clicked(Q3ListBoxItem *,const TQPoint &))); connect(this,TQT_SIGNAL(pressed(Q3ListBoxItem *)),this,TQT_SLOT(redirect_pressed(Q3ListBoxItem *))); connect(this,TQT_SIGNAL(pressed(Q3ListBoxItem *,const TQPoint &)),this,TQT_SLOT(redirect_pressed(Q3ListBoxItem *,const TQPoint &))); connect(this,TQT_SIGNAL(doubleClicked(Q3ListBoxItem *)),this,TQT_SLOT(redirect_doubleClicked(Q3ListBoxItem *))); connect(this,TQT_SIGNAL(returnPressed(Q3ListBoxItem *)),this,TQT_SLOT(redirect_returnPressed(Q3ListBoxItem *))); connect(this,TQT_SIGNAL(rightButtonClicked(Q3ListBoxItem *, const TQPoint &)),this,TQT_SLOT(redirect_rightButtonClicked(Q3ListBoxItem *, const TQPoint &))); connect(this,TQT_SIGNAL(rightButtonPressed(Q3ListBoxItem *, const TQPoint &)),this,TQT_SLOT(redirect_rightButtonPressed(Q3ListBoxItem *, const TQPoint &))); connect(this,TQT_SIGNAL(mouseButtonPressed(int,Q3ListBoxItem *,const TQPoint &)),this,TQT_SLOT(redirect_mouseButtonPressed(int,Q3ListBoxItem *,const TQPoint &))); connect(this,TQT_SIGNAL(mouseButtonClicked(int,Q3ListBoxItem *,const TQPoint &)),this,TQT_SLOT(redirect_mouseButtonClicked(int,Q3ListBoxItem *,const TQPoint &))); connect(this,TQT_SIGNAL(contextMenuRequested(Q3ListBoxItem *,const TQPoint &)),this,TQT_SLOT(redirect_contextMenuRequested(Q3ListBoxItem *,const TQPoint &))); connect(this,TQT_SIGNAL(onItem(Q3ListBoxItem *)),this,TQT_SLOT(redirect_onItem(Q3ListBoxItem *))); } void KviTalListBox::redirect_highlighted(Q3ListBoxItem *item) { emit highlighted((KviTalListBoxItem *)item); } void KviTalListBox::redirect_selected(Q3ListBoxItem *item) { emit selected((KviTalListBoxItem *)item); } void KviTalListBox::redirect_selectionChanged(Q3ListBoxItem * item) { emit selectionChanged((KviTalListBoxItem *)item); } void KviTalListBox::redirect_currentChanged(Q3ListBoxItem * item) { emit currentChanged((KviTalListBoxItem *)item); } void KviTalListBox::redirect_clicked(Q3ListBoxItem * item) { emit clicked((KviTalListBoxItem *)item); } void KviTalListBox::redirect_clicked(Q3ListBoxItem * item,const TQPoint & pnt) { emit clicked((KviTalListBoxItem *)item,pnt); } void KviTalListBox::redirect_pressed(Q3ListBoxItem * item) { emit pressed((KviTalListBoxItem *)item); } void KviTalListBox::redirect_pressed(Q3ListBoxItem * item,const TQPoint & pnt) { emit pressed((KviTalListBoxItem *)item,pnt); } void KviTalListBox::redirect_doubleClicked(Q3ListBoxItem * item) { emit doubleClicked((KviTalListBoxItem *)item); } void KviTalListBox::redirect_returnPressed(Q3ListBoxItem * item) { emit returnPressed((KviTalListBoxItem *)item); } void KviTalListBox::redirect_rightButtonClicked(Q3ListBoxItem * item, const TQPoint &pnt) { emit rightButtonClicked((KviTalListBoxItem *)item,pnt); } void KviTalListBox::redirect_rightButtonPressed(Q3ListBoxItem * item, const TQPoint &pnt) { emit rightButtonPressed((KviTalListBoxItem *)item,pnt); } void KviTalListBox::redirect_mouseButtonPressed(int button,Q3ListBoxItem * item,const TQPoint & pos) { emit mouseButtonPressed(button,(KviTalListBoxItem *)item,pos); } void KviTalListBox::redirect_mouseButtonClicked(int button,Q3ListBoxItem * item,const TQPoint & pos) { emit mouseButtonClicked(button,(KviTalListBoxItem *)item,pos); } void KviTalListBox::redirect_contextMenuRequested(Q3ListBoxItem * item,const TQPoint & pos) { emit contextMenuRequested((KviTalListBoxItem *)item,pos); } void KviTalListBox::redirect_onItem(Q3ListBoxItem * i) { emit onItem((KviTalListBoxItem *)i); } KviTalListBoxText::KviTalListBoxText(KviTalListBox *listbox, const TQString &text) :KviTalListBoxItem(listbox) { setText(text); } KviTalListBoxText::KviTalListBoxText(const TQString &text) :KviTalListBoxItem() { setText(text); } KviTalListBoxText::KviTalListBoxText(KviTalListBox* listbox, const TQString &text, KviTalListBoxItem *after) : KviTalListBoxItem(listbox, after) { setText(text); } KviTalListBoxText::~KviTalListBoxText() { } void KviTalListBoxText::paint(TQPainter *painter) { int itemHeight = height(listBox()); TQFontMetrics fm = painter->fontMetrics(); int yPos = ((itemHeight - fm.height()) / 2) + fm.ascent(); painter->drawText(3, yPos, text()); } int KviTalListBoxText::height(const KviTalListBox* lb) const { int h = lb ? lb->fontMetrics().lineSpacing() + 2 : 0; return qMax(h, TQApplication::globalStrut().height()); } int KviTalListBoxText::width(const KviTalListBox* lb) const { int w = lb ? lb->fontMetrics().width(text()) + 6 : 0; return qMax(w, TQApplication::globalStrut().width()); } int KviTalListBoxText::rtti() const { return RTTI; } KviTalListBoxPixmap::KviTalListBoxPixmap(KviTalListBox* listbox, const TQPixmap &pixmap) : KviTalListBoxItem(listbox) { pm = pixmap; } KviTalListBoxPixmap::KviTalListBoxPixmap(const TQPixmap &pixmap) : KviTalListBoxItem() { pm = pixmap; } KviTalListBoxPixmap::KviTalListBoxPixmap(KviTalListBox* listbox, const TQPixmap &pixmap, KviTalListBoxItem *after) : KviTalListBoxItem(listbox, after) { pm = pixmap; } KviTalListBoxPixmap::~KviTalListBoxPixmap() { } KviTalListBoxPixmap::KviTalListBoxPixmap(KviTalListBox* listbox, const TQPixmap &pix, const TQString& text) : KviTalListBoxItem(listbox) { pm = pix; setText(text); } KviTalListBoxPixmap::KviTalListBoxPixmap(const TQPixmap & pix, const TQString& text) : KviTalListBoxItem() { pm = pix; setText(text); } KviTalListBoxPixmap::KviTalListBoxPixmap(KviTalListBox* listbox, const TQPixmap & pix, const TQString& text, KviTalListBoxItem *after) : KviTalListBoxItem(listbox, after) { pm = pix; setText(text); } void KviTalListBoxPixmap::paint(TQPainter *painter) { int itemHeight = height(listBox()); int yPos; const TQPixmap *pm = pixmap(); if (pm && ! pm->isNull()) { yPos = (itemHeight - pm->height()) / 2; painter->drawPixmap(3, yPos, *pm); } if (!text().isEmpty()) { TQFontMetrics fm = painter->fontMetrics(); yPos = ((itemHeight - fm.height()) / 2) + fm.ascent(); painter->drawText(pm->width() + 5, yPos, text()); } } int KviTalListBoxPixmap::height(const KviTalListBox* lb) const { int h; if (text().isEmpty()) h = pm.height(); else h = qMax(pm.height(), lb->fontMetrics().lineSpacing() + 2); return qMax(h, TQApplication::globalStrut().height()); } int KviTalListBoxPixmap::width(const KviTalListBox* lb) const { if (text().isEmpty()) return qMax(pm.width() + 6, TQApplication::globalStrut().width()); return qMax(pm.width() + lb->fontMetrics().width(text()) + 6, TQApplication::globalStrut().width()); } int KviTalListBoxPixmap::rtti() const { return RTTI; } #include "kvi_tal_listbox_qt4.moc" #else #include #include #include KviTalListBox::KviTalListBox(TQWidget * pParent,TQt::WFlags f) : TQListBox(pParent,0,f) { connect(this,TQT_SIGNAL(highlighted(TQListBoxItem *)),this,TQT_SLOT(redirect_highlighted(TQListBoxItem *))); connect(this,TQT_SIGNAL(selected(TQListBoxItem *)),this,TQT_SLOT(redirect_selected(TQListBoxItem *))); connect(this,TQT_SIGNAL(selectionChanged(TQListBoxItem *)),this,TQT_SLOT(redirect_selectionChanged(TQListBoxItem *))); connect(this,TQT_SIGNAL(currentChanged(TQListBoxItem *)),this,TQT_SLOT(redirect_currentChanged(TQListBoxItem *))); connect(this,TQT_SIGNAL(clicked(TQListBoxItem *)),this,TQT_SLOT(redirect_clicked(TQListBoxItem *))); connect(this,TQT_SIGNAL(clicked(TQListBoxItem *,const TQPoint &)),this,TQT_SLOT(redirect_clicked(TQListBoxItem *,const TQPoint &))); connect(this,TQT_SIGNAL(pressed(TQListBoxItem *)),this,TQT_SLOT(redirect_pressed(TQListBoxItem *))); connect(this,TQT_SIGNAL(pressed(TQListBoxItem *,const TQPoint &)),this,TQT_SLOT(redirect_pressed(TQListBoxItem *,const TQPoint &))); connect(this,TQT_SIGNAL(doubleClicked(TQListBoxItem *)),this,TQT_SLOT(redirect_doubleClicked(TQListBoxItem *))); connect(this,TQT_SIGNAL(returnPressed(TQListBoxItem *)),this,TQT_SLOT(redirect_returnPressed(TQListBoxItem *))); connect(this,TQT_SIGNAL(rightButtonClicked(TQListBoxItem *, const TQPoint &)),this,TQT_SLOT(redirect_rightButtonClicked(TQListBoxItem *, const TQPoint &))); connect(this,TQT_SIGNAL(rightButtonPressed(TQListBoxItem *, const TQPoint &)),this,TQT_SLOT(redirect_rightButtonPressed(TQListBoxItem *, const TQPoint &))); connect(this,TQT_SIGNAL(mouseButtonPressed(int,TQListBoxItem *,const TQPoint &)),this,TQT_SLOT(redirect_mouseButtonPressed(int,TQListBoxItem *,const TQPoint &))); connect(this,TQT_SIGNAL(mouseButtonClicked(int,TQListBoxItem *,const TQPoint &)),this,TQT_SLOT(redirect_mouseButtonClicked(int,TQListBoxItem *,const TQPoint &))); connect(this,TQT_SIGNAL(contextMenuRequested(TQListBoxItem *,const TQPoint &)),this,TQT_SLOT(redirect_contextMenuRequested(TQListBoxItem *,const TQPoint &))); connect(this,TQT_SIGNAL(onItem(TQListBoxItem *)),this,TQT_SLOT(redirect_onItem(TQListBoxItem *))); } void KviTalListBox::redirect_highlighted(TQListBoxItem *item) { emit highlighted((KviTalListBoxItem *)item); } void KviTalListBox::redirect_selected(TQListBoxItem *item) { emit selected((KviTalListBoxItem *)item); } void KviTalListBox::redirect_selectionChanged(TQListBoxItem * item) { emit selectionChanged((KviTalListBoxItem *)item); } void KviTalListBox::redirect_currentChanged(TQListBoxItem * item) { emit currentChanged((KviTalListBoxItem *)item); } void KviTalListBox::redirect_clicked(TQListBoxItem * item) { emit clicked((KviTalListBoxItem *)item); } void KviTalListBox::redirect_clicked(TQListBoxItem * item,const TQPoint & pnt) { emit clicked((KviTalListBoxItem *)item,pnt); } void KviTalListBox::redirect_pressed(TQListBoxItem * item) { emit pressed((KviTalListBoxItem *)item); } void KviTalListBox::redirect_pressed(TQListBoxItem * item,const TQPoint & pnt) { emit pressed((KviTalListBoxItem *)item,pnt); } void KviTalListBox::redirect_doubleClicked(TQListBoxItem * item) { emit doubleClicked((KviTalListBoxItem *)item); } void KviTalListBox::redirect_returnPressed(TQListBoxItem * item) { emit returnPressed((KviTalListBoxItem *)item); } void KviTalListBox::redirect_rightButtonClicked(TQListBoxItem * item, const TQPoint &pnt) { emit rightButtonClicked((KviTalListBoxItem *)item,pnt); } void KviTalListBox::redirect_rightButtonPressed(TQListBoxItem * item, const TQPoint &pnt) { emit rightButtonPressed((KviTalListBoxItem *)item,pnt); } void KviTalListBox::redirect_mouseButtonPressed(int button,TQListBoxItem * item,const TQPoint & pos) { emit mouseButtonPressed(button,(KviTalListBoxItem *)item,pos); } void KviTalListBox::redirect_mouseButtonClicked(int button,TQListBoxItem * item,const TQPoint & pos) { emit mouseButtonClicked(button,(KviTalListBoxItem *)item,pos); } void KviTalListBox::redirect_contextMenuRequested(TQListBoxItem * item,const TQPoint & pos) { emit contextMenuRequested((KviTalListBoxItem *)item,pos); } void KviTalListBox::redirect_onItem(TQListBoxItem * i) { emit onItem((KviTalListBoxItem *)i); } KviTalListBoxText::KviTalListBoxText( KviTalListBox *listbox, const TQString &text ) :KviTalListBoxItem( listbox ) { setText( text ); } KviTalListBoxText::KviTalListBoxText( const TQString &text ) :KviTalListBoxItem() { setText( text ); } KviTalListBoxText::KviTalListBoxText( KviTalListBox* listbox, const TQString &text, KviTalListBoxItem *after ) : KviTalListBoxItem( listbox, after ) { setText( text ); } KviTalListBoxText::~KviTalListBoxText() { } void KviTalListBoxText::paint( TQPainter *painter ) { int itemHeight = height( listBox() ); TQFontMetrics fm = painter->fontMetrics(); int yPos = ( ( itemHeight - fm.height() ) / 2 ) + fm.ascent(); painter->drawText( 3, yPos, text() ); } int KviTalListBoxText::height( const KviTalListBox* lb ) const { int h = lb ? lb->fontMetrics().lineSpacing() + 2 : 0; return TQMAX( h, TQApplication::globalStrut().height() ); } int KviTalListBoxText::width( const KviTalListBox* lb ) const { int w = lb ? lb->fontMetrics().width( text() ) + 6 : 0; return TQMAX( w, TQApplication::globalStrut().width() ); } int KviTalListBoxText::RTTI = 1; int KviTalListBoxText::rtti() const { return RTTI; } KviTalListBoxPixmap::KviTalListBoxPixmap( KviTalListBox* listbox, const TQPixmap &pixmap ) : KviTalListBoxItem( listbox ) { pm = pixmap; } KviTalListBoxPixmap::KviTalListBoxPixmap( const TQPixmap &pixmap ) : KviTalListBoxItem() { pm = pixmap; } KviTalListBoxPixmap::KviTalListBoxPixmap( KviTalListBox* listbox, const TQPixmap &pixmap, KviTalListBoxItem *after ) : KviTalListBoxItem( listbox, after ) { pm = pixmap; } KviTalListBoxPixmap::~KviTalListBoxPixmap() { } KviTalListBoxPixmap::KviTalListBoxPixmap( KviTalListBox* listbox, const TQPixmap &pix, const TQString& text) : KviTalListBoxItem( listbox ) { pm = pix; setText( text ); } KviTalListBoxPixmap::KviTalListBoxPixmap( const TQPixmap & pix, const TQString& text) : KviTalListBoxItem() { pm = pix; setText( text ); } KviTalListBoxPixmap::KviTalListBoxPixmap( KviTalListBox* listbox, const TQPixmap & pix, const TQString& text, KviTalListBoxItem *after ) : KviTalListBoxItem( listbox, after ) { pm = pix; setText( text ); } void KviTalListBoxPixmap::paint( TQPainter *painter ) { int itemHeight = height( listBox() ); int yPos; const TQPixmap *pm = pixmap(); if ( pm && ! pm->isNull() ) { yPos = ( itemHeight - pm->height() ) / 2; painter->drawPixmap( 3, yPos, *pm); } if ( !text().isEmpty() ) { TQFontMetrics fm = painter->fontMetrics(); yPos = ( ( itemHeight - fm.height() ) / 2 ) + fm.ascent(); painter->drawText( pm->width() + 5, yPos, text() ); } } int KviTalListBoxPixmap::height( const KviTalListBox* lb ) const { int h; if ( text().isEmpty() ) h = pm.height(); else h = TQMAX( pm.height(), lb->fontMetrics().lineSpacing() + 2 ); return TQMAX( h, TQApplication::globalStrut().height() ); } int KviTalListBoxPixmap::width( const KviTalListBox* lb ) const { if ( text().isEmpty() ) return TQMAX( pm.width() + 6, TQApplication::globalStrut().width() ); return TQMAX( pm.width() + lb->fontMetrics().width( text() ) + 6, TQApplication::globalStrut().width() ); } int KviTalListBoxPixmap::RTTI = 2; int KviTalListBoxPixmap::rtti() const { return RTTI; } #include "kvi_tal_listbox_qt3.moc" #endif