Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
kbfx/src/kbfxplasmaindexitem.cpp

183 righe
3.7 KiB

/*
* Copyright (C) 2006
* Siraj Razick <siraj@kdemail.net>
* PhobosK <phobosk@mail.kbfx.net>
* see Also AUTHORS
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Library General Public License version 2 as
* published by the Free Software Foundation
*
* 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 Library 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 "kbfxplasmaindexitem.h"
#include <kdesktopfile.h>
#include <tdeapplication.h>
#include <kbfxconfig.h>
KbfxPlasmaIndexItem::KbfxPlasmaIndexItem ( TQCanvasPixmapArray * a, TQCanvas * canvas ) :KbfxPlasmaCanvasAbstractItem ( a,canvas )
{
//this->setItemMode (1);
setAnimated ( false );
setCurrent ( false );
m_isSelected = false;
TQPixmap * _img = this->image ( 0 );
m_height =_img->height();
m_width= _img->width();
}
KbfxPlasmaIndexItem::~KbfxPlasmaIndexItem()
{}
void
KbfxPlasmaIndexItem::setIcon ( TQString str )
{
TDEIconLoader *iconload = TDEGlobal::iconLoader ();
m_iconPath = iconload->iconPath ( str, TDEIcon::Desktop, false );
m_icon.load ( m_iconPath );
}
void
KbfxPlasmaIndexItem::setText ( TQString text )
{
m_text = text;
}
void
KbfxPlasmaIndexItem::setSelected ( bool stat )
{
m_isSelected = stat;
}
bool
KbfxPlasmaIndexItem::selected()
{
return m_isSelected;
}
void
KbfxPlasmaIndexItem::drawContent ( TQPainter * pe )
{
if ( this->isCurrent() || m_isSelected )
{
this->setFrame ( 1 );
}
else
{
this->setFrame ( 0 );
}
TQCanvasPixmap *cp = this->image ( this->frame () );
m_height = cp->height();
m_width = cp->width();
pe->drawPixmap ( this->boundingRect (), *cp );
TQRect r ( ( int ) x(), ( int ) y(), m_width, m_height );
TQRect textRect ( m_height+1, ( int ) y(), m_width,m_height );
TQFont * _font_plugin = new TQFont ( ConfigInit().m_pluginNameFont );
TQFont * _font_index = new TQFont ( ConfigInit().m_fontIndexFont );
if ( this->type() != KbfxPlasmaIndexItem::SEPARATOR )
{
pe->setFont ( *_font_index );
pe->setPen ( ConfigInit().m_fontIndexColor );
}
else
{
pe->setFont ( *_font_plugin );
pe->setPen ( ConfigInit().m_pluginNameColor);
}
pe->drawText ( textRect, TQt::AlignVCenter | TQt::AlignLeft ,TQString ( m_text ), -1, &r );
pe->drawPixmap ( TQRect ( ( int ) x() +5 , ( int ) y() +6,m_height-12,m_height-12 ),m_icon );
delete _font_plugin;
delete _font_index;
}
int
KbfxPlasmaIndexItem::height()
{
return m_height;
}
void
KbfxPlasmaIndexItem::setId ( int id )
{
m_id = id;
}
void
KbfxPlasmaIndexItem::draw ( TQPainter & p )
{
drawContent ( &p );
}
void
KbfxPlasmaIndexItem::setLabelText ( TQString str )
{
TQFont * _font = new TQFont(ConfigInit().m_fontIndexFont);
TQFontMetrics fm ( *_font );
int _commentWidth = fm.width ( str+"..." );
int _strLen = str.length();
int _margin = height();;
if ( _commentWidth > ( m_width -_margin ) )
{
for ( int i = 0; i < _strLen /*&& ( fm.width(str+"...") < width()-40 )*/ ;i++ )
{
str.truncate ( str.length()-2 );
if ( fm.width ( str+"..." ) < m_width-_margin )
break;
}
str+="...";
}
setText ( str );
}
TQString
KbfxPlasmaIndexItem::belongsTo()
{
return m_parent;
}
void
KbfxPlasmaIndexItem::setBelongsTo ( TQString parent )
{
m_parent = parent;
}
void KbfxPlasmaIndexItem::mousePressEvent ( TQMouseEvent * e )
{
e = e;
}
#include "kbfxplasmaindexitem.moc"