File indexing completed on 2024-05-19 05:28:48

0001 /*
0002  * SPDX-FileCopyrightText: 2014 Hugo Pereira Da Costa <hugo.pereira@free.fr>
0003  *
0004  * SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #pragma once
0008 
0009 #include "breezedialdata.h"
0010 #include "breezewidgetstateengine.h"
0011 
0012 namespace Breeze
0013 {
0014 //* stores dial hovered action and timeLine
0015 class DialEngine : public WidgetStateEngine
0016 {
0017     Q_OBJECT
0018 
0019 public:
0020     //* constructor
0021     explicit DialEngine(QObject *parent)
0022         : WidgetStateEngine(parent)
0023     {
0024     }
0025 
0026     //* destructor
0027     virtual ~DialEngine()
0028     {
0029     }
0030 
0031     //* register dial
0032     virtual bool registerWidget(QWidget *, AnimationModes);
0033 
0034     //* control rect
0035     virtual void setHandleRect(const QObject *object, const QRect &rect)
0036     {
0037         if (DataMap<WidgetStateData>::Value data = this->data(object, AnimationHover)) {
0038             static_cast<DialData *>(data.data())->setHandleRect(rect);
0039         }
0040     }
0041 
0042     //* mouse position
0043     virtual QPoint position(const QObject *object)
0044     {
0045         if (DataMap<WidgetStateData>::Value data = this->data(object, AnimationHover)) {
0046             return static_cast<const DialData *>(data.data())->position();
0047 
0048         } else {
0049             return QPoint(-1, -1);
0050         }
0051     }
0052 };
0053 
0054 }