Cleanup msg-handler
Wed Sep 9 15:18:08 CEST 2009 Tobias Rautenkranz <tobias@rautenkranz.ch>
* Cleanup msg-handler
diff -rN -u old-qt.core/src/msg-handler.lisp new-qt.core/src/msg-handler.lisp
--- old-qt.core/src/msg-handler.lisp 2014-10-30 06:58:23.000000000 +0100
+++ new-qt.core/src/msg-handler.lisp 2014-10-30 06:58:23.000000000 +0100
@@ -1,14 +1,11 @@
(in-package :cl-smoke.qt-impl)
-(cffi:defcenum qt-msg-type
- (:debug-message)
- (:warning-message)
- (:critical-message)
- (:fatal-message))
+;; FIXME Determine the actual size of the QtMsgType enum.
+(cffi:defctype qt-msg-type :int)
;; QtMsgHandler is a typedef for a pointer.
(define-pointer-typedef "QtMsgHandler" foreign-pointer)
-;; Smokegenerator
+
(define-pointer-typedef "void(*)(QtMsgType,const char*)" foreign-pointer)
(define-pointer-typedef "unsigned char*" foreign-pointer)
@@ -16,17 +13,12 @@
((type qt-msg-type)
(message :string))
(ecase type
- (:debug-message
- (write-string "qDebug: " *debug-io*)
- (write-line message *debug-io*))
- (:warning-message (warn message))
- (:critical-message (cerror "Ignore" "~A" message))
- (:fatal-message (error message))))
-
-(defun register-msg-handler ()
- (with-foreign-object (handler :pointer)
- (setf (mem-ref handler :pointer) (callback qt-msg-handler))
- (qt:q-install-msg-handler handler)))
+ (#.(value qt:+qt-debug-msg+)
+ (write-string "qDebug: " *debug-io*)
+ (write-line message *debug-io*))
+ (#.(value qt:+qt-warning-msg+) (warn message))
+ (#.(value qt:+qt-critical-msg+) (cerror "Ignore" "~A" message))
+ (#.(value qt:+qt-fatal-msg+) (error message))))
(eval-when (:load-toplevel)
- (register-msg-handler))
+ (qt:q-install-msg-handler (callback qt-msg-handler)))