[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: text-edit-dialog-items

(First an aside)
Is there something wrong with the mailing system?
I've received over 10 messages on this subject with times 
ranging from  13:05 to 14:00

(end aside)

Dan Lamet <dlamet@claven.idbsu.edu> writes:
> This may be a FAQ but I would be grateful for any suggestions about the
> following problem. I would like to have multi-line edit text dialog items
> with word-wrapping. Currently, the editable-text-dialog-items just scroll
> horizontally without wrapping.
I have tried to use the Text-Edit-Dialog-Item.LISP file that came with
> One problem is the:
>     (export '(text-edit-dialog-item) :ccl) which conflicts with a
> previous ocurrance of that name.

Text-edit-dialog-item is exported by text-edit-dialog.lisp.
If you don't load text-edit-dialog.lisp before you try to
create a text-edit-dialog-item, you'll need to unintern
the text-edit-dialog-item in the current package, since a
text-edit-dialog-item symbol has been created in the current package.

You can use the restarts menu to unintern the conflicting symbol,
or evaluate (unintern 'text-edit-dialog-item) in the current package.

> Another problem is the use of a window record. Since there is only one
> reference:
>             (if (rref wptr window.hilighted)
>          (_TEAcitvate :ptr hTE))
> I changed this to:
>     (if (window-activate-p w) (_TEActivate :ptr hTE))

You don't need to change this. The code works correctly. When a subview is
active, the user can type in the text-edit field.
> But the third problem may be the most serious. The text-edit-dialog-item
> class is declared as:
> (defclass text-edit-dialog-item
> But "basic-editable-text-dialog-item" is unknown to MCL 2.0. And when I
> change this to "editable-text-dialog-item", then it behaves as always -
> no wrapping.

Basic-editable-text-dialog-item is not exported; it is internal to the ccl
package. If the text-edit-dialog-item is loaded, this should not be a problem
since the file is evaluated in the ccl package (in-package :ccl).
The following works correctly:

(in-package cl-user)
(load (choose-file-dialog :button-string "Load"))
(require 'text-edit-dialog-item)
(defparameter test-window (make-instance 'window
                            (list (make-instance 'ccl:text-edit-dialog-item
                              :view-size #@(200 100)))))