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 }