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: Sun, 30 Jun 2024 22:32:24 +0000 Message-ID: References: <87cyny3wts.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="21345"; 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 00:33:14 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 1sO36f-0005HD-0h for geh-help-gnu-emacs@m.gmane-mx.org; Mon, 01 Jul 2024 00:33:13 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sO365-0004YT-7T; Sun, 30 Jun 2024 18:32:37 -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 1sO363-0004Xp-7R for help-gnu-emacs@gnu.org; Sun, 30 Jun 2024 18:32:35 -0400 Original-Received: from mail-43166.protonmail.ch ([185.70.43.166]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sO360-0003od-GI for help-gnu-emacs@gnu.org; Sun, 30 Jun 2024 18:32:34 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1719786748; x=1720045948; bh=IbCt20vHIZKS6ti11daWnyYf45P82MMECQIKAUT+Skw=; 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=QAGVhbFfndr6pFAwEhkC/E5sKAuPle1Uk24cJEIhkA9x1qTws9hcIH692NY6rYHN1 4ezh+FPGXltECBmjmwKNmIUqpTANsJ/PY2qHikfAhlmqY38zXDtYEHOZptnv5zJx0b ZisFfHwQFzaIWkQE7zz1LSHCA9Af3Xbp1yRyXUdEaF6tHwbHuTTCBPiaOIGMrS9j6A kmpXlvvx7rzJ+GoR8B4Q8IIE4MWF+lVKNK1HFZe2Yr9ngibGELq3n3udChpsWmvZox hnz5PW/S52cSa/wk1A7wKOYKf1D9P+3ry0Hr24vSOL7S9OEZY5FISSJjH3Dqv4t8TE 95+1fcKhmKO1g== In-Reply-To: <87cyny3wts.fsf@gmx.net> Feedback-ID: 57735886:user:proton X-Pm-Message-ID: 323a471ac6d9efee19bc7afa175f47fa784ad38f Received-SPF: pass client-ip=185.70.43.166; envelope-from=heimeborgia@protonmail.com; helo=mail-43166.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:147036 Archived-At: On Sunday, June 30th, 2024 at 10:11 PM, Stephen Berman wrote: > On Sun, 30 Jun 2024 21:52:12 +0000 Heime heimeborgia@protonmail.com wrote= : >=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 associated = text > > > describing what the button does. > > >=20 > > > I would like to highlight the description text corresponding to the b= utton > > > that was pressed, with NORM being the default when calling the functi= on. > > > 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 p= rinted > > 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 multipl= e 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 >=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 Steve, your function highlights everything, not only the text next to where= the button=20 was pressed.