packages feed

gi-gio-0.2.46.13: GI/Gio/Objects/Emblem.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.Objects.Emblem
    ( 

-- * Exported types
    Emblem(..)                              ,
    EmblemK                                 ,
    toEmblem                                ,
    noEmblem                                ,


 -- * Methods
-- ** emblemGetIcon
    EmblemGetIconMethodInfo                 ,
    emblemGetIcon                           ,


-- ** emblemGetOrigin
    EmblemGetOriginMethodInfo               ,
    emblemGetOrigin                         ,


-- ** emblemNew
    emblemNew                               ,


-- ** emblemNewWithOrigin
    emblemNewWithOrigin                     ,




 -- * Properties
-- ** Icon
    EmblemIconPropertyInfo                  ,
    constructEmblemIcon                     ,
    getEmblemIcon                           ,


-- ** Origin
    EmblemOriginPropertyInfo                ,
    constructEmblemOrigin                   ,
    getEmblemOrigin                         ,




    ) 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

newtype Emblem = Emblem (ForeignPtr Emblem)
foreign import ccall "g_emblem_get_type"
    c_g_emblem_get_type :: IO GType

type instance ParentTypes Emblem = EmblemParentTypes
type EmblemParentTypes = '[GObject.Object, Icon]

instance GObject Emblem where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_g_emblem_get_type
    

class GObject o => EmblemK o
instance (GObject o, IsDescendantOf Emblem o) => EmblemK o

toEmblem :: EmblemK o => o -> IO Emblem
toEmblem = unsafeCastTo Emblem

noEmblem :: Maybe Emblem
noEmblem = Nothing

type family ResolveEmblemMethod (t :: Symbol) (o :: *) :: * where
    ResolveEmblemMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
    ResolveEmblemMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
    ResolveEmblemMethod "equal" o = IconEqualMethodInfo
    ResolveEmblemMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
    ResolveEmblemMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
    ResolveEmblemMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
    ResolveEmblemMethod "notify" o = GObject.ObjectNotifyMethodInfo
    ResolveEmblemMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
    ResolveEmblemMethod "ref" o = GObject.ObjectRefMethodInfo
    ResolveEmblemMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
    ResolveEmblemMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
    ResolveEmblemMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
    ResolveEmblemMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
    ResolveEmblemMethod "serialize" o = IconSerializeMethodInfo
    ResolveEmblemMethod "stealData" o = GObject.ObjectStealDataMethodInfo
    ResolveEmblemMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
    ResolveEmblemMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
    ResolveEmblemMethod "toString" o = IconToStringMethodInfo
    ResolveEmblemMethod "unref" o = GObject.ObjectUnrefMethodInfo
    ResolveEmblemMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
    ResolveEmblemMethod "getData" o = GObject.ObjectGetDataMethodInfo
    ResolveEmblemMethod "getIcon" o = EmblemGetIconMethodInfo
    ResolveEmblemMethod "getOrigin" o = EmblemGetOriginMethodInfo
    ResolveEmblemMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
    ResolveEmblemMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
    ResolveEmblemMethod "setData" o = GObject.ObjectSetDataMethodInfo
    ResolveEmblemMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
    ResolveEmblemMethod l o = MethodResolutionFailed l o

instance (info ~ ResolveEmblemMethod t Emblem, MethodInfo info Emblem p) => IsLabelProxy t (Emblem -> p) where
    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveEmblemMethod t Emblem, MethodInfo info Emblem p) => IsLabel t (Emblem -> p) where
    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif

-- VVV Prop "icon"
   -- Type: TInterface "GObject" "Object"
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]

getEmblemIcon :: (MonadIO m, EmblemK o) => o -> m GObject.Object
getEmblemIcon obj = liftIO $ getObjectPropertyObject obj "icon" GObject.Object

constructEmblemIcon :: (GObject.ObjectK a) => a -> IO ([Char], GValue)
constructEmblemIcon val = constructObjectPropertyObject "icon" val

data EmblemIconPropertyInfo
instance AttrInfo EmblemIconPropertyInfo where
    type AttrAllowedOps EmblemIconPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint EmblemIconPropertyInfo = GObject.ObjectK
    type AttrBaseTypeConstraint EmblemIconPropertyInfo = EmblemK
    type AttrGetType EmblemIconPropertyInfo = GObject.Object
    type AttrLabel EmblemIconPropertyInfo = "icon"
    attrGet _ = getEmblemIcon
    attrSet _ = undefined
    attrConstruct _ = constructEmblemIcon

-- VVV Prop "origin"
   -- Type: TInterface "Gio" "EmblemOrigin"
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]

getEmblemOrigin :: (MonadIO m, EmblemK o) => o -> m EmblemOrigin
getEmblemOrigin obj = liftIO $ getObjectPropertyEnum obj "origin"

