TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
ttkabstractmovewidget.cpp
Go to the documentation of this file.
2 #include "ttkglobalhelper.h"
3 
5  : TTKAbstractMoveWidget(true, parent)
6 {
7 
8 }
9 
10 TTKAbstractMoveWidget::TTKAbstractMoveWidget(bool transparent, QWidget *parent)
11  : QWidget(parent),
12  m_moveOption(false),
13  m_showShadow(true),
14  m_leftButtonPress(false)
15 {
16  setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
17  setAttribute(Qt::WA_TranslucentBackground, transparent);
18 }
19 
20 void TTKAbstractMoveWidget::paintEvent(QPaintEvent *event)
21 {
22  QWidget::paintEvent(event);
23 
24  if(m_showShadow)
25  {
26  QPainter painter(this);
27  TTK::setBorderShadow(this, &painter);
28  }
29 }
30 
32 {
33  QWidget::mousePressEvent(event);
34  if(event->button() == Qt::LeftButton && !m_moveOption)
35  {
36  m_leftButtonPress = true;
37  }
38 
39  m_pressAt = QtMouseGlobalPos(event);
40 }
41 
42 void TTKAbstractMoveWidget::mouseMoveEvent(QMouseEvent *event)
43 {
44  QWidget::mouseMoveEvent(event);
45  if(!m_leftButtonPress )
46  {
47  event->ignore();
48  return;
49  }
50 
51  const int xpos = QtMouseGlobalX(event) - m_pressAt.x();
52  const int ypos = QtMouseGlobalY(event) - m_pressAt.y();
53  m_pressAt = QtMouseGlobalPos(event);
54  move(x() + xpos, y() + ypos);
55 }
56 
58 {
59  QWidget::mouseReleaseEvent(event);
60  m_pressAt = QtMouseGlobalPos(event);
61  m_leftButtonPress = false;
62 }
virtual void paintEvent(QPaintEvent *event) override
#define QtMouseGlobalY(p)
Definition: ttkqtcompat.h:147
#define QtMouseGlobalX(p)
Definition: ttkqtcompat.h:146
TTK_MODULE_EXPORT void setBorderShadow(QWidget *widget, QPainter *painter)
#define QtMouseGlobalPos(p)
Definition: ttkqtcompat.h:148
virtual void mouseReleaseEvent(QMouseEvent *event) override
The class of the ttk moving widget base.
TTKAbstractMoveWidget(QWidget *parent=nullptr)
virtual void mousePressEvent(QMouseEvent *event) override
virtual void mouseMoveEvent(QMouseEvent *event) override