/*
    SPDX-FileCopyrightText: 2020 Michail Vourlakos <mvourlakos@gmail.com>
    SPDX-License-Identifier: GPL-2.0-or-later
*/

#ifndef @CORETYPESHEADER@
#define @CORETYPESHEADER@

// Qt
#include <QObject>
#include <QMetaEnum>
#include <QMetaType>

namespace Latte {

class Types
{
    Q_GADGET

public:
    Types() = delete;
    ~Types(){};

    enum ViewType
    {
        DockView = 0,
        PanelView
    };
    Q_ENUM(ViewType);

    enum Visibility
    {
        None = -1,
        AlwaysVisible = 0,
        AutoHide,
        DodgeActive,
        DodgeMaximized,
        DodgeAllWindows,
        WindowsGoBelow,
        WindowsCanCover,
        WindowsAlwaysCover,
        SidebarOnDemand,
        SidebarAutoHide,
        NormalWindow = 20
    };
    Q_ENUM(Visibility);

    enum Alignment
    {
        NoneAlignment = -1,
        Center = 0,
        Left,
        Right,
        Top,
        Bottom,
        Justify = 10
    };
    Q_ENUM(Alignment);

    enum EdgesAndAlignments
    {
        BottomEdgeCenterAlign = 0,
        BottomEdgeLeftAlign,
        BottomEdgeRightAlign,
        TopEdgeCenterAlign,
        TopEdgeLeftAlign,
        TopEdgeRightAlign,
        LeftEdgeCenterAlign,
        LeftEdgeTopAlign,
        LeftEdgeBottomAlign,
        RightEdgeCenterAlign,
        RightEdgeTopAlign,
        RightEdgeBottomAlign
    };
    Q_ENUM(EdgesAndAlignments);

    enum LaunchersGroup
    {
        UniqueLaunchers = 0,
        LayoutLaunchers = 1,
        GlobalLaunchers = 2
    };
    Q_ENUM(LaunchersGroup);

    enum ScreensGroup
    {
        SingleScreenGroup = 0,
        AllScreensGroup,
        AllSecondaryScreensGroup
    };
    Q_ENUM(ScreensGroup)
};

}//end of namespace

#endif
