File indexing completed on 2025-03-16 13:58:19
0001 /* 0002 * Copyright 2019 Michail Vourlakos <mvourlakos@gmail.com> 0003 * 0004 * This file is part of Latte-Dock 0005 * 0006 * Latte-Dock is free software; you can redistribute it and/or 0007 * modify it under the terms of the GNU General Public License as 0008 * published by the Free Software Foundation; either version 2 of 0009 * the License, or (at your option) any later version. 0010 * 0011 * Latte-Dock is distributed in the hope that it will be useful, 0012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 0013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0014 * GNU General Public License for more details. 0015 * 0016 * You should have received a copy of the GNU General Public License 0017 * along with this program. If not, see <http://www.gnu.org/licenses/>. 0018 */ 0019 0020 #ifndef VIEWINDICATORINFO_H 0021 #define VIEWINDICATORINFO_H 0022 0023 // Qt 0024 #include <QObject> 0025 0026 namespace Latte { 0027 namespace ViewPart { 0028 namespace IndicatorPart { 0029 0030 /** 0031 * Information provided by indicator itself in order to provide a nice experience 0032 **/ 0033 0034 class Info: public QObject 0035 { 0036 Q_OBJECT 0037 Q_PROPERTY(bool needsIconColors READ needsIconColors WRITE setNeedsIconColors NOTIFY needsIconColorsChanged) 0038 Q_PROPERTY(bool needsMouseEventCoordinates READ needsMouseEventCoordinates WRITE setNeedsMouseEventCoordinates NOTIFY needsMouseEventCoordinatesChanged) 0039 Q_PROPERTY(bool providesClickedAnimation READ providesClickedAnimation WRITE setProvidesClickedAnimation NOTIFY providesClickedAnimationChanged) 0040 Q_PROPERTY(bool providesHoveredAnimation READ providesHoveredAnimation WRITE setProvidesHoveredAnimation NOTIFY providesHoveredAnimationChanged) 0041 Q_PROPERTY(bool providesFrontLayer READ providesFrontLayer WRITE setProvidesFrontLayer NOTIFY providesFrontLayerChanged) 0042 0043 Q_PROPERTY(int extraMaskThickness READ extraMaskThickness WRITE setExtraMaskThickness NOTIFY extraMaskThicknessChanged) 0044 0045 Q_PROPERTY(float minLengthPadding READ minLengthPadding WRITE setMinLengthPadding NOTIFY minLengthPaddingChanged) 0046 Q_PROPERTY(float minThicknessPadding READ minThicknessPadding WRITE setMinThicknessPadding NOTIFY minThicknessPaddingChanged) 0047 0048 public: 0049 Info(QObject *parent); 0050 virtual ~Info(); 0051 0052 bool needsIconColors() const; 0053 void setNeedsIconColors(bool needs); 0054 0055 bool needsMouseEventCoordinates() const; 0056 void setNeedsMouseEventCoordinates(bool needs); 0057 0058 bool providesClickedAnimation() const; 0059 void setProvidesClickedAnimation(bool provides); 0060 0061 bool providesHoveredAnimation() const; 0062 void setProvidesHoveredAnimation(bool provides); 0063 0064 bool providesFrontLayer() const; 0065 void setProvidesFrontLayer(bool front); 0066 0067 int extraMaskThickness() const; 0068 void setExtraMaskThickness(int thick); 0069 0070 float minLengthPadding() const; 0071 void setMinLengthPadding(float padding); 0072 0073 float minThicknessPadding() const; 0074 void setMinThicknessPadding(float padding); 0075 0076 signals: 0077 void extraMaskThicknessChanged(); 0078 void minLengthPaddingChanged(); 0079 void minThicknessPaddingChanged(); 0080 void needsIconColorsChanged(); 0081 void needsMouseEventCoordinatesChanged(); 0082 void providesClickedAnimationChanged(); 0083 void providesHoveredAnimationChanged(); 0084 void providesFrontLayerChanged(); 0085 0086 private: 0087 bool m_needsIconColors{false}; 0088 bool m_needsMouseEventCoordinates{false}; 0089 bool m_providesClickedAnimation{false}; 0090 bool m_providesHoveredAnimation{false}; 0091 bool m_providesFrontLayer{false}; 0092 0093 int m_extraMaskThickness{0}; 0094 0095 float m_minLengthPadding{0}; 0096 float m_minThicknessPadding{0}; 0097 }; 0098 0099 } 0100 } 0101 } 0102 0103 #endif