KDevelop API Documentation

pcolorbutton.cpp

Go to the documentation of this file.
00001 /***************************************************************************
00002  *   Copyright (C) 2004 by Alexander Dymo                                  *
00003  *   cloudtemple@mskat.net                                                 *
00004  *                                                                         *
00005  *   This program is free software; you can redistribute it and/or modify  *
00006  *   it under the terms of the GNU Library General Public License as       *
00007  *   published by the Free Software Foundation; either version 2 of the    *
00008  *   License, or (at your option) any later version.                       *
00009  *                                                                         *
00010  *   This program is distributed in the hope that it will be useful,       *
00011  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00012  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
00013  *   GNU General Public License for more details.                          *
00014  *                                                                         *
00015  *   You should have received a copy of the GNU Library General Public     *
00016  *   License along with this program; if not, write to the                 *
00017  *   Free Software Foundation, Inc.,                                       *
00018  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
00019  ***************************************************************************/
00020 #include "pcolorbutton.h"
00021 
00022 #include <qlayout.h>
00023 #include <qpainter.h>
00024 
00025 #include <kcolorbutton.h>
00026 
00027 namespace PropertyLib {
00028 
00029 PColorButton::PColorButton(MultiProperty* property, QWidget* parent, const char* name)
00030     :PropertyWidget(property, parent, name)
00031 {
00032     QHBoxLayout *l = new QHBoxLayout(this, 0, 0);
00033     m_edit = new KColorButton(this);
00034     m_edit->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
00035     l->addWidget(m_edit);
00036 
00037     connect(m_edit, SIGNAL(changed(const QColor&)), this, SLOT(updateProperty(const QColor&)));
00038 }
00039 
00040 QVariant PColorButton::value() const
00041 {
00042     return QVariant(m_edit->color());
00043 }
00044 
00045 void PColorButton::drawViewer(QPainter* p, const QColorGroup& cg, const QRect& r, const QVariant& value)
00046 {
00047 /*    p->setBrush(value.toColor());
00048     p->setPen(Qt::NoPen);
00049     p->drawRect(r);*/
00050     p->setPen(Qt::NoPen);
00051     p->setBrush(cg.background());
00052     p->drawRect(r);
00053     
00054     p->setBrush(value.toColor());
00055     p->setPen(Qt::SolidLine);
00056     QRect r2(r);
00057     r2.setTopLeft(r.topLeft() + QPoint(5,5));
00058     r2.setBottomRight(r.bottomRight() - QPoint(5,5));
00059     p->drawRect(r2);
00060 }
00061 
00062 void PColorButton::setValue(const QVariant& value, bool emitChange)
00063 {
00064     disconnect(m_edit, SIGNAL(changed(const QColor&)), this, SLOT(updateProperty(const QColor&)));
00065     m_edit->setColor(value.toColor());
00066     connect(m_edit, SIGNAL(changed(const QColor&)), this, SLOT(updateProperty(const QColor&)));
00067     if (emitChange)
00068         emit propertyChanged(m_property, value);
00069 }
00070 
00071 void PColorButton::updateProperty(const QColor &color)
00072 {
00073     emit propertyChanged(m_property, value());
00074 }
00075 
00076 }
00077 
00078 #include "pcolorbutton.moc"
KDE Logo
This file is part of the documentation for KDevelop Version 3.1.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Mar 23 00:03:53 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003