module Termbox.Bindings.Hs.Internal.EventMod
  ( Tb_event_mod
      ( Tb_event_mod,
        TB_MOD_ALT,
        TB_MOD_MOTION
      ),
  )
where

import Data.Word (Word8)
import qualified Termbox.Bindings.C

-- | An event modifier.
newtype Tb_event_mod
  = Tb_event_mod Word8
  deriving stock (Tb_event_mod -> Tb_event_mod -> Bool
(Tb_event_mod -> Tb_event_mod -> Bool)
-> (Tb_event_mod -> Tb_event_mod -> Bool) -> Eq Tb_event_mod
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Tb_event_mod -> Tb_event_mod -> Bool
== :: Tb_event_mod -> Tb_event_mod -> Bool
$c/= :: Tb_event_mod -> Tb_event_mod -> Bool
/= :: Tb_event_mod -> Tb_event_mod -> Bool
Eq, Eq Tb_event_mod
Eq Tb_event_mod =>
(Tb_event_mod -> Tb_event_mod -> Ordering)
-> (Tb_event_mod -> Tb_event_mod -> Bool)
-> (Tb_event_mod -> Tb_event_mod -> Bool)
-> (Tb_event_mod -> Tb_event_mod -> Bool)
-> (Tb_event_mod -> Tb_event_mod -> Bool)
-> (Tb_event_mod -> Tb_event_mod -> Tb_event_mod)
-> (Tb_event_mod -> Tb_event_mod -> Tb_event_mod)
-> Ord Tb_event_mod
Tb_event_mod -> Tb_event_mod -> Bool
Tb_event_mod -> Tb_event_mod -> Ordering
Tb_event_mod -> Tb_event_mod -> Tb_event_mod
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: Tb_event_mod -> Tb_event_mod -> Ordering
compare :: Tb_event_mod -> Tb_event_mod -> Ordering
$c< :: Tb_event_mod -> Tb_event_mod -> Bool
< :: Tb_event_mod -> Tb_event_mod -> Bool
$c<= :: Tb_event_mod -> Tb_event_mod -> Bool
<= :: Tb_event_mod -> Tb_event_mod -> Bool
$c> :: Tb_event_mod -> Tb_event_mod -> Bool
> :: Tb_event_mod -> Tb_event_mod -> Bool
$c>= :: Tb_event_mod -> Tb_event_mod -> Bool
>= :: Tb_event_mod -> Tb_event_mod -> Bool
$cmax :: Tb_event_mod -> Tb_event_mod -> Tb_event_mod
max :: Tb_event_mod -> Tb_event_mod -> Tb_event_mod
$cmin :: Tb_event_mod -> Tb_event_mod -> Tb_event_mod
min :: Tb_event_mod -> Tb_event_mod -> Tb_event_mod
Ord, Int -> Tb_event_mod -> ShowS
[Tb_event_mod] -> ShowS
Tb_event_mod -> String
(Int -> Tb_event_mod -> ShowS)
-> (Tb_event_mod -> String)
-> ([Tb_event_mod] -> ShowS)
-> Show Tb_event_mod
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Tb_event_mod -> ShowS
showsPrec :: Int -> Tb_event_mod -> ShowS
$cshow :: Tb_event_mod -> String
show :: Tb_event_mod -> String
$cshowList :: [Tb_event_mod] -> ShowS
showList :: [Tb_event_mod] -> ShowS
Show)

pattern TB_MOD_ALT :: Tb_event_mod
pattern $mTB_MOD_ALT :: forall {r}. Tb_event_mod -> ((# #) -> r) -> ((# #) -> r) -> r
$bTB_MOD_ALT :: Tb_event_mod
TB_MOD_ALT <-
  ((== Tb_event_mod Termbox.Bindings.C._TB_MOD_ALT) -> True)
  where
    TB_MOD_ALT = Word8 -> Tb_event_mod
Tb_event_mod Word8
Termbox.Bindings.C._TB_MOD_ALT

pattern TB_MOD_MOTION :: Tb_event_mod
pattern $mTB_MOD_MOTION :: forall {r}. Tb_event_mod -> ((# #) -> r) -> ((# #) -> r) -> r
$bTB_MOD_MOTION :: Tb_event_mod
TB_MOD_MOTION <-
  ((== Tb_event_mod Termbox.Bindings.C._TB_MOD_MOTION) -> True)
  where
    TB_MOD_MOTION = Word8 -> Tb_event_mod
Tb_event_mod Word8
Termbox.Bindings.C._TB_MOD_MOTION