-- | Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
-- 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.WebKit2.Flags
    ( 

 -- * Flags
-- ** EditorTypingAttributes #flag:EditorTypingAttributes#

    EditorTypingAttributes(..)              ,


-- ** FindOptions #flag:FindOptions#

    FindOptions(..)                         ,


-- ** HitTestResultContext #flag:HitTestResultContext#

    HitTestResultContext(..)                ,


-- ** SnapshotOptions #flag:SnapshotOptions#

    SnapshotOptions(..)                     ,


-- ** WebsiteDataTypes #flag:WebsiteDataTypes#

    WebsiteDataTypes(..)                    ,




    ) 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.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
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 Data.Text as T
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


-- Flags WebsiteDataTypes
-- | Enum values with flags representing types of Website data.
-- 
-- /Since: 2.16/
data WebsiteDataTypes = 
      WebsiteDataTypesMemoryCache
    -- ^ Memory cache.
    | WebsiteDataTypesDiskCache
    -- ^ HTTP disk cache.
    | WebsiteDataTypesOfflineApplicationCache
    -- ^ Offline web application cache.
    | WebsiteDataTypesSessionStorage
    -- ^ Session storage data.
    | WebsiteDataTypesLocalStorage
    -- ^ Local storage data.
    | WebsiteDataTypesWebsqlDatabases
    -- ^ WebSQL databases. Deprecated 2.24
    | WebsiteDataTypesIndexeddbDatabases
    -- ^ IndexedDB databases.
    | WebsiteDataTypesPluginData
    -- ^ Plugins data.
    | WebsiteDataTypesCookies
    -- ^ Cookies.
    | WebsiteDataTypesDeviceIdHashSalt
    -- ^ Hash salt used to generate the device ids used by webpages. Since 2.24
    | WebsiteDataTypesAll
    -- ^ All types.
    | AnotherWebsiteDataTypes Int
    -- ^ Catch-all for unknown values
    deriving (Int -> WebsiteDataTypes -> ShowS
[WebsiteDataTypes] -> ShowS
WebsiteDataTypes -> String
(Int -> WebsiteDataTypes -> ShowS)
-> (WebsiteDataTypes -> String)
-> ([WebsiteDataTypes] -> ShowS)
-> Show WebsiteDataTypes
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [WebsiteDataTypes] -> ShowS
$cshowList :: [WebsiteDataTypes] -> ShowS
show :: WebsiteDataTypes -> String
$cshow :: WebsiteDataTypes -> String
showsPrec :: Int -> WebsiteDataTypes -> ShowS
$cshowsPrec :: Int -> WebsiteDataTypes -> ShowS
Show, WebsiteDataTypes -> WebsiteDataTypes -> Bool
(WebsiteDataTypes -> WebsiteDataTypes -> Bool)
-> (WebsiteDataTypes -> WebsiteDataTypes -> Bool)
-> Eq WebsiteDataTypes
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: WebsiteDataTypes -> WebsiteDataTypes -> Bool
$c/= :: WebsiteDataTypes -> WebsiteDataTypes -> Bool
== :: WebsiteDataTypes -> WebsiteDataTypes -> Bool
$c== :: WebsiteDataTypes -> WebsiteDataTypes -> Bool
Eq)

instance P.Enum WebsiteDataTypes where
    fromEnum :: WebsiteDataTypes -> Int
fromEnum WebsiteDataTypesMemoryCache = 1
    fromEnum WebsiteDataTypesDiskCache = 2
    fromEnum WebsiteDataTypesOfflineApplicationCache = 4
    fromEnum WebsiteDataTypesSessionStorage = 8
    fromEnum WebsiteDataTypesLocalStorage = 16
    fromEnum WebsiteDataTypesWebsqlDatabases = 32
    fromEnum WebsiteDataTypesIndexeddbDatabases = 64
    fromEnum WebsiteDataTypesPluginData = 128
    fromEnum WebsiteDataTypesCookies = 256
    fromEnum WebsiteDataTypesDeviceIdHashSalt = 512
    fromEnum WebsiteDataTypesAll = 1023
    fromEnum (AnotherWebsiteDataTypes k :: Int
k) = Int
k

    toEnum :: Int -> WebsiteDataTypes
toEnum 1 = WebsiteDataTypes
WebsiteDataTypesMemoryCache
    toEnum 2 = WebsiteDataTypes
WebsiteDataTypesDiskCache
    toEnum 4 = WebsiteDataTypes
WebsiteDataTypesOfflineApplicationCache
    toEnum 8 = WebsiteDataTypes
WebsiteDataTypesSessionStorage
    toEnum 16 = WebsiteDataTypes
WebsiteDataTypesLocalStorage
    toEnum 32 = WebsiteDataTypes
