{-# LINE 2 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LINE 3 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}
module Graphics.UI.Gtk.General.Clipboard (
Clipboard,
ClipboardClass,
castToClipboard, gTypeClipboard,
toClipboard,
selectionPrimary,
selectionSecondary,
selectionClipboard,
clipboardGet,
clipboardGetForDisplay,
clipboardGetDisplay,
clipboardSetWithData,
clipboardSetText,
clipboardSetImage,
clipboardRequestContents,
clipboardRequestText,
clipboardRequestImage,
clipboardRequestTargets,
clipboardRequestRichText,
clipboardSetCanStore,
clipboardStore,
) where
import System.Glib.FFI
import System.Glib.UTFString
import Graphics.UI.Gtk.Types
{-# LINE 142 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}
import Graphics.UI.Gtk.General.DNDTypes (SelectionTag, TargetTag,
Atom(..))
import Graphics.UI.Gtk.General.Selection (InfoId, SelectionDataM)
import Graphics.UI.Gtk.General.Structs (
selectionPrimary,
selectionSecondary,
selectionClipboard,
withTargetEntries)
import Control.Monad ( liftM )
import Control.Monad.Reader (runReaderT)
import Data.IORef ( newIORef, readIORef, writeIORef )
{-# LINE 155 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}
clipboardGet ::
SelectionTag
-> IO Clipboard
clipboardGet :: SelectionTag -> IO Clipboard
clipboardGet (Atom Ptr ()
selection) =
(ForeignPtr Clipboard -> Clipboard, FinalizerPtr Clipboard)
-> IO (Ptr Clipboard) -> IO Clipboard
forall obj.
GObjectClass obj =>
(ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
makeNewGObject (ForeignPtr Clipboard -> Clipboard, FinalizerPtr Clipboard)
forall {a}. (ForeignPtr Clipboard -> Clipboard, FinalizerPtr a)
mkClipboard (IO (Ptr Clipboard) -> IO Clipboard)
-> IO (Ptr Clipboard) -> IO Clipboard
forall a b. (a -> b) -> a -> b
$
Ptr () -> IO (Ptr Clipboard)
gtk_clipboard_get Ptr ()
selection
clipboardGetForDisplay ::
Display
-> SelectionTag
-> IO Clipboard
clipboardGetForDisplay :: Display -> SelectionTag -> IO Clipboard
clipboardGetForDisplay Display
display (Atom Ptr ()
selection) =
(ForeignPtr Clipboard -> Clipboard, FinalizerPtr Clipboard)
-> IO (Ptr Clipboard) -> IO Clipboard
forall obj.
GObjectClass obj =>
(ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
makeNewGObject (ForeignPtr Clipboard -> Clipboard, FinalizerPtr Clipboard)
forall {a}. (ForeignPtr Clipboard -> Clipboard, FinalizerPtr a)
mkClipboard (IO (Ptr Clipboard) -> IO Clipboard)
-> IO (Ptr Clipboard) -> IO Clipboard
forall a b. (a -> b) -> a -> b
$
(\(Display ForeignPtr Display
arg1) Ptr ()
arg2 -> ForeignPtr Display
-> (Ptr Display -> IO (Ptr Clipboard)) -> IO (Ptr Clipboard)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Display
arg1 ((Ptr Display -> IO (Ptr Clipboard)) -> IO (Ptr Clipboard))
-> (Ptr Display -> IO (Ptr Clipboard)) -> IO (Ptr Clipboard)
forall a b. (a -> b) -> a -> b
$ \Ptr Display
argPtr1 ->Ptr Display -> Ptr () -> IO (Ptr Clipboard)
gtk_clipboard_get_for_display Ptr Display
argPtr1 Ptr ()
arg2)
{-# LINE 212 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}
display Ptr ()
selection
clipboardGetDisplay :: ClipboardClass self => self
-> IO Display
clipboardGetDisplay :: forall self. ClipboardClass self => self -> IO Display
clipboardGetDisplay self
self =
(ForeignPtr Display -> Display, FinalizerPtr Display)
-> IO (Ptr Display) -> IO Display
forall obj.
GObjectClass obj =>
(ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
makeNewGObject (ForeignPtr Display -> Display, FinalizerPtr Display)
forall {a}. (ForeignPtr Display -> Display, FinalizerPtr a)
mkDisplay (IO (Ptr Display) -> IO Display) -> IO (Ptr Display) -> IO Display
forall a b. (a -> b) -> a -> b
$
(\(Clipboard ForeignPtr Clipboard
arg1) -> ForeignPtr Clipboard
-> (Ptr Clipboard -> IO (Ptr Display)) -> IO (Ptr Display)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Clipboard
arg1 ((Ptr Clipboard -> IO (Ptr Display)) -> IO (Ptr Display))
-> (Ptr Clipboard -> IO (Ptr Display)) -> IO (Ptr Display)
forall a b. (a -> b) -> a -> b
$ \Ptr Clipboard
argPtr1 ->Ptr Clipboard -> IO (Ptr Display)
gtk_clipboard_get_display Ptr Clipboard
argPtr1)
{-# LINE 224 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}
(toClipboard self)
{-# NOINLINE getFuncQuark #-}
getFuncQuark :: Quark
getFuncQuark :: Quark
getFuncQuark = IO Quark -> Quark
forall a. IO a -> a
unsafePerformIO (IO Quark -> Quark) -> IO Quark -> Quark
forall a b. (a -> b) -> a -> b
$ DefaultGlibString -> IO Quark
forall string. GlibString string => string -> IO Quark
quarkFromString (DefaultGlibString
"hsClipboardGetFuncClosure"::DefaultGlibString)
{-# NOINLINE clearFuncQuark #-}
clearFuncQuark :: Quark
clearFuncQuark :: Quark
clearFuncQuark = IO Quark -> Quark
forall a. IO a -> a
unsafePerformIO (IO Quark -> Quark) -> IO Quark -> Quark
forall a b. (a -> b) -> a -> b
$ DefaultGlibString -> IO Quark
forall string. GlibString string => string -> IO Quark
quarkFromString (DefaultGlibString
"hsClipboardClearFuncClosure"::DefaultGlibString)
clipboardSetWithData :: ClipboardClass self => self
-> [(TargetTag, InfoId)]
-> (InfoId -> SelectionDataM ())
-> IO ()
-> IO Bool
clipboardSetWithData :: forall self.
ClipboardClass self =>
self
-> [(SelectionTag, Quark)]
-> (Quark -> SelectionDataM ())
-> IO ()
-> IO Bool
clipboardSetWithData self
self [(SelectionTag, Quark)]
targets Quark -> SelectionDataM ()
getFunc IO ()
clearFunc = do
ClipboardGetFunc
gFunPtr <- (Ptr Clipboard -> Ptr () -> Quark -> Ptr () -> IO ())
-> IO ClipboardGetFunc
mkClipboardGetFunc
(\Ptr Clipboard
_ Ptr ()
sPtr Quark
info Ptr ()
_ -> SelectionDataM () -> Ptr () -> IO ()
forall r (m :: * -> *) a. ReaderT r m a -> r -> m a
runReaderT (Quark -> SelectionDataM ()
getFunc Quark
info) Ptr ()
sPtr IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ())
ClipboardClearFunc
cFunPtr <- (Ptr Clipboard -> Ptr () -> IO ()) -> IO ClipboardClearFunc
mkClipboardClearFunc
(\Ptr Clipboard
_ Ptr ()
_ -> IO ()
clearFunc)
Bool
res <- [(SelectionTag, Quark)] -> (Int -> Ptr () -> IO Bool) -> IO Bool
forall a.
[(SelectionTag, Quark)] -> (Int -> Ptr () -> IO a) -> IO a
withTargetEntries [(SelectionTag, Quark)]
targets ((Int -> Ptr () -> IO Bool) -> IO Bool)
-> (Int -> Ptr () -> IO Bool) -> IO Bool
forall a b. (a -> b) -> a -> b
$ \Int
nTargets Ptr ()
targets ->
(CInt -> Bool) -> IO CInt -> IO Bool
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
liftM CInt -> Bool
forall a. (Eq a, Num a) => a -> Bool
toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
forall a b. (a -> b) -> a -> b
$
(\(Clipboard ForeignPtr Clipboard
arg1) Ptr ()
arg2 Quark
arg3 ClipboardGetFunc
arg4 ClipboardClearFunc
arg5 Ptr ()
arg6 -> ForeignPtr Clipboard -> (Ptr Clipboard -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Clipboard
arg1 ((Ptr Clipboard -> IO CInt) -> IO CInt)
-> (Ptr Clipboard -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr Clipboard
argPtr1 ->Ptr Clipboard
-> Ptr ()
-> Quark
-> ClipboardGetFunc
-> ClipboardClearFunc
-> Ptr ()
-> IO CInt
gtk_clipboard_set_with_data Ptr Clipboard
argPtr1 Ptr ()
arg2 Quark
arg3 ClipboardGetFunc
arg4 ClipboardClearFunc
arg5 Ptr ()
arg6)
{-# LINE 269 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}
(toClipboard self)
Ptr ()
targets
(Int -> Quark
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
nTargets)
ClipboardGetFunc
gFunPtr
ClipboardClearFunc
cFunPtr
Ptr ()
forall a. Ptr a
nullPtr
(\(GObject ForeignPtr GObject
arg1) Quark
arg2 Ptr ()
arg3 FunPtr (Ptr () -> IO ())
arg4 -> ForeignPtr GObject -> (Ptr GObject -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr GObject
arg1 ((Ptr GObject -> IO ()) -> IO ())
-> (Ptr GObject -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr GObject
argPtr1 ->Ptr GObject -> Quark -> Ptr () -> FunPtr (Ptr () -> IO ()) -> IO ()
g_object_set_qdata_full Ptr GObject
argPtr1 Quark
arg2 Ptr ()
arg3 FunPtr (Ptr () -> IO ())
arg4) (self -> GObject
forall o. GObjectClass o => o -> GObject
toGObject self
self) Quark
getFuncQuark
(ClipboardGetFunc -> Ptr ()
forall a b. FunPtr a -> Ptr b
castFunPtrToPtr ClipboardGetFunc
gFunPtr) FunPtr (Ptr () -> IO ())
destroyFunPtr
(\(GObject ForeignPtr GObject
arg1) Quark
arg2 Ptr ()
arg3 FunPtr (Ptr () -> IO ())
arg4 -> ForeignPtr GObject -> (Ptr GObject -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr GObject
arg1 ((Ptr GObject -> IO ()) -> IO ())
-> (Ptr GObject -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr GObject
argPtr1 ->Ptr GObject -> Quark -> Ptr () -> FunPtr (Ptr () -> IO ()) -> IO ()
g_object_set_qdata_full Ptr GObject
argPtr1 Quark
arg2 Ptr ()
arg3 FunPtr (Ptr () -> IO ())
arg4) (self -> GObject
forall o. GObjectClass o => o -> GObject
toGObject self
self) Quark
clearFuncQuark
(ClipboardClearFunc -> Ptr ()
forall a b. FunPtr a -> Ptr b
castFunPtrToPtr ClipboardClearFunc
cFunPtr) FunPtr (Ptr () -> IO ())
destroyFunPtr
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
res
type ClipboardGetFunc = FunPtr (((Ptr Clipboard) -> ((Ptr ()) -> (CUInt -> ((Ptr ()) -> (IO ()))))))
{-# LINE 282 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}
type ClipboardClearFunc = FunPtr (((Ptr Clipboard) -> ((Ptr ()) -> (IO ()))))
{-# LINE 283 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}
foreign import ccall "wrapper" mkClipboardGetFunc ::
(Ptr Clipboard -> Ptr () -> (CUInt) -> Ptr () -> IO ()) -> IO ClipboardGetFunc
foreign import ccall "wrapper" mkClipboardClearFunc ::
(Ptr Clipboard -> Ptr () -> IO ()) -> IO ClipboardClearFunc
_clipboardSetWithOwner :: (ClipboardClass self, GObjectClass owner) => self
-> [(TargetTag, InfoId)]
-> (InfoId -> SelectionDataM ())
-> IO ()
-> owner
-> IO Bool
_clipboardSetWithOwner :: forall self owner.
(ClipboardClass self, GObjectClass owner) =>
self
-> [(SelectionTag, Quark)]
-> (Quark -> SelectionDataM ())
-> IO ()
-> owner
-> IO Bool
_clipboardSetWithOwner self
self [(SelectionTag, Quark)]
targets Quark -> SelectionDataM ()
getFunc IO ()
clearFunc owner
owner = do
ClipboardGetFunc
gFunPtr <- (Ptr Clipboard -> Ptr () -> Quark -> Ptr () -> IO ())
-> IO ClipboardGetFunc
mkClipboardGetFunc
(\Ptr Clipboard
_ Ptr ()
sPtr Quark
info Ptr ()
_ -> SelectionDataM () -> Ptr () -> IO ()
forall r (m :: * -> *) a. ReaderT r m a -> r -> m a
runReaderT (Quark -> SelectionDataM ()
getFunc Quark
info) Ptr ()
sPtr IO () -> IO () -> IO ()
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ())
ClipboardClearFunc
cFunPtr <- (Ptr Clipboard -> Ptr () -> IO ()) -> IO ClipboardClearFunc
mkClipboardClearFunc
(\Ptr Clipboard
_ Ptr ()
_ -> IO ()
clearFunc)
Bool
res <- [(SelectionTag, Quark)] -> (Int -> Ptr () -> IO Bool) -> IO Bool
forall a.
[(SelectionTag, Quark)] -> (Int -> Ptr () -> IO a) -> IO a
withTargetEntries [(SelectionTag, Quark)]
targets ((Int -> Ptr () -> IO Bool) -> IO Bool)
-> (Int -> Ptr () -> IO Bool) -> IO Bool
forall a b. (a -> b) -> a -> b
$ \Int
nTargets Ptr ()
targets ->
(CInt -> Bool) -> IO CInt -> IO Bool
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
liftM CInt -> Bool
forall a. (Eq a, Num a) => a -> Bool
toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
forall a b. (a -> b) -> a -> b
$
(\(Clipboard ForeignPtr Clipboard
arg1) Ptr ()
arg2 Quark
arg3 ClipboardGetFunc
arg4 ClipboardClearFunc
arg5 (GObject ForeignPtr GObject
arg6) -> ForeignPtr Clipboard -> (Ptr Clipboard -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Clipboard
arg1 ((Ptr Clipboard -> IO CInt) -> IO CInt)
-> (Ptr Clipboard -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr Clipboard
argPtr1 ->ForeignPtr GObject -> (Ptr GObject -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr GObject
arg6 ((Ptr GObject -> IO CInt) -> IO CInt)
-> (Ptr GObject -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr GObject
argPtr6 ->Ptr Clipboard
-> Ptr ()
-> Quark
-> ClipboardGetFunc
-> ClipboardClearFunc
-> Ptr GObject
-> IO CInt
gtk_clipboard_set_with_owner Ptr Clipboard
argPtr1 Ptr ()
arg2 Quark
arg3 ClipboardGetFunc
arg4 ClipboardClearFunc
arg5 Ptr GObject
argPtr6)
{-# LINE 322 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}
(toClipboard self)
Ptr ()
targets
(Int -> Quark
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
nTargets)
ClipboardGetFunc
gFunPtr
ClipboardClearFunc
cFunPtr
(owner -> GObject
forall o. GObjectClass o => o -> GObject
toGObject owner
owner)
(\(GObject ForeignPtr GObject
arg1) Quark
arg2 Ptr ()
arg3 FunPtr (Ptr () -> IO ())
arg4 -> ForeignPtr GObject -> (Ptr GObject -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr GObject
arg1 ((Ptr GObject -> IO ()) -> IO ())
-> (Ptr GObject -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr GObject
argPtr1 ->Ptr GObject -> Quark -> Ptr () -> FunPtr (Ptr () -> IO ()) -> IO ()
g_object_set_qdata_full Ptr GObject
argPtr1 Quark
arg2 Ptr ()
arg3 FunPtr (Ptr () -> IO ())
arg4) (self -> GObject
forall o. GObjectClass o => o -> GObject
toGObject self
self) Quark
getFuncQuark
(ClipboardGetFunc -> Ptr ()
forall a b. FunPtr a -> Ptr b
castFunPtrToPtr ClipboardGetFunc
gFunPtr) FunPtr (Ptr () -> IO ())
destroyFunPtr
(\(GObject ForeignPtr GObject
arg1) Quark
arg2 Ptr ()
arg3 FunPtr (Ptr () -> IO ())
arg4 -> ForeignPtr GObject -> (Ptr GObject -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr GObject
arg1 ((Ptr GObject -> IO ()) -> IO ())
-> (Ptr GObject -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr GObject
argPtr1 ->Ptr GObject -> Quark -> Ptr () -> FunPtr (Ptr () -> IO ()) -> IO ()
g_object_set_qdata_full Ptr GObject
argPtr1 Quark
arg2 Ptr ()
arg3 FunPtr (Ptr () -> IO ())
arg4) (self -> GObject
forall o. GObjectClass o => o -> GObject
toGObject self
self) Quark
clearFuncQuark
(ClipboardClearFunc -> Ptr ()
forall a b. FunPtr a -> Ptr b
castFunPtrToPtr ClipboardClearFunc
cFunPtr) FunPtr (Ptr () -> IO ())
destroyFunPtr
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
res
_clipboardGetOwner :: ClipboardClass self => self
-> IO (Maybe GObject)
_clipboardGetOwner :: forall self. ClipboardClass self => self -> IO (Maybe GObject)
_clipboardGetOwner self
self =
(IO (Ptr GObject) -> IO GObject)
-> IO (Ptr GObject) -> IO (Maybe GObject)
forall a. (IO (Ptr a) -> IO a) -> IO (Ptr a) -> IO (Maybe a)
maybeNull ((ForeignPtr GObject -> GObject, FinalizerPtr GObject)
-> IO (Ptr GObject) -> IO GObject
forall obj.
GObjectClass obj =>
(ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
makeNewGObject (ForeignPtr GObject -> GObject, FinalizerPtr GObject)
forall {a}. (ForeignPtr GObject -> GObject, FinalizerPtr a)
mkGObject) (IO (Ptr GObject) -> IO (Maybe GObject))
-> IO (Ptr GObject) -> IO (Maybe GObject)
forall a b. (a -> b) -> a -> b
$
(\(Clipboard ForeignPtr Clipboard
arg1) -> ForeignPtr Clipboard
-> (Ptr Clipboard -> IO (Ptr GObject)) -> IO (Ptr GObject)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Clipboard
arg1 ((Ptr Clipboard -> IO (Ptr GObject)) -> IO (Ptr GObject))
-> (Ptr Clipboard -> IO (Ptr GObject)) -> IO (Ptr GObject)
forall a b. (a -> b) -> a -> b
$ \Ptr Clipboard
argPtr1 ->Ptr Clipboard -> IO (Ptr GObject)
gtk_clipboard_get_owner Ptr Clipboard
argPtr1)
{-# LINE 346 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}
(toClipboard self)
_clipboardClear :: ClipboardClass self => self -> IO ()
_clipboardClear :: forall self. ClipboardClass self => self -> IO ()
_clipboardClear self
self =
(\(Clipboard ForeignPtr Clipboard
arg1) -> ForeignPtr Clipboard -> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Clipboard
arg1 ((Ptr Clipboard -> IO ()) -> IO ())
-> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Clipboard
argPtr1 ->Ptr Clipboard -> IO ()
gtk_clipboard_clear Ptr Clipboard
argPtr1)
{-# LINE 357 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}
(toClipboard self)
clipboardSetText :: (ClipboardClass self, GlibString string) => self
-> string
-> IO ()
clipboardSetText :: forall self string.
(ClipboardClass self, GlibString string) =>
self -> string -> IO ()
clipboardSetText self
self string
text =
string -> (CStringLen -> IO ()) -> IO ()
forall a. string -> (CStringLen -> IO a) -> IO a
forall s a. GlibString s => s -> (CStringLen -> IO a) -> IO a
withUTFStringLen string
text ((CStringLen -> IO ()) -> IO ()) -> (CStringLen -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \(Ptr CChar
textPtr,Int
len) ->
(\(Clipboard ForeignPtr Clipboard
arg1) Ptr CChar
arg2 CInt
arg3 -> ForeignPtr Clipboard -> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Clipboard
arg1 ((Ptr Clipboard -> IO ()) -> IO ())
-> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Clipboard
argPtr1 ->Ptr Clipboard -> Ptr CChar -> CInt -> IO ()
gtk_clipboard_set_text Ptr Clipboard
argPtr1 Ptr CChar
arg2 CInt
arg3)
{-# LINE 370 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}
(toClipboard self)
Ptr CChar
textPtr
(Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
len)
clipboardSetImage :: ClipboardClass self => self
-> Pixbuf
-> IO ()
clipboardSetImage :: forall self. ClipboardClass self => self -> Pixbuf -> IO ()
clipboardSetImage self
self Pixbuf
pixbuf =
(\(Clipboard ForeignPtr Clipboard
arg1) (Pixbuf ForeignPtr Pixbuf
arg2) -> ForeignPtr Clipboard -> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Clipboard
arg1 ((Ptr Clipboard -> IO ()) -> IO ())
-> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Clipboard
argPtr1 ->ForeignPtr Pixbuf -> (Ptr Pixbuf -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Pixbuf
arg2 ((Ptr Pixbuf -> IO ()) -> IO ()) -> (Ptr Pixbuf -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Pixbuf
argPtr2 ->Ptr Clipboard -> Ptr Pixbuf -> IO ()
gtk_clipboard_set_image Ptr Clipboard
argPtr1 Ptr Pixbuf
argPtr2)
{-# LINE 387 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}
(toClipboard self)
Pixbuf
pixbuf
clipboardRequestContents :: ClipboardClass self => self
-> TargetTag
-> SelectionDataM ()
-> IO ()
clipboardRequestContents :: forall self.
ClipboardClass self =>
self -> SelectionTag -> SelectionDataM () -> IO ()
clipboardRequestContents self
self (Atom Ptr ()
target) SelectionDataM ()
callback = do
IORef (FunPtr (Ptr Clipboard -> Ptr () -> Ptr () -> IO ()))
cbRef <- FunPtr (Ptr Clipboard -> Ptr () -> Ptr () -> IO ())
-> IO (IORef (FunPtr (Ptr Clipboard -> Ptr () -> Ptr () -> IO ())))
forall a. a -> IO (IORef a)
newIORef FunPtr (Ptr Clipboard -> Ptr () -> Ptr () -> IO ())
forall a. FunPtr a
nullFunPtr
FunPtr (Ptr Clipboard -> Ptr () -> Ptr () -> IO ())
cbPtr <- (Ptr Clipboard -> Ptr () -> Ptr () -> IO ())
-> IO (FunPtr (Ptr Clipboard -> Ptr () -> Ptr () -> IO ()))
mkClipboardReceivedFunc
(\Ptr Clipboard
_ Ptr ()
sPtr Ptr ()
_ -> do
FunPtr (Ptr Clipboard -> Ptr () -> Ptr () -> IO ()) -> IO ()
forall a. FunPtr a -> IO ()
freeHaskellFunPtr (FunPtr (Ptr Clipboard -> Ptr () -> Ptr () -> IO ()) -> IO ())
-> IO (FunPtr (Ptr Clipboard -> Ptr () -> Ptr () -> IO ()))
-> IO ()
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<< IORef (FunPtr (Ptr Clipboard -> Ptr () -> Ptr () -> IO ()))
-> IO (FunPtr (Ptr Clipboard -> Ptr () -> Ptr () -> IO ()))
forall a. IORef a -> IO a
readIORef IORef (FunPtr (Ptr Clipboard -> Ptr () -> Ptr () -> IO ()))
cbRef
SelectionDataM () -> Ptr () -> IO ()
forall r (m :: * -> *) a. ReaderT r m a -> r -> m a
runReaderT SelectionDataM ()
callback Ptr ()
sPtr
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ())
IORef (FunPtr (Ptr Clipboard -> Ptr () -> Ptr () -> IO ()))
-> FunPtr (Ptr Clipboard -> Ptr () -> Ptr () -> IO ()) -> IO ()
forall a. IORef a -> a -> IO ()
writeIORef IORef (FunPtr (Ptr Clipboard -> Ptr () -> Ptr () -> IO ()))
cbRef FunPtr (Ptr Clipboard -> Ptr () -> Ptr () -> IO ())
cbPtr
(\(Clipboard ForeignPtr Clipboard
arg1) Ptr ()
arg2 FunPtr (Ptr Clipboard -> Ptr () -> Ptr () -> IO ())
arg3 Ptr ()
arg4 -> ForeignPtr Clipboard -> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Clipboard
arg1 ((Ptr Clipboard -> IO ()) -> IO ())
-> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Clipboard
argPtr1 ->Ptr Clipboard
-> Ptr ()
-> FunPtr (Ptr Clipboard -> Ptr () -> Ptr () -> IO ())
-> Ptr ()
-> IO ()
gtk_clipboard_request_contents Ptr Clipboard
argPtr1 Ptr ()
arg2 FunPtr (Ptr Clipboard -> Ptr () -> Ptr () -> IO ())
arg3 Ptr ()
arg4)
{-# LINE 413 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}
(toClipboard self)
Ptr ()
target
FunPtr (Ptr Clipboard -> Ptr () -> Ptr () -> IO ())
cbPtr
Ptr ()
forall a. Ptr a
nullPtr
type ClipboardReceivedFunc = FunPtr (((Ptr Clipboard) -> ((Ptr ()) -> ((Ptr ()) -> (IO ())))))
{-# LINE 419 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}
foreign import ccall "wrapper" mkClipboardReceivedFunc ::
(Ptr Clipboard -> Ptr () -> Ptr () -> IO ()) -> IO ClipboardReceivedFunc
clipboardRequestText :: (ClipboardClass self, GlibString string) => self
-> (Maybe string -> IO ())
-> IO ()
clipboardRequestText :: forall self string.
(ClipboardClass self, GlibString string) =>
self -> (Maybe string -> IO ()) -> IO ()
clipboardRequestText self
self Maybe string -> IO ()
callback = do
IORef (FunPtr (Ptr Clipboard -> Ptr CChar -> Ptr () -> IO ()))
cbRef <- FunPtr (Ptr Clipboard -> Ptr CChar -> Ptr () -> IO ())
-> IO
(IORef (FunPtr (Ptr Clipboard -> Ptr CChar -> Ptr () -> IO ())))
forall a. a -> IO (IORef a)
newIORef FunPtr (Ptr Clipboard -> Ptr CChar -> Ptr () -> IO ())
forall a. FunPtr a
nullFunPtr
FunPtr (Ptr Clipboard -> Ptr CChar -> Ptr () -> IO ())
cbPtr <- (Ptr Clipboard -> Ptr CChar -> Ptr () -> IO ())
-> IO (FunPtr (Ptr Clipboard -> Ptr CChar -> Ptr () -> IO ()))
mkClipboardTextReceivedFunc
(\Ptr Clipboard
_ Ptr CChar
sPtr Ptr ()
_ -> do
FunPtr (Ptr Clipboard -> Ptr CChar -> Ptr () -> IO ()) -> IO ()
forall a. FunPtr a -> IO ()
freeHaskellFunPtr (FunPtr (Ptr Clipboard -> Ptr CChar -> Ptr () -> IO ()) -> IO ())
-> IO (FunPtr (Ptr Clipboard -> Ptr CChar -> Ptr () -> IO ()))
-> IO ()
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<< IORef (FunPtr (Ptr Clipboard -> Ptr CChar -> Ptr () -> IO ()))
-> IO (FunPtr (Ptr Clipboard -> Ptr CChar -> Ptr () -> IO ()))
forall a. IORef a -> IO a
readIORef IORef (FunPtr (Ptr Clipboard -> Ptr CChar -> Ptr () -> IO ()))
cbRef
Maybe string
mStr <- if Ptr CChar
sPtrPtr CChar -> Ptr CChar -> Bool
forall a. Eq a => a -> a -> Bool
==Ptr CChar
forall a. Ptr a
nullPtr then Maybe string -> IO (Maybe string)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe string
forall a. Maybe a
Nothing else
(string -> Maybe string) -> IO string -> IO (Maybe string)
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
liftM string -> Maybe string
forall a. a -> Maybe a
Just (IO string -> IO (Maybe string)) -> IO string -> IO (Maybe string)
forall a b. (a -> b) -> a -> b
$ Ptr CChar -> IO string
forall s. GlibString s => Ptr CChar -> IO s
peekUTFString Ptr CChar
sPtr
Maybe string -> IO ()
callback Maybe string
mStr)
IORef (FunPtr (Ptr Clipboard -> Ptr CChar -> Ptr () -> IO ()))
-> FunPtr (Ptr Clipboard -> Ptr CChar -> Ptr () -> IO ()) -> IO ()
forall a. IORef a -> a -> IO ()
writeIORef IORef (FunPtr (Ptr Clipboard -> Ptr CChar -> Ptr () -> IO ()))
cbRef FunPtr (Ptr Clipboard -> Ptr CChar -> Ptr () -> IO ())
cbPtr
(\(Clipboard ForeignPtr Clipboard
arg1) FunPtr (Ptr Clipboard -> Ptr CChar -> Ptr () -> IO ())
arg2 Ptr ()
arg3 -> ForeignPtr Clipboard -> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Clipboard
arg1 ((Ptr Clipboard -> IO ()) -> IO ())
-> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Clipboard
argPtr1 ->Ptr Clipboard
-> FunPtr (Ptr Clipboard -> Ptr CChar -> Ptr () -> IO ())
-> Ptr ()
-> IO ()
gtk_clipboard_request_text Ptr Clipboard
argPtr1 FunPtr (Ptr Clipboard -> Ptr CChar -> Ptr () -> IO ())
arg2 Ptr ()
arg3)
{-# LINE 449 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}
(toClipboard self)
FunPtr (Ptr Clipboard -> Ptr CChar -> Ptr () -> IO ())
cbPtr
Ptr ()
forall a. Ptr a
nullPtr
type ClipboardTextReceivedFunc = FunPtr (((Ptr Clipboard) -> ((Ptr CChar) -> ((Ptr ()) -> (IO ())))))
{-# LINE 454 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}
foreign import ccall "wrapper" mkClipboardTextReceivedFunc ::
(Ptr Clipboard -> CString -> Ptr () -> IO ()) -> IO ClipboardTextReceivedFunc
clipboardRequestImage :: ClipboardClass self => self
-> (Maybe Pixbuf -> IO ())
-> IO ()
clipboardRequestImage :: forall self.
ClipboardClass self =>
self -> (Maybe Pixbuf -> IO ()) -> IO ()
clipboardRequestImage self
self Maybe Pixbuf -> IO ()
callback = do
IORef (FunPtr (Ptr Clipboard -> Ptr Pixbuf -> Ptr () -> IO ()))
cbRef <- FunPtr (Ptr Clipboard -> Ptr Pixbuf -> Ptr () -> IO ())
-> IO
(IORef (FunPtr (Ptr Clipboard -> Ptr Pixbuf -> Ptr () -> IO ())))
forall a. a -> IO (IORef a)
newIORef FunPtr (Ptr Clipboard -> Ptr Pixbuf -> Ptr () -> IO ())
forall a. FunPtr a
nullFunPtr
FunPtr (Ptr Clipboard -> Ptr Pixbuf -> Ptr () -> IO ())
cbPtr <- (Ptr Clipboard -> Ptr Pixbuf -> Ptr () -> IO ())
-> IO (FunPtr (Ptr Clipboard -> Ptr Pixbuf -> Ptr () -> IO ()))
mkClipboardImageReceivedFunc
(\Ptr Clipboard
_ Ptr Pixbuf
sPtr Ptr ()
_ -> do
FunPtr (Ptr Clipboard -> Ptr Pixbuf -> Ptr () -> IO ()) -> IO ()
forall a. FunPtr a -> IO ()
freeHaskellFunPtr (FunPtr (Ptr Clipboard -> Ptr Pixbuf -> Ptr () -> IO ()) -> IO ())
-> IO (FunPtr (Ptr Clipboard -> Ptr Pixbuf -> Ptr () -> IO ()))
-> IO ()
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<< IORef (FunPtr (Ptr Clipboard -> Ptr Pixbuf -> Ptr () -> IO ()))
-> IO (FunPtr (Ptr Clipboard -> Ptr Pixbuf -> Ptr () -> IO ()))
forall a. IORef a -> IO a
readIORef IORef (FunPtr (Ptr Clipboard -> Ptr Pixbuf -> Ptr () -> IO ()))
cbRef
Maybe Pixbuf
mPixbuf <- (IO (Ptr Pixbuf) -> IO Pixbuf)
-> IO (Ptr Pixbuf) -> IO (Maybe Pixbuf)
forall a. (IO (Ptr a) -> IO a) -> IO (Ptr a) -> IO (Maybe a)
maybeNull ((ForeignPtr Pixbuf -> Pixbuf, FinalizerPtr Pixbuf)
-> IO (Ptr Pixbuf) -> IO Pixbuf
forall obj.
GObjectClass obj =>
(ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
makeNewGObject (ForeignPtr Pixbuf -> Pixbuf, FinalizerPtr Pixbuf)
forall {a}. (ForeignPtr Pixbuf -> Pixbuf, FinalizerPtr a)
mkPixbuf) (Ptr Pixbuf -> IO (Ptr Pixbuf)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Pixbuf
sPtr)
Maybe Pixbuf -> IO ()
callback Maybe Pixbuf
mPixbuf)
IORef (FunPtr (Ptr Clipboard -> Ptr Pixbuf -> Ptr () -> IO ()))
-> FunPtr (Ptr Clipboard -> Ptr Pixbuf -> Ptr () -> IO ()) -> IO ()
forall a. IORef a -> a -> IO ()
writeIORef IORef (FunPtr (Ptr Clipboard -> Ptr Pixbuf -> Ptr () -> IO ()))
cbRef FunPtr (Ptr Clipboard -> Ptr Pixbuf -> Ptr () -> IO ())
cbPtr
(\(Clipboard ForeignPtr Clipboard
arg1) FunPtr (Ptr Clipboard -> Ptr Pixbuf -> Ptr () -> IO ())
arg2 Ptr ()
arg3 -> ForeignPtr Clipboard -> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Clipboard
arg1 ((Ptr Clipboard -> IO ()) -> IO ())
-> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Clipboard
argPtr1 ->Ptr Clipboard
-> FunPtr (Ptr Clipboard -> Ptr Pixbuf -> Ptr () -> IO ())
-> Ptr ()
-> IO ()
gtk_clipboard_request_image Ptr Clipboard
argPtr1 FunPtr (Ptr Clipboard -> Ptr Pixbuf -> Ptr () -> IO ())
arg2 Ptr ()
arg3)
{-# LINE 486 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}
(toClipboard self)
FunPtr (Ptr Clipboard -> Ptr Pixbuf -> Ptr () -> IO ())
cbPtr
Ptr ()
forall a. Ptr a
nullPtr
type ClipboardImageReceivedFunc = FunPtr (((Ptr Clipboard) -> ((Ptr Pixbuf) -> ((Ptr ()) -> (IO ())))))
{-# LINE 491 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}
foreign import ccall "wrapper" mkClipboardImageReceivedFunc ::
(Ptr Clipboard -> Ptr Pixbuf -> Ptr () -> IO ()) -> IO ClipboardImageReceivedFunc
clipboardRequestTargets :: ClipboardClass self => self
-> (Maybe [TargetTag] -> IO ())
-> IO ()
clipboardRequestTargets :: forall self.
ClipboardClass self =>
self -> (Maybe [SelectionTag] -> IO ()) -> IO ()
clipboardRequestTargets self
self Maybe [SelectionTag] -> IO ()
callback = do
IORef
(FunPtr (Ptr Clipboard -> Ptr (Ptr ()) -> CInt -> Ptr () -> IO ()))
cbRef <- FunPtr (Ptr Clipboard -> Ptr (Ptr ()) -> CInt -> Ptr () -> IO ())
-> IO
(IORef
(FunPtr
(Ptr Clipboard -> Ptr (Ptr ()) -> CInt -> Ptr () -> IO ())))
forall a. a -> IO (IORef a)
newIORef FunPtr (Ptr Clipboard -> Ptr (Ptr ()) -> CInt -> Ptr () -> IO ())
forall a. FunPtr a
nullFunPtr
FunPtr (Ptr Clipboard -> Ptr (Ptr ()) -> CInt -> Ptr () -> IO ())
cbPtr <- (Ptr Clipboard -> Ptr (Ptr ()) -> CInt -> Ptr () -> IO ())
-> IO
(FunPtr (Ptr Clipboard -> Ptr (Ptr ()) -> CInt -> Ptr () -> IO ()))
mkClipboardTargetsReceivedFunc
(\Ptr Clipboard
_ Ptr (Ptr ())
tPtr CInt
len Ptr ()
_ -> do
FunPtr (Ptr Clipboard -> Ptr (Ptr ()) -> CInt -> Ptr () -> IO ())
-> IO ()
forall a. FunPtr a -> IO ()
freeHaskellFunPtr (FunPtr (Ptr Clipboard -> Ptr (Ptr ()) -> CInt -> Ptr () -> IO ())
-> IO ())
-> IO
(FunPtr (Ptr Clipboard -> Ptr (Ptr ()) -> CInt -> Ptr () -> IO ()))
-> IO ()
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<< IORef
(FunPtr (Ptr Clipboard -> Ptr (Ptr ()) -> CInt -> Ptr () -> IO ()))
-> IO
(FunPtr (Ptr Clipboard -> Ptr (Ptr ()) -> CInt -> Ptr () -> IO ()))
forall a. IORef a -> IO a
readIORef IORef
(FunPtr (Ptr Clipboard -> Ptr (Ptr ()) -> CInt -> Ptr () -> IO ()))
cbRef
Maybe [SelectionTag]
mTargets <- if Ptr (Ptr ())
tPtrPtr (Ptr ()) -> Ptr (Ptr ()) -> Bool
forall a. Eq a => a -> a -> Bool
==Ptr (Ptr ())
forall a. Ptr a
nullPtr then Maybe [SelectionTag] -> IO (Maybe [SelectionTag])
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe [SelectionTag]
forall a. Maybe a
Nothing else
([Ptr ()] -> Maybe [SelectionTag])
-> IO [Ptr ()] -> IO (Maybe [SelectionTag])
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
liftM ([SelectionTag] -> Maybe [SelectionTag]
forall a. a -> Maybe a
Just ([SelectionTag] -> Maybe [SelectionTag])
-> ([Ptr ()] -> [SelectionTag]) -> [Ptr ()] -> Maybe [SelectionTag]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Ptr () -> SelectionTag) -> [Ptr ()] -> [SelectionTag]
forall a b. (a -> b) -> [a] -> [b]
map Ptr () -> SelectionTag
Atom) (IO [Ptr ()] -> IO (Maybe [SelectionTag]))
-> IO [Ptr ()] -> IO (Maybe [SelectionTag])
forall a b. (a -> b) -> a -> b
$ Int -> Ptr (Ptr ()) -> IO [Ptr ()]
forall a. Storable a => Int -> Ptr a -> IO [a]
peekArray (CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral CInt
len) Ptr (Ptr ())
tPtr
Maybe [SelectionTag] -> IO ()
callback Maybe [SelectionTag]
mTargets)
IORef
(FunPtr (Ptr Clipboard -> Ptr (Ptr ()) -> CInt -> Ptr () -> IO ()))
-> FunPtr
(Ptr Clipboard -> Ptr (Ptr ()) -> CInt -> Ptr () -> IO ())
-> IO ()
forall a. IORef a -> a -> IO ()
writeIORef IORef
(FunPtr (Ptr Clipboard -> Ptr (Ptr ()) -> CInt -> Ptr () -> IO ()))
cbRef FunPtr (Ptr Clipboard -> Ptr (Ptr ()) -> CInt -> Ptr () -> IO ())
cbPtr
(\(Clipboard ForeignPtr Clipboard
arg1) FunPtr (Ptr Clipboard -> Ptr (Ptr ()) -> CInt -> Ptr () -> IO ())
arg2 Ptr ()
arg3 -> ForeignPtr Clipboard -> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Clipboard
arg1 ((Ptr Clipboard -> IO ()) -> IO ())
-> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Clipboard
argPtr1 ->Ptr Clipboard
-> FunPtr
(Ptr Clipboard -> Ptr (Ptr ()) -> CInt -> Ptr () -> IO ())
-> Ptr ()
-> IO ()
gtk_clipboard_request_targets Ptr Clipboard
argPtr1 FunPtr (Ptr Clipboard -> Ptr (Ptr ()) -> CInt -> Ptr () -> IO ())
arg2 Ptr ()
arg3)
{-# LINE 524 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}
(toClipboard self)
FunPtr (Ptr Clipboard -> Ptr (Ptr ()) -> CInt -> Ptr () -> IO ())
cbPtr
Ptr ()
forall a. Ptr a
nullPtr
type ClipboardTargetsReceivedFunc = FunPtr (((Ptr Clipboard) -> ((Ptr (Ptr ())) -> (CInt -> ((Ptr ()) -> (IO ()))))))
{-# LINE 529 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}
foreign import ccall "wrapper" mkClipboardTargetsReceivedFunc ::
(Ptr Clipboard -> Ptr (Ptr ()) -> (CInt) -> Ptr () -> IO ()) -> IO ClipboardTargetsReceivedFunc
clipboardRequestRichText :: (ClipboardClass self, TextBufferClass buffer, GlibString string) => self
-> buffer
-> (Maybe (TargetTag,string) -> IO ())
-> IO ()
clipboardRequestRichText :: forall self buffer string.
(ClipboardClass self, TextBufferClass buffer, GlibString string) =>
self -> buffer -> (Maybe (SelectionTag, string) -> IO ()) -> IO ()
clipboardRequestRichText self
self buffer
buffer Maybe (SelectionTag, string) -> IO ()
callback = do
IORef
(FunPtr
(Ptr Clipboard
-> Ptr () -> Ptr CUChar -> Quark -> Ptr () -> IO ()))
cbRef <- FunPtr
(Ptr Clipboard -> Ptr () -> Ptr CUChar -> Quark -> Ptr () -> IO ())
-> IO
(IORef
(FunPtr
(Ptr Clipboard
-> Ptr () -> Ptr CUChar -> Quark -> Ptr () -> IO ())))
forall a. a -> IO (IORef a)
newIORef FunPtr
(Ptr Clipboard -> Ptr () -> Ptr CUChar -> Quark -> Ptr () -> IO ())
forall a. FunPtr a
nullFunPtr
FunPtr
(Ptr Clipboard -> Ptr () -> Ptr CUChar -> Quark -> Ptr () -> IO ())
cbPtr <- (Ptr Clipboard -> Ptr () -> Ptr CUChar -> Quark -> Ptr () -> IO ())
-> IO
(FunPtr
(Ptr Clipboard
-> Ptr () -> Ptr CUChar -> Quark -> Ptr () -> IO ()))
mkClipboardRichTextReceivedFunc
(\Ptr Clipboard
_ Ptr ()
tPtr Ptr CUChar
sPtr Quark
len Ptr ()
_ -> do
FunPtr
(Ptr Clipboard -> Ptr () -> Ptr CUChar -> Quark -> Ptr () -> IO ())
-> IO ()
forall a. FunPtr a -> IO ()
freeHaskellFunPtr (FunPtr
(Ptr Clipboard -> Ptr () -> Ptr CUChar -> Quark -> Ptr () -> IO ())
-> IO ())
-> IO
(FunPtr
(Ptr Clipboard
-> Ptr () -> Ptr CUChar -> Quark -> Ptr () -> IO ()))
-> IO ()
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<< IORef
(FunPtr
(Ptr Clipboard
-> Ptr () -> Ptr CUChar -> Quark -> Ptr () -> IO ()))
-> IO
(FunPtr
(Ptr Clipboard
-> Ptr () -> Ptr CUChar -> Quark -> Ptr () -> IO ()))
forall a. IORef a -> IO a
readIORef IORef
(FunPtr
(Ptr Clipboard
-> Ptr () -> Ptr CUChar -> Quark -> Ptr () -> IO ()))
cbRef
Maybe (SelectionTag, string)
mRes <- if Ptr CUChar
sPtrPtr CUChar -> Ptr CUChar -> Bool
forall a. Eq a => a -> a -> Bool
==Ptr CUChar
forall a. Ptr a
nullPtr then Maybe (SelectionTag, string) -> IO (Maybe (SelectionTag, string))
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe (SelectionTag, string)
forall a. Maybe a
Nothing else ((SelectionTag, string) -> Maybe (SelectionTag, string))
-> IO (SelectionTag, string) -> IO (Maybe (SelectionTag, string))
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
liftM (SelectionTag, string) -> Maybe (SelectionTag, string)
forall a. a -> Maybe a
Just (IO (SelectionTag, string) -> IO (Maybe (SelectionTag, string)))
-> IO (SelectionTag, string) -> IO (Maybe (SelectionTag, string))
forall a b. (a -> b) -> a -> b
$ do
string
str <- CStringLen -> IO string
forall s. GlibString s => CStringLen -> IO s
peekUTFStringLen (Ptr CUChar -> Ptr CChar
forall a b. Ptr a -> Ptr b
castPtr Ptr CUChar
sPtr,Quark -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral Quark
len)
(SelectionTag, string) -> IO (SelectionTag, string)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (Ptr () -> SelectionTag
Atom Ptr ()
tPtr, string
str)
Maybe (SelectionTag, string) -> IO ()
callback Maybe (SelectionTag, string)
mRes)
IORef
(FunPtr
(Ptr Clipboard
-> Ptr () -> Ptr CUChar -> Quark -> Ptr () -> IO ()))
-> FunPtr
(Ptr Clipboard -> Ptr () -> Ptr CUChar -> Quark -> Ptr () -> IO ())
-> IO ()
forall a. IORef a -> a -> IO ()
writeIORef IORef
(FunPtr
(Ptr Clipboard
-> Ptr () -> Ptr CUChar -> Quark -> Ptr () -> IO ()))
cbRef FunPtr
(Ptr Clipboard -> Ptr () -> Ptr CUChar -> Quark -> Ptr () -> IO ())
cbPtr
(\(Clipboard ForeignPtr Clipboard
arg1) (TextBuffer ForeignPtr TextBuffer
arg2) FunPtr
(Ptr Clipboard -> Ptr () -> Ptr CUChar -> Quark -> Ptr () -> IO ())
arg3 Ptr ()
arg4 -> ForeignPtr Clipboard -> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Clipboard
arg1 ((Ptr Clipboard -> IO ()) -> IO ())
-> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Clipboard
argPtr1 ->ForeignPtr TextBuffer -> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr TextBuffer
arg2 ((Ptr TextBuffer -> IO ()) -> IO ())
-> (Ptr TextBuffer -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr TextBuffer
argPtr2 ->Ptr Clipboard
-> Ptr TextBuffer
-> FunPtr
(Ptr Clipboard -> Ptr () -> Ptr CUChar -> Quark -> Ptr () -> IO ())
-> Ptr ()
-> IO ()
gtk_clipboard_request_rich_text Ptr Clipboard
argPtr1 Ptr TextBuffer
argPtr2 FunPtr
(Ptr Clipboard -> Ptr () -> Ptr CUChar -> Quark -> Ptr () -> IO ())
arg3 Ptr ()
arg4)
{-# LINE 563 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}
(toClipboard self)
(buffer -> TextBuffer
forall o. TextBufferClass o => o -> TextBuffer
toTextBuffer buffer
buffer)
FunPtr
(Ptr Clipboard -> Ptr () -> Ptr CUChar -> Quark -> Ptr () -> IO ())
cbPtr
Ptr ()
forall a. Ptr a
nullPtr
type ClipboardRichTextReceivedFunc = FunPtr (((Ptr Clipboard) -> ((Ptr ()) -> ((Ptr CUChar) -> (CUInt -> ((Ptr ()) -> (IO ())))))))
{-# LINE 569 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}
foreign import ccall "wrapper" mkClipboardRichTextReceivedFunc ::
(Ptr Clipboard -> Ptr () -> Ptr CUChar -> (CUInt) -> Ptr () -> IO ()) ->
IO ClipboardRichTextReceivedFunc
clipboardSetCanStore :: ClipboardClass self => self
-> Maybe [(TargetTag, InfoId)]
-> IO ()
clipboardSetCanStore :: forall self.
ClipboardClass self =>
self -> Maybe [(SelectionTag, Quark)] -> IO ()
clipboardSetCanStore self
self Maybe [(SelectionTag, Quark)]
Nothing =
(\(Clipboard ForeignPtr Clipboard
arg1) Ptr ()
arg2 CInt
arg3 -> ForeignPtr Clipboard -> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Clipboard
arg1 ((Ptr Clipboard -> IO ()) -> IO ())
-> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Clipboard
argPtr1 ->Ptr Clipboard -> Ptr () -> CInt -> IO ()
gtk_clipboard_set_can_store Ptr Clipboard
argPtr1 Ptr ()
arg2 CInt
arg3)
{-# LINE 595 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}
(toClipboard self)
Ptr ()
forall a. Ptr a
nullPtr
CInt
0
clipboardSetCanStore self
self (Just [(SelectionTag, Quark)]
targets) =
[(SelectionTag, Quark)] -> (Int -> Ptr () -> IO ()) -> IO ()
forall a.
[(SelectionTag, Quark)] -> (Int -> Ptr () -> IO a) -> IO a
withTargetEntries [(SelectionTag, Quark)]
targets ((Int -> Ptr () -> IO ()) -> IO ())
-> (Int -> Ptr () -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Int
nTargets Ptr ()
targets ->
(\(Clipboard ForeignPtr Clipboard
arg1) Ptr ()
arg2 CInt
arg3 -> ForeignPtr Clipboard -> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Clipboard
arg1 ((Ptr Clipboard -> IO ()) -> IO ())
-> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Clipboard
argPtr1 ->Ptr Clipboard -> Ptr () -> CInt -> IO ()
gtk_clipboard_set_can_store Ptr Clipboard
argPtr1 Ptr ()
arg2 CInt
arg3)
{-# LINE 601 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}
(toClipboard self)
Ptr ()
targets
(Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
nTargets)
clipboardStore :: ClipboardClass self => self -> IO ()
clipboardStore :: forall self. ClipboardClass self => self -> IO ()
clipboardStore self
self =
(\(Clipboard ForeignPtr Clipboard
arg1) -> ForeignPtr Clipboard -> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Clipboard
arg1 ((Ptr Clipboard -> IO ()) -> IO ())
-> (Ptr Clipboard -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Clipboard
argPtr1 ->Ptr Clipboard -> IO ()
gtk_clipboard_store Ptr Clipboard
argPtr1)
{-# LINE 614 "./Graphics/UI/Gtk/General/Clipboard.chs" #-}
(toClipboard self)
foreign import ccall safe "gtk_clipboard_get"
gtk_clipboard_get :: ((Ptr ()) -> (IO (Ptr Clipboard)))
foreign import ccall safe "gtk_clipboard_get_for_display"
gtk_clipboard_get_for_display :: ((Ptr Display) -> ((Ptr ()) -> (IO (Ptr Clipboard))))
foreign import ccall safe "gtk_clipboard_get_display"
gtk_clipboard_get_display :: ((Ptr Clipboard) -> (IO (Ptr Display)))
foreign import ccall safe "gtk_clipboard_set_with_data"
gtk_clipboard_set_with_data :: ((Ptr Clipboard) -> ((Ptr ()) -> (CUInt -> ((FunPtr ((Ptr Clipboard) -> ((Ptr ()) -> (CUInt -> ((Ptr ()) -> (IO ())))))) -> ((FunPtr ((Ptr Clipboard) -> ((Ptr ()) -> (IO ())))) -> ((Ptr ()) -> (IO CInt)))))))
foreign import ccall unsafe "g_object_set_qdata_full"
g_object_set_qdata_full :: ((Ptr GObject) -> (CUInt -> ((Ptr ()) -> ((FunPtr ((Ptr ()) -> (IO ()))) -> (IO ())))))
foreign import ccall safe "gtk_clipboard_set_with_owner"
gtk_clipboard_set_with_owner :: ((Ptr Clipboard) -> ((Ptr ()) -> (CUInt -> ((FunPtr ((Ptr Clipboard) -> ((Ptr ()) -> (CUInt -> ((Ptr ()) -> (IO ())))))) -> ((FunPtr ((Ptr Clipboard) -> ((Ptr ()) -> (IO ())))) -> ((Ptr GObject) -> (IO CInt)))))))
foreign import ccall safe "gtk_clipboard_get_owner"
gtk_clipboard_get_owner :: ((Ptr Clipboard) -> (IO (Ptr GObject)))
foreign import ccall safe "gtk_clipboard_clear"
gtk_clipboard_clear :: ((Ptr Clipboard) -> (IO ()))
foreign import ccall safe "gtk_clipboard_set_text"
gtk_clipboard_set_text :: ((Ptr Clipboard) -> ((Ptr CChar) -> (CInt -> (IO ()))))
foreign import ccall safe "gtk_clipboard_set_image"
gtk_clipboard_set_image :: ((Ptr Clipboard) -> ((Ptr Pixbuf) -> (IO ())))
foreign import ccall safe "gtk_clipboard_request_contents"
gtk_clipboard_request_contents :: ((Ptr Clipboard) -> ((Ptr ()) -> ((FunPtr ((Ptr Clipboard) -> ((Ptr ()) -> ((Ptr ()) -> (IO ()))))) -> ((Ptr ()) -> (IO ())))))
foreign import ccall safe "gtk_clipboard_request_text"
gtk_clipboard_request_text :: ((Ptr Clipboard) -> ((FunPtr ((Ptr Clipboard) -> ((Ptr CChar) -> ((Ptr ()) -> (IO ()))))) -> ((Ptr ()) -> (IO ()))))
foreign import ccall safe "gtk_clipboard_request_image"
gtk_clipboard_request_image :: ((Ptr Clipboard) -> ((FunPtr ((Ptr Clipboard) -> ((Ptr Pixbuf) -> ((Ptr ()) -> (IO ()))))) -> ((Ptr ()) -> (IO ()))))
foreign import ccall safe "gtk_clipboard_request_targets"
gtk_clipboard_request_targets :: ((Ptr Clipboard) -> ((FunPtr ((Ptr Clipboard) -> ((Ptr (Ptr ())) -> (CInt -> ((Ptr ()) -> (IO ())))))) -> ((Ptr ()) -> (IO ()))))
foreign import ccall safe "gtk_clipboard_request_rich_text"
gtk_clipboard_request_rich_text :: ((Ptr Clipboard) -> ((Ptr TextBuffer) -> ((FunPtr ((Ptr Clipboard) -> ((Ptr ()) -> ((Ptr CUChar) -> (CUInt -> ((Ptr ()) -> (IO ()))))))) -> ((Ptr ()) -> (IO ())))))
foreign import ccall safe "gtk_clipboard_set_can_store"
gtk_clipboard_set_can_store :: ((Ptr Clipboard) -> ((Ptr ()) -> (CInt -> (IO ()))))
foreign import ccall safe "gtk_clipboard_store"
gtk_clipboard_store :: ((Ptr Clipboard) -> (IO ()))