forked from openkylin/quarkai
106 lines
2.5 KiB
C++
106 lines
2.5 KiB
C++
/*
|
|
* Copyright (C) 2013 ~ 2015 National University of Defense Technology(NUDT) & Kylin Ltd.
|
|
*
|
|
* Authors:
|
|
* Kobe Lee xiangli@ubuntukylin.com/kobe24_lixiang@126.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 3.
|
|
*
|
|
* 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.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#include "commontoolbutton.h"
|
|
|
|
CommonToolButton::CommonToolButton(const QString &pic_name, const QString &text, QWidget *parent)
|
|
:QToolButton(parent)
|
|
{
|
|
setDown(false);
|
|
setFocusPolicy(Qt::NoFocus);
|
|
|
|
this->setText(text);
|
|
|
|
// QPalette text_palette = palette();
|
|
// text_palette.setColor(QPalette::ButtonText, QColor(230, 230, 230));
|
|
// setPalette(text_palette);
|
|
|
|
setToolButtonStyle( Qt::ToolButtonTextUnderIcon);
|
|
setPopupMode(QToolButton::InstantPopup);
|
|
|
|
QPixmap pixmap(pic_name);
|
|
normal_icon = QIcon(pic_name);
|
|
|
|
setIcon(pixmap);
|
|
setIconSize(pixmap.size());
|
|
|
|
// setFixedSize(pixmap.width(), pixmap.height() + 10);
|
|
setAutoRaise(true);
|
|
this->setObjectName("commonToolButton");
|
|
mouse_over = false;
|
|
mouse_press = false;
|
|
}
|
|
|
|
CommonToolButton::~CommonToolButton()
|
|
{
|
|
|
|
}
|
|
|
|
void CommonToolButton::enterEvent(QEvent *event)
|
|
{
|
|
if(isEnabled())
|
|
{
|
|
mouse_over = true;
|
|
}
|
|
}
|
|
|
|
void CommonToolButton::leaveEvent(QEvent *event)
|
|
{
|
|
if(isEnabled())
|
|
{
|
|
mouse_over = false;
|
|
}
|
|
}
|
|
|
|
void CommonToolButton::mousePressEvent(QMouseEvent *event)
|
|
{
|
|
if(isEnabled() && event->button() == Qt::LeftButton)
|
|
{
|
|
emit clicked();
|
|
}
|
|
QToolButton::mousePressEvent(event);
|
|
}
|
|
|
|
void CommonToolButton::setMousePress(bool is_press)
|
|
{
|
|
this->mouse_press = is_press;
|
|
update();
|
|
}
|
|
|
|
void CommonToolButton::paintEvent(QPaintEvent *event)
|
|
{
|
|
if(this->mouse_over)
|
|
{
|
|
this->setIcon(QIcon(press_icon));
|
|
}
|
|
else
|
|
{
|
|
if(this->mouse_press)
|
|
{
|
|
this->setIcon(QIcon(hover_icon));
|
|
}
|
|
else
|
|
{
|
|
this->setIcon(QIcon(normal_icon));
|
|
}
|
|
}
|
|
|
|
QToolButton::paintEvent(event);
|
|
}
|