need help

igor denisov saufesma at gmail.com
Sun Nov 22 18:31:49 UTC 2020


Hi there,

I am stack,

(in-package :common-lisp-user)
(defpackage :first-app
            (:use :clim :clim-lisp)
            (:export first-app))
(in-package :first-app)

(defun av-test-display-screen (frame pane)
  (declare (ignore frame))
  (with-text-size (pane :large)
    (fresh-line pane)
    (present '(com-reset-clock-1) 'command :stream pane)
    (fresh-line pane)))

(define-application-frame av-test ()
  ((own-window-p :initform nil))
  (:menu-bar t)
  (:panes
   (screen :application
           :display-time t
           :display-function #'av-test-display-screen
           :text-style (make-text-style :sans-serif :roman :normal))
   (interactor :interactor :min-width 600)
   (doc :pointer-documentation))
  (:layouts
   (defaults
         (vertically ()
           screen
           interactor
           doc))))

(defun reset-clock-1 (&key (stream *query-io*) (ow t))
  (multiple-value-bind (second minute hour day month)
      (decode-universal-time (get-universal-time))
    (declare (ignore second))
    (restart-case
        (progn
          (clim:accepting-values (stream :own-window ow)
                                 ;; ????????????????????????
                                 ;;    expands       (*query-io* :own-window t)
            (format stream "Enter the time~%")
            (setq month (clim:accept 'integer :stream stream
                                      :default month :prompt "Month"))
            (terpri stream)
            (setq day (clim:accept 'integer :stream stream
                                    :default day :prompt "Day"))
            (terpri stream)
            (setq hour (clim:accept 'integer :stream stream
                                     :default hour :prompt "Hour"))
            (terpri stream)
            (setq minute (clim:accept 'integer :stream stream
                                       :default minute :prompt "Minute")))
          (format nil "New values: Month: ~D, Day: ~D, Time: ~D:~2,'0D."
                  month day hour minute))
      (abort () (format nil "Time not set")))))

(define-av-test-command (com-reset-clock-1 :name t :menu nil) ()
  (with-slots (own-window-p) clim:*application-frame*
    (format t "Result: ~S~%" (multiple-value-list
                              (reset-clock-1 :ow own-window-p)
;;;;???????????????????????????????????????????????????
                              ;;; expands
;;;(clim:accepting-values (*query-io* :own-window nil)...) Am I right here?
;;; and I do not know how to see the :own-window value during call of
reset-clock-1
                              )))
  (finish-output *standard-output*))
(defun first-app ()
  (run-frame-top-level (make-application-frame 'av-test)))

describe is a strange tool, it describes even :foo, :bar, foo, bar and they
have nothing to do in the code



More information about the mcclim-devel mailing list