diff options
Diffstat (limited to 'hyperui/button.cpp')
-rw-r--r-- | hyperui/button.cpp | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/hyperui/button.cpp b/hyperui/button.cpp deleted file mode 100644 index abc95f4..0000000 --- a/hyperui/button.cpp +++ /dev/null @@ -1,118 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: openBossa - INdT (renato.chencarek@openbossa.org) -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** the openBossa stream from INdT (renato.chencarek@openbossa.org). -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QPainter> -#include <QStyleOptionGraphicsItem> -#include <QGraphicsSceneMouseEvent> - -#include "global.h" -#include "button.h" - - -Button::Button(const QPixmap &normal, const QPixmap &pressed, - const QPixmap &disabled, QGraphicsItem *parent) - : QGraphicsWidget(parent), - m_isPressed(false), - m_normalPixmap(normal), - m_pressedPixmap(pressed), - m_disabledPixmap(disabled) -{ - setMinimumSize(normal.size()); - setMaximumSize(normal.size()); - - QFont font(Resource::stringValue("default/font-family")); - font.setBold(true); - font.setPixelSize(Resource::intValue("button/font-size")); - setFont(font); -} - -QString Button::text() const -{ - return m_text; -} - -void Button::setText(const QString &value) -{ - if (m_text != value) { - m_text = value; - update(); - } -} - -void Button::mousePressEvent(QGraphicsSceneMouseEvent *e) -{ - if (e->button() == Qt::LeftButton) { - m_isPressed = true; - update(); - emit pressed(); - } -} - -void Button::mouseReleaseEvent(QGraphicsSceneMouseEvent *e) -{ - if (e->button() == Qt::LeftButton) { - const bool isClick = m_isPressed; - - m_isPressed = false; - update(); - emit released(); - - if (isClick && contains(e->pos())) - emit clicked(); - } -} - -void Button::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget) -{ - Q_UNUSED(widget); - - if (!(option->state & QStyle::State_Enabled)) { - const bool support = !m_disabledPixmap.isNull(); - painter->drawPixmap(0, 0, support ? m_disabledPixmap : m_normalPixmap); - } else if (m_isPressed && !m_pressedPixmap.isNull()) - painter->drawPixmap(0, 0, m_pressedPixmap); - else - painter->drawPixmap(0, 0, m_normalPixmap); - - - if (!m_text.isEmpty()) { - const QRect &textRect = boundingRect().toRect(); - - QFontMetrics metrics(font()); - const QString &elidedText = metrics.elidedText(m_text, Qt::ElideRight, - textRect.width()); - - painter->setFont(font()); - painter->setPen(Qt::white); - painter->drawText(textRect, Qt::TextSingleLine | Qt::AlignCenter, elidedText); - } -} |