-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria

#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif

module GI.AyatanaAppIndicator3.Enums
    ( 

 -- * Enumerations


-- ** IndicatorCategory #enum:IndicatorCategory#

    IndicatorCategory(..)                   ,


-- ** IndicatorStatus #enum:IndicatorStatus#

    IndicatorStatus(..)                     ,




    ) where

import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.Kind as DK
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GHC.Records as R


-- Enum IndicatorStatus
-- | These are the states that the indicator can be on in
-- the user\'s panel.  The indicator by default starts
-- in the state /@aPPINDICATORSTATUSPASSIVE@/ and can be
-- shown by setting it to /@aPPINDICATORSTATUSACTIVE@/.
data IndicatorStatus = 
      IndicatorStatusPassive
    -- ^ The indicator should not be shown to the user.
    | IndicatorStatusActive
    -- ^ The indicator should be shown in it\'s default state.
    | IndicatorStatusAttention
    -- ^ The indicator should show it\'s attention icon.
    | AnotherIndicatorStatus Int
    -- ^ Catch-all for unknown values
    deriving (Int -> IndicatorStatus -> ShowS
[IndicatorStatus] -> ShowS
IndicatorStatus -> String
(Int -> IndicatorStatus -> ShowS)
-> (IndicatorStatus -> String)
-> ([IndicatorStatus] -> ShowS)
-> Show IndicatorStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> IndicatorStatus -> ShowS
showsPrec :: Int -> IndicatorStatus -> ShowS
$cshow :: IndicatorStatus -> String
show :: IndicatorStatus -> String
$cshowList :: [IndicatorStatus] -> ShowS
showList :: [IndicatorStatus] -> ShowS
Show, IndicatorStatus -> IndicatorStatus -> Bool
(IndicatorStatus -> IndicatorStatus -> Bool)
-> (IndicatorStatus -> IndicatorStatus -> Bool)
-> Eq IndicatorStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: IndicatorStatus -> IndicatorStatus -> Bool
== :: IndicatorStatus -> IndicatorStatus -> Bool
$c/= :: IndicatorStatus -> IndicatorStatus -> Bool
/= :: IndicatorStatus -> IndicatorStatus -> Bool
Eq)

instance P.Enum IndicatorStatus where
    fromEnum :: IndicatorStatus -> Int
fromEnum IndicatorStatus
IndicatorStatusPassive = Int
0
    fromEnum IndicatorStatus
IndicatorStatusActive = Int
1
    fromEnum IndicatorStatus
IndicatorStatusAttention = Int
2
    fromEnum (AnotherIndicatorStatus Int
k) = Int
k

    toEnum :: Int -> IndicatorStatus
toEnum Int
0 = IndicatorStatus
IndicatorStatusPassive
    toEnum Int
1 = IndicatorStatus
IndicatorStatusActive
    toEnum Int
2 = IndicatorStatus
IndicatorStatusAttention
    toEnum Int
k = Int -> IndicatorStatus
AnotherIndicatorStatus Int
k

instance P.Ord IndicatorStatus where
    compare :: IndicatorStatus -> IndicatorStatus -> Ordering
compare IndicatorStatus
a IndicatorStatus
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (IndicatorStatus -> Int
forall a. Enum a => a -> Int
P.fromEnum IndicatorStatus
a) (IndicatorStatus -> Int
forall a. Enum a => a -> Int
P.fromEnum IndicatorStatus
b)

-- Enum IndicatorCategory
-- | The category provides grouping for the indicators so that
-- users can find indicators that are similar together.
data IndicatorCategory = 
      IndicatorCategoryApplicationStatus
    -- ^ The indicator is used to display the status of the application.
    | IndicatorCategoryCommunications
    -- ^ The application is used for communication with other people.
    | IndicatorCategorySystemServices
    -- ^ A system indicator relating to something in the user\'s system.
    | IndicatorCategoryHardware
    -- ^ An indicator relating to the user\'s hardware.
    | IndicatorCategoryOther
    -- ^ Something not defined in this enum, please don\'t use unless you really need it.
    | AnotherIndicatorCategory Int
    -- ^ Catch-all for unknown values
    deriving (Int -> IndicatorCategory -> ShowS
[IndicatorCategory] -> ShowS
IndicatorCategory -> String
(Int -> IndicatorCategory -> ShowS)
-> (IndicatorCategory -> String)
-> ([IndicatorCategory] -> ShowS)
-> Show IndicatorCategory
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> IndicatorCategory -> ShowS
showsPrec :: Int -> IndicatorCategory -> ShowS
$cshow :: IndicatorCategory -> String
show :: IndicatorCategory -> String
$cshowList :: [IndicatorCategory] -> ShowS
showList :: [IndicatorCategory] -> ShowS
Show, IndicatorCategory -> IndicatorCategory -> Bool
(IndicatorCategory -> IndicatorCategory -> Bool)
-> (IndicatorCategory -> IndicatorCategory -> Bool)
-> Eq IndicatorCategory
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: IndicatorCategory -> IndicatorCategory -> Bool
== :: IndicatorCategory -> IndicatorCategory -> Bool
$c/= :: IndicatorCategory -> IndicatorCategory -> Bool
/= :: IndicatorCategory -> IndicatorCategory -> Bool
Eq)

instance P.Enum IndicatorCategory where
    fromEnum :: IndicatorCategory -> Int
fromEnum IndicatorCategory
IndicatorCategoryApplicationStatus = Int
0
    fromEnum IndicatorCategory
IndicatorCategoryCommunications = Int
1
    fromEnum IndicatorCategory
IndicatorCategorySystemServices = Int
2
    fromEnum IndicatorCategory
IndicatorCategoryHardware = Int
3
    fromEnum IndicatorCategory
IndicatorCategoryOther = Int
4
    fromEnum (AnotherIndicatorCategory Int
k) = Int
k

    toEnum :: Int -> IndicatorCategory
toEnum Int
0 = IndicatorCategory
IndicatorCategoryApplicationStatus
    toEnum Int
1 = IndicatorCategory
IndicatorCategoryCommunications
    toEnum Int
2 = IndicatorCategory
IndicatorCategorySystemServices
    toEnum Int
3 = IndicatorCategory
IndicatorCategoryHardware
    toEnum Int
4 = IndicatorCategory
IndicatorCategoryOther
    toEnum Int
k = Int -> IndicatorCategory
AnotherIndicatorCategory Int
k

instance P.Ord IndicatorCategory where
    compare :: IndicatorCategory -> IndicatorCategory -> Ordering
compare IndicatorCategory
a IndicatorCategory
b = Int -> Int -> Ordering
forall a. Ord a => a -> a -> Ordering
P.compare (IndicatorCategory -> Int
forall a. Enum a => a -> Int
P.fromEnum IndicatorCategory
a) (IndicatorCategory -> Int
forall a. Enum a => a -> Int
P.fromEnum IndicatorCategory
b)