gi-gio-0.2.46.13: GI/Gio/Interfaces/Icon.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}
module GI.Gio.Interfaces.Icon
(
-- * Exported types
Icon(..) ,
noIcon ,
IconK ,
toIcon ,
-- * Methods
-- ** iconDeserialize
iconDeserialize ,
-- ** iconEqual
IconEqualMethodInfo ,
iconEqual ,
-- ** iconHash
iconHash ,
-- ** iconNewForString
iconNewForString ,
-- ** iconSerialize
IconSerializeMethodInfo ,
iconSerialize ,
-- ** iconToString
IconToStringMethodInfo ,
iconToString ,
) where
import Prelude ()
import Data.GI.Base.ShortPrelude
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import GI.Gio.Types
import GI.Gio.Callbacks
import qualified GI.GObject as GObject
-- interface Icon
newtype Icon = Icon (ForeignPtr Icon)
noIcon :: Maybe Icon
noIcon = Nothing
type family ResolveIconMethod (t :: Symbol) (o :: *) :: * where
ResolveIconMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
ResolveIconMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
ResolveIconMethod "equal" o = IconEqualMethodInfo
ResolveIconMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
ResolveIconMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
ResolveIconMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
ResolveIconMethod "notify" o = GObject.ObjectNotifyMethodInfo
ResolveIconMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
ResolveIconMethod "ref" o = GObject.ObjectRefMethodInfo
ResolveIconMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
ResolveIconMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
ResolveIconMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
ResolveIconMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
ResolveIconMethod "serialize" o = IconSerializeMethodInfo
ResolveIconMethod "stealData" o = GObject.ObjectStealDataMethodInfo
ResolveIconMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
ResolveIconMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
ResolveIconMethod "toString" o = IconToStringMethodInfo
ResolveIconMethod "unref" o = GObject.ObjectUnrefMethodInfo
ResolveIconMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
ResolveIconMethod "getData" o = GObject.ObjectGetDataMethodInfo
ResolveIconMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
ResolveIconMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
ResolveIconMethod "setData" o = GObject.ObjectSetDataMethodInfo
ResolveIconMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
ResolveIconMethod l o = MethodResolutionFailed l o
instance (info ~ ResolveIconMethod t Icon, MethodInfo info Icon p) => IsLabelProxy t (Icon -> p) where
fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveIconMethod t Icon, MethodInfo info Icon p) => IsLabel t (Icon -> p) where
fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif
type instance AttributeList Icon = IconAttributeList
type IconAttributeList = ('[ ] :: [(Symbol, *)])
type instance SignalList Icon = IconSignalList
type IconSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])
foreign import ccall "g_icon_get_type"
c_g_icon_get_type :: IO GType
type instance ParentTypes Icon = IconParentTypes
type IconParentTypes = '[GObject.Object]
instance GObject Icon where
gobjectIsInitiallyUnowned _ = False
gobjectType _ = c_g_icon_get_type
class GObject o => IconK o
instance (GObject o, IsDescendantOf Icon o) => IconK o
toIcon :: IconK o => o -> IO Icon
toIcon = unsafeCastTo Icon
-- method Icon::equal
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "Icon", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "icon2", argType = TInterface "Gio" "Icon", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "g_icon_equal" g_icon_equal ::
Ptr Icon -> -- _obj : TInterface "Gio" "Icon"
Ptr Icon -> -- icon2 : TInterface "Gio" "Icon"
IO CInt
iconEqual ::
(MonadIO m, IconK a, IconK b) =>
a -- _obj
-> Maybe (b) -- icon2
-> m Bool -- result
iconEqual _obj icon2 = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
maybeIcon2 <- case icon2 of
Nothing -> return nullPtr
Just jIcon2 -> do
let jIcon2' = unsafeManagedPtrCastPtr jIcon2
return jIcon2'
result <- g_icon_equal _obj' maybeIcon2
let result' = (/= 0) result
touchManagedPtr _obj
whenJust icon2 touchManagedPtr
return result'
data IconEqualMethodInfo
instance (signature ~ (Maybe (b) -> m Bool), MonadIO m, IconK a, IconK b) => MethodInfo IconEqualMethodInfo a signature where
overloadedMethod _ = iconEqual
-- method Icon::serialize
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "Icon", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TVariant
-- throws : False
-- Skip return : False
foreign import ccall "g_icon_serialize" g_icon_serialize ::
Ptr Icon -> -- _obj : TInterface "Gio" "Icon"
IO (Ptr GVariant)
iconSerialize ::
(MonadIO m, IconK a) =>
a -- _obj
-> m GVariant -- result
iconSerialize _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- g_icon_serialize _obj'
checkUnexpectedReturnNULL "g_icon_serialize" result
result' <- wrapGVariantPtr result
touchManagedPtr _obj
return result'
data IconSerializeMethodInfo
instance (signature ~ (m GVariant), MonadIO m, IconK a) => MethodInfo IconSerializeMethodInfo a signature where
overloadedMethod _ = iconSerialize
-- method Icon::to_string
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "Icon", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False
foreign import ccall "g_icon_to_string" g_icon_to_string ::
Ptr Icon -> -- _obj : TInterface "Gio" "Icon"
IO CString
iconToString ::
(MonadIO m, IconK a) =>
a -- _obj
-> m T.Text -- result
iconToString _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- g_icon_to_string _obj'
checkUnexpectedReturnNULL "g_icon_to_string" result
result' <- cstringToText result
freeMem result
touchManagedPtr _obj
return result'
data IconToStringMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IconK a) => MethodInfo IconToStringMethodInfo a signature where
overloadedMethod _ = iconToString
-- method Icon::deserialize
-- method type : MemberFunction
-- Args : [Arg {argCName = "value", argType = TVariant, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Gio" "Icon"
-- throws : False
-- Skip return : False
foreign import ccall "g_icon_deserialize" g_icon_deserialize ::
Ptr GVariant -> -- value : TVariant
IO (Ptr Icon)
iconDeserialize ::
(MonadIO m) =>
GVariant -- value
-> m Icon -- result
iconDeserialize value = liftIO $ do
let value' = unsafeManagedPtrGetPtr value
result <- g_icon_deserialize value'
checkUnexpectedReturnNULL "g_icon_deserialize" result
result' <- (wrapObject Icon) result
return result'
-- method Icon::hash
-- method type : MemberFunction
-- Args : [Arg {argCName = "icon", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TUInt32
-- throws : False
-- Skip return : False
foreign import ccall "g_icon_hash" g_icon_hash ::
Ptr () -> -- icon : TBasicType TVoid
IO Word32
iconHash ::
(MonadIO m) =>
Ptr () -- icon
-> m Word32 -- result
iconHash icon = liftIO $ do
result <- g_icon_hash icon
return result
-- method Icon::new_for_string
-- method type : MemberFunction
-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Gio" "Icon"
-- throws : True
-- Skip return : False
foreign import ccall "g_icon_new_for_string" g_icon_new_for_string ::
CString -> -- str : TBasicType TUTF8
Ptr (Ptr GError) -> -- error
IO (Ptr Icon)
iconNewForString ::
(MonadIO m) =>
T.Text -- str
-> m Icon -- result
iconNewForString str = liftIO $ do
str' <- textToCString str
onException (do
result <- propagateGError $ g_icon_new_for_string str'
checkUnexpectedReturnNULL "g_icon_new_for_string" result
result' <- (wrapObject Icon) result
freeMem str'
return result'
) (do
freeMem str'
)