-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdragBar.cpp
100 lines (89 loc) · 2.87 KB
/
dragBar.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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
/****************************************************************************
**
** Copyright (C) 2007~2017 Colin Willcocks.
** Copyright (C) 2005~2007 Uco Mesdag.
** All rights reserved.
** This file is part of "GT-8 Fx FloorBoard".
**
** 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; either version 2 of the License, or
** (at your option) any later version.
**
** 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, write to the Free Software Foundation, Inc.,
** 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
**
****************************************************************************/
#include "dragBar.h"
dragBar::dragBar(QWidget *parent, QString imagePath)
: QWidget(parent)
{
QObject::connect(this->parent(), SIGNAL( setCollapseState(bool) ),
this, SLOT( setCollapseState(bool) ) );
QObject::connect(this->parent(), SIGNAL( showDragBar(QPoint) ),
this, SLOT( showDragBar(QPoint) ) );
QObject::connect(this->parent(), SIGNAL( hideDragBar() ),
this, SLOT( hideDragBar() ) );
this->imagePath = imagePath;
this->image = QPixmap(imagePath);
this->hide();
}
void dragBar::paintEvent(QPaintEvent *)
{
QRectF target(0.0, 0.0, barSize.width(), barSize.height());
QRectF source(0.0, 0.0, image.width(), image.height());
QPainter painter(this);
painter.drawPixmap(target, image, source);
}
void dragBar::showDragBar(QPoint newpos)
{
if(newpos.x() < offsetMin)
{
this->barPos = QPoint(offsetMin - (barSize.width()/2), newpos.y());
}
else if(newpos.x() > offsetMax)
{
this->barPos = QPoint(offsetMax - (barSize.width()/2), newpos.y());
}
else
{
this->barPos = QPoint(newpos.x() - (barSize.width()/2), newpos.y());
}
this->setGeometry(barPos.x(), barPos.y(), barSize.width(), barSize.height());
this->show();
}
void dragBar::hideDragBar()
{
this->hide();
}
void dragBar::setDragBarSize(QSize newsize)
{
this->barSize = newsize;
}
void dragBar::setDragBarMinOffset(signed int e_offsetMin, signed int c_offsetMin)
{
this->e_offsetMin = e_offsetMin;
this->c_offsetMin = c_offsetMin;
this->offsetMin = e_offsetMin;
}
void dragBar::setDragBarMaxOffset(signed int maxOffset)
{
this->offsetMax = maxOffset;
}
void dragBar::setCollapseState(bool state)
{
if(state == false)
{
this->offsetMin = c_offsetMin;
}
else
{
this->offsetMin = e_offsetMin;
}
}