WebsiteDataTypesWebsqlDatabases
    toEnum 64 = WebsiteDataTypes
WebsiteDataTypesIndexeddbDatabases
    toEnum 128 = WebsiteDataTypes
WebsiteDataTypesPluginData
    toEnum 256 = WebsiteDataTypes
WebsiteDataTypesCookies
    toEnum 512 = WebsiteDataTypes
WebsiteDataTypesDeviceIdHashSalt
    toEnum 1023 = WebsiteDataTypes
WebsiteDataTypesAll
    toEnum k :: Int
k = Int -> WebsiteDataTypes
AnotherWebsiteDataTypes Int
k

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

foreign import ccall "webkit_website_data_types_get_type" c_webkit_website_data_types_get_type :: 
    IO GType

instance BoxedFlags WebsiteDataTypes where
    boxedFlagsType :: Proxy WebsiteDataTypes -> IO GType
boxedFlagsType _ = IO GType
c_webkit_website_data_types_get_type

instance IsGFlag WebsiteDataTypes

-- Flags SnapshotOptions
-- | Enum values used to specify options when taking a snapshot
-- from a t'GI.WebKit2.Objects.WebView.WebView'.
data SnapshotOptions = 
      SnapshotOptionsNone
    -- ^ Do not include any special options.
    | SnapshotOptionsIncludeSelectionHighlighting
    -- ^ Whether to include in the
    -- snapshot the highlight of the selected content.
    | SnapshotOptionsTransparentBackground
    -- ^ Do not fill the background with white before
    -- rendering the snapshot. Since 2.8
    | AnotherSnapshotOptions Int
    -- ^ Catch-all for unknown values
    deriving (Int -> SnapshotOptions -> ShowS
[SnapshotOptions] -> ShowS
SnapshotOptions -> String
(Int -> SnapshotOptions -> ShowS)
-> (SnapshotOptions -> String)
-> ([SnapshotOptions] -> ShowS)
-> Show SnapshotOptions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SnapshotOptions] -> ShowS
$cshowList :: [SnapshotOptions] -> ShowS
show :: SnapshotOptions -> String
$cshow :: SnapshotOptions -> String
showsPrec :: Int -> SnapshotOptions -> ShowS
$cshowsPrec :: Int -> SnapshotOptions -> ShowS
Show, SnapshotOptions -> SnapshotOptions -> Bool
(SnapshotOptions -> SnapshotOptions -> Bool)
-> (SnapshotOptions -> SnapshotOptions -> Bool)
-> Eq SnapshotOptions
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SnapshotOptions -> SnapshotOptions -> Bool
$c/= :: SnapshotOptions -> SnapshotOptions -> Bool
== :: SnapshotOptions -> SnapshotOptions -> Bool
$c== :: SnapshotOptions -> SnapshotOptions -> Bool
Eq)

instance P.Enum SnapshotOptions where
    fromEnum :: SnapshotOptions -> Int
fromEnum SnapshotOptionsNone = 0
    fromEnum SnapshotOptionsIncludeSelectionHighlighting = 1
    fromEnum SnapshotOptionsTransparentBackground = 2
    fromEnum (AnotherSnapshotOptions k :: Int
k) = Int
k

    toEnum :: Int -> SnapshotOptions
toEnum 0 = SnapshotOptions
SnapshotOptionsNone
    toEnum 1 = SnapshotOptions
SnapshotOptionsIncludeSelectionHighlighting
    toEnum 2 = SnapshotOptions
SnapshotOptionsTransparentBackground
    toEnum k :: Int
k = Int -> SnapshotOptions
AnotherSnapshotOptions Int
k

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

foreign import ccall "webkit_snapshot_options_get_type" c_webkit_snapshot_options_get_type :: 
    IO GType

instance BoxedFlags SnapshotOptions where
    boxedFlagsType :: Proxy SnapshotOptions -> IO GType
boxedFlagsType _ = IO GType
c_webkit_snapshot_options_get_type

instance IsGFlag SnapshotOptions

