{-# LINE 2 "./Graphics/UI/Gtk/Entry/Editable.chs" #-}
module Graphics.UI.Gtk.Entry.Editable (
Editable,
EditableClass,
castToEditable, gTypeEditable,
toEditable,
editableSelectRegion,
editableGetSelectionBounds,
editableInsertText,
editableDeleteText,
editableGetChars,
editableCutClipboard,
editableCopyClipboard,
editablePasteClipboard,
editableDeleteSelection,
editableSetEditable,
editableGetEditable,
editableSetPosition,
editableGetPosition,
editablePosition,
editableEditable,
editableChanged,
deleteText,
insertText,
stopDeleteText,
stopInsertText,
onEditableChanged,
afterEditableChanged,
onDeleteText,
afterDeleteText,
onInsertText,
afterInsertText
) where
import Control.Monad (liftM)
import System.Glib.FFI
import System.Glib.UTFString
import System.Glib.Attributes
import Graphics.UI.Gtk.Types
{-# LINE 95 "./Graphics/UI/Gtk/Entry/Editable.chs" #-}
import Graphics.UI.Gtk.Signals
{-# LINE 96 "./Graphics/UI/Gtk/Entry/Editable.chs" #-}
{-# LINE 98 "./Graphics/UI/Gtk/Entry/Editable.chs" #-}
editableSelectRegion :: EditableClass self => self
-> Int
-> Int
-> IO ()
editableSelectRegion :: forall self. EditableClass self => self -> Int -> Int -> IO ()
editableSelectRegion self
self Int
start Int
end =
(\(Editable ForeignPtr Editable
arg1) CInt
arg2 CInt
arg3 -> ForeignPtr Editable -> (Ptr Editable -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Editable
arg1 ((Ptr Editable -> IO ()) -> IO ())
-> (Ptr Editable -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Editable
argPtr1 ->Ptr Editable -> CInt -> CInt -> IO ()
gtk_editable_select_region Ptr Editable
argPtr1 CInt
arg2 CInt
arg3)
{-# LINE 116 "./Graphics/UI/Gtk/Entry/Editable.chs" #-}
(toEditable self)
(Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
start)
(Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
end)
editableGetSelectionBounds :: EditableClass self => self
-> IO (Int,Int)
editableGetSelectionBounds :: forall self. EditableClass self => self -> IO (Int, Int)
editableGetSelectionBounds self
self =
(Ptr CInt -> IO (Int, Int)) -> IO (Int, Int)
forall a b. Storable a => (Ptr a -> IO b) -> IO b
alloca ((Ptr CInt -> IO (Int, Int)) -> IO (Int, Int))
-> (Ptr CInt -> IO (Int, Int)) -> IO (Int, Int)
forall a b. (a -> b) -> a -> b
$ \Ptr CInt
startPtr ->
(Ptr CInt -> IO (Int, Int)) -> IO (Int, Int)
forall a b. Storable a => (Ptr a -> IO b) -> IO b
alloca ((Ptr CInt -> IO (Int, Int)) -> IO (Int, Int))
-> (Ptr CInt -> IO (Int, Int)) -> IO (Int, Int)
forall a b. (a -> b) -> a -> b
$ \Ptr CInt
endPtr -> do
(\(Editable ForeignPtr Editable
arg1) Ptr CInt
arg2 Ptr CInt
arg3 -> ForeignPtr Editable -> (Ptr Editable -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Editable
arg1 ((Ptr Editable -> IO CInt) -> IO CInt)
-> (Ptr Editable -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr Editable
argPtr1 ->Ptr Editable -> Ptr CInt -> Ptr CInt -> IO CInt
gtk_editable_get_selection_bounds Ptr Editable
argPtr1 Ptr CInt
arg2 Ptr CInt
arg3)
{-# LINE 132 "./Graphics/UI/Gtk/Entry/Editable.chs" #-}
(toEditable self)
Ptr CInt
startPtr
Ptr CInt
endPtr
Int
start <- (CInt -> Int) -> IO CInt -> IO Int
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
liftM CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral (IO CInt -> IO Int) -> IO CInt -> IO Int
forall a b. (a -> b) -> a -> b
$ Ptr CInt -> IO CInt
forall a. Storable a => Ptr a -> IO a
peek Ptr CInt
startPtr
Int
end <- (CInt -> Int) -> IO CInt -> IO Int
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
liftM CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral (IO CInt -> IO Int) -> IO CInt -> IO Int
forall a b. (a -> b) -> a -> b
$ Ptr CInt -> IO CInt
forall a. Storable a => Ptr a -> IO a
peek Ptr CInt
endPtr
(Int, Int) -> IO (Int, Int)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (Int
start,Int
end)
editableInsertText :: (EditableClass self, GlibString string) => self
-> string
-> Int
-> IO Int
editableInsertText :: forall self string.
(EditableClass self, GlibString string) =>
self -> string -> Int -> IO Int
editableInsertText self
self string
newText Int
position =
CInt -> (Ptr CInt -> IO Int) -> IO Int
forall a b. Storable a => a -> (Ptr a -> IO b) -> IO b
with (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
position) ((Ptr CInt -> IO Int) -> IO Int) -> (Ptr CInt -> IO Int) -> IO Int
forall a b. (a -> b) -> a -> b
$ \Ptr CInt
positionPtr ->
string -> (CStringLen -> IO Int) -> IO Int
forall a. string -> (CStringLen -> IO a) -> IO a
forall s a. GlibString s => s -> (CStringLen -> IO a) -> IO a
withUTFStringLen string
newText ((CStringLen -> IO Int) -> IO Int)
-> (CStringLen -> IO Int) -> IO Int
forall a b. (a -> b) -> a -> b
$ \(Ptr CChar
newTextPtr, Int
newTextLength) -> do
(\(Editable ForeignPtr Editable
arg1) Ptr CChar
arg2 CInt
arg3 Ptr CInt
arg4 -> ForeignPtr Editable -> (Ptr Editable -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Editable
arg1 ((Ptr Editable -> IO ()) -> IO ())
-> (Ptr Editable -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Editable
argPtr1 ->Ptr Editable -> Ptr CChar -> CInt -> Ptr CInt -> IO ()
gtk_editable_insert_text Ptr Editable
argPtr1 Ptr CChar
arg2 CInt
arg3 Ptr CInt
arg4)
{-# LINE 149 "./Graphics/UI/Gtk/Entry/Editable.chs" #-}
(toEditable self)
Ptr CChar
newTextPtr
(Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
newTextLength)
Ptr CInt
positionPtr
CInt
position <- Ptr CInt -> IO CInt
forall a. Storable a => Ptr a -> IO a
peek Ptr CInt
positionPtr
Int -> IO Int
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral CInt
position)
editableDeleteText :: EditableClass self => self
-> Int
-> Int
-> IO ()
editableDeleteText :: forall self. EditableClass self => self -> Int -> Int -> IO ()
editableDeleteText self
self Int
startPos Int
endPos =
(\(Editable ForeignPtr Editable
arg1) CInt
arg2 CInt
arg3 -> ForeignPtr Editable -> (Ptr Editable -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Editable
arg1 ((Ptr Editable -> IO ()) -> IO ())
-> (Ptr Editable -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Editable
argPtr1 ->Ptr Editable -> CInt -> CInt -> IO ()
gtk_editable_delete_text Ptr Editable
argPtr1 CInt
arg2 CInt
arg3)
{-# LINE 167 "./Graphics/UI/Gtk/Entry/Editable.chs" #-}
(toEditable self)
(Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
startPos)
(Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
endPos)
editableGetChars :: (EditableClass self, GlibString string) => self
-> Int
-> Int
-> IO string
editableGetChars :: forall self string.
(EditableClass self, GlibString string) =>
self -> Int -> Int -> IO string
editableGetChars self
self Int
startPos Int
endPos =
(\(Editable ForeignPtr Editable
arg1) CInt
arg2 CInt
arg3 -> ForeignPtr Editable
-> (Ptr Editable -> IO (Ptr CChar)) -> IO (Ptr CChar)
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Editable
arg1 ((Ptr Editable -> IO (Ptr CChar)) -> IO (Ptr CChar))
-> (Ptr Editable -> IO (Ptr CChar)) -> IO (Ptr CChar)
forall a b. (a -> b) -> a -> b
$ \Ptr Editable
argPtr1 ->Ptr Editable -> CInt -> CInt -> IO (Ptr CChar)
gtk_editable_get_chars Ptr Editable
argPtr1 CInt
arg2 CInt
arg3)
{-# LINE 182 "./Graphics/UI/Gtk/Entry/Editable.chs" #-}
(toEditable self)
(Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
startPos)
(Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
endPos)
IO (Ptr CChar) -> (Ptr CChar -> IO string) -> IO string
forall a b. IO a -> (a -> IO b) -> IO b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= Ptr CChar -> IO string
forall s. GlibString s => Ptr CChar -> IO s
readUTFString
editableCutClipboard :: EditableClass self => self -> IO ()
editableCutClipboard :: forall self. EditableClass self => self -> IO ()
editableCutClipboard self
self =
(\(Editable ForeignPtr Editable
arg1) -> ForeignPtr Editable -> (Ptr Editable -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Editable
arg1 ((Ptr Editable -> IO ()) -> IO ())
-> (Ptr Editable -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Editable
argPtr1 ->Ptr Editable -> IO ()
gtk_editable_cut_clipboard Ptr Editable
argPtr1)
{-# LINE 193 "./Graphics/UI/Gtk/Entry/Editable.chs" #-}
(toEditable self)
editableCopyClipboard :: EditableClass self => self -> IO ()
editableCopyClipboard :: forall self. EditableClass self => self -> IO ()
editableCopyClipboard self
self =
(\(Editable ForeignPtr Editable
arg1) -> ForeignPtr Editable -> (Ptr Editable -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Editable
arg1 ((Ptr Editable -> IO ()) -> IO ())
-> (Ptr Editable -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Editable
argPtr1 ->Ptr Editable -> IO ()
gtk_editable_copy_clipboard Ptr Editable
argPtr1)
{-# LINE 201 "./Graphics/UI/Gtk/Entry/Editable.chs" #-}
(toEditable self)
editablePasteClipboard :: EditableClass self => self -> IO ()
editablePasteClipboard :: forall self. EditableClass self => self -> IO ()
editablePasteClipboard self
self =
(\(Editable ForeignPtr Editable
arg1) -> ForeignPtr Editable -> (Ptr Editable -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Editable
arg1 ((Ptr Editable -> IO ()) -> IO ())
-> (Ptr Editable -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Editable
argPtr1 ->Ptr Editable -> IO ()
gtk_editable_paste_clipboard Ptr Editable
argPtr1)
{-# LINE 209 "./Graphics/UI/Gtk/Entry/Editable.chs" #-}
(toEditable self)
editableDeleteSelection :: EditableClass self => self -> IO ()
editableDeleteSelection :: forall self. EditableClass self => self -> IO ()
editableDeleteSelection self
self =
(\(Editable ForeignPtr Editable
arg1) -> ForeignPtr Editable -> (Ptr Editable -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Editable
arg1 ((Ptr Editable -> IO ()) -> IO ())
-> (Ptr Editable -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Editable
argPtr1 ->Ptr Editable -> IO ()
gtk_editable_delete_selection Ptr Editable
argPtr1)
{-# LINE 217 "./Graphics/UI/Gtk/Entry/Editable.chs" #-}
(toEditable self)
editableSetPosition :: EditableClass self => self
-> Int
-> IO ()
editableSetPosition :: forall self. EditableClass self => self -> Int -> IO ()
editableSetPosition self
self Int
position =
(\(Editable ForeignPtr Editable
arg1) CInt
arg2 -> ForeignPtr Editable -> (Ptr Editable -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Editable
arg1 ((Ptr Editable -> IO ()) -> IO ())
-> (Ptr Editable -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Editable
argPtr1 ->Ptr Editable -> CInt -> IO ()
gtk_editable_set_position Ptr Editable
argPtr1 CInt
arg2)
{-# LINE 230 "./Graphics/UI/Gtk/Entry/Editable.chs" #-}
(toEditable self)
(Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
position)
editableGetPosition :: EditableClass self => self
-> IO Int
editableGetPosition :: forall self. EditableClass self => self -> IO Int
editableGetPosition self
self =
(CInt -> Int) -> IO CInt -> IO Int
forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
liftM CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral (IO CInt -> IO Int) -> IO CInt -> IO Int
forall a b. (a -> b) -> a -> b
$
(\(Editable ForeignPtr Editable
arg1) -> ForeignPtr Editable -> (Ptr Editable -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Editable
arg1 ((Ptr Editable -> IO CInt) -> IO CInt)
-> (Ptr Editable -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr Editable
argPtr1 ->Ptr Editable -> IO CInt
gtk_editable_get_position Ptr Editable
argPtr1)
{-# LINE 244 "./Graphics/UI/Gtk/Entry/Editable.chs" #-}
(toEditable self)
editableSetEditable :: EditableClass self => self
-> Bool
-> IO ()
editableSetEditable :: forall self. EditableClass self => self -> Bool -> IO ()
editableSetEditable self
self Bool
isEditable =
(\(Editable ForeignPtr Editable
arg1) CInt
arg2 -> ForeignPtr Editable -> (Ptr Editable -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Editable
arg1 ((Ptr Editable -> IO ()) -> IO ())
-> (Ptr Editable -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr Editable
argPtr1 ->Ptr Editable -> CInt -> IO ()
gtk_editable_set_editable Ptr Editable
argPtr1 CInt
arg2)
{-# LINE 254 "./Graphics/UI/Gtk/Entry/Editable.chs" #-}
(toEditable self)
(Bool -> CInt
forall a. Num a => Bool -> a
fromBool Bool
isEditable)
editableGetEditable :: EditableClass self => self -> IO Bool
editableGetEditable :: forall self. EditableClass self => self -> IO Bool
editableGetEditable self
self =
(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
$
(\(Editable ForeignPtr Editable
arg1) -> ForeignPtr Editable -> (Ptr Editable -> IO CInt) -> IO CInt
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr Editable
arg1 ((Ptr Editable -> IO CInt) -> IO CInt)
-> (Ptr Editable -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \Ptr Editable
argPtr1 ->Ptr Editable -> IO CInt
gtk_editable_get_editable Ptr Editable
argPtr1)
{-# LINE 263 "./Graphics/UI/Gtk/Entry/Editable.chs" #-}
(toEditable self)
editablePosition :: EditableClass self => Attr self Int
editablePosition :: forall self. EditableClass self => Attr self Int
editablePosition = (self -> IO Int)
-> (self -> Int -> IO ()) -> ReadWriteAttr self Int Int
forall o a b.
(o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
newAttr
self -> IO Int
forall self. EditableClass self => self -> IO Int
editableGetPosition
self -> Int -> IO ()
forall self. EditableClass self => self -> Int -> IO ()
editableSetPosition
editableEditable :: EditableClass self => Attr self Bool
editableEditable :: forall self. EditableClass self => Attr self Bool
editableEditable = (self -> IO Bool)
-> (self -> Bool -> IO ()) -> ReadWriteAttr self Bool Bool
forall o a b.
(o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
newAttr
self -> IO Bool
forall self. EditableClass self => self -> IO Bool
editableGetEditable
self -> Bool -> IO ()
forall self. EditableClass self => self -> Bool -> IO ()
editableSetEditable
editableChanged :: EditableClass ec => Signal ec (IO ())
editableChanged :: forall ec. EditableClass ec => Signal ec (IO ())
editableChanged = (Bool -> ec -> IO () -> IO (ConnectId ec)) -> Signal ec (IO ())
forall object handler.
(Bool -> object -> handler -> IO (ConnectId object))
-> Signal object handler
Signal (SignalName -> Bool -> ec -> IO () -> IO (ConnectId ec)
forall obj.
GObjectClass obj =>
SignalName -> Bool -> obj -> IO () -> IO (ConnectId obj)
connect_NONE__NONE SignalName
"changed")
deleteText :: EditableClass self
=> Signal self (Int -> Int -> IO ())
deleteText :: forall self.
EditableClass self =>
Signal self (Int -> Int -> IO ())
deleteText = (Bool -> self -> (Int -> Int -> IO ()) -> IO (ConnectId self))
-> Signal self (Int -> Int -> IO ())
forall object handler.
(Bool -> object -> handler -> IO (ConnectId object))
-> Signal object handler
Signal (SignalName
-> Bool -> self -> (Int -> Int -> IO ()) -> IO (ConnectId self)
forall obj.
GObjectClass obj =>
SignalName
-> Bool -> obj -> (Int -> Int -> IO ()) -> IO (ConnectId obj)
connect_INT_INT__NONE SignalName
"delete-text")
stopDeleteText :: EditableClass self => ConnectId self -> IO ()
stopDeleteText :: forall self. EditableClass self => ConnectId self -> IO ()
stopDeleteText (ConnectId CULong
_ self
obj) =
self -> SignalName -> IO ()
forall obj. GObjectClass obj => obj -> SignalName -> IO ()
signalStopEmission self
obj SignalName
"delete-text"
insertText :: (EditableClass self, GlibString string) => Signal self (string -> Int -> IO Int)
insertText :: forall self string.
(EditableClass self, GlibString string) =>
Signal self (string -> Int -> IO Int)
insertText = (Bool -> self -> (string -> Int -> IO Int) -> IO (ConnectId self))
-> Signal self (string -> Int -> IO Int)
forall object handler.
(Bool -> object -> handler -> IO (ConnectId object))
-> Signal object handler
Signal ((Bool -> self -> (string -> Int -> IO Int) -> IO (ConnectId self))
-> Signal self (string -> Int -> IO Int))
-> (Bool
-> self -> (string -> Int -> IO Int) -> IO (ConnectId self))
-> Signal self (string -> Int -> IO Int)
forall a b. (a -> b) -> a -> b
$ \Bool
after self
obj string -> Int -> IO Int
handler ->
SignalName
-> Bool
-> self
-> (Ptr CChar -> Int -> Ptr CInt -> IO ())
-> IO (ConnectId self)
forall obj a c.
GObjectClass obj =>
SignalName
-> Bool
-> obj
-> (Ptr a -> Int -> Ptr c -> IO ())
-> IO (ConnectId obj)
connect_PTR_INT_PTR__NONE SignalName
"insert-text" Bool
after self
obj
(\Ptr CChar
strPtr Int
strLen Ptr CInt
posPtr -> do
string
str <- if Int
strLenInt -> Int -> Bool
forall a. Ord a => a -> a -> Bool
<Int
0 then Ptr CChar -> IO string
forall s. GlibString s => Ptr CChar -> IO s
peekUTFString Ptr CChar
strPtr
else CStringLen -> IO string
forall s. GlibString s => CStringLen -> IO s
peekUTFStringLen (Ptr CChar
strPtr, Int
strLen)
CInt
pos <- Ptr CInt -> IO CInt
forall a. Storable a => Ptr a -> IO a
peek (Ptr CInt
posPtr :: Ptr (CInt))
Int
pos' <- string -> Int -> IO Int
handler string
str (CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral CInt
pos)
Ptr CInt -> CInt -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr CInt
posPtr :: Ptr (CInt)) (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
pos')
)
stopInsertText :: EditableClass self => ConnectId self -> IO ()
stopInsertText :: forall self. EditableClass self => ConnectId self -> IO ()
stopInsertText (ConnectId CULong
_ self
obj) =
self -> SignalName -> IO ()
forall obj. GObjectClass obj => obj -> SignalName -> IO ()
signalStopEmission self
obj SignalName
"insert-text"
onEditableChanged, afterEditableChanged :: EditableClass ec => ec -> IO () ->
IO (ConnectId ec)
onEditableChanged :: forall ec. EditableClass ec => ec -> IO () -> IO (ConnectId ec)
onEditableChanged = SignalName -> Bool -> ec -> IO () -> IO (ConnectId ec)
forall obj.
GObjectClass obj =>
SignalName -> Bool -> obj -> IO () -> IO (ConnectId obj)
connect_NONE__NONE SignalName
"changed" Bool
False
afterEditableChanged :: forall ec. EditableClass ec => ec -> IO () -> IO (ConnectId ec)
afterEditableChanged = SignalName -> Bool -> ec -> IO () -> IO (ConnectId ec)
forall obj.
GObjectClass obj =>
SignalName -> Bool -> obj -> IO () -> IO (ConnectId obj)
connect_NONE__NONE SignalName
"changed" Bool
True
onDeleteText, afterDeleteText :: EditableClass self => self
-> (Int -> Int -> IO ())
-> IO (ConnectId self)
onDeleteText :: forall self.
EditableClass self =>
self -> (Int -> Int -> IO ()) -> IO (ConnectId self)
onDeleteText = SignalName
-> Bool -> self -> (Int -> Int -> IO ()) -> IO (ConnectId self)
forall obj.
GObjectClass obj =>
SignalName
-> Bool -> obj -> (Int -> Int -> IO ()) -> IO (ConnectId obj)
connect_INT_INT__NONE SignalName
"delete_text" Bool
False
afterDeleteText :: forall self.
EditableClass self =>
self -> (Int -> Int -> IO ()) -> IO (ConnectId self)
afterDeleteText = SignalName
-> Bool -> self -> (Int -> Int -> IO ()) -> IO (ConnectId self)
forall obj.
GObjectClass obj =>
SignalName
-> Bool -> obj -> (Int -> Int -> IO ()) -> IO (ConnectId obj)
connect_INT_INT__NONE SignalName
"delete_text" Bool
True
onInsertText, afterInsertText :: (EditableClass self, GlibString string) => self
-> (string -> Int -> IO Int)
-> IO (ConnectId self)
onInsertText :: forall self string.
(EditableClass self, GlibString string) =>
self -> (string -> Int -> IO Int) -> IO (ConnectId self)
onInsertText self
obj string -> Int -> IO Int
handler =
SignalName
-> Bool
-> self
-> (Ptr CChar -> Int -> Ptr CInt -> IO ())
-> IO (ConnectId self)
forall obj a c.
GObjectClass obj =>
SignalName
-> Bool
-> obj
-> (Ptr a -> Int -> Ptr c -> IO ())
-> IO (ConnectId obj)
connect_PTR_INT_PTR__NONE SignalName
"insert_text" Bool
False self
obj
(\Ptr CChar
strPtr Int
strLen Ptr CInt
posPtr -> do
string
str <- if Int
strLenInt -> Int -> Bool
forall a. Ord a => a -> a -> Bool
<Int
0 then Ptr CChar -> IO string
forall s. GlibString s => Ptr CChar -> IO s
peekUTFString Ptr CChar
strPtr
else CStringLen -> IO string
forall s. GlibString s => CStringLen -> IO s
peekUTFStringLen (Ptr CChar
strPtr, Int
strLen)
CInt
pos <- Ptr CInt -> IO CInt
forall a. Storable a => Ptr a -> IO a
peek (Ptr CInt
posPtr :: Ptr (CInt))
Int
pos' <- string -> Int -> IO Int
handler string
str (CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral CInt
pos)
Ptr CInt -> CInt -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr CInt
posPtr :: Ptr (CInt)) (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
pos')
)
afterInsertText :: forall self string.
(EditableClass self, GlibString string) =>
self -> (string -> Int -> IO Int) -> IO (ConnectId self)
afterInsertText self
obj string -> Int -> IO Int
handler =
SignalName
-> Bool
-> self
-> (Ptr CChar -> Int -> Ptr CInt -> IO ())
-> IO (ConnectId self)
forall obj a c.
GObjectClass obj =>
SignalName
-> Bool
-> obj
-> (Ptr a -> Int -> Ptr c -> IO ())
-> IO (ConnectId obj)
connect_PTR_INT_PTR__NONE SignalName
"insert_text" Bool
True self
obj
(\Ptr CChar
strPtr Int
strLen Ptr CInt
posPtr -> do
string
str <- if Int
strLenInt -> Int -> Bool
forall a. Ord a => a -> a -> Bool
<Int
0 then Ptr CChar -> IO string
forall s. GlibString s => Ptr CChar -> IO s
peekUTFString Ptr CChar
strPtr
else CStringLen -> IO string
forall s. GlibString s => CStringLen -> IO s
peekUTFStringLen (Ptr CChar
strPtr, Int
strLen)
CInt
pos <- Ptr CInt -> IO CInt
forall a. Storable a => Ptr a -> IO a
peek (Ptr CInt
posPtr :: Ptr (CInt))
Int
pos' <- string -> Int -> IO Int
handler string
str (CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral CInt
pos)
Ptr CInt -> CInt -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr CInt
posPtr :: Ptr (CInt)) (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
pos')
)
foreign import ccall safe "gtk_editable_select_region"
gtk_editable_select_region :: ((Ptr Editable) -> (CInt -> (CInt -> (IO ()))))
foreign import ccall unsafe "gtk_editable_get_selection_bounds"
gtk_editable_get_selection_bounds :: ((Ptr Editable) -> ((Ptr CInt) -> ((Ptr CInt) -> (IO CInt))))
foreign import ccall safe "gtk_editable_insert_text"
gtk_editable_insert_text :: ((Ptr Editable) -> ((Ptr CChar) -> (CInt -> ((Ptr CInt) -> (IO ())))))
foreign import ccall safe "gtk_editable_delete_text"
gtk_editable_delete_text :: ((Ptr Editable) -> (CInt -> (CInt -> (IO ()))))
foreign import ccall unsafe "gtk_editable_get_chars"
gtk_editable_get_chars :: ((Ptr Editable) -> (CInt -> (CInt -> (IO (Ptr CChar)))))
foreign import ccall safe "gtk_editable_cut_clipboard"
gtk_editable_cut_clipboard :: ((Ptr Editable) -> (IO ()))
foreign import ccall safe "gtk_editable_copy_clipboard"
gtk_editable_copy_clipboard :: ((Ptr Editable) -> (IO ()))
foreign import ccall safe "gtk_editable_paste_clipboard"
gtk_editable_paste_clipboard :: ((Ptr Editable) -> (IO ()))
foreign import ccall safe "gtk_editable_delete_selection"
gtk_editable_delete_selection :: ((Ptr Editable) -> (IO ()))
foreign import ccall safe "gtk_editable_set_position"
gtk_editable_set_position :: ((Ptr Editable) -> (CInt -> (IO ())))
foreign import ccall unsafe "gtk_editable_get_position"
gtk_editable_get_position :: ((Ptr Editable) -> (IO CInt))
foreign import ccall safe "gtk_editable_set_editable"
gtk_editable_set_editable :: ((Ptr Editable) -> (CInt -> (IO ())))
foreign import ccall safe "gtk_editable_get_editable"
gtk_editable_get_editable :: ((Ptr Editable) -> (IO CInt))