{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- /No description available in the introspection data./

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

module GI.WebKit2.Structs.ScriptDialog
    ( 

-- * Exported types
    ScriptDialog(..)                        ,
    noScriptDialog                          ,


 -- * Methods
-- ** Overloaded methods #method:Overloaded methods#

#if defined(ENABLE_OVERLOADING)
    ResolveScriptDialogMethod               ,
#endif


-- ** close #method:close#

#if defined(ENABLE_OVERLOADING)
    ScriptDialogCloseMethodInfo             ,
#endif
    scriptDialogClose                       ,


-- ** confirmSetConfirmed #method:confirmSetConfirmed#

#if defined(ENABLE_OVERLOADING)
    ScriptDialogConfirmSetConfirmedMethodInfo,
#endif
    scriptDialogConfirmSetConfirmed         ,


-- ** getDialogType #method:getDialogType#

#if defined(ENABLE_OVERLOADING)
    ScriptDialogGetDialogTypeMethodInfo     ,
#endif
    scriptDialogGetDialogType               ,


-- ** getMessage #method:getMessage#

#if defined(ENABLE_OVERLOADING)
    ScriptDialogGetMessageMethodInfo        ,
#endif
    scriptDialogGetMessage                  ,


-- ** promptGetDefaultText #method:promptGetDefaultText#

#if defined(ENABLE_OVERLOADING)
    ScriptDialogPromptGetDefaultTextMethodInfo,
#endif
    scriptDialogPromptGetDefaultText        ,


-- ** promptSetText #method:promptSetText#

#if defined(ENABLE_OVERLOADING)
    ScriptDialogPromptSetTextMethodInfo     ,
#endif
    scriptDialogPromptSetText               ,


-- ** ref #method:ref#

#if defined(ENABLE_OVERLOADING)
    ScriptDialogRefMethodInfo               ,
#endif
    scriptDialogRef                         ,


-- ** unref #method:unref#

#if defined(ENABLE_OVERLOADING)
    ScriptDialogUnrefMethodInfo             ,
#endif
    scriptDialogUnref                       ,




    ) 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

import {-# SOURCE #-} qualified GI.WebKit2.Enums as WebKit2.Enums

-- | Memory-managed wrapper type.
newtype ScriptDialog = ScriptDialog (ManagedPtr ScriptDialog)
    deriving (ScriptDialog -> ScriptDialog -> Bool
(ScriptDialog -> ScriptDialog -> Bool)
-> (ScriptDialog -> ScriptDialog -> Bool) -> Eq ScriptDialog
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ScriptDialog -> ScriptDialog -> Bool
$c/= :: ScriptDialog -> ScriptDialog -> Bool
== :: ScriptDialog -> ScriptDialog -> Bool
$c== :: ScriptDialog -> ScriptDialog -> Bool
Eq)
foreign import ccall "webkit_script_dialog_get_type" c_webkit_script_dialog_get_type :: 
    IO GType

instance BoxedObject ScriptDialog where
    boxedType :: ScriptDialog -> IO GType
boxedType _ = IO GType
c_webkit_script_dialog_get_type

-- | Convert 'ScriptDialog' to and from 'Data.GI.Base.GValue.GValue' with 'Data.GI.Base.GValue.toGValue' and 'Data.GI.Base.GValue.fromGValue'.
instance B.GValue.IsGValue ScriptDialog where
    toGValue :: ScriptDialog -> IO GValue
toGValue o :: ScriptDialog
o = do
        GType
gtype <- IO GType
c_webkit_script_dialog_get_type
        ScriptDialog -> (Ptr ScriptDialog -> IO GValue) -> IO GValue
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr ScriptDialog
o (GType
-> (GValue -> Ptr ScriptDialog -> IO ())
-> Ptr ScriptDialog
-> IO GValue
forall a. GType -> (GValue -> a -> IO ()) -> a -> IO GValue
B.GValue.buildGValue GType
gtype GValue -> Ptr ScriptDialog -> IO ()
forall a. GValue -> Ptr a -> IO ()
B.GValue.set_boxed)
        
    fromGValue :: GValue -> IO ScriptDialog
fromGValue gv :: GValue
gv = do
        Ptr ScriptDialog
ptr <- GValue -> IO (Ptr ScriptDialog)
forall b. GValue -> IO (Ptr b)
B.GValue.get_boxed GValue
gv :: IO (Ptr ScriptDialog)
        (ManagedPtr ScriptDialog -> ScriptDialog)
-> Ptr ScriptDialog -> IO ScriptDialog
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
B.ManagedPtr.newBoxed ManagedPtr ScriptDialog -> ScriptDialog
ScriptDialog Ptr ScriptDialog
ptr
        
    

-- | A convenience alias for `Nothing` :: `Maybe` `ScriptDialog`.
noScriptDialog :: Maybe ScriptDialog
noScriptDialog :: Maybe ScriptDialog
noScriptDialog = Maybe ScriptDialog
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList ScriptDialog
type instance O.AttributeList ScriptDialog = ScriptDialogAttributeList
type ScriptDialogAttributeList = ('[ ] :: [(Symbol, *)])
#endif

-- method ScriptDialog::close
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "dialog"
--           , argType =
--               TInterface Name { namespace = "WebKit2" , name = "ScriptDialog" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WebKitScriptDialog"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "webkit_script_dialog_close" webkit_script_dialog_close :: 
    Ptr ScriptDialog ->                     -- dialog : TInterface (Name {namespace = "WebKit2", name = "ScriptDialog"})
    IO ()

-- | Close /@dialog@/. When handling a t'GI.WebKit2.Structs.ScriptDialog.ScriptDialog' asynchronously ('GI.WebKit2.Structs.ScriptDialog.scriptDialogRef'
-- was called in [scriptDialog]("GI.WebKit2.Objects.WebView#signal:scriptDialog") callback), this function needs to be called to notify
-- that we are done with the script dialog. The dialog will be closed on destruction if this function
-- hasn\'t been called before.
-- 
-- /Since: 2.24/
scriptDialogClose ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    ScriptDialog
    -- ^ /@dialog@/: a t'GI.WebKit2.Structs.ScriptDialog.ScriptDialog'
    -> m ()
scriptDialogClose :: ScriptDialog -> m ()
scriptDialogClose dialog :: ScriptDialog
dialog = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr ScriptDialog
dialog' <- ScriptDialog -> IO (Ptr ScriptDialog)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ScriptDialog
dialog
    Ptr ScriptDialog -> IO ()
webkit_script_dialog_close Ptr ScriptDialog
dialog'
    ScriptDialog -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr ScriptDialog
dialog
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data ScriptDialogCloseMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo ScriptDialogCloseMethodInfo ScriptDialog signature where
    overloadedMethod = scriptDialogClose

#endif

-- method ScriptDialog::confirm_set_confirmed
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "dialog"
--           , argType =
--               TInterface Name { namespace = "WebKit2" , name = "ScriptDialog" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WebKitScriptDialog"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "confirmed"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "whether user confirmed the dialog"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "webkit_script_dialog_confirm_set_confirmed" webkit_script_dialog_confirm_set_confirmed :: 
    Ptr ScriptDialog ->                     -- dialog : TInterface (Name {namespace = "WebKit2", name = "ScriptDialog"})
    CInt ->                                 -- confirmed : TBasicType TBoolean
    IO ()

-- | This method is used for 'GI.WebKit2.Enums.ScriptDialogTypeConfirm' and 'GI.WebKit2.Enums.ScriptDialogTypeBeforeUnloadConfirm' dialogs when
-- [scriptDialog]("GI.WebKit2.Objects.WebView#signal:scriptDialog") signal is emitted to set whether the user
-- confirmed the dialog or not. The default implementation of [scriptDialog]("GI.WebKit2.Objects.WebView#signal:scriptDialog")
-- signal sets 'P.True' when the OK or Stay buttons are clicked and 'P.False' otherwise.
-- It\'s an error to use this method with a t'GI.WebKit2.Structs.ScriptDialog.ScriptDialog' that is not of type
-- 'GI.WebKit2.Enums.ScriptDialogTypeConfirm' or 'GI.WebKit2.Enums.ScriptDialogTypeBeforeUnloadConfirm'
scriptDialogConfirmSetConfirmed ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    ScriptDialog
    -- ^ /@dialog@/: a t'GI.WebKit2.Structs.ScriptDialog.ScriptDialog'
    -> Bool
    -- ^ /@confirmed@/: whether user confirmed the dialog
    -> m ()
scriptDialogConfirmSetConfirmed :: ScriptDialog -> Bool -> m ()
scriptDialogConfirmSetConfirmed dialog :: ScriptDialog
dialog confirmed :: Bool
confirmed = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr ScriptDialog
dialog' <- ScriptDialog -> IO (Ptr ScriptDialog)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ScriptDialog
dialog
    let confirmed' :: CInt
confirmed' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
confirmed
    Ptr ScriptDialog -> CInt -> IO ()
webkit_script_dialog_confirm_set_confirmed Ptr ScriptDialog
dialog' CInt
confirmed'
    ScriptDialog -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr ScriptDialog
dialog
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data ScriptDialogConfirmSetConfirmedMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m) => O.MethodInfo ScriptDialogConfirmSetConfirmedMethodInfo ScriptDialog signature where
    overloadedMethod = scriptDialogConfirmSetConfirmed

#endif

-- method ScriptDialog::get_dialog_type
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "dialog"
--           , argType =
--               TInterface Name { namespace = "WebKit2" , name = "ScriptDialog" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WebKitScriptDialog"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just
--               (TInterface
--                  Name { namespace = "WebKit2" , name = "ScriptDialogType" })
-- throws : False
-- Skip return : False

foreign import ccall "webkit_script_dialog_get_dialog_type" webkit_script_dialog_get_dialog_type :: 
    Ptr ScriptDialog ->                     -- dialog : TInterface (Name {namespace = "WebKit2", name = "ScriptDialog"})
    IO CUInt

-- | Get the dialog type of a t'GI.WebKit2.Structs.ScriptDialog.ScriptDialog'.
scriptDialogGetDialogType ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    ScriptDialog
    -- ^ /@dialog@/: a t'GI.WebKit2.Structs.ScriptDialog.ScriptDialog'
    -> m WebKit2.Enums.ScriptDialogType
    -- ^ __Returns:__ the t'GI.WebKit2.Enums.ScriptDialogType' of /@dialog@/
scriptDialogGetDialogType :: ScriptDialog -> m ScriptDialogType
scriptDialogGetDialogType dialog :: ScriptDialog
dialog = IO ScriptDialogType -> m ScriptDialogType
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ScriptDialogType -> m ScriptDialogType)
-> IO ScriptDialogType -> m ScriptDialogType
forall a b. (a -> b) -> a -> b
$ do
    Ptr ScriptDialog
dialog' <- ScriptDialog -> IO (Ptr ScriptDialog)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ScriptDialog
dialog
    CUInt
result <- Ptr ScriptDialog -> IO CUInt
webkit_script_dialog_get_dialog_type Ptr ScriptDialog
dialog'
    let result' :: ScriptDialogType
result' = (Int -> ScriptDialogType
forall a. Enum a => Int -> a
toEnum (Int -> ScriptDialogType)
-> (CUInt -> Int) -> CUInt -> ScriptDialogType
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
result
    ScriptDialog -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr ScriptDialog
dialog
    ScriptDialogType -> IO ScriptDialogType
forall (m :: * -> *) a. Monad m => a -> m a
return ScriptDialogType
result'

#if defined(ENABLE_OVERLOADING)
data ScriptDialogGetDialogTypeMethodInfo
instance (signature ~ (m WebKit2.Enums.ScriptDialogType), MonadIO m) => O.MethodInfo ScriptDialogGetDialogTypeMethodInfo ScriptDialog signature where
    overloadedMethod = scriptDialogGetDialogType

#endif

-- method ScriptDialog::get_message
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "dialog"
--           , argType =
--               TInterface Name { namespace = "WebKit2" , name = "ScriptDialog" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WebKitScriptDialog"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_script_dialog_get_message" webkit_script_dialog_get_message :: 
    Ptr ScriptDialog ->                     -- dialog : TInterface (Name {namespace = "WebKit2", name = "ScriptDialog"})
    IO CString

-- | Get the message of a t'GI.WebKit2.Structs.ScriptDialog.ScriptDialog'.
scriptDialogGetMessage ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    ScriptDialog
    -- ^ /@dialog@/: a t'GI.WebKit2.Structs.ScriptDialog.ScriptDialog'
    -> m T.Text
    -- ^ __Returns:__ the message of /@dialog@/.
scriptDialogGetMessage :: ScriptDialog -> m Text
scriptDialogGetMessage dialog :: ScriptDialog
dialog = IO Text -> m Text
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
    Ptr ScriptDialog
dialog' <- ScriptDialog -> IO (Ptr ScriptDialog)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ScriptDialog
dialog
    CString
result <- Ptr ScriptDialog -> IO CString
webkit_script_dialog_get_message Ptr ScriptDialog
dialog'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "scriptDialogGetMessage" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    ScriptDialog -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr ScriptDialog
dialog
    Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'

#if defined(ENABLE_OVERLOADING)
data ScriptDialogGetMessageMethodInfo
instance (signature ~ (m T.Text), MonadIO m) => O.MethodInfo ScriptDialogGetMessageMethodInfo ScriptDialog signature where
    overloadedMethod = scriptDialogGetMessage

#endif

-- method ScriptDialog::prompt_get_default_text
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "dialog"
--           , argType =
--               TInterface Name { namespace = "WebKit2" , name = "ScriptDialog" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WebKitScriptDialog"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_script_dialog_prompt_get_default_text" webkit_script_dialog_prompt_get_default_text :: 
    Ptr ScriptDialog ->                     -- dialog : TInterface (Name {namespace = "WebKit2", name = "ScriptDialog"})
    IO CString

-- | Get the default text of a t'GI.WebKit2.Structs.ScriptDialog.ScriptDialog' of type 'GI.WebKit2.Enums.ScriptDialogTypePrompt'.
-- It\'s an error to use this method with a t'GI.WebKit2.Structs.ScriptDialog.ScriptDialog' that is not of type
-- 'GI.WebKit2.Enums.ScriptDialogTypePrompt'.
scriptDialogPromptGetDefaultText ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    ScriptDialog
    -- ^ /@dialog@/: a t'GI.WebKit2.Structs.ScriptDialog.ScriptDialog'
    -> m T.Text
    -- ^ __Returns:__ the default text of /@dialog@/
scriptDialogPromptGetDefaultText :: ScriptDialog -> m Text
scriptDialogPromptGetDefaultText dialog :: ScriptDialog
dialog = IO Text -> m Text
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
    Ptr ScriptDialog
dialog' <- ScriptDialog -> IO (Ptr ScriptDialog)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ScriptDialog
dialog
    CString
result <- Ptr ScriptDialog -> IO CString
webkit_script_dialog_prompt_get_default_text Ptr ScriptDialog
dialog'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "scriptDialogPromptGetDefaultText" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    ScriptDialog -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr ScriptDialog
dialog
    Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'

#if defined(ENABLE_OVERLOADING)
data ScriptDialogPromptGetDefaultTextMethodInfo
instance (signature ~ (m T.Text), MonadIO m) => O.MethodInfo ScriptDialogPromptGetDefaultTextMethodInfo ScriptDialog signature where
    overloadedMethod = scriptDialogPromptGetDefaultText

#endif

-- method ScriptDialog::prompt_set_text
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "dialog"
--           , argType =
--               TInterface Name { namespace = "WebKit2" , name = "ScriptDialog" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WebKitScriptDialog"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "text"
--           , argType = TBasicType TUTF8
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the text to set" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "webkit_script_dialog_prompt_set_text" webkit_script_dialog_prompt_set_text :: 
    Ptr ScriptDialog ->                     -- dialog : TInterface (Name {namespace = "WebKit2", name = "ScriptDialog"})
    CString ->                              -- text : TBasicType TUTF8
    IO ()

-- | This method is used for 'GI.WebKit2.Enums.ScriptDialogTypePrompt' dialogs when
-- [scriptDialog]("GI.WebKit2.Objects.WebView#signal:scriptDialog") signal is emitted to set the text
-- entered by the user. The default implementation of [scriptDialog]("GI.WebKit2.Objects.WebView#signal:scriptDialog")
-- signal sets the text of the entry form when OK button is clicked, otherwise 'P.Nothing' is set.
-- It\'s an error to use this method with a t'GI.WebKit2.Structs.ScriptDialog.ScriptDialog' that is not of type
-- 'GI.WebKit2.Enums.ScriptDialogTypePrompt'.
scriptDialogPromptSetText ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    ScriptDialog
    -- ^ /@dialog@/: a t'GI.WebKit2.Structs.ScriptDialog.ScriptDialog'
    -> T.Text
    -- ^ /@text@/: the text to set
    -> m ()
scriptDialogPromptSetText :: ScriptDialog -> Text -> m ()
scriptDialogPromptSetText dialog :: ScriptDialog
dialog text :: Text
text = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr ScriptDialog
dialog' <- ScriptDialog -> IO (Ptr ScriptDialog)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ScriptDialog
dialog
    CString
text' <- Text -> IO CString
textToCString Text
text
    Ptr ScriptDialog -> CString -> IO ()
webkit_script_dialog_prompt_set_text Ptr ScriptDialog
dialog' CString
text'
    ScriptDialog -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr ScriptDialog
dialog
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
text'
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data ScriptDialogPromptSetTextMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m) => O.MethodInfo ScriptDialogPromptSetTextMethodInfo ScriptDialog signature where
    overloadedMethod = scriptDialogPromptSetText

#endif

-- method ScriptDialog::ref
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "dialog"
--           , argType =
--               TInterface Name { namespace = "WebKit2" , name = "ScriptDialog" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WebKitScriptDialog"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just
--               (TInterface Name { namespace = "WebKit2" , name = "ScriptDialog" })
-- throws : False
-- Skip return : False

foreign import ccall "webkit_script_dialog_ref" webkit_script_dialog_ref :: 
    Ptr ScriptDialog ->                     -- dialog : TInterface (Name {namespace = "WebKit2", name = "ScriptDialog"})
    IO (Ptr ScriptDialog)

-- | Atomically increments the reference count of /@dialog@/ by one. This
-- function is MT-safe and may be called from any thread.
-- 
-- /Since: 2.24/
scriptDialogRef ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    ScriptDialog
    -- ^ /@dialog@/: a t'GI.WebKit2.Structs.ScriptDialog.ScriptDialog'
    -> m ScriptDialog
    -- ^ __Returns:__ The passed in t'GI.WebKit2.Structs.ScriptDialog.ScriptDialog'
scriptDialogRef :: ScriptDialog -> m ScriptDialog
scriptDialogRef dialog :: ScriptDialog
dialog = IO ScriptDialog -> m ScriptDialog
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ScriptDialog -> m ScriptDialog)
-> IO ScriptDialog -> m ScriptDialog
forall a b. (a -> b) -> a -> b
$ do
    Ptr ScriptDialog
dialog' <- ScriptDialog -> IO (Ptr ScriptDialog)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ScriptDialog
dialog
    Ptr ScriptDialog
result <- Ptr ScriptDialog -> IO (Ptr ScriptDialog)
webkit_script_dialog_ref Ptr ScriptDialog
dialog'
    Text -> Ptr ScriptDialog -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "scriptDialogRef" Ptr ScriptDialog
result
    ScriptDialog
result' <- ((ManagedPtr ScriptDialog -> ScriptDialog)
-> Ptr ScriptDialog -> IO ScriptDialog
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr ScriptDialog -> ScriptDialog
ScriptDialog) Ptr ScriptDialog
result
    ScriptDialog -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr ScriptDialog
dialog
    ScriptDialog -> IO ScriptDialog
forall (m :: * -> *) a. Monad m => a -> m a
return ScriptDialog
result'

#if defined(ENABLE_OVERLOADING)
data ScriptDialogRefMethodInfo
instance (signature ~ (m ScriptDialog), MonadIO m) => O.MethodInfo ScriptDialogRefMethodInfo ScriptDialog signature where
    overloadedMethod = scriptDialogRef

#endif

-- method ScriptDialog::unref
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "dialog"
--           , argType =
--               TInterface Name { namespace = "WebKit2" , name = "ScriptDialog" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WebKitScriptDialog"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "webkit_script_dialog_unref" webkit_script_dialog_unref :: 
    Ptr ScriptDialog ->                     -- dialog : TInterface (Name {namespace = "WebKit2", name = "ScriptDialog"})
    IO ()

-- | Atomically decrements the reference count of /@dialog@/ by one. If the
-- reference count drops to 0, all memory allocated by the @/WebKitScriptdialog/@ is
-- released. This function is MT-safe and may be called from any
-- thread.
-- 
-- /Since: 2.24/
scriptDialogUnref ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    ScriptDialog
    -- ^ /@dialog@/: a t'GI.WebKit2.Structs.ScriptDialog.ScriptDialog'
    -> m ()
scriptDialogUnref :: ScriptDialog -> m ()
scriptDialogUnref dialog :: ScriptDialog
dialog = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr ScriptDialog
dialog' <- ScriptDialog -> IO (Ptr ScriptDialog)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ScriptDialog
dialog
    Ptr ScriptDialog -> IO ()
webkit_script_dialog_unref Ptr ScriptDialog
dialog'
    ScriptDialog -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr ScriptDialog
dialog
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data ScriptDialogUnrefMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo ScriptDialogUnrefMethodInfo ScriptDialog signature where
    overloadedMethod = scriptDialogUnref

#endif

#if defined(ENABLE_OVERLOADING)
type family ResolveScriptDialogMethod (t :: Symbol) (o :: *) :: * where
    ResolveScriptDialogMethod "close" o = ScriptDialogCloseMethodInfo
    ResolveScriptDialogMethod "confirmSetConfirmed" o = ScriptDialogConfirmSetConfirmedMethodInfo
    ResolveScriptDialogMethod "promptGetDefaultText" o = ScriptDialogPromptGetDefaultTextMethodInfo
    ResolveScriptDialogMethod "promptSetText" o = ScriptDialogPromptSetTextMethodInfo
    ResolveScriptDialogMethod "ref" o = ScriptDialogRefMethodInfo
    ResolveScriptDialogMethod "unref" o = ScriptDialogUnrefMethodInfo
    ResolveScriptDialogMethod "getDialogType" o = ScriptDialogGetDialogTypeMethodInfo
    ResolveScriptDialogMethod "getMessage" o = ScriptDialogGetMessageMethodInfo
    ResolveScriptDialogMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveScriptDialogMethod t ScriptDialog, O.MethodInfo info ScriptDialog p) => OL.IsLabel t (ScriptDialog -> p) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.overloadedMethod @info
#else
    fromLabel _ = O.overloadedMethod @info
#endif

#endif