# GNU General Public License for more details.
set(src
+ colorbutton.cpp
colorbuttons.cpp
colorscheme.cpp
field.cpp
)
set(moc
+ colorbutton.hpp
colorbuttons.hpp
field.hpp
#fullscreenexitbutton.hpp
--- /dev/null
+/*
+ Copyright 2010 Serge Ziryukin <ftrvxmtrx@gmail.com>
+
+ 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; version 2 of the License.
+
+ 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.
+*/
+
+#include <QPainter>
+#include "colorbutton.hpp"
+#include "colorscheme.hpp"
+
+ColorButton::ColorButton (QWidget *parent, int brush)
+ : QPushButton(parent),
+ brush(brush)
+{
+ setFixedSize(64, 64);
+}
+
+void ColorButton::paintEvent (QPaintEvent * /* event */)
+{
+ QPainter painter;
+ painter.begin(this);
+
+ const QVector<QBrush> &scheme = ColorScheme::instance().getScheme();
+ painter.fillRect(0, 0, 64, 64, scheme.at(brush));
+
+ painter.end();
+}
--- /dev/null
+/*
+ Copyright 2010 Serge Ziryukin <ftrvxmtrx@gmail.com>
+
+ 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; version 2 of the License.
+
+ 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.
+*/
+
+#ifndef _COLORBUTTON_HPP
+#define _COLORBUTTON_HPP
+
+#include <QPushButton>
+
+class ColorButton : public QPushButton
+{
+ Q_OBJECT;
+
+public:
+ ColorButton (QWidget *parent, int brush);
+
+private:
+ const int brush;
+
+protected:
+ void paintEvent (QPaintEvent *event);
+};
+
+#endif // !_COLORBUTTON_HPP
#include <QPainter>
#include <QPixmap>
#include <QPushButton>
-#include <QVBoxLayout>
+#include <QGridLayout>
#include "colorbuttons.hpp"
#include "colorscheme.hpp"
+#include "colorbutton.hpp"
ColorButtons::ColorButtons (QWidget *parent)
: QGroupBox(parent)
Q_ASSERT(parent);
const QVector<QBrush> &scheme = ColorScheme::instance().getScheme();
- QVBoxLayout *layout = new QVBoxLayout;
+ QGridLayout *layout = new QGridLayout;
for (int i = 0; i < scheme.size(); i++)
{
- QPixmap pixmap(64, 64);
- QPainter painter;
- painter.begin(&pixmap);
- painter.fillRect(pixmap.rect(), scheme.at(i));
- painter.end();
-
- QPushButton *button = new QPushButton(pixmap, "", this);
- button->setFixedSize(48, 48);
- layout->addWidget(button);
+ ColorButton *button = new ColorButton(this, i);
+ layout->addWidget(button, (i - (i % 3)) / 3, i % 3);
group.addButton(button, i);
}