TTKMusicPlayer  4.1.3.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 "ttkglobalwrapper.h"
3 
5  : TTKAbstractMoveWidget(true, parent)
6 {
7 
8 }
9 
10 TTKAbstractMoveWidget::TTKAbstractMoveWidget(bool transparent, QWidget *parent)
11  : QWidget(parent),
12  m_blockOption(false),
13  m_shadowOption(true),
14  m_mouseLeftPressed(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_shadowOption)
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_blockOption)
35  {
36  m_mouseLeftPressed = true;
37  }
38 
40 }
41 
42 void TTKAbstractMoveWidget::mouseMoveEvent(QMouseEvent *event)
43 {
44  QWidget::mouseMoveEvent(event);
46  {
47  event->ignore();
48  return;
49  }
50 
51  const int xpos = QtMouseGlobalX(event) - m_mousePressedAt.x();
52  const int ypos = QtMouseGlobalY(event) - m_mousePressedAt.y();
54  move(x() + xpos, y() + ypos);
55 }
56 
58 {
59  QWidget::mouseReleaseEvent(event);
61  m_mouseLeftPressed = 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