/
uwpbutton.cpp
68 lines (59 loc) · 1.57 KB
/
uwpbutton.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include "uwpbutton.h"
#include <QDebug>
#define name_to_str(name_31415926) (#name_31415926)
UWPButton::UWPButton(QWidget *parent)
: QPushButton(parent)
{
setDown(false);
setFocusPolicy(Qt::NoFocus);
res = 0.9;
//qDebug() << res;
}
UWPButton::~UWPButton()
{
}
void UWPButton::enterEvent(QEvent *)
{
if( isEnabled() && !m_FocusIcon.isNull() )
setIcon(m_FocusIcon);
}
void UWPButton::leaveEvent(QEvent *)
{
if( isEnabled() )
setIcon(m_NormalIcon);
}
void UWPButton::mousePressEvent(QMouseEvent *event)
{
if( isEnabled() && !m_PressedIcon.isNull() )
setIcon(m_PressedIcon);
setIconSize(iconSize()*res);
QPushButton::mousePressEvent(event);
}
void UWPButton::mouseReleaseEvent(QMouseEvent *event)
{
setIcon(m_FocusIcon);
setIconSize(iconSize()/res);
QPushButton::mouseReleaseEvent(event);
if(isCheckable())
{
QString r1 = ":/" + name + "_r";
QString r2 = ":/" + name + "_r2";
QString h1 = ":/" + name + "_h";
QString h2 = ":/" + name + "_h2";
QString p1 = ":/" + name + "_p";
QString p2 = ":/" + name + "_p2";
if(isChecked())
SetButtonIcons(QIcon(r2), QIcon(h2), QIcon(p2));
else
SetButtonIcons(QIcon(r1), QIcon(h1), QIcon(p1));
}
send();
}
void UWPButton::SetButtonIcons(const QIcon &normal,
const QIcon &focus, const QIcon &pressed)
{
m_NormalIcon = normal;
m_FocusIcon = focus;
m_PressedIcon = pressed;
setIcon(m_NormalIcon);
}