File indexing completed on 2024-05-19 05:35:19
0001 #ifndef oxygendockseparatorengine_h 0002 #define oxygendockseparatorengine_h 0003 0004 ////////////////////////////////////////////////////////////////////////////// 0005 // oxygendockseparatorengine.h 0006 // stores event filters and maps widgets to timelines for animations 0007 // ------------------- 0008 // 0009 // SPDX-FileCopyrightText: 2009 Hugo Pereira Da Costa <hugo.pereira@free.fr> 0010 // 0011 // SPDX-License-Identifier: MIT 0012 ////////////////////////////////////////////////////////////////////////////// 0013 0014 #include "oxygenbaseengine.h" 0015 #include "oxygendatamap.h" 0016 #include "oxygendockseparatordata.h" 0017 0018 namespace Oxygen 0019 { 0020 //* stores dockseparator hovered action and timeLine 0021 class DockSeparatorEngine : public BaseEngine 0022 { 0023 Q_OBJECT 0024 0025 public: 0026 //* constructor 0027 explicit DockSeparatorEngine(QObject *parent) 0028 : BaseEngine(parent) 0029 { 0030 } 0031 0032 //* register dockseparator 0033 bool registerWidget(QWidget *); 0034 0035 //* update rect and hover value for data matching widget 0036 void updateRect(const QObject *object, const QRect &r, const Qt::Orientation orientation, bool hovered) 0037 { 0038 if (DataMap<DockSeparatorData>::Value data = _data.find(object)) { 0039 data.data()->updateRect(r, orientation, hovered); 0040 } 0041 } 0042 0043 //* returns true if object is animated 0044 bool isAnimated(const QObject *object, const QRect &r, const Qt::Orientation orientation) 0045 { 0046 if (DataMap<DockSeparatorData>::Value data = _data.find(object)) { 0047 return data.data()->isAnimated(r, orientation); 0048 } else 0049 return false; 0050 } 0051 0052 //* returns true if object is animated 0053 qreal opacity(const QObject *object, const Qt::Orientation orientation) 0054 { 0055 if (DataMap<DockSeparatorData>::Value data = _data.find(object)) { 0056 return data.data()->opacity(orientation); 0057 } else 0058 return AnimationData::OpacityInvalid; 0059 } 0060 0061 //* enability 0062 void setEnabled(bool value) override 0063 { 0064 BaseEngine::setEnabled(value); 0065 _data.setEnabled(value); 0066 } 0067 0068 //* duration 0069 void setDuration(int value) override 0070 { 0071 BaseEngine::setDuration(value); 0072 _data.setDuration(value); 0073 } 0074 0075 public Q_SLOTS: 0076 0077 //* remove widget from map 0078 bool unregisterWidget(QObject *object) override 0079 { 0080 return _data.unregisterWidget(object); 0081 } 0082 0083 private: 0084 //* data map 0085 DataMap<DockSeparatorData> _data; 0086 }; 0087 } 0088 0089 #endif