chiark
/
gitweb
/
~mdw
/
clg
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added args argument to COMPUTE-SIGNAL-FUNCTION
[clg]
/
gtk
/
gtkcontainer.lisp
diff --git
a/gtk/gtkcontainer.lisp
b/gtk/gtkcontainer.lisp
index 3dee0b6c09e61a5f07f6feed91e1ea1120154570..89634c1d154b119250f2e2d921e4ce8a8e3ecb44 100644
(file)
--- a/
gtk/gtkcontainer.lisp
+++ b/
gtk/gtkcontainer.lisp
@@
-20,7
+20,7
@@
;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-;; $Id: gtkcontainer.lisp,v 1.2
1 2006/04/26 12:31:34
espen Exp $
+;; $Id: gtkcontainer.lisp,v 1.2
2 2007/01/07 20:23:22
espen Exp $
(in-package "GTK")
(in-package "GTK")
@@
-63,13
+63,14
@@
(defmethod shared-initialize ((container container) names &rest initargs
initargs :child :children))
initargs :child :children))
-(defmethod compute-signal-function ((container container) signal function object)
+(defmethod compute-signal-function ((container container) signal function object
args
)
(declare (ignore signal))
(if (eq object :children)
(declare (ignore signal))
(if (eq object :children)
- #'(lambda (&rest args)
- (container-foreach container
- #'(lambda (child)
- (apply function child (rest args)))))
+ #'(lambda (&rest emission-args)
+ (let ((all-args (nconc (rest emission-args) args)))
+ (container-foreach container
+ #'(lambda (child)
+ (apply function child all-args)))))
(call-next-method)))
(call-next-method)))
@@
-87,6
+88,10
@@
(defmethod container-add ((container container) (widget widget) &rest args)
(gethash (class-of container) *container-to-child-class-mappings*)
:parent container :child widget args))))
(gethash (class-of container) *container-to-child-class-mappings*)
:parent container :child widget args))))
+(defmethod container-add ((container container) (widgets list) &rest args)
+ (dolist (widget widgets)
+ (apply #'container-add container widget args)))
+
(defbinding %container-remove () nil
(container container)
(widget widget))
(defbinding %container-remove () nil
(container container)
(widget widget))