{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc) /No description available in the introspection data./ -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.WebKit2.Objects.FormSubmissionRequest ( -- * Exported types FormSubmissionRequest(..) , IsFormSubmissionRequest , toFormSubmissionRequest , noFormSubmissionRequest , -- * Methods -- ** getTextFields #method:getTextFields# #if ENABLE_OVERLOADING FormSubmissionRequestGetTextFieldsMethodInfo, #endif formSubmissionRequestGetTextFields , -- ** listTextFields #method:listTextFields# #if ENABLE_OVERLOADING FormSubmissionRequestListTextFieldsMethodInfo, #endif formSubmissionRequestListTextFields , -- ** submit #method:submit# #if ENABLE_OVERLOADING FormSubmissionRequestSubmitMethodInfo , #endif formSubmissionRequestSubmit , ) 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.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 qualified GI.GObject.Objects.Object as GObject.Object -- | Memory-managed wrapper type. newtype FormSubmissionRequest = FormSubmissionRequest (ManagedPtr FormSubmissionRequest) foreign import ccall "webkit_form_submission_request_get_type" c_webkit_form_submission_request_get_type :: IO GType instance GObject FormSubmissionRequest where gobjectType = c_webkit_form_submission_request_get_type -- | Type class for types which can be safely cast to `FormSubmissionRequest`, for instance with `toFormSubmissionRequest`. class (GObject o, O.IsDescendantOf FormSubmissionRequest o) => IsFormSubmissionRequest o instance (GObject o, O.IsDescendantOf FormSubmissionRequest o) => IsFormSubmissionRequest o instance O.HasParentTypes FormSubmissionRequest type instance O.ParentTypes FormSubmissionRequest = '[GObject.Object.Object] -- | Cast to `FormSubmissionRequest`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`. toFormSubmissionRequest :: (MonadIO m, IsFormSubmissionRequest o) => o -> m FormSubmissionRequest toFormSubmissionRequest = liftIO . unsafeCastTo FormSubmissionRequest -- | A convenience alias for `Nothing` :: `Maybe` `FormSubmissionRequest`. noFormSubmissionRequest :: Maybe FormSubmissionRequest noFormSubmissionRequest = Nothing #if ENABLE_OVERLOADING type family ResolveFormSubmissionRequestMethod (t :: Symbol) (o :: *) :: * where ResolveFormSubmissionRequestMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo ResolveFormSubmissionRequestMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo ResolveFormSubmissionRequestMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo ResolveFormSubmissionRequestMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo ResolveFormSubmissionRequestMethod "getv" o = GObject.Object.ObjectGetvMethodInfo ResolveFormSubmissionRequestMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo ResolveFormSubmissionRequestMethod "listTextFields" o = FormSubmissionRequestListTextFieldsMethodInfo ResolveFormSubmissionRequestMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo ResolveFormSubmissionRequestMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo ResolveFormSubmissionRequestMethod "ref" o = GObject.Object.ObjectRefMethodInfo ResolveFormSubmissionRequestMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo ResolveFormSubmissionRequestMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo ResolveFormSubmissionRequestMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo ResolveFormSubmissionRequestMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo ResolveFormSubmissionRequestMethod "submit" o = FormSubmissionRequestSubmitMethodInfo ResolveFormSubmissionRequestMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo ResolveFormSubmissionRequestMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo ResolveFormSubmissionRequestMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo ResolveFormSubmissionRequestMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo ResolveFormSubmissionRequestMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo ResolveFormSubmissionRequestMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo ResolveFormSubmissionRequestMethod "getTextFields" o = FormSubmissionRequestGetTextFieldsMethodInfo ResolveFormSubmissionRequestMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo ResolveFormSubmissionRequestMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo ResolveFormSubmissionRequestMethod l o = O.MethodResolutionFailed l o instance (info ~ ResolveFormSubmissionRequestMethod t FormSubmissionRequest, O.MethodInfo info FormSubmissionRequest p) => OL.IsLabel t (FormSubmissionRequest -> p) where #if MIN_VERSION_base(4,10,0) fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info) #else fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info) #endif #endif #if ENABLE_OVERLOADING instance O.HasAttributeList FormSubmissionRequest type instance O.AttributeList FormSubmissionRequest = FormSubmissionRequestAttributeList type FormSubmissionRequestAttributeList = ('[ ] :: [(Symbol, *)]) #endif #if ENABLE_OVERLOADING #endif #if ENABLE_OVERLOADING type instance O.SignalList FormSubmissionRequest = FormSubmissionRequestSignalList type FormSubmissionRequestSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)]) #endif -- method FormSubmissionRequest::get_text_fields -- method type : OrdinaryMethod -- Args : [Arg {argCName = "request", argType = TInterface (Name {namespace = "WebKit2", name = "FormSubmissionRequest"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitFormSubmissionRequest", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TGHash (TBasicType TPtr) (TBasicType TPtr)) -- throws : False -- Skip return : False foreign import ccall "webkit_form_submission_request_get_text_fields" webkit_form_submission_request_get_text_fields :: Ptr FormSubmissionRequest -> -- request : TInterface (Name {namespace = "WebKit2", name = "FormSubmissionRequest"}) IO (Ptr (GHashTable (Ptr ()) (Ptr ()))) {-# DEPRECATED formSubmissionRequestGetTextFields ["(Since version 2.20.)","Use 'GI.WebKit2.Objects.FormSubmissionRequest.formSubmissionRequestListTextFields' instead."] #-} {- | Get a 'GI.GLib.Structs.HashTable.HashTable' with the values of the text fields contained in the form associated to /@request@/. Note that fields will be missing if the form contains multiple text input elements with the same name, so this function does not reliably return all text fields. -} formSubmissionRequestGetTextFields :: (B.CallStack.HasCallStack, MonadIO m, IsFormSubmissionRequest a) => a {- ^ /@request@/: a 'GI.WebKit2.Objects.FormSubmissionRequest.FormSubmissionRequest' -} -> m (Maybe (Map.Map (Ptr ()) (Ptr ()))) {- ^ __Returns:__ a 'GI.GLib.Structs.HashTable.HashTable' with the form text fields, or 'Nothing' if the form doesn\'t contain text fields. -} formSubmissionRequestGetTextFields request = liftIO $ do request' <- unsafeManagedPtrCastPtr request result <- webkit_form_submission_request_get_text_fields request' maybeResult <- convertIfNonNull result $ \result' -> do result'' <- unpackGHashTable result' let result''' = mapFirst ptrUnpackPtr result'' let result'''' = mapSecond ptrUnpackPtr result''' let result''''' = Map.fromList result'''' return result''''' touchManagedPtr request return maybeResult #if ENABLE_OVERLOADING data FormSubmissionRequestGetTextFieldsMethodInfo instance (signature ~ (m (Maybe (Map.Map (Ptr ()) (Ptr ())))), MonadIO m, IsFormSubmissionRequest a) => O.MethodInfo FormSubmissionRequestGetTextFieldsMethodInfo a signature where overloadedMethod _ = formSubmissionRequestGetTextFields #endif -- method FormSubmissionRequest::list_text_fields -- method type : OrdinaryMethod -- Args : [Arg {argCName = "request", argType = TInterface (Name {namespace = "WebKit2", name = "FormSubmissionRequest"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitFormSubmissionRequest", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "field_names", argType = TPtrArray (TBasicType TUTF8), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "\n names of the text fields in the form", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "field_values", argType = TPtrArray (TBasicType TUTF8), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "\n values of the text fields in the form", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "webkit_form_submission_request_list_text_fields" webkit_form_submission_request_list_text_fields :: Ptr FormSubmissionRequest -> -- request : TInterface (Name {namespace = "WebKit2", name = "FormSubmissionRequest"}) Ptr (Ptr (GPtrArray CString)) -> -- field_names : TPtrArray (TBasicType TUTF8) Ptr (Ptr (GPtrArray CString)) -> -- field_values : TPtrArray (TBasicType TUTF8) IO CInt {- | Get lists with the names and values of the text fields contained in the form associated to /@request@/. Note that names and values may be 'Nothing'. If this function returns 'False', then both /@fieldNames@/ and /@fieldValues@/ will be empty. /Since: 2.20/ -} formSubmissionRequestListTextFields :: (B.CallStack.HasCallStack, MonadIO m, IsFormSubmissionRequest a) => a {- ^ /@request@/: a 'GI.WebKit2.Objects.FormSubmissionRequest.FormSubmissionRequest' -} -> m ((Bool, [T.Text], [T.Text])) {- ^ __Returns:__ 'True' if the form contains text fields, or 'False' otherwise -} formSubmissionRequestListTextFields request = liftIO $ do request' <- unsafeManagedPtrCastPtr request fieldNames <- allocMem :: IO (Ptr (Ptr (GPtrArray CString))) fieldValues <- allocMem :: IO (Ptr (Ptr (GPtrArray CString))) result <- webkit_form_submission_request_list_text_fields request' fieldNames fieldValues let result' = (/= 0) result fieldNames' <- peek fieldNames fieldNames'' <- unpackGPtrArray fieldNames' fieldNames''' <- mapM cstringToText fieldNames'' fieldValues' <- peek fieldValues fieldValues'' <- unpackGPtrArray fieldValues' fieldValues''' <- mapM cstringToText fieldValues'' touchManagedPtr request freeMem fieldNames freeMem fieldValues return (result', fieldNames''', fieldValues''') #if ENABLE_OVERLOADING data FormSubmissionRequestListTextFieldsMethodInfo instance (signature ~ (m ((Bool, [T.Text], [T.Text]))), MonadIO m, IsFormSubmissionRequest a) => O.MethodInfo FormSubmissionRequestListTextFieldsMethodInfo a signature where overloadedMethod _ = formSubmissionRequestListTextFields #endif -- method FormSubmissionRequest::submit -- method type : OrdinaryMethod -- Args : [Arg {argCName = "request", argType = TInterface (Name {namespace = "WebKit2", name = "FormSubmissionRequest"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitFormSubmissionRequest", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "webkit_form_submission_request_submit" webkit_form_submission_request_submit :: Ptr FormSubmissionRequest -> -- request : TInterface (Name {namespace = "WebKit2", name = "FormSubmissionRequest"}) IO () {- | Continue the form submission. -} formSubmissionRequestSubmit :: (B.CallStack.HasCallStack, MonadIO m, IsFormSubmissionRequest a) => a {- ^ /@request@/: a 'GI.WebKit2.Objects.FormSubmissionRequest.FormSubmissionRequest' -} -> m () formSubmissionRequestSubmit request = liftIO $ do request' <- unsafeManagedPtrCastPtr request webkit_form_submission_request_submit request' touchManagedPtr request return () #if ENABLE_OVERLOADING data FormSubmissionRequestSubmitMethodInfo instance (signature ~ (m ()), MonadIO m, IsFormSubmissionRequest a) => O.MethodInfo FormSubmissionRequestSubmitMethodInfo a signature where overloadedMethod _ = formSubmissionRequestSubmit #endif