constructEmblemOrigin :: EmblemOrigin -> IO ([Char], GValue)
constructEmblemOrigin val = constructObjectPropertyEnum "origin" val

data EmblemOriginPropertyInfo
instance AttrInfo EmblemOriginPropertyInfo where
    type AttrAllowedOps EmblemOriginPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint EmblemOriginPropertyInfo = (~) EmblemOrigin
    type AttrBaseTypeConstraint EmblemOriginPropertyInfo = EmblemK
    type AttrGetType EmblemOriginPropertyInfo = EmblemOrigin
    type AttrLabel EmblemOriginPropertyInfo = "origin"
    attrGet _ = getEmblemOrigin
    attrSet _ = undefined
    attrConstruct _ = constructEmblemOrigin

type instance AttributeList Emblem = EmblemAttributeList
type EmblemAttributeList = ('[ '("icon", EmblemIconPropertyInfo), '("origin", EmblemOriginPropertyInfo)] :: [(Symbol, *)])

type instance SignalList Emblem = EmblemSignalList
type EmblemSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])

-- method Emblem::new
-- method type : Constructor
-- Args : [Arg {argCName = "icon", argType = TInterface "Gio" "Icon", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Gio" "Emblem"
-- throws : False
-- Skip return : False

foreign import ccall "g_emblem_new" g_emblem_new :: 
    Ptr Icon ->                             -- icon : TInterface "Gio" "Icon"
    IO (Ptr Emblem)


emblemNew ::
    (MonadIO m, IconK a) =>
    a                                       -- icon
    -> m Emblem                             -- result
emblemNew icon = liftIO $ do
    let icon' = unsafeManagedPtrCastPtr icon
    result <- g_emblem_new icon'
    checkUnexpectedReturnNULL "g_emblem_new" result
    result' <- (wrapObject Emblem) result
    touchManagedPtr icon
    return result'

-- method Emblem::new_with_origin
-- method type : Constructor
-- Args : [Arg {argCName = "icon", argType = TInterface "Gio" "Icon", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "origin", argType = TInterface "Gio" "EmblemOrigin", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Gio" "Emblem"
-- throws : False
-- Skip return : False

foreign import ccall "g_emblem_new_with_origin" g_emblem_new_with_origin :: 
    Ptr Icon ->                             -- icon : TInterface "Gio" "Icon"
    CUInt ->                                -- origin : TInterface "Gio" "EmblemOrigin"
    IO (Ptr Emblem)


emblemNewWithOrigin ::
    (MonadIO m, IconK a) =>
    a                                       -- icon
    -> EmblemOrigin                         -- origin
    -> m Emblem                             -- result
emblemNewWithOrigin icon origin = liftIO $ do
    let icon' = unsafeManagedPtrCastPtr icon
    let origin' = (fromIntegral . fromEnum) origin
    result <- g_emblem_new_with_origin icon' origin'
    checkUnexpectedReturnNULL "g_emblem_new_with_origin" result
    result' <- (wrapObject Emblem) result
    touchManagedPtr icon
    return result'

-- method Emblem::get_icon
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "Emblem", 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_emblem_get_icon" g_emblem_get_icon :: 
    Ptr Emblem ->                           -- _obj : TInterface "Gio" "Emblem"
    IO (Ptr Icon)


emblemGetIcon ::
    (MonadIO m, EmblemK a) =>
    a                                       -- _obj
    -> m Icon                               -- result
emblemGetIcon _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- g_emblem_get_icon _obj'
    checkUnexpectedReturnNULL "g_emblem_get_icon" result
    result' <- (newObject Icon) result
    touchManagedPtr _obj
    return result'

data EmblemGetIconMethodInfo
instance (signature ~ (m Icon), MonadIO m, EmblemK a) => MethodInfo EmblemGetIconMethodInfo a signature where
    overloadedMethod _ = emblemGetIcon

-- method Emblem::get_origin
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "Emblem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Gio" "EmblemOrigin"
-- throws : False
-- Skip return : False

foreign import ccall "g_emblem_get_origin" g_emblem_get_origin :: 
    Ptr Emblem ->                           -- _obj : TInterface "Gio" "Emblem"
    IO CUInt


emblemGetOrigin ::
    (MonadIO m, EmblemK a) =>
    a                                       -- _obj
    -> m EmblemOrigin                       -- result
emblemGetOrigin _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- g_emblem_get_origin _obj'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr _obj
    return result'

data EmblemGetOriginMethodInfo
instance (signature ~ (m EmblemOrigin), MonadIO m, EmblemK a) => MethodInfo EmblemGetOriginMethodInfo a signature where
    overloadedMethod _ = emblemGetOrigin