summaryrefslogtreecommitdiffstats
path: root/kdeui/kdualcolorbutton.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kdeui/kdualcolorbutton.cpp')
-rw-r--r--kdeui/kdualcolorbutton.cpp283
1 files changed, 0 insertions, 283 deletions
diff --git a/kdeui/kdualcolorbutton.cpp b/kdeui/kdualcolorbutton.cpp
deleted file mode 100644
index a02c2ead4..000000000
--- a/kdeui/kdualcolorbutton.cpp
+++ /dev/null
@@ -1,283 +0,0 @@
-/* This file is part of the KDE libraries
- Copyright (C) 1999 Daniel M. Duley <mosfet@kde.org>
-
- This library 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 library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include "kdualcolorbutton.h"
-#include "kcolordialog.h"
-#include "kcolordrag.h"
-#include "dcolorarrow.xbm"
-#include "dcolorreset.xpm"
-#include <kglobalsettings.h>
-#include <tqpainter.h>
-#include <tqbitmap.h>
-#include <tqdrawutil.h>
-
-class KDualColorButton::KDualColorPrivate
-{
-public:
- TQWidget* dialogParent;
-};
-
-KDualColorButton::KDualColorButton(TQWidget *parent, const char *name, TQWidget* dialogParent)
- : TQWidget(parent, name),
- d (new KDualColorPrivate)
-{
- if (!dialogParent && parent) {
- d->dialogParent = parent;
- } else {
- d->dialogParent = dialogParent;
- }
-
- arrowBitmap = new TQBitmap(dcolorarrow_width, dcolorarrow_height,
- (const unsigned char *)dcolorarrow_bits, true);
- arrowBitmap->setMask(*arrowBitmap); // heh
- resetPixmap = new TQPixmap((const char **)dcolorreset_xpm);
- fg = TQBrush(Qt::black, Qt::SolidPattern);
- bg = TQBrush(Qt::white, Qt::SolidPattern);
- curColor = Foreground;
- dragFlag = false;
- miniCtlFlag = false;
- if(tqsizeHint().isValid())
- setMinimumSize(tqsizeHint());
- setAcceptDrops(true);
-}
-
-KDualColorButton::KDualColorButton(const TQColor &fgColor, const TQColor &bgColor,
- TQWidget *parent, const char *name, TQWidget* dialogParent)
- : TQWidget(parent, name),
- d (new KDualColorPrivate)
-{
- d->dialogParent = dialogParent;
-
- arrowBitmap = new TQBitmap(dcolorarrow_width, dcolorarrow_height,
- (const unsigned char *)dcolorarrow_bits, true);
- arrowBitmap->setMask(*arrowBitmap);
- resetPixmap = new TQPixmap((const char **)dcolorreset_xpm);
- fg = TQBrush(fgColor, Qt::SolidPattern);
- bg = TQBrush(bgColor, Qt::SolidPattern);
- curColor = Foreground;
- dragFlag = false;
- miniCtlFlag = false;
- if(tqsizeHint().isValid())
- setMinimumSize(tqsizeHint());
- setAcceptDrops(true);
-}
-
-KDualColorButton::~KDualColorButton()
-{
- delete d;
- delete arrowBitmap;
- delete resetPixmap;
-}
-
-TQColor KDualColorButton::foreground() const
-{
- return fg.color();
-}
-
-TQColor KDualColorButton::background() const
-{
- return bg.color();
-}
-
-KDualColorButton::DualColor KDualColorButton::current() const
-{
- return curColor;
-}
-
-TQColor KDualColorButton::currentColor() const
-{
- return (curColor == Background ? bg.color() : fg.color());
-}
-
-TQSize KDualColorButton::tqsizeHint() const
-{
- return TQSize(34, 34);
-}
-
-void KDualColorButton::setForeground(const TQColor &c)
-{
- fg = TQBrush(c, Qt::SolidPattern);
- tqrepaint(false);
-
- emit fgChanged(fg.color());
-}
-
-void KDualColorButton::setBackground(const TQColor &c)
-{
- bg = TQBrush(c, Qt::SolidPattern);
- tqrepaint(false);
-
- emit bgChanged(bg.color());
-}
-
-void KDualColorButton::setCurrentColor(const TQColor &c)
-{
- if(curColor == Background)
- bg = TQBrush(c, Qt::SolidPattern);
- else
- fg = TQBrush(c, Qt::SolidPattern);
- tqrepaint(false);
-}
-
-void KDualColorButton::setCurrent(DualColor s)
-{
- curColor = s;
- tqrepaint(false);
-}
-
-void KDualColorButton::metrics(TQRect &fgRect, TQRect &bgRect)
-{
- fgRect = TQRect(0, 0, width()-14, height()-14);
- bgRect = TQRect(14, 14, width()-14, height()-14);
-}
-
-void KDualColorButton::paintEvent(TQPaintEvent *)
-{
- TQRect fgRect, bgRect;
- TQPainter p(this);
-
- metrics(fgRect, bgRect);
- TQBrush defBrush = tqcolorGroup().brush(TQColorGroup::Button);
-
- qDrawShadeRect(&p, bgRect, tqcolorGroup(), curColor == Background, 2, 0,
- isEnabled() ? &bg : &defBrush);
- qDrawShadeRect(&p, fgRect, tqcolorGroup(), curColor == Foreground, 2, 0,
- isEnabled() ? &fg : &defBrush);
- p.setPen(tqcolorGroup().shadow());
- p.drawPixmap(fgRect.right()+2, 0, *arrowBitmap);
- p.drawPixmap(0, fgRect.bottom()+2, *resetPixmap);
-
-}
-
-void KDualColorButton::dragEnterEvent(TQDragEnterEvent *ev)
-{
- ev->accept(isEnabled() && KColorDrag::canDecode(ev));
-}
-
-void KDualColorButton::dropEvent(TQDropEvent *ev)
-{
- TQColor c;
- if(KColorDrag::decode(ev, c)){
- if(curColor == Foreground){
- fg.setColor(c);
- emit fgChanged(c);
- }
- else{
- bg.setColor(c);
- emit(bgChanged(c));
- }
- tqrepaint(false);
- }
-}
-
-void KDualColorButton::mousePressEvent(TQMouseEvent *ev)
-{
- TQRect fgRect, bgRect;
- metrics(fgRect, bgRect);
- mPos = ev->pos();
- tmpColor = curColor;
- dragFlag = false;
- if(fgRect.contains(mPos)){
- curColor = Foreground;
- miniCtlFlag = false;
- }
- else if(bgRect.contains(mPos)){
- curColor = Background;
- miniCtlFlag = false;
- }
- else if(ev->pos().x() > fgRect.width()){
- // We handle the swap and reset controls as soon as the mouse is
- // is pressed and ignore further events on this click (mosfet).
- TQBrush c = fg;
- fg = bg;
- bg = c;
- emit fgChanged(fg.color());
- emit bgChanged(bg.color());
- miniCtlFlag = true;
- }
- else if(ev->pos().x() < bgRect.x()){
- fg.setColor(Qt::black);
- bg.setColor(Qt::white);
- emit fgChanged(fg.color());
- emit bgChanged(bg.color());
- miniCtlFlag = true;
- }
- tqrepaint(false);
-}
-
-
-void KDualColorButton::mouseMoveEvent(TQMouseEvent *ev)
-{
- if(!miniCtlFlag){
- int delay = KGlobalSettings::dndEventDelay();
- if(ev->x() >= mPos.x()+delay || ev->x() <= mPos.x()-delay ||
- ev->y() >= mPos.y()+delay || ev->y() <= mPos.y()-delay) {
- KColorDrag *d = new KColorDrag( curColor == Foreground ?
- fg.color() : bg.color(),
- this);
- d->dragCopy();
- dragFlag = true;
- }
- }
-}
-
-void KDualColorButton::mouseReleaseEvent(TQMouseEvent *ev)
-{
- if(!miniCtlFlag){
- TQRect fgRect, bgRect;
-
- metrics(fgRect, bgRect);
- if(dragFlag)
- curColor = tmpColor;
- else if(fgRect.contains(ev->pos()) && curColor == Foreground){
- if(tmpColor == Background){
- curColor = Foreground;
- emit currentChanged(Foreground);
- }
- else{
- TQColor newColor = fg.color();
- if(KColorDialog::getColor(newColor, d->dialogParent) != TQDialog::Rejected){
- fg.setColor(newColor);
- emit fgChanged(newColor);
- }
- }
- }
- else if(bgRect.contains(ev->pos()) && curColor == Background){
- if(tmpColor == Foreground){
- curColor = Background;
- emit currentChanged(Background);
- }
- else{
- TQColor newColor = bg.color();
- if(KColorDialog::getColor(newColor, d->dialogParent) != TQDialog::Rejected){
- bg.setColor(newColor);
- emit bgChanged(newColor);
- }
- }
- }
- tqrepaint(false);
- dragFlag = false;
- }
- else
- miniCtlFlag = false;
-}
-
-void KDualColorButton::virtual_hook( int, void* )
-{ /*BASE::virtual_hook( id, data );*/ }
-
-#include "kdualcolorbutton.moc"