Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
2ff864e0
Commit
2ff864e0
authored
Feb 20, 2001
by
Dave Love
Browse files
Revert bogus revision 2001-02-20T10:59:03Z!fx@gnu.org.
parent
54ed3bd2
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
33 additions
and
60 deletions
+33
-60
lisp/wid-edit.el
lisp/wid-edit.el
+33
-60
No files found.
lisp/wid-edit.el
View file @
2ff864e0
...
...
@@ -757,17 +757,13 @@ button end points.
Optional ARGS are extra keyword arguments for TYPE."
(
let
((
widget
(
apply
'widget-convert
type
:delete
'widget-leave-text
args
))
(
from
(
copy-marker
from
))
(
to
(
copy-marker
to
))
(
personality
(
get-text-property
from
'personality
)))
(
to
(
copy-marker
to
)))
(
set-marker-insertion-type
from
t
)
(
set-marker-insertion-type
to
nil
)
(
widget-put
widget
:from
from
)
(
widget-put
widget
:to
to
)
(
when
button-from
(
widget-specify-button
widget
button-from
button-to
))
;; W3 provides advice for this for Emacspeak's benefit.
(
if
personality
(
put-text-property
from
to
'personality
personality
))
widget
))
(
defun
widget-convert-button
(
type
from
to
&rest
args
)
...
...
@@ -2377,51 +2373,12 @@ Return an alist of (TYPE MATCH)."
;; Pass notification to parent.
(
widget-apply
widget
:notify
child
event
))
;;; The `insert/delete-button' Widget.
(
define-widget
'insert/delete-button
'push-button
"An insert/delete item button for the `editable-list' widget."
:create
(
lambda
(
widget
)
(
let*
((
map
(
make-sparse-keymap
))
(
parent
(
widget-get
widget
:keymap
)))
(
if
parent
(
set-keymap-parent
map
parent
))
(
define-key
map
[?\C-k]
#'
widget-list-item-delete
)
(
define-key
map
[?\C-o]
#'
widget-list-item-insert
)
(
widget-put
widget
:keymap
map
))
(
widget-default-create
widget
))
:tag
"+/-"
:help-echo
"Insert or delete a new item into the list here"
:action
'widget-insert/delete-button-action
)
(
defun
widget-insert/delete-button-action
(
widget
&optional
event
)
"Ask the parent to insert or delete a new item."
(
if
(
y-or-n-p
"Delete this item? (otherwise insert a new one)"
)
(
widget-apply
(
widget-get
widget
:parent
)
:delete-at
(
widget-get
widget
:widget
))
(
widget-apply
(
widget-get
widget
:parent
)
:insert-before
(
widget-get
widget
:widget
))))
(
defun
widget-list-item-insert
()
"Delete the list item widget which is the parent of the widget at point."
(
interactive
)
(
let
((
widget
(
widget-at
(
point
))))
(
widget-apply
(
widget-get
widget
:parent
)
:insert-before
(
widget-get
widget
:widget
))))
(
defun
widget-list-item-delete
()
"Add a new list item widget after the parent of the widget at point."
(
interactive
)
(
let
((
widget
(
widget-at
(
point
))))
(
widget-apply
(
widget-get
widget
:parent
)
:delete-at
(
widget-get
widget
:widget
))))
;;; The `insert-button' Widget.
(
define-widget
'insert-button
'push-button
"An
append item
button for the `editable-list' widget."
:tag
"
+
"
:help-echo
"
Append
a new item to the list"
"An
insert
button for the `editable-list' widget."
:tag
"
INS
"
:help-echo
"
Insert
a new item
in
to the list
at this position.
"
:action
'widget-insert-button-action
)
(
defun
widget-insert-button-action
(
widget
&optional
event
)
...
...
@@ -2429,6 +2386,19 @@ Return an alist of (TYPE MATCH)."
(
widget-apply
(
widget-get
widget
:parent
)
:insert-before
(
widget-get
widget
:widget
)))
;;; The `delete-button' Widget.
(
define-widget
'delete-button
'push-button
"A delete button for the `editable-list' widget."
:tag
"DEL"
:help-echo
"Delete this item from the list."
:action
'widget-delete-button-action
)
(
defun
widget-delete-button-action
(
widget
&optional
event
)
;; Ask the parent to insert a new item.
(
widget-apply
(
widget-get
widget
:parent
)
:delete-at
(
widget-get
widget
:widget
)))
;;; The `editable-list' Widget.
;; (defcustom widget-editable-list-gui nil
...
...
@@ -2442,7 +2412,7 @@ Return an alist of (TYPE MATCH)."
:offset
12
:format
"%v%i\n"
:format-handler
'widget-editable-list-format-handler
:entry-format
"%
-
%v"
:entry-format
"%
i %d
%v"
:menu-tag
"editable-list"
:value-create
'widget-editable-list-value-create
:value-delete
'widget-children-value-delete
...
...
@@ -2566,7 +2536,7 @@ Return an alist of (TYPE MATCH)."
;; Create a new entry to the list.
(
let
((
type
(
nth
0
(
widget-get
widget
:args
)))
;;; (widget-push-button-gui widget-editable-list-gui)
child
ins/del
buttons
)
child
delete
insert
)
(
widget-specify-insert
(
save-excursion
(
and
(
widget-get
widget
:indent
)
...
...
@@ -2578,11 +2548,14 @@ Return an alist of (TYPE MATCH)."
(
delete-backward-char
2
)
(
cond
((
eq
escape
?%
)
(
insert
?%
))
((
eq
escape
?-
)
(
setq
ins/del
(
apply
'widget-create-child-and-convert
widget
'insert/delete-button
(
widget-get
widget
:insert/delete-button-args
))))
((
eq
escape
?i
)
(
setq
insert
(
apply
'widget-create-child-and-convert
widget
'insert-button
(
widget-get
widget
:insert-button-args
))))
((
eq
escape
?d
)
(
setq
delete
(
apply
'widget-create-child-and-convert
widget
'delete-button
(
widget-get
widget
:delete-button-args
))))
((
eq
escape
?v
)
(
if
conv
(
setq
child
(
widget-create-child-value
...
...
@@ -2593,17 +2566,18 @@ Return an alist of (TYPE MATCH)."
(
widget-default-get
type
))))))
(
t
(
error
"Unknown escape `%c'"
escape
)))))
(
setq
buttons
(
widget-
ge
t
widget
:buttons
))
(
if
i
ns
/
del
(
push
ins/del
buttons
))
(
widget-
pu
t
widget
:buttons
buttons
)
(
widget-
pu
t
widget
:buttons
(
co
ns
del
ete
(
cons
insert
(
widget-
ge
t
widget
:buttons
)))
)
(
let
((
entry-from
(
point-min-marker
))
(
entry-to
(
point-max-marker
)))
(
set-marker-insertion-type
entry-from
t
)
(
set-marker-insertion-type
entry-to
nil
)
(
widget-put
child
:entry-from
entry-from
)
(
widget-put
child
:entry-to
entry-to
)))
(
if
ins/del
(
widget-put
ins/del
:widget
child
))
(
widget-put
insert
:widget
child
)
(
widget-put
delete
:widget
child
)
child
))
;;; The `group' Widget.
...
...
@@ -3014,7 +2988,6 @@ It will read a directory name from the minibuffer when invoked."
"History of input to `widget-variable-prompt-value'."
)
(
define-widget
'variable
'symbol
;; Should complete on variables.
"A Lisp variable."
:prompt-match
'boundp
:prompt-history
'widget-variable-prompt-value-history
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment