Ulp. I have not attacked widget-create and friends so maybe there is some
incompatibility.
andy
At 05:31 PM 10/17/99 +0200, you wrote:
When I evaluate the next line
(widget-create 'push-button "Push me!")
I get floowing *Backtrace*.
I wasn't able to come up with a fix, although I tried.
Andy will know, I'm sure :-)
Later,
Adrian
Signaling: (wrong-type-argument listp :descriptor)
nth(0 :descriptor)
(list (nth 0 (aref gui 1)) (apply (function vector) (list ... ... text)))
)
(backquote ((\, ...) [string :data ...]))
)
(make-glyph (backquote (... ...)))
)
(list (make-glyph (backquote ...)) (make-glyph (backquote ...))
(make-glyph
(backquote ...)))
)
(setq gui-glyphs (list (make-glyph ...) (make-glyph ...) (make-glyph ...)))
)
(let* ((gui-button-shadow-thickness 1) (gui ...)) (setq gui-glyphs (list
... ...
...)) (laxputf widget-push-button-cache tag gui-glyphs))
)
(if gui-glyphs nil (let* (... ...) (setq gui-glyphs ...) (laxputf
widget-push-button-cache tag gui-glyphs)))
)
(unless gui-glyphs (let* (... ...) (setq gui-glyphs ...) (laxputf
widget-push-button-cache tag gui-glyphs)))
)
(cond (tag-glyph (widget-glyph-insert widget text tag-glyph)) ((and
widget-push-button-gui ...) (unless gui-glyphs ...)
(widget-glyph-insert-glyph widget ... ... ...)) (t (insert text)))
)
(let* ((tag ...) (tag-glyph ...) (text ...) (gui-glyphs ...)) (cond
(tag-glyph
...) (... ... ...) (t ...)))
)
widget-push-button-value-create((push-button :value "Push me!" :args nil))
widget-apply((push-button :value "Push me!" :args nil) :value-create)
(if (and button-begin (not button-end)) (widget-apply widget
:value-create) (setq
value-pos (point-marker)))
)
(cond ((eq escape ?\%) (insert "%")) ((eq escape ?\[) (setq button-begin
...) (set-marker-insertion-type button-begin nil)) ((eq escape ?\]) (setq
button-end ...) (set-marker-insertion-type button-end nil)) ((eq escape
?\{) (setq sample-begin ...)) ((eq escape ?\}) (setq sample-end ...)) ((eq
escape ?n) (when ... ... ...)) ((eq escape ?t) (let* ... ...)) ((eq escape
?d) (let ... ...)) ((eq escape ?v) (if ... ... ...)) (t (widget-apply
widget :format-handler escape)))
)
(let ((escape ...)) (replace-match "" t t) (cond (... ...) (... ... ...)
(... ... ...) (... ...) (... ...) (... ...) (... ...) (... ...) (... ...)
(t ...)))
)
(while (re-search-forward "%\\(.\\)" nil t) (let (...) (replace-match
""
t t) (cond ... ... ... ... ... ... ... ... ... ...)))
)
(let ((from ...) button-begin button-end button-glyph sample-begin
sample-end
doc-begin doc-end value-pos) (insert (widget-get widget
:format)) (goto-char from) (while (re-search-forward "%\\(.\\)" nil t) (let
... ... ...)) (when (and button-begin button-end) (unless button-glyph ...
... ... ... ...) (widget-specify-button widget button-begin button-end)
(set-marker button-begin nil) (set-marker button-end nil)) (and
sample-begin sample-end (widget-specify-sample widget sample-begin
sample-end)) (and doc-begin doc-end (widget-specify-doc widget doc-begin
doc-end)) (when value-pos (goto-char value-pos) (widget-apply widget
:value-create)))
)
(progn (let (... button-begin button-end button-glyph sample-begin
sample-end
doc-begin doc-end value-pos) (insert ...) (goto-char from)
(while ... ...) (when ... ... ... ... ...) (and sample-begin sample-end
...) (and doc-begin doc-end ...) (when value-pos ... ...)) (let (... ...)
(set-marker-insertion-type from t) (set-marker-insertion-type to nil)
(widget-put widget :from from) (widget-put widget :to to)))
)
(prog1 (progn (let ... ... ... ... ... ... ... ...) (let ... ... ... ...
...))
(delete-region (point-min) (1+ ...)) (delete-region (1- ...)
(point-max)) (goto-char (point-max)))
)
(let ((inhibit-read-only t) before-change-functions
after-change-functions)
(insert "<>") (narrow-to-region (- ... 2) (point))
(goto-char (1+ ...)) (prog1 (progn ... ...) (delete-region ... ...)
(delete-region ... ...) (goto-char ...)))
)
(save-restriction (let (... before-change-functions
after-change-functions)
(insert "<>") (narrow-to-region ... ...) (goto-char
...) (prog1 ... ... ... ...)))
)
(widget-specify-insert (let (... button-begin button-end button-glyph
sample-begin
sample-end doc-begin doc-end value-pos) (insert ...)
(goto-char from) (while ... ...) (when ... ... ... ... ...) (and
sample-begin sample-end ...) (and doc-begin doc-end ...) (when value-pos
... ...)) (let (... ...) (set-marker-insertion-type from t)
(set-marker-insertion-type to nil) (widget-put widget :from from)
(widget-put widget :to to)))
)
widget-default-create((push-button :value "Push me!" :args nil))
widget-apply((push-button :value "Push me!" :args nil) :create)
(let ((widget ...)) (widget-apply widget :create) widget)
)
widget-create(push-button "Push me!")
eval((widget-create (quote push-button) "Push me!"))
eval-interactive((widget-create (quote push-button) "Push me!"))
eval-last-sexp(nil)
call-interactively(eval-last-sexp)
--------------------------------------------------------------
Dr Andy Piper
Senior Consultant Architect, BEA Systems Ltd