Added WITH-GTK-ERROR-MESSAGE-HANDLER
authorDmitry Kalyanov <Kalyanov.Dmitry@gmail.com>
Thu, 12 Feb 2009 22:00:33 +0000 (01:00 +0300)
committerDmitry Kalyanov <Kalyanov.Dmitry@gmail.com>
Thu, 12 Feb 2009 22:00:33 +0000 (01:00 +0300)
gtk/gtk.dialog.lisp

index 6f92abe..f4ea8db 100644 (file)
 
 (export 'dialog-alternative-button-order)
 
+(defmacro with-gtk-message-error-handler (&body body)
+  (let ((dialog (gensym))
+        (e (gensym)))
+    `(handler-case
+         (progn ,@body)
+       (error (,e) (using* ((,dialog (make-instance 'message-dialog 
+                                                    :message-type :error :buttons :ok
+                                                    :text (format nil "Error~%~A~%during execution of~%~A" ,e '(progn ,@body)))))
+                           (dialog-run ,dialog)
+                           (object-destroy ,dialog)
+                           nil)))))
+
+(export 'with-gtk-message-error-handler)
\ No newline at end of file