- (error "Invalid response: ~A" id))))))
-
-(defun %dialog-find-response-id (dialog response-id-num)
- (if (< response-id-num 0)
- (car
- (rassoc
- (list response-id-num)
- (rest (type-expand-1 'response-type)) :test #'equal))
- (aref (object-data dialog 'response-id-key) response-id-num )))
-
-
-(defmethod signal-connect ((dialog dialog) signal function &key object after)
- (let ((response-id-num (%dialog-find-response-id-num dialog signal)))
- (cond
- (response-id-num
- (call-next-method
- dialog 'response
- #'(lambda (dialog id)
- (when (= id response-id-num)
- (cond
- ((eq object t) (funcall function dialog))
- (object (funcall function object))
- (t (funcall function)))))
- :object t :after after))
- ((call-next-method)))))