//****************************************************************************
//Copyright (C) 2005-2006 Beijing BlueDJ Technology Co.,Ltd. All rights reserved.

//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 option) 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 (in the file LICENSE.GPL); if not, write to the Free Software
//Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

//Please visit http://www.bluedj.com for more infomation about us.
//Contact us at ggwizard@gmail.com or darkdong@gmail.com.
//****************************************************************************/

#include "DJWidget.h"

DJWidget::DJWidget( QWidget * parent, BKMode bkmode )
	: QWidget( parent ),m_mode(bkmode)
{
}
DJWidget::~DJWidget()
{
}
void DJWidget::setPosColors( const QList<DJPosColor>& posColors )
{
	m_posColors	= posColors;
}
void DJWidget::setPixmap( const QPixmap& pixmap )
{
	m_pixmap	= pixmap;
}
void DJWidget::paintEvent( QPaintEvent *event )
{
	switch( m_mode ) {
#ifndef Q_WS_MAC		
	case LinearGradient: {
		QLinearGradient linearGradient( rect().topLeft(), rect().topRight() );
		foreach( DJPosColor posColor, m_posColors ) {
			qreal pos	= posColor.pos();
            const QColor &color	= posColor.color();
            linearGradient.setColorAt( pos, color );
		}
    	QPainter painter(this);
		painter.fillRect( rect(), linearGradient );
		QPalette pal = palette();
		pal.setBrush(QPalette::Background,linearGradient);
		setPalette(pal);
		break;
	}
#endif		
	case Pixmap: {
#ifndef Q_WS_MAC	
		QPalette pal = palette();
		pal.setBrush(QPalette::Background, m_pixmap );
		setPalette(pal);
#else
		QPainter painter(this);
		painter.drawPixmap( rect(), m_pixmap );
#endif
		break;
	}
	default:
		break;
	}
	QWidget::paintEvent( event );
}



