File indexing completed on 2024-07-07 15:33:37

0001 /*
0002 *  Copyright 2016  Smith AR <audoban@openmailbox.org>
0003 *                  Michail Vourlakos <mvourlakos@gmail.com>
0004 *
0005 *  This file is part of Latte-Dock
0006 *
0007 *  Latte-Dock is free software; you can redistribute it and/or
0008 *  modify it under the terms of the GNU General Public License as
0009 *  published by the Free Software Foundation; either version 2 of
0010 *  the License, or (at your option) any later version.
0011 *
0012 *  Latte-Dock is distributed in the hope that it will be useful,
0013 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
0014 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0015 *  GNU General Public License for more details.
0016 *
0017 *  You should have received a copy of the GNU General Public License
0018 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
0019 */
0020 
0021 #ifndef TYPES_H
0022 #define TYPES_H
0023 
0024 // Qt
0025 #include <QObject>
0026 #include <QMetaEnum>
0027 #include <QMetaType>
0028 
0029 namespace Latte {
0030 
0031 class Types
0032 {
0033     Q_GADGET
0034 
0035 public:
0036     Types() = delete;
0037     ~Types() {}
0038 
0039     enum ViewType
0040     {
0041         DockView = 0,
0042         PanelView
0043     };
0044     Q_ENUM(ViewType);
0045 
0046     enum Visibility
0047     {
0048         None = -1,
0049         AlwaysVisible = 0,
0050         AutoHide,
0051         DodgeActive,
0052         DodgeMaximized,
0053         DodgeAllWindows,
0054         WindowsGoBelow
0055     };
0056     Q_ENUM(Visibility);
0057 
0058     enum Alignment
0059     {
0060         Center = 0,
0061         Left,
0062         Right,
0063         Top,
0064         Bottom,
0065         Justify = 10
0066     };
0067     Q_ENUM(Alignment);
0068 
0069     enum EdgesAndAlignments
0070     {
0071         BottomEdgeCenterAlign = 0,
0072         BottomEdgeLeftAlign,
0073         BottomEdgeRightAlign,
0074         TopEdgeCenterAlign,
0075         TopEdgeLeftAlign,
0076         TopEdgeRightAlign,
0077         LeftEdgeCenterAlign,
0078         LeftEdgeTopAlign,
0079         LeftEdgeBottomAlign,
0080         RightEdgeCenterAlign,
0081         RightEdgeTopAlign,
0082         RightEdgeBottomAlign
0083     };
0084     Q_ENUM(EdgesAndAlignments);
0085 
0086     enum SessionType
0087     {
0088         DefaultSession = 0,
0089         AlternativeSession
0090     };
0091     Q_ENUM(SessionType)
0092 
0093     enum Modifier
0094     {
0095         Shift = 0,
0096         Ctrl,
0097         Alt,
0098         Meta
0099     };
0100     Q_ENUM(Modifier);
0101 
0102     enum ClickAction
0103     {
0104         LeftClick = 0,
0105         MiddleClick,
0106         RightClick
0107     };
0108     Q_ENUM(ClickAction);
0109 
0110     enum ManualScrollType
0111     {
0112         ManualScrollDisabled = 0,
0113         ManualScrollOnlyParallel,
0114         ManualScrollVerticalHorizontal
0115     };
0116     Q_ENUM(ManualScrollType);
0117 
0118     enum ScrollAction
0119     {
0120         ScrollNone = 0,
0121         ScrollDesktops,
0122         ScrollActivities,
0123         ScrollTasks
0124     };
0125     Q_ENUM(ScrollAction);
0126 
0127     enum TaskAction
0128     {
0129         NoneAction = 0,
0130         Close,
0131         NewInstance,
0132         ToggleMinimized,
0133         CycleThroughTasks,
0134         ToggleGrouping,
0135         PresentWindows,
0136         PreviewWindows,
0137         HighlightWindows,
0138         PreviewAndHighlightWindows
0139     };
0140     Q_ENUM(TaskAction);
0141 
0142     enum IndicatorStyle
0143     {
0144         LatteIndicator = 0,
0145         PlasmaIndicator,
0146         UnityIndicator
0147     };
0148     Q_ENUM(IndicatorStyle);
0149 
0150     enum ActiveIndicatorType
0151     {
0152         LineIndicator = 0,
0153         DotIndicator = 1
0154     };
0155     Q_ENUM(ActiveIndicatorType);
0156 
0157     enum LaunchersGroup
0158     {
0159         UniqueLaunchers = 0,
0160         LayoutLaunchers = 1,
0161         GlobalLaunchers = 2
0162     };
0163     Q_ENUM(LaunchersGroup);
0164 
0165     enum GlowGroup
0166     {
0167         GlowNone = -1,
0168         GlowOnlyOnActive = 0,
0169         GlowAll = 1
0170     };
0171     Q_ENUM(GlowGroup);
0172 
0173     enum ShadowGroup
0174     {
0175         NoneAppletShadow = 0,
0176         LockedAppletsShadow, /* DEPRECATED, apply shadow only to locked applets */
0177         AllAppletsShadow
0178     };
0179     Q_ENUM(ShadowGroup);
0180 
0181     enum ShadowColorGroup
0182     {
0183         DefaultColorShadow = 0,
0184         ThemeColorShadow,
0185         UserColorShadow
0186     };
0187     Q_ENUM(ShadowColorGroup);
0188 
0189     enum ThemeColorsGroup
0190     {
0191         PlasmaThemeColors = 0,
0192         ReverseThemeColors,
0193         SmartThemeColors
0194     };
0195     Q_ENUM(ThemeColorsGroup);
0196 
0197     enum WindowColorsGroup
0198     {
0199         NoneWindowColors = 0,
0200         ActiveWindowColors,
0201         TouchingWindowColors
0202     };
0203     Q_ENUM(WindowColorsGroup);
0204 
0205     enum ActiveWindowFilterGroup
0206     {
0207         ActiveInCurrentScreen = 0,
0208         ActiveFromAllScreens
0209     };
0210     Q_ENUM(ActiveWindowFilterGroup);
0211 
0212     enum LayoutsMemoryUsage
0213     {
0214         SingleLayout = 0,  /* a single Layout is loaded in each time */
0215         MultipleLayouts  /* multiple layouts are loaded on runtime,based on Activities and one central layout for the rest unassigned Activities */
0216     };
0217     Q_ENUM(LayoutsMemoryUsage);
0218 
0219     enum MouseSensitivity
0220     {
0221         LowSensitivity = 0,
0222         MediumSensitivity,
0223         HighSensitivity
0224     };
0225     Q_ENUM(MouseSensitivity);
0226 
0227     enum LatteConfigPage
0228     {
0229         LayoutPage = 0,
0230         PreferencesPage
0231     };
0232     Q_ENUM(LatteConfigPage);
0233 
0234     enum SettingsComplexity
0235     {
0236         BasicSettings = 0,
0237         AdvancedSettings = 2,
0238         ExpertSettings = 4
0239     };
0240     Q_ENUM(SettingsComplexity);
0241 
0242     enum ImportExportState
0243     {
0244         Failed = 0,
0245         Updated = 2,
0246         Installed = 4
0247     };
0248     Q_ENUM(ImportExportState);
0249 };
0250 
0251 }//end of namespace
0252 #endif