1 (in-package :cl-smoke.qt.core)
3 ;; FIXME Determine the actual size of the QtMsgType enum.
4 (cffi:defctype qt-msg-type :int)
6 ;; QtMsgHandler is a typedef for a pointer.
7 (define-pointer-typedef "QtMsgHandler" foreign-pointer)
9 (define-pointer-typedef "void(*)(QtMsgType,const char*)" foreign-pointer)
10 (define-pointer-typedef "unsigned char*" foreign-pointer)
12 (defcallback qt-msg-handler :void
16 (#.(value qt:+qt-debug-msg+)
17 (write-string "qDebug: " *debug-io*)
18 (write-line message *debug-io*))
19 (#.(value qt:+qt-warning-msg+) (warn message))
20 (#.(value qt:+qt-critical-msg+) (cerror "Ignore" "~A" message))
21 (#.(value qt:+qt-fatal-msg+) (error message))))
23 (eval-startup (:load-toplevel)
24 (qt:q-install-msg-handler (callback qt-msg-handler)))