Support ownership transfer to non smoke wrapped QObjects & cleanup C++ to Lisp translation.
Annotate for file src/msg-handler.lisp
2010-01-10 tobias 1 (in-package :cl-smoke.qt-impl)
08:52:49 ' 2
2009-09-09 tobias 3 (cffi:defcenum qt-msg-type
13:18:08 ' 4 (:debug-message)
' 5 (:warning-message)
' 6 (:critical-message)
' 7 (:fatal-message))
2010-01-10 tobias 8
2009-08-02 tobias 9 ;; QtMsgHandler is a typedef for a pointer.
11:15:21 ' 10 (define-pointer-typedef "QtMsgHandler" foreign-pointer)
' 11
2010-01-10 tobias 12 (defcallback qt-msg-handler :void
08:52:49 ' 13 ((type qt-msg-type)
' 14 (message :string))
' 15 (ecase type
2009-09-09 tobias 16 (:debug-message
13:18:08 ' 17 (write-string "qDebug: " *debug-io*)
' 18 (write-line message *debug-io*))
' 19 (:warning-message (warn message))
' 20 (:critical-message (cerror "Ignore" "~A" message))
' 21 (:fatal-message (error message))))
' 22
' 23 (defun register-msg-handler ()
' 24 (with-foreign-object (handler :pointer)
' 25 (setf (mem-ref handler :pointer) (callback qt-msg-handler))
' 26 (qt:q-install-msg-handler handler)))
2010-01-10 tobias 27
2009-12-13 tobias 28 (eval-when (:load-toplevel)
2009-09-09 tobias 29 (register-msg-handler))