Test receiving C++ argument signals
Wed Apr 8 17:10:42 CEST 2009 Tobias Rautenkranz <tobias@rautenkranz.ch>
* Test receiving C++ argument signals
hunk ./src/click.lisp 16
+ (5am:is (eq widget (qt:sender)))
hunk ./src/click.lisp 35
- (5am:is (eql t checked))
+ (5am:is (eql nil checked))
hunk ./src/click.lisp 43
+
+
hunk ./src/signal-slot.lisp 123
+(5am:test int-signal
+ "Receive a int signal."
+ (qt:with-app
+ (let ((spin-box (make-instance 'qt:spin-box))
+ (current-value)
+ (current-string-value))
+ (qt:connect (qt:get-signal spin-box "valueChanged(int)")
+ #'(lambda (value)
+ (setf current-value value)))
+ (qt:connect (qt:get-signal spin-box "valueChanged(const QString&)")
+ #'(lambda (value)
+ (setf current-string-value value)))
+ (5am:for-all ((value (5am:gen-integer
+ :min (cxx:minimum spin-box)
+ :max (cxx:maximum spin-box))))
+ (cxx:set-value spin-box value)
+ (5am:is (= value current-value))
+ (5am:is (= value (read-from-string current-string-value)))))))
+
+(5am:test object-signal
+ "Receive a qt:object signal."
+ (qt:with-app
+ (let ((button (make-instance 'qt:push-button))
+ (click-count 0)
+ (signal-mapper (make-instance 'qt:signal-mapper)))
+ (qt:connect (qt:get-signal button "clicked()")
+ (qt:get-slot signal-mapper "map()"))
+ (cxx:set-mapping signal-mapper button button)
+ [_$_]
+ (qt:connect (qt:get-signal signal-mapper "mapped(QObject*)")
+ #'(lambda (object)
+ (5am:is (eq object button))
+ (incf click-count)))
+ (5am:is (= 0 click-count))
+ (qt.test:test.mouse-click button qt:+left-button+)
+ (5am:is (= 1 click-count)))))
+
+