X-Git-Url: https://git.distorted.org.uk/~mdw/clg/blobdiff_plain/8755b1a5d37f2f4b853c01f0d8b121ab9ee4093a..3b1ba4821b848ca134d8ff2a97c90401d584a5ae:/gtk/gtkcontainer.lisp diff --git a/gtk/gtkcontainer.lisp b/gtk/gtkcontainer.lisp index 8a24bd0..29a4316 100644 --- a/gtk/gtkcontainer.lisp +++ b/gtk/gtkcontainer.lisp @@ -15,16 +15,19 @@ ;; License along with this library; if not, write to the Free Software ;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -;; $Id: gtkcontainer.lisp,v 1.11 2004-11-07 01:23:38 espen Exp $ +;; $Id: gtkcontainer.lisp,v 1.13 2004-12-17 00:15:16 espen Exp $ (in-package "GTK") - + + (defmethod shared-initialize ((container container) names &rest initargs &key child children child-args) - (declare (ignore child)) + (declare (ignore child children)) (call-next-method) - (dolist (child (append children (get-all initargs :child))) - (apply #'container-add container (append (mklist child) child-args)))) + (initial-add container + #'(lambda (container args) + (apply #'container-add container (append (mklist args) child-args))) + initargs :child :children)) (defbinding %container-add () nil @@ -75,10 +78,8 @@ (callback-id unsigned-int)) (defun container-foreach (container function) - (let ((callback-id (register-callback-function function))) - (unwind-protect - (%container-foreach container callback-id) - (destroy-user-data callback-id)))) + (with-callback-function (id function) + (%container-foreach container id))) (defun map-container (seqtype func container) (case seqtype