diff options
| author | Ben Boeckel <MathStuf@gmail.com> | 2009-03-19 00:37:40 -0400 |
|---|---|---|
| committer | Ben Boeckel <MathStuf@gmail.com> | 2009-03-19 00:37:40 -0400 |
| commit | 775579fd2c4508f6eb61290b048fddea5f009432 (patch) | |
| tree | d51486fba3ee69b369cb21068226e6c9142d099f /sigmodr/widgets/MapItem.cpp | |
| parent | 8e68d7539f42b2312b3205cdb85644dc80d2f761 (diff) | |
| download | sigen-775579fd2c4508f6eb61290b048fddea5f009432.tar.gz sigen-775579fd2c4508f6eb61290b048fddea5f009432.tar.xz sigen-775579fd2c4508f6eb61290b048fddea5f009432.zip | |
Move common code out into MapItem
Diffstat (limited to 'sigmodr/widgets/MapItem.cpp')
| -rw-r--r-- | sigmodr/widgets/MapItem.cpp | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/sigmodr/widgets/MapItem.cpp b/sigmodr/widgets/MapItem.cpp index cfc102ad..af97bd48 100644 --- a/sigmodr/widgets/MapItem.cpp +++ b/sigmodr/widgets/MapItem.cpp @@ -18,9 +18,13 @@ // Header include #include "MapItem.h" +// KDE includes +#include <KColorScheme> + // Qt includes #include <QtGui/QGraphicsScene> #include <QtGui/QGraphicsSceneMouseEvent> +#include <QtGui/QPainter> #include <QtGui/QStyleOptionGraphicsItem> using namespace Sigmodr::Widgets; @@ -34,13 +38,21 @@ MapItem::MapItem(const bool resizable, QGraphicsScene* parent) : void MapItem::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) { - Q_UNUSED(painter) - Q_UNUSED(option) Q_UNUSED(widget) if (m_resizable && (option->state & QStyle::State_MouseOver)) { // TODO: Draw handle for resizing } + if (option->state & QStyle::State_MouseOver) + { + painter->setPen(QPen(KStatefulBrush(KColorScheme::Selection, KColorScheme::HoverColor).brush(QPalette::Active), 3)); + painter->drawRect(boundingRect()); + } + if (option->state & QStyle::State_Selected) + { + painter->setPen(QPen(KStatefulBrush(KColorScheme::Selection, KColorScheme::ActiveBackground).brush(QPalette::Active), 3)); + painter->drawRect(boundingRect()); + } } void MapItem::focusInEvent(QFocusEvent* event) @@ -82,3 +94,15 @@ void MapItem::resizeBy(const QPointF& size) { Q_UNUSED(size) } + +void MapItem::makeTransparent(QPainter* painter, const int opacity) +{ + QPixmap temp(boundingRect().size().toSize()); + temp.fill(Qt::transparent); + QPainter p; + p.begin(&temp); + p.setCompositionMode(QPainter::CompositionMode_DestinationIn); + p.fillRect(temp.rect(), QColor(0, 0, 0, opacity)); + p.end(); + painter->drawPixmap(0, 0, temp); +} |