-- Flags HitTestResultContext
-- | Enum values with flags representing the context of a t'GI.WebKit2.Objects.HitTestResult.HitTestResult'.
data HitTestResultContext = 
      HitTestResultContextDocument
    -- ^ anywhere in the document.
    | HitTestResultContextLink
    -- ^ a hyperlink element.
    | HitTestResultContextImage
    -- ^ an image element.
    | HitTestResultContextMedia
    -- ^ a video or audio element.
    | HitTestResultContextEditable
    -- ^ an editable element
    | HitTestResultContextScrollbar
    -- ^ a scrollbar element.
    | HitTestResultContextSelection
    -- ^ a selected element. Since 2.8
    | AnotherHitTestResultContext Int
    -- ^ Catch-all for unknown values
    deriving (Int -> HitTestResultContext -> ShowS
[HitTestResultContext] -> ShowS
HitTestResultContext -> String
(Int -> HitTestResultContext -> ShowS)
-> (HitTestResultContext -> String)
-> ([HitTestResultContext] -> ShowS)
-> Show HitTestResultContext
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [HitTestResultContext] -> ShowS
$cshowList :: [HitTestResultContext] -> ShowS
show :: HitTestResultContext -> String
$cshow :: HitTestResultContext -> String
showsPrec :: Int -> HitTestResultContext -> ShowS
$cshowsPrec :: Int -> HitTestResultContext -> ShowS
Show, HitTestResultContext -> HitTestResultContext -> Bool
(HitTestResultContext -> HitTestResultContext -> Bool)
-> (HitTestResultContext -> HitTestResultContext -> Bool)
-> Eq HitTestResultContext
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: HitTestResultContext -> HitTestResultContext -> Bool
$c/= :: HitTestResultContext -> HitTestResultContext -> Bool
== :: HitTestResultContext -> HitTestResultContext -> Bool
$c== :: HitTestResultContext -> HitTestResultContext -> Bool
Eq)

instance P.Enum HitTestResultContext where
    fromEnum :: HitTestResultContext -> Int
fromEnum HitTestResultContextDocument = 2
    fromEnum HitTestResultContextLink = 4
    fromEnum HitTestResultContextImage = 8
    fromEnum HitTestResultContextMedia = 16
    fromEnum HitTestResultContextEditable = 32
    fromEnum HitTestResultContextScrollbar = 64
    fromEnum HitTestResultContextSelection = 128
    fromEnum (AnotherHitTestResultContext k :: Int
k) = Int
k

    toEnum :: Int -> HitTestResultContext
toEnum 2 = HitTestResultContext
HitTestResultContextDocument
    toEnum 4 = HitTestResultContext
HitTestResultContextLink
    toEnum 8 = HitTestResultContext
HitTestResultContextImage
    toEnum 16 = HitTestResultContext
HitTestResultContextMedia
    toEnum 32 = HitTestResultContext
HitTestResultContextEditable
    toEnum 64 = HitTestResultContext
HitTestResultContextScrollbar
    toEnum 128 = HitTestResultContext
HitTestResultContextSelection
    toEnum k :: Int
k = Int -> HitTestResultContext
AnotherHitTestResultContext Int
k

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

foreign import ccall "webkit_hit_test_result_context_get_type" c_webkit_hit_test_result_context_get_type :: 
    IO GType

instance BoxedFlags HitTestResultContext where
    boxedFlagsType :: Proxy HitTestResultContext -> IO GType
boxedFlagsType _ = IO GType
c_webkit_hit_test_result_context_get_type

instance IsGFlag HitTestResultContext

-- Flags FindOptions
-- | Enum values used to specify search options.
data FindOptions = 
      FindOptionsNone
    -- ^ no search flags, this means a case
    --   sensitive, no wrap, forward only search.
    | FindOptionsCaseInsensitive
    -- ^ case insensitive search.
    | FindOptionsAtWordStarts
    -- ^ search text only at the
    --   begining of the words.
    | FindOptionsTreatMedialCapitalAsWordStart
    -- ^ treat
    --   capital letters in the middle of words as word start.
    | FindOptionsBackwards
    -- ^ search backwards.
    | FindOptionsWrapAround
    -- ^ if not present search will stop
    --   at the end of the document.
    | AnotherFindOptions Int
    -- ^ Catch-all for unknown values
    deriving (Int -> FindOptions -> ShowS
[FindOptions] -> ShowS
FindOptions -> String
(Int -> FindOptions -> ShowS)
-> (FindOptions -> String)
-> ([FindOptions] -> ShowS)
-> Show FindOptions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [FindOptions] -> ShowS
$cshowList :: [FindOptions] -> ShowS
show :: FindOptions -> String
$cshow :: FindOptions -> String
showsPrec :: Int -> FindOptions -> ShowS
$cshowsPrec :: Int -> FindOptions -> ShowS
Show, FindOptions -> FindOptions -> Bool
(FindOptions -> FindOptions -> Bool)
-> (FindOptions -> FindOptions -> Bool) -> Eq FindOptions
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FindOptions -> FindOptions -> Bool
$c/= :: FindOptions -> FindOptions -> Bool
== :: FindOptions -> FindOptions -> Bool
$c== :: FindOptions -> FindOptions -> Bool
Eq)

instance P.Enum FindOptions where
    fromEnum :: FindOptions -> Int
