From: Andy S. <And...@co...> - 2010-10-25 03:11:45
|
diffing dir... Sun Oct 24 11:57:48 EDT 2010 Maxime Henrion <mhe...@gm...> * Provide new style signal handlers for Editable Ignore-this: e364d8cc93b56536d409cbd2d5e88952 { hunk ./gtk/Graphics/UI/Gtk/Entry/Editable.chs 72 + editableChanged, + deleteText, + insertText, + stopDeleteText, + stopInsertText, + +-- * Deprecated hunk ./gtk/Graphics/UI/Gtk/Entry/Editable.chs 83 - stopDeleteText, hunk ./gtk/Graphics/UI/Gtk/Entry/Editable.chs 84 - afterInsertText, - stopInsertText + afterInsertText hunk ./gtk/Graphics/UI/Gtk/Entry/Editable.chs 285 --- | The 'onEditableChanged' signal is emitted at the end of a single +-- | The 'editableChanged' signal is emitted at the end of a single hunk ./gtk/Graphics/UI/Gtk/Entry/Editable.chs 291 --- content, and may cause multiple 'onEditableInserText' signals to be +-- content, and may cause multiple 'inserText' signals to be hunk ./gtk/Graphics/UI/Gtk/Entry/Editable.chs 294 -onEditableChanged, afterEditableChanged :: EditableClass ec => ec -> IO () -> - IO (ConnectId ec) -onEditableChanged = connect_NONE__NONE "changed" False -afterEditableChanged = connect_NONE__NONE "changed" True +editableChanged :: EditableClass ec => Signal ec (IO ()) +editableChanged = Signal (connect_NONE__NONE "changed") hunk ./gtk/Graphics/UI/Gtk/Entry/Editable.chs 299 --- * See 'onInsertText' for information on how to use this signal. +-- * See 'insertText' for information on how to use this signal. hunk ./gtk/Graphics/UI/Gtk/Entry/Editable.chs 301 -onDeleteText, afterDeleteText :: EditableClass self => self - -> (Int -> Int -> IO ()) -- ^ @(\startPos endPos -> ...)@ - -> IO (ConnectId self) -onDeleteText = connect_INT_INT__NONE "delete_text" False -afterDeleteText = connect_INT_INT__NONE "delete_text" True +deleteText :: EditableClass self => + Signal self ( + Int -> Int -> IO () -- ^ @(\startPos endPos -> ...)@ + ) +deleteText = Signal (connect_INT_INT__NONE "delete_text") hunk ./gtk/Graphics/UI/Gtk/Entry/Editable.chs 330 --- > id <- onInsertText entry $ \str pos -> do +-- > id <- entry `on` insertText $ \str pos -> do hunk ./gtk/Graphics/UI/Gtk/Entry/Editable.chs 339 --- Note that the 'afterInsertText' function is not very useful, except to +-- Note that binding 'insertText' using 'after' is not very useful, except to hunk ./gtk/Graphics/UI/Gtk/Entry/Editable.chs 342 +insertText :: EditableClass self => Signal self (String -> Int -> IO Int) +insertText = Signal $ \after obj handler -> + connect_PTR_INT_PTR__NONE "insert_text" after obj + (\strPtr strLen posPtr -> do + str <- if strLen<0 then peekUTFString strPtr + else peekUTFStringLen (strPtr, strLen) + pos <- peek (posPtr :: Ptr {#type gint#}) + pos' <- handler str (fromIntegral pos) + poke (posPtr :: Ptr {#type gint#}) (fromIntegral pos') + ) + [_$_] +-- | Stop the current signal that inserts text. +stopInsertText :: EditableClass self => ConnectId self -> IO () +stopInsertText (ConnectId _ obj) = + signalStopEmission obj "insert_text" + +-------------------- +-- Deprecated Signals + +onEditableChanged, afterEditableChanged :: EditableClass ec => ec -> IO () -> + IO (ConnectId ec) +onEditableChanged = connect_NONE__NONE "changed" False +afterEditableChanged = connect_NONE__NONE "changed" True + +onDeleteText, afterDeleteText :: EditableClass self => self + -> (Int -> Int -> IO ()) -- ^ @(\startPos endPos -> ...)@ + -> IO (ConnectId self) +onDeleteText = connect_INT_INT__NONE "delete_text" False +afterDeleteText = connect_INT_INT__NONE "delete_text" True + hunk ./gtk/Graphics/UI/Gtk/Entry/Editable.chs 393 - --- | Stop the current signal that inserts text. -stopInsertText :: EditableClass self => ConnectId self -> IO () -stopInsertText (ConnectId _ obj) = - signalStopEmission obj "insert_text" } |