packages feed

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

-- * Exported types
    FileIcon(..)                            ,
    FileIconK                               ,
    toFileIcon                              ,
    noFileIcon                              ,


 -- * Methods
-- ** fileIconGetFile
    FileIconGetFileMethodInfo               ,
    fileIconGetFile                         ,


-- ** fileIconNew
    fileIconNew                             ,




 -- * Properties
-- ** File
    FileIconFilePropertyInfo                ,
    constructFileIconFile                   ,
    getFileIconFile                         ,




    ) 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 FileIcon = FileIcon (ForeignPtr FileIcon)
foreign import ccall "g_file_icon_get_type"
    c_g_file_icon_get_type :: IO GType

type instance ParentTypes FileIcon = FileIconParentTypes
type FileIconParentTypes = '[GObject.Object, Icon, LoadableIcon]

instance GObject FileIcon where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_g_file_icon_get_type
    

class GObject o => FileIconK o
instance (GObject o, IsDescendantOf FileIcon o) => FileIconK o

toFileIcon :: FileIconK o => o -> IO FileIcon
toFileIcon = unsafeCastTo FileIcon

noFileIcon :: Maybe FileIcon
noFileIcon = Nothing

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

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

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

-- VVV Prop "file"
   -- Type: TInterface "Gio" "File"
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]

getFileIconFile :: (MonadIO m, FileIconK o) => o -> m File
getFileIconFile obj = liftIO $ getObjectPropertyObject obj "file" File

constructFileIconFile :: (FileK a) => a -> IO ([Char], GValue)
constructFileIconFile val = constructObjectPropertyObject "file" val

data FileIconFilePropertyInfo
instance AttrInfo FileIconFilePropertyInfo where
    type AttrAllowedOps FileIconFilePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint FileIconFilePropertyInfo = FileK
    type AttrBaseTypeConstraint FileIconFilePropertyInfo = FileIconK
    type AttrGetType FileIconFilePropertyInfo = File
    type AttrLabel FileIconFilePropertyInfo = "file"
    attrGet _ = getFileIconFile
    attrSet _ = undefined
    attrConstruct _ = constructFileIconFile

type instance AttributeList FileIcon = FileIconAttributeList
type FileIconAttributeList = ('[ '("file", FileIconFilePropertyInfo)] :: [(Symbol, *)])

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

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

foreign import ccall "g_file_icon_new" g_file_icon_new :: 
    Ptr File ->                             -- file : TInterface "Gio" "File"
    IO (Ptr FileIcon)


fileIconNew ::
    (MonadIO m, FileK a) =>
    a                                       -- file
    -> m FileIcon                           -- result
fileIconNew file = liftIO $ do
    let file' = unsafeManagedPtrCastPtr file
    result <- g_file_icon_new file'
    checkUnexpectedReturnNULL "g_file_icon_new" result
    result' <- (wrapObject FileIcon) result
    touchManagedPtr file
    return result'

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

foreign import ccall "g_file_icon_get_file" g_file_icon_get_file :: 
    Ptr FileIcon ->                         -- _obj : TInterface "Gio" "FileIcon"
    IO (Ptr File)


fileIconGetFile ::
    (MonadIO m, FileIconK a) =>
    a                                       -- _obj
    -> m File                               -- result
fileIconGetFile _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- g_file_icon_get_file _obj'
    checkUnexpectedReturnNULL "g_file_icon_get_file" result
    result' <- (newObject File) result
    touchManagedPtr _obj
    return result'

data FileIconGetFileMethodInfo
instance (signature ~ (m File), MonadIO m, FileIconK a) => MethodInfo FileIconGetFileMethodInfo a signature where
    overloadedMethod _ = fileIconGetFile