{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc) 'GI.Gio.Objects.BytesIcon.BytesIcon' specifies an image held in memory in a common format (usually png) to be used as icon. /Since: 2.38/ -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.Gio.Objects.BytesIcon ( -- * Exported types BytesIcon(..) , IsBytesIcon , toBytesIcon , noBytesIcon , -- * Methods -- ** getBytes #method:getBytes# #if ENABLE_OVERLOADING BytesIconGetBytesMethodInfo , #endif bytesIconGetBytes , -- ** new #method:new# bytesIconNew , -- * Properties -- ** bytes #attr:bytes# {- | The bytes containing the icon. -} #if ENABLE_OVERLOADING BytesIconBytesPropertyInfo , #endif #if ENABLE_OVERLOADING bytesIconBytes , #endif constructBytesIconBytes , getBytesIconBytes , ) 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.GLib.Structs.Bytes as GLib.Bytes import qualified GI.GObject.Objects.Object as GObject.Object import {-# SOURCE #-} qualified GI.Gio.Interfaces.Icon as Gio.Icon import {-# SOURCE #-} qualified GI.Gio.Interfaces.LoadableIcon as Gio.LoadableIcon -- | Memory-managed wrapper type. newtype BytesIcon = BytesIcon (ManagedPtr BytesIcon) foreign import ccall "g_bytes_icon_get_type" c_g_bytes_icon_get_type :: IO GType instance GObject BytesIcon where gobjectType = c_g_bytes_icon_get_type -- | Type class for types which can be safely cast to `BytesIcon`, for instance with `toBytesIcon`. class (GObject o, O.IsDescendantOf BytesIcon o) => IsBytesIcon o instance (GObject o, O.IsDescendantOf BytesIcon o) => IsBytesIcon o instance O.HasParentTypes BytesIcon type instance O.ParentTypes BytesIcon = '[GObject.Object.Object, Gio.Icon.Icon, Gio.LoadableIcon.LoadableIcon] -- | Cast to `BytesIcon`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`. toBytesIcon :: (MonadIO m, IsBytesIcon o) => o -> m BytesIcon toBytesIcon = liftIO . unsafeCastTo BytesIcon -- | A convenience alias for `Nothing` :: `Maybe` `BytesIcon`. noBytesIcon :: Maybe BytesIcon noBytesIcon = Nothing #if ENABLE_OVERLOADING type family ResolveBytesIconMethod (t :: Symbol) (o :: *) :: * where ResolveBytesIconMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo ResolveBytesIconMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo ResolveBytesIconMethod "equal" o = Gio.Icon.IconEqualMethodInfo ResolveBytesIconMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo ResolveBytesIconMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo ResolveBytesIconMethod "getv" o = GObject.Object.ObjectGetvMethodInfo ResolveBytesIconMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo ResolveBytesIconMethod "load" o = Gio.LoadableIcon.LoadableIconLoadMethodInfo ResolveBytesIconMethod "loadAsync" o = Gio.LoadableIcon.LoadableIconLoadAsyncMethodInfo ResolveBytesIconMethod "loadFinish" o = Gio.LoadableIcon.LoadableIconLoadFinishMethodInfo ResolveBytesIconMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo ResolveBytesIconMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo ResolveBytesIconMethod "ref" o = GObject.Object.ObjectRefMethodInfo ResolveBytesIconMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo ResolveBytesIconMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo ResolveBytesIconMethod "serialize" o = Gio.Icon.IconSerializeMethodInfo ResolveBytesIconMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo ResolveBytesIconMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo ResolveBytesIconMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo ResolveBytesIconMethod "toString" o = Gio.Icon.IconToStringMethodInfo ResolveBytesIconMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo ResolveBytesIconMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo ResolveBytesIconMethod "getBytes" o = BytesIconGetBytesMethodInfo ResolveBytesIconMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo ResolveBytesIconMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo ResolveBytesIconMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo ResolveBytesIconMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo ResolveBytesIconMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo ResolveBytesIconMethod l o = O.MethodResolutionFailed l o instance (info ~ ResolveBytesIconMethod t BytesIcon, O.MethodInfo info BytesIcon p) => OL.IsLabel t (BytesIcon -> 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 -- VVV Prop "bytes" -- Type: TInterface (Name {namespace = "GLib", name = "Bytes"}) -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly] -- Nullable: (Just False,Nothing) {- | Get the value of the “@bytes@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' bytesIcon #bytes @ -} getBytesIconBytes :: (MonadIO m, IsBytesIcon o) => o -> m GLib.Bytes.Bytes getBytesIconBytes obj = liftIO $ checkUnexpectedNothing "getBytesIconBytes" $ B.Properties.getObjectPropertyBoxed obj "bytes" GLib.Bytes.Bytes {- | Construct a `GValueConstruct` with valid value for the “@bytes@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`. -} constructBytesIconBytes :: (IsBytesIcon o) => GLib.Bytes.Bytes -> IO (GValueConstruct o) constructBytesIconBytes val = B.Properties.constructObjectPropertyBoxed "bytes" (Just val) #if ENABLE_OVERLOADING data BytesIconBytesPropertyInfo instance AttrInfo BytesIconBytesPropertyInfo where type AttrAllowedOps BytesIconBytesPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear] type AttrSetTypeConstraint BytesIconBytesPropertyInfo = (~) GLib.Bytes.Bytes type AttrBaseTypeConstraint BytesIconBytesPropertyInfo = IsBytesIcon type AttrGetType BytesIconBytesPropertyInfo = GLib.Bytes.Bytes type AttrLabel BytesIconBytesPropertyInfo = "bytes" type AttrOrigin BytesIconBytesPropertyInfo = BytesIcon attrGet _ = getBytesIconBytes attrSet _ = undefined attrConstruct _ = constructBytesIconBytes attrClear _ = undefined #endif #if ENABLE_OVERLOADING instance O.HasAttributeList BytesIcon type instance O.AttributeList BytesIcon = BytesIconAttributeList type BytesIconAttributeList = ('[ '("bytes", BytesIconBytesPropertyInfo)] :: [(Symbol, *)]) #endif #if ENABLE_OVERLOADING bytesIconBytes :: AttrLabelProxy "bytes" bytesIconBytes = AttrLabelProxy #endif #if ENABLE_OVERLOADING type instance O.SignalList BytesIcon = BytesIconSignalList type BytesIconSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)]) #endif -- method BytesIcon::new -- method type : Constructor -- Args : [Arg {argCName = "bytes", argType = TInterface (Name {namespace = "GLib", name = "Bytes"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GBytes.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gio", name = "BytesIcon"})) -- throws : False -- Skip return : False foreign import ccall "g_bytes_icon_new" g_bytes_icon_new :: Ptr GLib.Bytes.Bytes -> -- bytes : TInterface (Name {namespace = "GLib", name = "Bytes"}) IO (Ptr BytesIcon) {- | Creates a new icon for a bytes. /Since: 2.38/ -} bytesIconNew :: (B.CallStack.HasCallStack, MonadIO m) => GLib.Bytes.Bytes {- ^ /@bytes@/: a 'GI.GLib.Structs.Bytes.Bytes'. -} -> m BytesIcon {- ^ __Returns:__ a 'GI.Gio.Interfaces.Icon.Icon' for the given /@bytes@/, or 'Nothing' on error. -} bytesIconNew bytes = liftIO $ do bytes' <- unsafeManagedPtrGetPtr bytes result <- g_bytes_icon_new bytes' checkUnexpectedReturnNULL "bytesIconNew" result result' <- (wrapObject BytesIcon) result touchManagedPtr bytes return result' #if ENABLE_OVERLOADING #endif -- method BytesIcon::get_bytes -- method type : OrdinaryMethod -- Args : [Arg {argCName = "icon", argType = TInterface (Name {namespace = "Gio", name = "BytesIcon"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GIcon.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "GLib", name = "Bytes"})) -- throws : False -- Skip return : False foreign import ccall "g_bytes_icon_get_bytes" g_bytes_icon_get_bytes :: Ptr BytesIcon -> -- icon : TInterface (Name {namespace = "Gio", name = "BytesIcon"}) IO (Ptr GLib.Bytes.Bytes) {- | Gets the 'GI.GLib.Structs.Bytes.Bytes' associated with the given /@icon@/. /Since: 2.38/ -} bytesIconGetBytes :: (B.CallStack.HasCallStack, MonadIO m, IsBytesIcon a) => a {- ^ /@icon@/: a 'GI.Gio.Interfaces.Icon.Icon'. -} -> m GLib.Bytes.Bytes {- ^ __Returns:__ a 'GI.GLib.Structs.Bytes.Bytes', or 'Nothing'. -} bytesIconGetBytes icon = liftIO $ do icon' <- unsafeManagedPtrCastPtr icon result <- g_bytes_icon_get_bytes icon' checkUnexpectedReturnNULL "bytesIconGetBytes" result result' <- (newBoxed GLib.Bytes.Bytes) result touchManagedPtr icon return result' #if ENABLE_OVERLOADING data BytesIconGetBytesMethodInfo instance (signature ~ (m GLib.Bytes.Bytes), MonadIO m, IsBytesIcon a) => O.MethodInfo BytesIconGetBytesMethodInfo a signature where overloadedMethod _ = bytesIconGetBytes #endif