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® 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® 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® 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® 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® 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