fromEnum FindOptionsNone = 0
    fromEnum FindOptionsCaseInsensitive = 1
    fromEnum FindOptionsAtWordStarts = 2
    fromEnum FindOptionsTreatMedialCapitalAsWordStart = 4
    fromEnum FindOptionsBackwards = 8
    fromEnum FindOptionsWrapAround = 16
    fromEnum (AnotherFindOptions k :: Int
k) = Int
k

    toEnum :: Int -> FindOptions
toEnum 0 = FindOptions
FindOptionsNone
    toEnum 1 = FindOptions
FindOptionsCaseInsensitive
    toEnum 2 = FindOptions
FindOptionsAtWordStarts
    toEnum 4 = FindOptions
FindOptionsTreatMedialCapitalAsWordStart
    toEnum 8 = FindOptions
FindOptionsBackwards
    toEnum 16 = FindOptions
FindOptionsWrapAround
    toEnum k :: Int
k = Int -> FindOptions
AnotherFindOptions Int
k

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

foreign import ccall "webkit_find_options_get_type" c_webkit_find_options_get_type :: 
    IO GType

instance BoxedFlags FindOptions where
    boxedFlagsType :: Proxy FindOptions -> IO GType
boxedFlagsType _ = IO GType
c_webkit_find_options_get_type

instance IsGFlag FindOptions

-- Flags EditorTypingAttributes
-- | Enum values with flags representing typing attributes.
-- 
-- /Since: 2.10/
data EditorTypingAttributes = 
      EditorTypingAttributesNone
    -- ^ No typing attributes.
    | EditorTypingAttributesBold
    -- ^ Bold typing attribute.
    | EditorTypingAttributesItalic
    -- ^ Italic typing attribute.
    | EditorTypingAttributesUnderline
    -- ^ Underline typing attribute.
    | EditorTypingAttributesStrikethrough
    -- ^ Strikethrough typing attribute.
    | AnotherEditorTypingAttributes Int
    -- ^ Catch-all for unknown values
    deriving (Int -> EditorTypingAttributes -> ShowS
[EditorTypingAttributes] -> ShowS
EditorTypingAttributes -> String
(Int -> EditorTypingAttributes -> ShowS)
-> (EditorTypingAttributes -> String)
-> ([EditorTypingAttributes] -> ShowS)
-> Show EditorTypingAttributes
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [EditorTypingAttributes] -> ShowS
$cshowList :: [EditorTypingAttributes] -> ShowS
show :: EditorTypingAttributes -> String
$cshow :: EditorTypingAttributes -> String
showsPrec :: Int -> EditorTypingAttributes -> ShowS
$cshowsPrec :: Int -> EditorTypingAttributes -> ShowS
Show, EditorTypingAttributes -> EditorTypingAttributes -> Bool
(EditorTypingAttributes -> EditorTypingAttributes -> Bool)
-> (EditorTypingAttributes -> EditorTypingAttributes -> Bool)
-> Eq EditorTypingAttributes
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: EditorTypingAttributes -> EditorTypingAttributes -> Bool
$c/= :: EditorTypingAttributes -> EditorTypingAttributes -> Bool
== :: EditorTypingAttributes -> EditorTypingAttributes -> Bool
$c== :: EditorTypingAttributes -> EditorTypingAttributes -> Bool
Eq)

instance P.Enum EditorTypingAttributes where
    fromEnum :: EditorTypingAttributes -> Int
fromEnum EditorTypingAttributesNone = 2
    fromEnum EditorTypingAttributesBold = 4
    fromEnum EditorTypingAttributesItalic = 8
    fromEnum EditorTypingAttributesUnderline = 16
    fromEnum EditorTypingAttributesStrikethrough = 32
    fromEnum (AnotherEditorTypingAttributes k :: Int
k) = Int
k

    toEnum :: Int -> EditorTypingAttributes
toEnum 2 = EditorTypingAttributes
EditorTypingAttributesNone
    toEnum 4 = EditorTypingAttributes
EditorTypingAttributesBold
    toEnum 8 = EditorTypingAttributes
EditorTypingAttributesItalic
    toEnum 16 = EditorTypingAttributes
EditorTypingAttributesUnderline
    toEnum 32 = EditorTypingAttributes
EditorTypingAttributesStrikethrough
    toEnum k :: Int
k = Int -> EditorTypingAttributes
AnotherEditorTypingAttributes Int
k

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

foreign import ccall "webkit_editor_typing_attributes_get_type" c_webkit_editor_typing_attributes_get_type :: 
    IO GType

instance BoxedFlags EditorTypingAttributes where
    boxedFlagsType :: Proxy EditorTypingAttributes -> IO GType
boxedFlagsType _ = IO GType
c_webkit_editor_typing_attributes_get_type

instance IsGFlag EditorTypingAttributes