{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

module GI.Vte.Flags
    ( 

-- * Exported types
    PtyFlags(..)                            ,


    ) where

import Prelude ()
import Data.GI.Base.ShortPrelude

import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map




-- Flags PtyFlags

data PtyFlags = 
      PtyFlagsNoLastlog
    | PtyFlagsNoUtmp
    | PtyFlagsNoWtmp
    | PtyFlagsNoHelper
    | PtyFlagsNoFallback
    | PtyFlagsDefault
    | AnotherPtyFlags Int
    deriving (Show, Eq)

instance Enum PtyFlags where
    fromEnum PtyFlagsNoLastlog = 1
    fromEnum PtyFlagsNoUtmp = 2
    fromEnum PtyFlagsNoWtmp = 4
    fromEnum PtyFlagsNoHelper = 8
    fromEnum PtyFlagsNoFallback = 16
    fromEnum PtyFlagsDefault = 0
    fromEnum (AnotherPtyFlags k) = k

    toEnum 0 = PtyFlagsDefault
    toEnum 1 = PtyFlagsNoLastlog
    toEnum 2 = PtyFlagsNoUtmp
    toEnum 4 = PtyFlagsNoWtmp
    toEnum 8 = PtyFlagsNoHelper
    toEnum 16 = PtyFlagsNoFallback
    toEnum k = AnotherPtyFlags k

foreign import ccall "vte_pty_flags_get_type" c_vte_pty_flags_get_type :: 
    IO GType

instance BoxedEnum PtyFlags where
    boxedEnumType _ = c_vte_pty_flags_get_type

instance IsGFlag PtyFlags