* Using buttons
@ 2024-06-28 21:45 Heime
2024-06-28 22:46 ` Stephen Berman
0 siblings, 1 reply; 5+ messages in thread
From: Heime @ 2024-06-28 21:45 UTC (permalink / raw)
To: Heime via Users list for the GNU Emacs text editor
Have noticed that when using a button I have to define a unique function
to associate with the specific button. I cannot just use a single function,
then update the string (skrpad in this case).
Also does the button label got to be unique, or is it just to give the button
some text to display on the button ?
(defvar skrpad "TODO-0")
(defun montext (button)
(with-help-window (help-buffer)
(insert skrpad)))
(defun mondu ()
(interactive)
(with-current-buffer (get-buffer-create "Mondu")
(setq mon-skrpad "TODO-1")
(insert-button "[1]" 'action 'montext)
(setq mon-skrpad "TODO-2")
(insert-button "[2]" 'action 'montext)))
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Using buttons
2024-06-28 21:45 Using buttons Heime
@ 2024-06-28 22:46 ` Stephen Berman
2024-06-28 23:17 ` Heime
0 siblings, 1 reply; 5+ messages in thread
From: Stephen Berman @ 2024-06-28 22:46 UTC (permalink / raw)
To: Heime; +Cc: Heime via Users list for the GNU Emacs text editor
On Fri, 28 Jun 2024 21:45:32 +0000 Heime <heimeborgia@protonmail.com> wrote:
> Have noticed that when using a button I have to define a unique function
> to associate with the specific button. I cannot just use a single function,
> then update the string (skrpad in this case).
>
> Also does the button label got to be unique, or is it just to give the button
> some text to display on the button ?
>
> (defvar skrpad "TODO-0")
>
> (defun montext (button)
> (with-help-window (help-buffer)
> (insert skrpad)))
>
>
> (defun mondu ()
>
> (interactive)
>
> (with-current-buffer (get-buffer-create "Mondu")
>
> (setq mon-skrpad "TODO-1")
>
> (insert-button "[1]" 'action 'montext)
>
> (setq mon-skrpad "TODO-2")
>
> (insert-button "[2]" 'action 'montext)))
Try this:
(defun mondu ()
(interactive)
(let* ((skrpad (list "TODO-1" "TODO-2"))
(montext (lambda (button)
(with-help-window (help-buffer)
(insert (pop skrpad))))))
(with-current-buffer (get-buffer-create "Mondu")
(insert-button "[1]" 'action (lambda (b) (funcall montext b)))
(insert-button "[2]" 'action (lambda (b) (funcall montext b))))))
Steve Berman
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Using buttons
2024-06-28 22:46 ` Stephen Berman
@ 2024-06-28 23:17 ` Heime
2024-06-29 6:59 ` Stephen Berman
0 siblings, 1 reply; 5+ messages in thread
From: Heime @ 2024-06-28 23:17 UTC (permalink / raw)
To: Stephen Berman; +Cc: Heime via Users list for the GNU Emacs text editor
Sent with Proton Mail secure email.
On Friday, June 28th, 2024 at 10:46 PM, Stephen Berman <stephen.berman@gmx.net> wrote:
> On Fri, 28 Jun 2024 21:45:32 +0000 Heime heimeborgia@protonmail.com wrote:
>
> > Have noticed that when using a button I have to define a unique function
> > to associate with the specific button. I cannot just use a single function,
> > then update the string (skrpad in this case).
> >
> > Also does the button label got to be unique, or is it just to give the button
> > some text to display on the button ?
> >
> > (defvar skrpad "TODO-0")
> >
> > (defun montext (button)
> > (with-help-window (help-buffer)
> > (insert skrpad)))
> >
> > (defun mondu ()
> >
> > (interactive)
> >
> > (with-current-buffer (get-buffer-create "Mondu")
> >
> > (setq mon-skrpad "TODO-1")
> >
> > (insert-button "[1]" 'action 'montext)
> >
> > (setq mon-skrpad "TODO-2")
> >
> > (insert-button "[2]" 'action 'montext)))
>
>
> Try this:
>
> (defun mondu ()
> (interactive)
> (let* ((skrpad (list "TODO-1" "TODO-2"))
> (montext (lambda (button)
> (with-help-window (help-buffer)
> (insert (pop skrpad))))))
> (with-current-buffer (get-buffer-create "Mondu")
> (insert-button "[1]" 'action (lambda (b) (funcall montext b)))
> (insert-button "[2]" 'action (lambda (b) (funcall montext b))))))
>
> Steve Berman
It is a good implementation.
I wanted to print the n-th entry in the list upon pressing
the n-th button without removing items from the list.
So I did this change. To the lambda function I added n to specify
the n-th entry in the list. What do you think of this ?
(defun mondu ()
(interactive)
(let* ( (skrpad (list "mon-lw" "mon-kk"))
(montext (lambda (button n)
(with-help-window (help-buffer)
(insert (nth n skrpad))))) )
(with-current-buffer (get-buffer-create "Mondu")
(insert-button "[1]" 'action (lambda (b) (funcall montext b 0)))
(insert "\n")
(insert-button "[2]" 'action (lambda (b) (funcall montext b 1))))))
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Using buttons
2024-06-28 23:17 ` Heime
@ 2024-06-29 6:59 ` Stephen Berman
2024-06-30 12:01 ` Heime
0 siblings, 1 reply; 5+ messages in thread
From: Stephen Berman @ 2024-06-29 6:59 UTC (permalink / raw)
To: Heime; +Cc: Heime via Users list for the GNU Emacs text editor
On Fri, 28 Jun 2024 23:17:48 +0000 Heime <heimeborgia@protonmail.com> wrote:
> Sent with Proton Mail secure email.
>
> On Friday, June 28th, 2024 at 10:46 PM, Stephen Berman
> <stephen.berman@gmx.net> wrote:
>
>> On Fri, 28 Jun 2024 21:45:32 +0000 Heime heimeborgia@protonmail.com wrote:
>>
>> > Have noticed that when using a button I have to define a unique function
>> > to associate with the specific button. I cannot just use a single function,
>> > then update the string (skrpad in this case).
>> >
>> > Also does the button label got to be unique, or is it just to give the button
>> > some text to display on the button ?
>> >
>> > (defvar skrpad "TODO-0")
>> >
>> > (defun montext (button)
>> > (with-help-window (help-buffer)
>> > (insert skrpad)))
>> >
>> > (defun mondu ()
>> >
>> > (interactive)
>> >
>> > (with-current-buffer (get-buffer-create "Mondu")
>> >
>> > (setq mon-skrpad "TODO-1")
>> >
>> > (insert-button "[1]" 'action 'montext)
>> >
>> > (setq mon-skrpad "TODO-2")
>> >
>> > (insert-button "[2]" 'action 'montext)))
>>
>>
>> Try this:
>>
>> (defun mondu ()
>> (interactive)
>> (let* ((skrpad (list "TODO-1" "TODO-2"))
>> (montext (lambda (button)
>> (with-help-window (help-buffer)
>> (insert (pop skrpad))))))
>> (with-current-buffer (get-buffer-create "Mondu")
>> (insert-button "[1]" 'action (lambda (b) (funcall montext b)))
>> (insert-button "[2]" 'action (lambda (b) (funcall montext b))))))
>>
>> Steve Berman
>
> It is a good implementation.
>
> I wanted to print the n-th entry in the list upon pressing
> the n-th button without removing items from the list.
>
> So I did this change. To the lambda function I added n to specify
> the n-th entry in the list. What do you think of this ?
>
> (defun mondu ()
> (interactive)
> (let* ( (skrpad (list "mon-lw" "mon-kk"))
> (montext (lambda (button n)
> (with-help-window (help-buffer)
> (insert (nth n skrpad))))) )
> (with-current-buffer (get-buffer-create "Mondu")
> (insert-button "[1]" 'action (lambda (b) (funcall montext b 0)))
> (insert "\n")
> (insert-button "[2]" 'action (lambda (b) (funcall montext b 1))))))
Yes, this is certainly better. (I realized after posting that using
`pop' was a poor choice, but it was too late for me to follow up.)
Steve Berman
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Using buttons
2024-06-29 6:59 ` Stephen Berman
@ 2024-06-30 12:01 ` Heime
0 siblings, 0 replies; 5+ messages in thread
From: Heime @ 2024-06-30 12:01 UTC (permalink / raw)
To: Stephen Berman; +Cc: Heime via Users list for the GNU Emacs text editor
Sent with Proton Mail secure email.
On Saturday, June 29th, 2024 at 6:59 AM, Stephen Berman <stephen.berman@gmx.net> wrote:
> On Fri, 28 Jun 2024 23:17:48 +0000 Heime heimeborgia@protonmail.com wrote:
>
> > Sent with Proton Mail secure email.
> >
> > On Friday, June 28th, 2024 at 10:46 PM, Stephen Berman
> > stephen.berman@gmx.net wrote:
> >
> > > On Fri, 28 Jun 2024 21:45:32 +0000 Heime heimeborgia@protonmail.com wrote:
> > >
> > > > Have noticed that when using a button I have to define a unique function
> > > > to associate with the specific button. I cannot just use a single function,
> > > > then update the string (skrpad in this case).
> > > >
> > > > Also does the button label got to be unique, or is it just to give the button
> > > > some text to display on the button ?
> > > >
> > > > (defvar skrpad "TODO-0")
> > > >
> > > > (defun montext (button)
> > > > (with-help-window (help-buffer)
> > > > (insert skrpad)))
> > > >
> > > > (defun mondu ()
> > > >
> > > > (interactive)
> > > >
> > > > (with-current-buffer (get-buffer-create "Mondu")
> > > >
> > > > (setq mon-skrpad "TODO-1")
> > > >
> > > > (insert-button "[1]" 'action 'montext)
> > > >
> > > > (setq mon-skrpad "TODO-2")
> > > >
> > > > (insert-button "[2]" 'action 'montext)))
> > >
> > > Try this:
> > >
> > > (defun mondu ()
> > > (interactive)
> > > (let* ((skrpad (list "TODO-1" "TODO-2"))
> > > (montext (lambda (button)
> > > (with-help-window (help-buffer)
> > > (insert (pop skrpad))))))
> > > (with-current-buffer (get-buffer-create "Mondu")
> > > (insert-button "[1]" 'action (lambda (b) (funcall montext b)))
> > > (insert-button "[2]" 'action (lambda (b) (funcall montext b))))))
> > >
> > > Steve Berman
> >
> > It is a good implementation.
> >
> > I wanted to print the n-th entry in the list upon pressing
> > the n-th button without removing items from the list.
> >
> > So I did this change. To the lambda function I added n to specify
> > the n-th entry in the list. What do you think of this ?
> >
> > (defun mondu ()
> > (interactive)
> > (let* ( (skrpad (list "mon-lw" "mon-kk"))
> > (montext (lambda (button n)
> > (with-help-window (help-buffer)
> > (insert (nth n skrpad))))) )
> > (with-current-buffer (get-buffer-create "Mondu")
> > (insert-button "[1]" 'action (lambda (b) (funcall montext b 0)))
> > (insert "\n")
> > (insert-button "[2]" 'action (lambda (b) (funcall montext b 1))))))
>
>
> Yes, this is certainly better. (I realized after posting that using
> `pop' was a poor choice, but it was too late for me to follow up.)
>
> Steve Berman
Do the button labels have to be unique ("[1]", "[2]") or can they use the same
text such as ("[-]", "[-]")
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-06-30 12:01 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-28 21:45 Using buttons Heime
2024-06-28 22:46 ` Stephen Berman
2024-06-28 23:17 ` Heime
2024-06-29 6:59 ` Stephen Berman
2024-06-30 12:01 ` Heime
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).