File indexing completed on 2024-04-21 05:31:04

0001 /*
0002     SPDX-FileCopyrightText: 2019 Michail Vourlakos <mvourlakos@gmail.com>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 #ifndef VIEWINDICATORINFO_H
0007 #define VIEWINDICATORINFO_H
0008 
0009 // Qt
0010 #include <QObject>
0011 
0012 namespace Latte {
0013 namespace ViewPart {
0014 namespace IndicatorPart {
0015 
0016 /**
0017  * Information provided by indicator itself in order to provide a nice experience
0018  **/
0019 
0020 class Info: public QObject
0021 {
0022     Q_OBJECT
0023     Q_PROPERTY(bool needsIconColors READ needsIconColors WRITE setNeedsIconColors NOTIFY needsIconColorsChanged)
0024     Q_PROPERTY(bool needsMouseEventCoordinates READ needsMouseEventCoordinates WRITE setNeedsMouseEventCoordinates NOTIFY needsMouseEventCoordinatesChanged)
0025 
0026     Q_PROPERTY(bool providesClickedAnimation READ providesClickedAnimation WRITE setProvidesClickedAnimation NOTIFY providesClickedAnimationChanged)
0027     Q_PROPERTY(bool providesHoveredAnimation READ providesHoveredAnimation WRITE setProvidesHoveredAnimation NOTIFY providesHoveredAnimationChanged)
0028     Q_PROPERTY(bool providesInAttentionAnimation READ providesInAttentionAnimation WRITE setProvidesInAttentionAnimation NOTIFY providesInAttentionAnimationChanged)
0029     Q_PROPERTY(bool providesTaskLauncherAnimation READ providesTaskLauncherAnimation WRITE setProvidesTaskLauncherAnimation NOTIFY providesTaskLauncherAnimationChanged)
0030     Q_PROPERTY(bool providesGroupedWindowAddedAnimation READ providesGroupedWindowAddedAnimation WRITE setProvidesGroupedWindowAddedAnimation NOTIFY providesGroupedWindowAddedAnimationChanged)
0031     Q_PROPERTY(bool providesGroupedWindowRemovedAnimation READ providesGroupedWindowRemovedAnimation WRITE setProvidesGroupedWindowRemovedAnimation NOTIFY providesGroupedWindowRemovedAnimationChanged)
0032 
0033     Q_PROPERTY(bool providesFrontLayer READ providesFrontLayer WRITE setProvidesFrontLayer NOTIFY providesFrontLayerChanged)
0034 
0035     Q_PROPERTY(int extraMaskThickness READ extraMaskThickness WRITE setExtraMaskThickness NOTIFY extraMaskThicknessChanged)
0036 
0037     Q_PROPERTY(float minLengthPadding READ minLengthPadding WRITE setMinLengthPadding NOTIFY minLengthPaddingChanged)
0038     Q_PROPERTY(float minThicknessPadding READ minThicknessPadding WRITE setMinThicknessPadding NOTIFY minThicknessPaddingChanged)
0039 
0040 public:
0041     Info(QObject *parent);
0042     virtual ~Info();
0043 
0044     bool needsIconColors() const;
0045     void setNeedsIconColors(bool needs);
0046 
0047     bool needsMouseEventCoordinates() const;
0048     void setNeedsMouseEventCoordinates(bool needs);
0049 
0050     bool providesClickedAnimation() const;
0051     void setProvidesClickedAnimation(bool provides);
0052 
0053     bool providesHoveredAnimation() const;
0054     void setProvidesHoveredAnimation(bool provides);
0055 
0056     bool providesInAttentionAnimation() const;
0057     void setProvidesInAttentionAnimation(bool provides);
0058 
0059     bool providesTaskLauncherAnimation() const;
0060     void setProvidesTaskLauncherAnimation(bool provides);
0061 
0062     bool providesGroupedWindowAddedAnimation() const;
0063     void setProvidesGroupedWindowAddedAnimation(bool provides);
0064 
0065     bool providesGroupedWindowRemovedAnimation() const;
0066     void setProvidesGroupedWindowRemovedAnimation(bool provides);
0067 
0068     bool providesFrontLayer() const;
0069     void setProvidesFrontLayer(bool front);
0070 
0071     int extraMaskThickness() const;
0072     void setExtraMaskThickness(int thick);
0073 
0074     float minLengthPadding() const;
0075     void setMinLengthPadding(float padding);
0076 
0077     float minThicknessPadding() const;
0078     void setMinThicknessPadding(float padding);
0079 
0080 signals:
0081     void extraMaskThicknessChanged();
0082     void minLengthPaddingChanged();
0083     void minThicknessPaddingChanged();
0084     void needsIconColorsChanged();
0085     void needsMouseEventCoordinatesChanged();
0086     void providesClickedAnimationChanged();
0087     void providesHoveredAnimationChanged();
0088     void providesInAttentionAnimationChanged();
0089     void providesTaskLauncherAnimationChanged();
0090     void providesGroupedWindowAddedAnimationChanged();
0091     void providesGroupedWindowRemovedAnimationChanged();
0092     void providesFrontLayerChanged();
0093 
0094 private:
0095     bool m_needsIconColors{false};
0096     bool m_needsMouseEventCoordinates{false};
0097     bool m_providesClickedAnimation{false};
0098     bool m_providesHoveredAnimation{false};
0099     bool m_providesInAttentionAnimation{false};
0100     bool m_providesTaskLauncherAnimation{false};
0101     bool m_providesGroupedWindowAddedAnimation{false};
0102     bool m_providesGroupedWindowRemovedAnimation{false};
0103     bool m_providesFrontLayer{false};
0104 
0105     int m_extraMaskThickness{0};
0106 
0107     float m_minLengthPadding{0};
0108     float m_minThicknessPadding{0};
0109 };
0110 
0111 }
0112 }
0113 }
0114 
0115 #endif