From: Duncan C. <dun...@us...> - 2005-02-27 19:42:15
|
Update of /cvsroot/gtk2hs/gtk2hs/gtk/Graphics/UI/Gtk/Entry In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32363/gtk/Graphics/UI/Gtk/Entry Modified Files: EntryCompletion.chs.pp Log Message: GObject.chs.pp: change mkDestructor into mkFunPtrDestructor which is a tad more abstract (hiding the use of IORefs). General.chs: change use of mkDestructor to mkFunPtrDestructor and no longer export mkDestructor. EntryCompletion.chs.pp, TreeSelection.chs.pp, TreeView.chs.pp: change use of mkDestructor to mkFunPtrDestructor. Signal.chs-boot2: Following the same pattern for GClosureNotify as for GDestroyNotify above define a local copy of mkFunPtrDestructor for use in signal connection functions. HookGenerator.hs: change use of mkDestructor to mkFunPtrDestructor following the same pattern as before. This reduces code duplication a bit (saves about 350 lines of code). Index: EntryCompletion.chs.pp =================================================================== RCS file: /cvsroot/gtk2hs/gtk2hs/gtk/Graphics/UI/Gtk/Entry/EntryCompletion.chs.pp,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- EntryCompletion.chs.pp 25 Feb 2005 22:53:42 -0000 1.4 +++ EntryCompletion.chs.pp 27 Feb 2005 19:42:06 -0000 1.5 @@ -26,7 +26,7 @@ -- -- Completion functionality for the 'Entry' widget. -- --- * Added in GTK+ 2.4 +-- * Available since Gtk version 2.4 -- module Graphics.UI.Gtk.Entry.EntryCompletion ( -- * Description @@ -95,7 +95,7 @@ import System.Glib.FFI import System.Glib.UTFString -import System.Glib.GObject (makeNewGObject) +import System.Glib.GObject (makeNewGObject, mkFunPtrDestructor) import Graphics.UI.Gtk.Abstract.Object (makeNewObject) {#import Graphics.UI.Gtk.Types#} {#import Graphics.UI.Gtk.Signals#} @@ -172,9 +172,6 @@ ------------------------------------------------- -- Callback stuff for entryCompletionSetMatchFunc -- -{#pointer GDestroyNotify#} - -foreign import ccall "wrapper" mkDestructor :: IO () -> IO GDestroyNotify type GtkEntryCompletionMatchFunc = Ptr EntryCompletion -> --GtkEntryCompletion *completion @@ -195,12 +192,7 @@ (\_ keyPtr iterPtr _ -> do key <- peekUTFString keyPtr iter <- createTreeIter iterPtr user key iter) - dRef <- newIORef nullFunPtr - dPtr <- mkDestructor $ do - freeHaskellFunPtr hPtr - dPtr <- readIORef dRef - freeHaskellFunPtr dPtr - writeIORef dRef dPtr + dPtr <- mkFunPtrDestructor hPtr {# call gtk_entry_completion_set_match_func #} ec (castFunPtr hPtr) nullPtr dPtr #endif |