From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Heime Newsgroups: gmane.emacs.help Subject: Re: Highlighting text next to button Date: Mon, 01 Jul 2024 08:52:34 +0000 Message-ID: References: <87cyny3wts.fsf@gmx.net> <87bk3hbl9x.fsf@gmx.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="14590"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Heime via Users list for the GNU Emacs text editor To: Stephen Berman Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Mon Jul 01 10:53:50 2024 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1sOCnG-0003Vn-IB for geh-help-gnu-emacs@m.gmane-mx.org; Mon, 01 Jul 2024 10:53:50 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sOCmj-00005u-BN; Mon, 01 Jul 2024 04:53:17 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOCmB-0006Tx-27 for help-gnu-emacs@gnu.org; Mon, 01 Jul 2024 04:52:44 -0400 Original-Received: from mail-40137.protonmail.ch ([185.70.40.137]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOCm8-0005qS-O9 for help-gnu-emacs@gnu.org; Mon, 01 Jul 2024 04:52:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1719823957; x=1720083157; bh=sMiFZGikKrPe2e4OZUxgDuThiAH4v3RRx6Mp0bTIHo4=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=IvqDsqga5oWwUjfXzS67Q94RSmQ3Kz/DPL7kWjgdn70qennswod2MhqaYCcAsuIs+ jn2IAIpm1BAmxaGrbt+wogwf84DfK1QznFTcwBLQD9aAPDJcxrV7kvKxS1tfkrtJ/i AnKo/oX6NNUO9WiKNMvJUcdFdkvI84CwYnkEfw8h6LyU7fecr67zJv58J9XerVK+OW zt3ZJgq/jdI/0N7XQY9ub7obhCKX4kxDuwKYBTsM3Pg1eJypgUt6udMyy1Ry7JeDp9 ZjVWpgkD/f4OmzA9e1yhYTnooxtmjOyg+e70PaVV4elxVpFrFWDF4c6BiGrSYdkcGy dIA28RsYkGW3w== In-Reply-To: <87bk3hbl9x.fsf@gmx.net> Feedback-ID: 57735886:user:proton X-Pm-Message-ID: 26aa9bf0a03f1b0c26077cf0d09699b2daa4cf3b Received-SPF: pass client-ip=185.70.40.137; envelope-from=heimeborgia@protonmail.com; helo=mail-40137.protonmail.ch X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.help:147039 Archived-At: On Monday, July 1st, 2024 at 7:53 AM, Stephen Berman wrote: > On Sun, 30 Jun 2024 22:32:24 +0000 Heime heimeborgia@protonmail.com wrote= : >=20 > > On Sunday, June 30th, 2024 at 10:11 PM, Stephen Berman > > stephen.berman@gmx.net wrote: > >=20 > > > On Sun, 30 Jun 2024 21:52:12 +0000 Heime heimeborgia@protonmail.com w= rote: > > >=20 > > > > On Sunday, June 30th, 2024 at 8:00 PM, Heime heimeborgia@protonmail= .com wrote: > > > >=20 > > > > > I have the function monde that displays some buttons with associa= ted text > > > > > describing what the button does. > > > > >=20 > > > > > I would like to highlight the description text corresponding to t= he button > > > > > that was pressed, with NORM being the default when calling the fu= nction. > > > > > What can I do ? > > > > >=20 > > > > > (defun spaz (w) > > > > > "Make a string of width W made of spaces." > > > > > (make-string w ?\s)) > > > > >=20 > > > > > (defun mondu () > > > > >=20 > > > > > (interactive) > > > > >=20 > > > > > (with-current-buffer (get-buffer-create "Mondu") > > > > >=20 > > > > > (insert " MAIN PANEL DU \n\n") > > > > >=20 > > > > > (insert " ") > > > > > (insert-button "[-]" 'action 'mondu-outbd) > > > > > (insert " OUTBD ") > > > > >=20 > > > > > (insert-button "[-]" 'action 'mondu-norm) > > > > > (insert " NORM ") > > > > >=20 > > > > > ;;------------------------------------------------------------ > > > > >=20 > > > > > (insert-button "[-]" 'action 'mondu-inbd-eng-pri) > > > > > (insert " INBD ENG PRI \n") > > > > >=20 > > > > > (insert (spaz 24)) > > > > > (insert-button "[-]" 'action 'mondu-inbd-pfd) > > > > > (insert " INBD PFD \n") > > > > >=20 > > > > > (insert (spaz 24)) > > > > > (insert-button "[-]" 'action 'mondu-inbd-hfd) > > > > > (insert " INBD HFD \n") ) > > > > >=20 > > > > > (pop-to-buffer "Mondu") ) > > > >=20 > > > > Have made the following. But I also have to activate the text that = is printed > > > > to the help buffer when pressing the button. > > > >=20 > > > > (defun mondu-color-text (text color) > > > > "Color TEXT in the specified COLOR in the Mondu buffer." > > > >=20 > > > > (with-current-buffer "Mondu" > > > > (save-excursion > > > > (goto-char (point-min)) > > > > (when (search-forward text nil t) > > > > (let ((start (match-beginning 0)) > > > > (end (match-end 0))) > > > > (add-text-properties start end `(face (:foreground ,color)))))))) > > > >=20 > > > > (defun mondu () > > > > "Set up the Mondu buffer with buttons and text." > > > >=20 > > > > (interactive) > > > >=20 > > > > (with-current-buffer (get-buffer-create "Mondu") > > > >=20 > > > > (erase-buffer) ;; Clear the buffer to avoid repeated content on mul= tiple > > > > invocations > > > >=20 > > > > (insert " MAIN PANEL DU \n\n") > > > >=20 > > > > (insert " ") > > > > (insert-button "[-]" > > > > 'action (lambda (_) (mondu-color-text " OUTBD " "red"))) > > > > (insert " OUTBD ") > > > >=20 > > > > (insert-button "[-]" > > > > 'action (lambda (_) (mondu-color-text " NORM " "red"))) > > > > (montejura-insert-colorat " NORM " "red") > > > >=20 > > > > (insert-button "[-]" > > > > 'action (lambda (_) (mondu-color-text " INBD ENG PRI " "red"))) > > > > (insert " INBD ENG PRI \n") > > > >=20 > > > > (insert (espz 24)) > > > > (insert-button "[-]" > > > > 'action (lambda (_) (mondu-color-text " INBD PFD " "red"))) > > > > (insert " INBD PFD \n") > > > >=20 > > > > (insert (espz 24)) > > > > (insert-button "[-]" > > > > 'action (lambda (_) (mondu-color-text " INBD HFD " "red"))) > > > > (insert " INBD HFD \n")) > > > >=20 > > > > (pop-to-buffer "Mondu")) > > >=20 > > > Perhaps this (based on the first version): > > >=20 > > > (defun mondu () > > > (interactive) > > > (with-current-buffer (get-buffer-create "Mondu") > > > (let ((make-desc (lambda (&optional description) > > > (insert (propertize (or description " NORM ") > > > 'face '( :weight bold > > > :slant italic > > > :background "lightgray")))))) > > > (insert " MAIN PANEL DU \n\n") > > > (insert " ") > > > (insert-button "[-]" 'action 'mondu-outbd) > > > (funcall make-desc " OUTBD ") > > > (insert-button "[-]" 'action 'mondu-norm) > > > (funcall make-desc) > > > ;;------------------------------------------------------------ > > > (insert-button "[-]" 'action 'mondu-inbd-eng-pri) > > > (funcall make-desc " INBD ENG PRI \n") > > > (insert (spaz 24)) > > > (insert-button "[-]" 'action 'mondu-inbd-pfd) > > > (funcall make-desc " INBD PFD \n") > > > (insert (spaz 24)) > > > (insert-button "[-]" 'action 'mondu-inbd-hfd) > > > (funcall make-desc" INBD HFD \n"))) > > > (pop-to-buffer "Mondu")) > > >=20 > > > Steve Berman > >=20 > > Steve, your function highlights everything, not only the text next to > > where the button was pressed. >=20 >=20 > Do you mean the background color? That was just an example; if you > don't want it, then just don't include it in the value of the `face'=20 > property. E.g., if you just want the text next to the button to be=20 > red, just use '(:foreground "red") as the value of the` face' property. >=20 > Steve Berman It is more complicated. When one presses the button "OUTBD", only the word "OUTBD" gets coloured red. The other string are reset with no color. Meaning that the highlight is only applied to the text to which the key=20 was pressed.