diff --git a/demo/demo-driver.lisp b/demo/demo-driver.lisp index 3bffeb8082e84c3523732c7f9805953f663f6a01..3d6c007ca3119770a121b67b712ef81b6ce1865a 100644 --- a/demo/demo-driver.lisp +++ b/demo/demo-driver.lisp @@ -8,6 +8,8 @@ (defvar *demos* nil) +(define-presentation-type demo ()) ;<-- ?? It seems to help though. - jacek.zlydach, 2017-05-04. + (defclass demo () ((name :reader demo-name :initarg :name) (class :reader demo-class :initarg :class) @@ -47,7 +49,7 @@ ;; In particular, this can occur when listing ;; the Japanese graphics-editor when the correct ;; Japanese fonts are not accessible. - (let ((result (catch 'excl::printer-error + (let ((result (catch #-allegro 'error #+Allegro 'excl::printer-error (with-output-as-presentation (stream demo 'demo) (format stream "~A~%" name)) nil))) @@ -84,25 +86,28 @@ (when (or force (null frame)) (setq frame (apply (if activity-p #'make-instance - #'make-application-frame) + #'make-application-frame) (demo-class demo) :frame-manager (find-frame-manager :port port) (demo-initargs demo)))) (if entry (setf (cdr entry) frame) - (push (cons port frame) (demo-frames demo))) + (push (cons port frame) (demo-frames demo))) (if (slot-value frame 'clim-internals::top-level-process) (unless activity-p (when (eq (frame-state frame) :shrunk) (note-frame-deiconified (frame-manager frame) frame)) (raise-frame frame)) - (run-frame-top-level frame))))) - (if background - (mp:process-run-function - `(:name ,(demo-name demo) - :initial-bindings ((*package* . ',*package*))) - #'do-it) - (do-it)))) + (run-frame-top-level frame))))) + (if background + (let ((bt:*default-special-bindings* `((*package* . ',*package*)))) + (bt:make-thread #'do-it :name (demo-name demo))) + (do-it)))) + +;; (mp:process-run-function +;; `(:name ,(demo-name demo) +;; :initial-bindings ((*package* . ',*package*))) +;; #'do-it) (defvar *demo-frame* nil) diff --git a/demo/graphics-demos.lisp b/demo/graphics-demos.lisp index 54b0711925ae7eea6fa5d20c0bfef0ac9a6c2f7c..400a7ab60f334efac85deafc054f006a4317f924 100644 --- a/demo/graphics-demos.lisp +++ b/demo/graphics-demos.lisp @@ -180,9 +180,9 @@ rotation and scaling." :ink (if (oddp i) +background-ink+ +foreground-ink+)))) (demo-sleep stream 2)))))) -(defconstant *random-ink-list* - (list +red+ +green+ +blue+ - +cyan+ +magenta+ +yellow+ +black+)) +(defparameter *random-ink-list* + (list +red+ +green+ +blue+ + +cyan+ +magenta+ +yellow+ +black+)) (defun random-ink () (nth (random (length *random-ink-list*)) *random-ink-list*)) diff --git a/demo/listener.lisp b/demo/listener.lisp index 60ddb56f428615e9717f1edd45bdeddaa8c3ae11..161b070878014304b241f4f339abc3e4055df594 100644 --- a/demo/listener.lisp +++ b/demo/listener.lisp @@ -656,5 +656,5 @@ #+Genera (define-genera-application lisp-listener :pretty-name "CLIM Lisp Listener" - :select-key #\ˆ + :select-key #\ [FIXME insert character 210] :width +fill+ :height +fill+) diff --git a/gramps-clim2.asd b/gramps-clim2.asd index c3dde1102edf611ab9c0e0fb0ca17163f4f23ef7..2923d050ddcbc16a82c6acb9d6e48be90be52a72 100644 --- a/gramps-clim2.asd +++ b/gramps-clim2.asd @@ -198,7 +198,8 @@ ;;; based on `clim-demo' in demo/sysdcl.lisp (defsystem #:gramps-clim2/examples :description "Applications bundled in gramps-clim2 repository." - :depends-on (#:gramps-clim2/core) + :depends-on (#:gramps-clim2/core + #:bordeaux-threads) :components ((:module "demo" @@ -207,12 +208,13 @@ (:file "demo-driver" :depends-on ("packages")) (:file "listener" :depends-on ("demo-driver")) (:file "graphics-demos" :depends-on ("demo-driver")) - (:file "cad-demo" :depends-on ("demo-driver")) - (:file "navdata" :depends-on ("packages")) - (:file "navfun" :depends-on ("navdata")) - (:file "puzzle" :depends-on ("demo-driver")) - (:file "address-book" :depends-on ("demo-driver")) - (:file "thinkadot" :depends-on ("demo-driver")) - (:file "plot" :depends-on ("demo-driver")) - (:file "color-editor" :depends-on ("demo-driver")) - (:file "graphics-editor" :depends-on ("demo-driver")))))) + ;(:file "cad-demo" :depends-on ("demo-driver")) + ;(:file "navdata" :depends-on ("packages")) + ;(:file "navfun" :depends-on ("navdata")) + ;(:file "puzzle" :depends-on ("demo-driver")) + ;(:file "address-book" :depends-on ("demo-driver")) + ;(:file "thinkadot" :depends-on ("demo-driver")) + ;(:file "plot" :depends-on ("demo-driver")) + ;(:file "color-editor" :depends-on ("demo-driver")) + ;(:file "graphics-editor" :depends-on ("demo-driver")) + ))))