/*
 *   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 "kbfxpixmaplabel.h"

KbfxPixmapLabel::KbfxPixmapLabel ( TQWidget *parent, const char *name, WFlags fl )
		: TQLabel ( parent, name, fl )
{
	// setFrameShape(TQLabel::WinPanel);
	// setFrameShadow(TQLabel::Sunken);
	setFrameShape ( TQLabel::LineEditPanel );
	setFrameShadow ( TQLabel::Plain );
	setScaledContents ( false );
	setAlignment ( int ( TQLabel::WordBreak | TQLabel::AlignCenter ) );
	setMouseTracking ( true );
}

KbfxPixmapLabel::~KbfxPixmapLabel()
{
}

/* normalize label */
void KbfxPixmapLabel::normalize ()
{
	setFrameShape ( TQLabel::NoFrame );
	setFrameShadow ( TQLabel::Plain );
	setScaledContents ( false );
	setAlignment ( int ( TQLabel::WordBreak | TQLabel::AlignCenter ) );
}

/* processing drag events over label */
void KbfxPixmapLabel::dragEnterEvent ( TQDragEnterEvent *mouseDragEnterEvent )
{
	kdDebug() << "Accepting drag..." << endl;
	mouseDragEnterEvent->accept ( TQTextDrag::canDecode ( mouseDragEnterEvent ) );
}

/* processing drop events over label */
void KbfxPixmapLabel::dropEvent ( TQDropEvent *mouseDropEvent )
{
	TQString text;

	if ( TQTextDrag::decode ( mouseDropEvent,text ) )
	{
		if ( text.startsWith ( "file://" ) ) text.remove ( "file://" );

		kdDebug() << "Dropping drag..." << text << endl;

		emit targetDrop ( text );
	}
}

/* processing mouse click events over label */
void KbfxPixmapLabel::mousePressEvent ( TQMouseEvent * e )
{
	e->accept();
	ButtonState _btn = e->button();
	kdDebug() << "Mouse Clicked: " << _btn << endl;
	emit clicked();
	emit mouseClicked ();
	emit mouseClicked ( _btn );
}

/* processing mouse double click events over label */
void KbfxPixmapLabel::mouseDoubleClickEvent ( TQMouseEvent * e )
{
	e->accept();
	ButtonState _btn = e->button();
	kdDebug() << "Mouse Double Clicked: " << _btn << endl;
	emit mouseDoubleClicked ();
	emit mouseDoubleClicked ( _btn );
}

#include "kbfxpixmaplabel.moc"
