From f298cb9f5557d88b9ff38feb4b5e090e5c164ec2 Mon Sep 17 00:00:00 2001 From: leseb Date: Tue, 19 Mar 2002 12:58:43 +0000 Subject: Better color selection --- (limited to 'noncore/graphics/drawpad/colorpanel.cpp') diff --git a/noncore/graphics/drawpad/colorpanel.cpp b/noncore/graphics/drawpad/colorpanel.cpp new file mode 100644 index 0000000..1db0d7b --- a/dev/null +++ b/noncore/graphics/drawpad/colorpanel.cpp @@ -0,0 +1,134 @@ +/*************************************************************************** + * * + * DrawPad - a drawing program for Opie Environment * + * * + * (C) 2002 by S. Prud'homme * + * * + * 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. * + * * + ***************************************************************************/ + +#include "colorpanel.h" + +#include +#include + +ColorPanelButton::ColorPanelButton(const QColor& color, QWidget* parent, const char* name) + : QFrame(parent, name) +{ + m_color = color; + + setFixedSize(16, 16); + setActive(false); +} + +ColorPanelButton::~ColorPanelButton() +{ +} + +void ColorPanelButton::setActive(bool active) +{ + m_active = active; + + if (m_active) { + setFrameStyle(Panel | Sunken); + } else { + setFrameStyle(NoFrame); + } +} + +void ColorPanelButton::enterEvent(QEvent* e) +{ + Q_UNUSED(e) + + if (!m_active) { + setFrameStyle(Panel | Sunken); + } +} + +void ColorPanelButton::leaveEvent(QEvent* e) +{ + Q_UNUSED(e) + + if (!m_active) { + setFrameStyle(NoFrame); + } +} + +void ColorPanelButton::paintEvent(QPaintEvent* e) +{ + QFrame::paintEvent(e); + + QPainter painter; + painter.begin(this); + painter.fillRect(2, 2, 12, 12, m_color); + painter.setPen(Qt::black); + painter.drawRect(2, 2, 12, 12); + painter.end(); +} + +void ColorPanelButton::mouseReleaseEvent(QMouseEvent* e) +{ + Q_UNUSED(e) + + emit selected(m_color); +} + +ColorPanel::ColorPanel(QWidget* parent, const char* name) + : QWidget(parent, name) +{ + m_pGridLayout = new QGridLayout(this, 5, 6); + + addColor(QColor(255, 255, 255), 0, 1); + addColor(QColor(192, 192, 192), 0, 2); + addColor(QColor(128, 128, 128), 0, 3); + addColor(QColor(64, 64, 64), 0, 4); + addColor(QColor(0, 0, 0), 0, 5); + + addColor(QColor(255, 0, 0), 1, 0); + addColor(QColor(255, 128, 0), 1, 1); + addColor(QColor(255, 255, 0), 1, 2); + addColor(QColor(128, 255, 0), 1, 3); + addColor(QColor(0, 255, 0), 1, 4); + addColor(QColor(0, 255, 128), 1, 5); + + addColor(QColor(128, 0, 0), 2, 0); + addColor(QColor(128, 64, 0), 2, 1); + addColor(QColor(128, 128, 0), 2, 2); + addColor(QColor(64, 128, 0), 2, 3); + addColor(QColor(0, 128, 0), 2, 4); + addColor(QColor(0, 128, 64), 2, 5); + + addColor(QColor(0, 255, 255), 3, 0); + addColor(QColor(0, 128, 255), 3, 1); + addColor(QColor(0, 0, 255), 3, 2); + addColor(QColor(128, 0, 255), 3, 3); + addColor(QColor(255, 0, 255), 3, 4); + addColor(QColor(255, 0, 128), 3, 5); + + addColor(QColor(0, 128, 128), 4, 0); + addColor(QColor(0, 64, 128), 4, 1); + addColor(QColor(0, 0, 128), 4, 2); + addColor(QColor(64, 0, 128), 4, 3); + addColor(QColor(128, 0, 128), 4, 4); + addColor(QColor(128, 0, 64), 4, 5); +} + +ColorPanel::~ColorPanel() +{ +} + +void ColorPanel::addColor(const QColor& color, int row, int col) +{ + ColorPanelButton* panelButton = new ColorPanelButton(color, this); + connect(panelButton, SIGNAL(selected(const QColor&)), this, SLOT(buttonSelected(const QColor&))); + m_pGridLayout->addWidget(panelButton, row, col); +} + +void ColorPanel::buttonSelected(const QColor& color) +{ + emit colorSelected(color); +} -- cgit v0.9.0.2