{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc) The AtkObjectFactory which creates an AtkNoOpObject. An instance of this is created by an AtkRegistry if no factory type has not been specified to create an accessible object of a particular type. -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.Atk.Objects.NoOpObjectFactory ( -- * Exported types NoOpObjectFactory(..) , IsNoOpObjectFactory , toNoOpObjectFactory , noNoOpObjectFactory , -- * Methods -- ** new #method:new# noOpObjectFactoryNew , ) 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 {-# SOURCE #-} qualified GI.Atk.Objects.ObjectFactory as Atk.ObjectFactory import qualified GI.GObject.Objects.Object as GObject.Object -- | Memory-managed wrapper type. newtype NoOpObjectFactory = NoOpObjectFactory (ManagedPtr NoOpObjectFactory) foreign import ccall "atk_no_op_object_factory_get_type" c_atk_no_op_object_factory_get_type :: IO GType instance GObject NoOpObjectFactory where gobjectType = c_atk_no_op_object_factory_get_type -- | Type class for types which can be safely cast to `NoOpObjectFactory`, for instance with `toNoOpObjectFactory`. class (GObject o, O.IsDescendantOf NoOpObjectFactory o) => IsNoOpObjectFactory o instance (GObject o, O.IsDescendantOf NoOpObjectFactory o) => IsNoOpObjectFactory o instance O.HasParentTypes NoOpObjectFactory type instance O.ParentTypes NoOpObjectFactory = '[Atk.ObjectFactory.ObjectFactory, GObject.Object.Object] -- | Cast to `NoOpObjectFactory`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`. toNoOpObjectFactory :: (MonadIO m, IsNoOpObjectFactory o) => o -> m NoOpObjectFactory toNoOpObjectFactory = liftIO . unsafeCastTo NoOpObjectFactory -- | A convenience alias for `Nothing` :: `Maybe` `NoOpObjectFactory`. noNoOpObjectFactory :: Maybe NoOpObjectFactory noNoOpObjectFactory = Nothing #if ENABLE_OVERLOADING type family ResolveNoOpObjectFactoryMethod (t :: Symbol) (o :: *) :: * where ResolveNoOpObjectFactoryMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo ResolveNoOpObjectFactoryMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo ResolveNoOpObjectFactoryMethod "createAccessible" o = Atk.ObjectFactory.ObjectFactoryCreateAccessibleMethodInfo ResolveNoOpObjectFactoryMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo ResolveNoOpObjectFactoryMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo ResolveNoOpObjectFactoryMethod "getv" o = GObject.Object.ObjectGetvMethodInfo ResolveNoOpObjectFactoryMethod "invalidate" o = Atk.ObjectFactory.ObjectFactoryInvalidateMethodInfo ResolveNoOpObjectFactoryMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo ResolveNoOpObjectFactoryMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo ResolveNoOpObjectFactoryMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo ResolveNoOpObjectFactoryMethod "ref" o = GObject.Object.ObjectRefMethodInfo ResolveNoOpObjectFactoryMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo ResolveNoOpObjectFactoryMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo ResolveNoOpObjectFactoryMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo ResolveNoOpObjectFactoryMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo ResolveNoOpObjectFactoryMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo ResolveNoOpObjectFactoryMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo ResolveNoOpObjectFactoryMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo ResolveNoOpObjectFactoryMethod "getAccessibleType" o = Atk.ObjectFactory.ObjectFactoryGetAccessibleTypeMethodInfo ResolveNoOpObjectFactoryMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo ResolveNoOpObjectFactoryMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo ResolveNoOpObjectFactoryMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo ResolveNoOpObjectFactoryMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo ResolveNoOpObjectFactoryMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo ResolveNoOpObjectFactoryMethod l o = O.MethodResolutionFailed l o instance (info ~ ResolveNoOpObjectFactoryMethod t NoOpObjectFactory, O.MethodInfo info NoOpObjectFactory p) => OL.IsLabel t (NoOpObjectFactory -> 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 NoOpObjectFactory type instance O.AttributeList NoOpObjectFactory = NoOpObjectFactoryAttributeList type NoOpObjectFactoryAttributeList = ('[ ] :: [(Symbol, *)]) #endif #if ENABLE_OVERLOADING #endif #if ENABLE_OVERLOADING type instance O.SignalList NoOpObjectFactory = NoOpObjectFactorySignalList type NoOpObjectFactorySignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)]) #endif -- method NoOpObjectFactory::new -- method type : Constructor -- Args : [] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Atk", name = "NoOpObjectFactory"})) -- throws : False -- Skip return : False foreign import ccall "atk_no_op_object_factory_new" atk_no_op_object_factory_new :: IO (Ptr NoOpObjectFactory) {- | Creates an instance of an 'GI.Atk.Objects.ObjectFactory.ObjectFactory' which generates primitive (non-functioning) @/AtkObjects/@. -} noOpObjectFactoryNew :: (B.CallStack.HasCallStack, MonadIO m) => m NoOpObjectFactory {- ^ __Returns:__ an instance of an 'GI.Atk.Objects.ObjectFactory.ObjectFactory' -} noOpObjectFactoryNew = liftIO $ do result <- atk_no_op_object_factory_new checkUnexpectedReturnNULL "noOpObjectFactoryNew" result result' <- (wrapObject NoOpObjectFactory) result return result' #if ENABLE_OVERLOADING #endif