Axel Simon <axel.si...@in.tum.de> writes:

> Perfect!
Okay, i will push new code in my next patch.

Cheers,

  -- Andy

>
> On Apr 3, 2010, at 18:12, Andy Stewart wrote:
>
>> Axel Simon <axel.si...@in.tum.de> writes:
>>
>>> Andy,
>>>
>>> I don't think you should use connectGeneric since this -- I think --
>>> only works with one particular way of connecting to signals. Please
>>> copy the code from the onInsertText signal. In general, you should
>>> only use the automatically generated connect_XXX functions.
>> Below code is okay?
>>
>> ------------------------------> new version start 
>> <------------------------------
>> insertText :: EditableClass self => Signal self (String -> Int -> 
>> IO Int)
>> insertText = Signal (\after obj user -> 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' <- user str (fromIntegral pos)
>>                           poke (posPtr :: Ptr {#type gint#}) (fromIntegral 
>> pos')))
>> ------------------------------> new version end   
>> <------------------------------
>>
>>   -- Andy
>>
>>>
>>> Axel.
>>>
>>> On Apr 3, 2010, at 9:03, Andy Stewart wrote:
>>>
>>>> Hi Matt,
>>>>
>>>> Sorry for inconvenience!
>>>>
>>>> I have fix this bug in darcs version with below code:
>>>>
>>>> ------------------------------> new version start
>>>> <------------------------------
>>>> insertText :: EditableClass self => Signal self (String -> Int ->
>>>> IO Int)
>>>> insertText = Signal (connect_STRINGPTR_INT__INTPTR "insert-text")
>>>>
>>>> -- | Singal helper functions.
>>>> connect_STRINGPTR_INT__INTPTR ::
>>>>     EditableClass self => SignalName ->
>>>>     ConnectAfter -> self ->
>>>>     (String -> Int -> IO Int) ->
>>>>     IO (ConnectId self)
>>>> connect_STRINGPTR_INT__INTPTR signal after obj user =
>>>>     connectGeneric signal after obj
>>>>        (\strPtr strLen posPtr -> do
>>>>           str <- if strLen<0 then peekUTFString strPtr
>>>>            else peekUTFStringLen (strPtr, strLen)
>>>>           pos <- peek (posPtr :: Ptr {#type gint#})
>>>>           pos' <- user str (fromIntegral pos)
>>>>           poke (posPtr :: Ptr {#type gint#}) (fromIntegral pos'))
>>>> ------------------------------> new version end
>>>> <------------------------------
>>>>
>>>> Thanks for your report!
>>>>
>>>>   -- Andy
>>>>
>>>> Matt Arsenault <arse...@rpi.edu> writes:
>>>>
>>>>> Hi,
>>>>>
>>>>> I happened to come across a problem with the insertText signal for
>>>>> Editable in Gtk.
>>>>>
>>>>> I'm having problems getting the autotools to actually build, so I
>>>>> haven't exactly fixed it myself.
>>>>>
>>>>> In gtk/Graphics/UI/Gtk/Entry/Editable.chs.pp:
>>>>>
>>>>>>  insertText :: EditableClass self => Signal self (String -> Int -
>>>>>>> Int
>>>>> -> IO ())
>>>>>>  insertText = Signal (connect_STRING_INT_INT__NONE "insert-text")
>>>>>
>>>>>
>>>>> However, this is wrong. This doesn't match what the
>>>>> onInsertText/afterInsertText do, and what the callback is supposed to
>>>>> be.
>>>>>
>>>>> The C callback is supposed to be
>>>>>  (GtkEditable *editable,
>>>>>   gchar *new_text,
>>>>>   gint new_text_length,
>>>>>   gint *position,
>>>>>   gpointer user_data)
>>>>>
>>>>> Where the position argument is an in and out argument which is
>>>>> kind of
>>>>> weird. onInsertText/afterInsertText handle this, but insertText does
>>>>> not. insertText will just treat a pointer as an int, and doesn't
>>>>> respect
>>>>> the out argument aspect at all.
>>>>>
>>>>> onInsertText:
>>>>>
>>>>>> onInsertText, afterInsertText :: EditableClass self => self
>>>>>>  -> (String -> Int -> IO Int)
>>>>>> -> IO (ConnectId self)
>>>>>> onInsertText obj handler =
>>>>>>  connect_PTR_INT_PTR__NONE "insert_text" False 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')
>>>>>>  )
>>>>>
>>>>>
>>>>> This should be something more like this, except I haven't actually
>>>>> tested it since I gave up on trying to get current darcs gtk2hs built
>>>>> and didn't have time to fight with it.
>>>>>
>>>>>>  insertText :: EditableClass self => Signal self (String -> Int -
>>>>>>> IO
>>>>> Int)
>>>>>>  insertText = Signal $
>>>>>>  connect_PTR_INT_PTR__NONE "insert_text"
>>>>>>  (\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')
>>>>>>  )
>>>>>
>>>>>
>>>>> - Matt Arsenault
>>>>>
>>>>>
>>>>>
>>>>> -------------------------------------------------------------------
>>>>> --
>>>>> ---------
>>>>> Download Intel&#174; Parallel Studio Eval
>>>>> Try the new software tools for yourself. Speed compiling, find bugs
>>>>> proactively, and fine-tune applications for parallel performance.
>>>>> See why Intel Parallel Studio got high marks during beta.
>>>>> http://p.sf.net/sfu/intel-sw-dev
>>>>
>>>>
>>>> --------------------------------------------------------------------
>>>> --
>>>> --------
>>>> Download Intel&#174; Parallel Studio Eval
>>>> Try the new software tools for yourself. Speed compiling, find bugs
>>>> proactively, and fine-tune applications for parallel performance.
>>>> See why Intel Parallel Studio got high marks during beta.
>>>> http://p.sf.net/sfu/intel-sw-dev
>>>> _______________________________________________
>>>> Gtk2hs-devel mailing list
>>>> Gtk2hs-devel@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/gtk2hs-devel
>>>
>>>
>>> ---------------------------------------------------------------------
>>> ---------
>>> Download Intel&#174; Parallel Studio Eval
>>> Try the new software tools for yourself. Speed compiling, find bugs
>>> proactively, and fine-tune applications for parallel performance.
>>> See why Intel Parallel Studio got high marks during beta.
>>> http://p.sf.net/sfu/intel-sw-dev
>>
>>
>> ----------------------------------------------------------------------
>> --------
>> Download Intel&#174; Parallel Studio Eval
>> Try the new software tools for yourself. Speed compiling, find bugs
>> proactively, and fine-tune applications for parallel performance.
>> See why Intel Parallel Studio got high marks during beta.
>> http://p.sf.net/sfu/intel-sw-dev
>> _______________________________________________
>> Gtk2hs-devel mailing list
>> Gtk2hs-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/gtk2hs-devel

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Gtk2hs-devel mailing list
Gtk2hs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gtk2hs-devel

Reply via email to