Re: RMCL editable-text-dialog-item

Glen Foy <[email protected]>
Newsgroups gmane.lisp.mcl.general
Message-ID <[email protected]>
On Jul 13, 2009, at 3:25 PM, Glen Foy wrote:

> Has anyone already written a patch for the editable-text-dialog
> problem in RMCL?

I was a little vague to say the least!  This code demonstrates the  
problem:

(defClass FOO (color-dialog)
   ((editable-text :initform nil :accessor foo-editable-text))
   (:default-initargs
         :window-title "Bug Demo"
         :theme-background t
         :view-size (make-point 200 50)
         :view-position #@(50 50)))

#|
;;; This works in 5.2, but not in RMCL:
(defMethod initialize-instance :after ((dialog foo) &rest rest &key)
   (declare (ignore rest))
   (setf (foo-editable-text dialog)
         (make-instance 'editable-text-dialog-item
	               :dialog-item-text "Foobar"
                        :view-size #@(100 25)
                        :view-position #@(15 15)
                        :view-container dialog)))
|#


;;; This works in 5.2 also, but in RMCL produces the error below:
(defMethod ccl::window-make-parts :after ((dialog foo) &rest rest &key)
    (declare (ignore rest))
    (setf (foo-editable-text dialog)
          (make-instance 'editable-text-dialog-item
                                                     :dialog-item-text  
"Foobar"
                           :view-size #@(100 25)
                           :view-position #@(15 15)
                           :view-container dialog)))

#|
;;; (make-instance 'foo)

 > Error: Unbound-slot FREC in #<EDITABLE-TEXT-DIALOG-ITEM #x3DE37B6>.
 > While executing: #<CCL::STANDARD-KERNEL-METHOD SLOT-UNBOUND (T T T)>
 > Type Command-. to abort.
See the Restarts… menu item for further choices.

|#


;;; Here is a work-around:
(defMethod ccl::window-make-parts :after ((dialog foo) &rest rest &key)
    (declare (ignore rest))
    (setf (foo-editable-text dialog)
          (make-instance 'editable-text-dialog-item :dialog-item-text  
"Foobar"
                           :view-size #@(100 25)
                           :view-position #@(15 15)))
    (set-view-container (foo-editable-text dialog) dialog))


It looks like in combining various versions of MCL the initialization  
sequence for this widget got hammered.  If someone comes up with a  
less kludgey solution, please post it.

-- Glen

_______________________________________________
info-mcl mailing list
[email protected]
http://clozure.com/mailman/listinfo/info-mcl
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.