Wed Sep 9 15:18:08 CEST 2009 Tobias Rautenkranz * Cleanup msg-handler diff -rN -u old-qt.gui/src/msg-handler.lisp new-qt.gui/src/msg-handler.lisp --- old-qt.gui/src/msg-handler.lisp 2014-10-30 07:43:24.000000000 +0100 +++ new-qt.gui/src/msg-handler.lisp 2014-10-30 07:43:24.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)))