[mcclim-devel] accept-values-pane

Paul Werkowski pw at snoopy.mv.com
Wed Apr 19 18:47:55 UTC 2006


For those interested, I have a mostly portable version of accept-values-pane
running on lispworks CLIM and today I have it semi-working on McCLIM.
Here is the patch file I load to supply missing parts of McCLIM. It would be
cool
if someone could add this functionality to the code base.

I plan to post my code in a few days once I figure out how to handle radio-box.
The spec and McCLIM have radio-box :choices and :current-selection as
toggle-button
objects. CLIM makes things a bit easier so I want to make a wrapper around the
button-object constraint.

What's really missing in McCLIM are list-pane and option-pane gadgets.

Another thing. CLIM puts with-look-and-feel-realization in the expansion of
with-output-to-gadget. It would be good if McCLIM did as well. I don't think
the spec forbids that.

Paul

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;;; -*- Package: clim-internals -*-

(in-package :clim-internals)

;;; Add missing view classes and +xxx-view+ objects.
(macrolet ((frob (name)
   (let ((sym (intern (string name) :clim-internals))
         (par (intern (concatenate 'string "+" (string name) "+")
        :clim-internals)))
     `(progn
        (defclass ,sym (clim:gadget-view)())
        (import '(,sym ,par) :clim)
        (export '(,sym ,par) :clim)
        (defparameter ,par (make-instance ',sym))))))
  (frob toggle-button-view)
  (frob push-button-view)
  (frob radio-box-view)
  (frob check-box-view)
  (frob slider-view)
  ;(frob text-field-view)
  (frob text-editor-view)
  (frob list-pane-view)
  (frob option-pane-view)
  )

(import '(name-key value-key test documentation-key) :clim)
(export '(name-key value-key test documentation-key) :clim)

(defun accept-present-default
       (type stream view default default-supplied-p present-p query-identifier)
  (funcall-presentation-generic-function accept-present-default
    type stream view default default-supplied-p present-p query-identifier))

(defmethod pane-frame ((pane standard-encapsulating-stream))
  (pane-frame (encapsulating-stream-stream pane)))

(defmethod invoke-with-sheet-medium-bound
  (continuation   (medium null)  (sheet standard-encapsulating-stream))
  (invoke-with-sheet-medium-bound  continuation medium
(encapsulating-stream-stream sheet)))





More information about the mcclim-devel mailing list