emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/hyperbole 966605b7a3 028/143: hkey-window-link, {M-o w}


From: ELPA Syncer
Subject: [elpa] externals/hyperbole 966605b7a3 028/143: hkey-window-link, {M-o w} - invert the meaning of prefix arg
Date: Mon, 19 Feb 2024 15:58:50 -0500 (EST)

branch: externals/hyperbole
commit 966605b7a3258868f954b1101d542659821925ce
Author: bw <rsw@gnu.org>
Commit: bw <rsw@gnu.org>

    hkey-window-link, {M-o w} - invert the meaning of prefix arg
    
    hmouse-alist-add-window-handlers - Default to implicit button
    creation; create explicit button with C-u prefix.
---
 ChangeLog          |  13 +++++++
 DEMO               |  39 ++++++++++---------
 FAST-DEMO          |  19 ++++-----
 hmouse-drv.el      |  14 +++----
 hui-window.el      |   7 ++--
 hui.el             |   4 +-
 man/hkey-help.txt  |   2 +-
 man/hyperbole.html | 110 ++++++++++++++++++++++++++++------------------------
 man/hyperbole.info | Bin 619272 -> 619947 bytes
 man/hyperbole.pdf  | Bin 1373019 -> 1373590 bytes
 man/hyperbole.texi | 112 +++++++++++++++++++++++++++++------------------------
 11 files changed, 178 insertions(+), 142 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 31bad0208b..7039b47407 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2023-12-27  Bob Weiner  <rsw@gnu.org>
+
+* hmouse-drv.el (hkey-window-link): Invert the meaning of the prefix arg, so 
without
+    one, creates implicit buttons and with creates explicit buttons.  This is 
the new
+    V9 standard as then by default there is no need to prompt for a button 
name.
+  hui-window.el (hmouse-alist-add-window-handlers): Invert drag between 
windows so
+    without a prefix arg, creates implicit buttons and with, creates explicit 
ones.
+  hui.el (hui:ibut-link-directly):
+  FAST-DEMO (Implicit Buttons):
+  DEMO (Creation via Dragging, Creation via Ace Window):
+  man/hyperbole.texi (Keyboard Drags, Smart Mouse Drags between Windows):
+  man/hkey-help.txt: Update doc on above.
+
 2023-12-26  Mats Lidell  <matsl@gnu.org>
 
 * test/hmouse-drv-tests.el:
diff --git a/DEMO b/DEMO
index 21a8cc3f9c..c34724dd8f 100644
--- a/DEMO
+++ b/DEMO
@@ -1176,22 +1176,22 @@ on the *first* line of the button, within the button 
delimiters:
 Creating explicit buttons is fun and easy.  You can always try them out
 immediately after creating them or can utilize the Assist Key to verify what
 buttons do.  There are two ways to create them: by dragging between windows
-with the Action Mouse Key or by using the Hyperbole menus.
+with the Assist Mouse Key or by using the Hyperbole menus.
 
 *** Creation via Dragging
 
 An efficient way to create an explicit button interactively is to use
-the Action Mouse Key to drag from a window where you want the button
+the Assist Mouse Key to drag from a window where you want the button
 created (button source window) to a window showing its link referent.
 The drag must start outside of a draggable item which includes Hyperbole
-button, dired items and buffer menu items.
+buttons, dired items and buffer menu items.
 
 More specifically, you should split your current Emacs frame into two
 windows: one which contains the point at which you want a button to be
 inserted and another which shows the point to which you want to link,
-the referent.  Depress the Action Mouse Key at the source point for
+the referent.  Depress the Assist Mouse Key at the source point for
 the button (anywhere but on a paired delimiter such as double quotes
-or parentheses).  Then drag to the other window and release the Action
+or parentheses).  Then drag to the other window and release the Assist
 Mouse Key at the start point of the link referent.  The process
 becomes quite simple with a little practice.
 
@@ -1211,20 +1211,19 @@ the variable with a matching value when the link is 
later resolved.  This
 allows the sharing of links over wide areas, where links contain variables
 whose values differ between link creator and link activator.
 
-If you do the same think with the Assist Mouse Key instead of the Action
+If you do the same thing with the Action Mouse Key instead of the Assist
 Mouse Key, Hyperbole will create an implicit link button instead of an
 explicit one.  Such buttons are created without names but you can add
-a name preceding such buttons with {C-h h i l} to label them.
+a name preceding such buttons by using {C-u C-h h i l} instead.
 
 *** Creation via Ace Window
 
-For the fastest link button creation, use the Emacs package
-'ace-window' (see "(hyperbole)Keyboard Drags" for setup).  Once this
-is configured, then {M-o w <window id>} may be used to quickly create
-an explicit link button in the selected window that links to any other
-window chosen via the Ace Window.  Use a C-u prefix argument to create
-an unnamed implicit link button instead and a M-1 prefix argument to
-create a named implicit link button.
+For the fastest link button creation, use the Emacs package 'ace-window' (see
+"(hyperbole)Keyboard Drags" for setup).  Once this is configured, then {M-o w`j
+<window id>} may be used to quickly create an unnamed implicit link button in
+the selected window that links to any other window chosen via the Ace Window.
+Use a M-1 prefix argument to create a named implicit link button.  If you
+want to create an explicit button instead, use the C-u prefix argument.
 
 *** Creation via Menu
 
@@ -1257,10 +1256,14 @@ buffer as the same button.
 
 If you create link buttons using the Hyperbole menus, the best technique is
 to place on screen both the source buffer for the button and the buffer to
-which it will link.  Mark the region of text to use as your button label,
-invoke the button create command from the menu, choose an action type which
-begins with `link-to-' and then use the direct selection techniques mentioned
-in "(hyperbole)Smart Key Argument Selection", to select the link referent.
+which it will link (referent buffer).  Leave point where you want to link
+to in the referent buffer, switch to the source buffer and put point where
+ you want to insert the link button.  If the button name is already there
+in the buffer, mark it as the region to use for your button label.  Then
+press {C-h h e l} and that will figure out the proper link type, prompt for
+any needed arguments and then insert the button.  You can use the direct
+selection techniques mentioned in "(hyperbole)Smart Key Argument Selection",
+to select any arguments.
 
 See "(hyperbole)Utilizing Explicit Buttons" for much more detail on how to
 work with explicit buttons.
diff --git a/FAST-DEMO b/FAST-DEMO
index 04000b0bf5..9e67cf95b8 100644
--- a/FAST-DEMO
+++ b/FAST-DEMO
@@ -116,16 +116,16 @@
 
   You can simply type implicit buttons into a buffer or you can use {C-h h i
   c} to create them and give them names.  To create an implicit link button
-  from a buffer in one window to another, simply depress the Assist Mouse
-  Key (not the Action Mouse Key) where you want the new button (but not
-  within a draggable item), drag to a point in another Emacs window and
-  release.  An implicit link button of an appropriate type for the release
-  context will be inserted at the original depress point.
+  from a buffer in one window to another, simply depress the Action Mouse
+  Key where you want the new button (but not within a draggable item), drag
+  to a point in another Emacs window and release.  An implicit link button
+  of an appropriate type for the release context will be inserted at the
+  original depress point.
 
   If you have exactly two Emacs windows in your current frame or exactly two
   windows visible across two Emacs frames, there is an even simpler way to
   create implicit links.  Use the Link menu item, {C-h h i l}, to create a
-  new unnamed implicit link button or to edit the one at point.  {C-u C-h h
+  new unnamed implicit link button or to edit the one at point.  {M-1 C-h h
   i l} will additionally prompt to add a name or rename the button at
   point.  With more than two windows, Hyperbole will prompt you to choose
   the referent window and its associated point to which to link.  If the Ace
@@ -139,10 +139,11 @@
 
        Display the file, "HY-NEWS", go to the star-outline section 'ORG
        MODE', move 2 lines into that section and then move 6 characters
-       forward.
+       forward.  "HY-NEWS#ORG MODE:L2:C6" with the line and column numbers
+       labeled works as well.
 
-       Existing files and pathnames are recognized without double quotes as
-       well.
+       Existing files and pathnames without spaces are also recognized without
+       double quotes.
 
        The variable, <hpath:display-where>, determines where Hyperbole
        displays all button referents, whether in another window or frame.
diff --git a/hmouse-drv.el b/hmouse-drv.el
index 42a5996c6d..8029f951b5 100644
--- a/hmouse-drv.el
+++ b/hmouse-drv.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    04-Feb-90
-;; Last-Mod:      4-Oct-23 at 20:04:08 by Mats Lidell
+;; Last-Mod:     27-Dec-23 at 00:52:16 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -651,9 +651,9 @@ The selected window does not change."
 RELEASE-WINDOW is interactively selected via the `ace-window' command.
 The selected window does not change.
 
-With no prefix argument, create an explicit button.
-With a C-u \\='(4) prefix argument, create an unnamed implicit button.
-With a M-1 prefix argument, create an named implicit button."
+With no prefix argument, create an unnamed implicit button.
+With a single C-u \\='(4) prefix argument, create an explicit button.
+With any other prefix argument, like M-1, create an named implicit button."
   (interactive
    (list (let ((mode-line-text (concat " Ace - Hyperbole: " (nth 2 (assq ?w 
aw-dispatch-alist)))))
           (aw-select mode-line-text))))
@@ -662,9 +662,9 @@ With a M-1 prefix argument, create an named implicit 
button."
   (let ((start-window (selected-window)))
     (unwind-protect
        (progn
-         (funcall (if current-prefix-arg
-                      #'hui:ibut-link-directly
-                    #'hui:ebut-link-directly)
+         (funcall (if (equal current-prefix-arg '(4))
+                      #'hui:ebut-link-directly
+                    #'hui:ibut-link-directly)
                   start-window release-window)
          release-window)
       ;; Leave start-window selected
diff --git a/hui-window.el b/hui-window.el
index fc12ba7e69..98d7b03fb3 100644
--- a/hui-window.el
+++ b/hui-window.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    21-Sep-92
-;; Last-Mod:      3-Oct-23 at 17:04:04 by Mats Lidell
+;; Last-Mod:     27-Dec-23 at 23:59:25 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -227,9 +227,8 @@ and release to register a diagonal drag.")
              . ((hmouse-drag-item-to-display) . (hmouse-drag-item-to-display)))
             ;; Drag between windows not on an item
             ((hmouse-drag-between-windows)
-             ;; Note that `hui:ebut-link-directly' uses any active
-             ;; region as the label of the button to create.
-             . ((hui:ebut-link-directly) . (hui:ibut-link-directly)))
+             ;; Note that functions on next line use any region as button name
+             . ((hui:ibut-link-directly) . (hui:ebut-link-directly)))
             ((hmouse-drag-region-active)
              . ((hmouse-drag-not-allowed) . (hmouse-drag-not-allowed)))
             ((setq hkey-value (hmouse-drag-horizontally))
diff --git a/hui.el b/hui.el
index afb711f2c3..e45746d2f1 100644
--- a/hui.el
+++ b/hui.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    19-Sep-91 at 21:42:03
-;; Last-Mod:     26-Dec-23 at 23:43:32 by Bob Weiner
+;; Last-Mod:     27-Dec-23 at 23:57:10 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -1241,7 +1241,7 @@ With optional NAME-ARG-FLAG (interactively, the prefix 
argument set to
 anything other than a single C-u (list 4)), prompt for a name to precede
 the implicit button.
 
-An Assist Mouse Key drag between windows runs this command.
+An Action Mouse Key drag between windows runs this command.
 Alternatively, to swap buffers between two windows, Assist Mouse Key
 drag from a window to another window's modeline."
   (interactive (progn
diff --git a/man/hkey-help.txt b/man/hkey-help.txt
index bac0b5aef9..a9371c9c62 100644
--- a/man/hkey-help.txt
+++ b/man/hkey-help.txt
@@ -53,7 +53,7 @@ Mouse-only Control
     but/buffer/file menu item   Displays ref/buffer/file   <- same
                                   in window of button release 
     buffer/file menu 1st line   Moves buffer/file menu     <- same
-    anywhere else               Creates an ebut link       Creates an ibut link
+    anywhere else               Creates an ibut link       Creates an ebut link
 
   Drag outside of Emacs from:
     but/buffer/file menu item   Displays ref/buffer/file   Moves window to new 
frame
diff --git a/man/hyperbole.html b/man/hyperbole.html
index 1b83abf2bf..a9e9cc8ec3 100644
--- a/man/hyperbole.html
+++ b/man/hyperbole.html
@@ -382,7 +382,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P>
 
 <PRE>
 Edition 9.0.0
-Printed December 26, 2023.
+Printed December 28, 2023.
 
   Published by the Free Software Foundation, Inc.
   Author:    Bob Weiner
@@ -1154,12 +1154,13 @@ window&rsquo;s buffer by pressing <kbd>{C-h h e 
l}</kbd>.
 <dt><em>Implicit buttons</em></dt>
 <dd><p>are patterns automatically recognized within existing text that perform
 actions, e.g. bug#24568 displays the bug status information for that Emacs
-bug number, without the need for any additional markup.
+bug number, without the need for any additional markup.  Implicit link
+buttons can be added to documents with a simple drag between windows too.
 </p>
-<p>With two windows on screen, an implicit link button can be created at point
-in the current buffer linking to the position in the other window&rsquo;s 
buffer by
-pressing <kbd>{C-h h i l}</kbd>.  Use <kbd>{C-u C-h h i l}</kbd> instead to be 
prompted
-for a name for the implicit button.
+<p>Or from the keyboard, With two windows on screen, an implicit link button
+can be created at point in the current buffer linking to the position in
+the other window&rsquo;s buffer by pressing <kbd>{C-h h i l}</kbd>.  Use 
<kbd>{M-1
+C-h h i l}</kbd> instead to be prompted for a name for the implicit button.
 </p>
 </dd>
 <dt><em>Global buttons</em></dt>
@@ -1186,7 +1187,9 @@ Assist Key, that perform an extensive array of 
context-sensitive operations
 across emacs usage, including activating and showing help for Hyperbole
 buttons.  In many popular Emacs modes, they allow you to perform common,
 sometimes complex operations without having to use a different key for each
-operation.  Just press a Smart Key and the right thing happens.  See <a 
href="#Smart-Keys">Smart Keys</a>.
+operation.  Just press a Smart Key and the right thing happens.  The
+mouse versions of these keys additionally allow for drag actions.  We
+call these the Action Mouse and Action Assist keys or buttons.  See <a 
href="#Smart-Keys">Smart Keys</a>.
 </p>
 </dd>
 <dt><em>HyRolo</em></dt>
@@ -1683,7 +1686,7 @@ Mouse-only Control
     but/buffer/file menu item   Displays ref/buffer/file   &lt;- same
                                   in window of button release 
     buffer/file menu 1st line   Moves buffer/file menu     &lt;- same
-    anywhere else               Creates an ebut link       Creates an ibut link
+    anywhere else               Creates an ibut link       Creates an ebut link
 
   Drag outside of Emacs from:
     but/buffer/file menu item   Displays ref/buffer/file   Moves window to new 
frame
@@ -2426,12 +2429,12 @@ Previous: <a href="#Displaying-Items" accesskey="p" 
rel="prev">Displaying Items<
 <p>If you run Emacs under a window system and there is no prior key binding
 on <kbd>{M-o}</kbd> when you load Hyperbole, then many Action Key drags can be
 emulated from the keyboard.  To do so, press <kbd>{M-o}</kbd>, the
-<code>hkey-operate</code> command, at the button source location, move
-to the link destination, e.g. with <kbd>{C-x o}</kbd>, and then press
-<kbd>{M-o}</kbd> again.  This simulates a depress and release of the
-Action Key.  <kbd>{C-u M-o}</kbd> emulates drags of the Assist Key.
-This will not work when Hyperbole is run from a dumb terminal Emacs
-session since drag actions are not supported without a window system.
+<code>hkey-operate</code> command, at the button source location, move to the
+link destination, e.g. with <kbd>{C-x o}</kbd>, and then press <kbd>{M-o}</kbd>
+again.  This simulates a depress and release of the Action Key.
+<kbd>{C-u M-o}</kbd> emulates drags of the Assist Key.  This will not work when
+Hyperbole is run from a dumb terminal Emacs session since drag actions
+are not supported without a window system.
 </p>
 <a name="index-ace_002dwindow-1"></a>
 <a name="index-hkey_002dace_002dwindow_002dsetup"></a>
@@ -2443,19 +2446,20 @@ session since drag actions are not supported without a 
window system.
 use the Emacs package <code>ace-window</code>
 (see <a 
href="https://elpa.gnu.org/packages/ace-window.html";>https://elpa.gnu.org/packages/ace-window.html</a>).
 </p>
-<p>The ace-window package assigns short letter IDs to each Emacs window and 
lets
-you jump to or operate upon a specific window by giving its ID.  Hyperbole can
-add commands to ace-window that replace the two-step drag emulation key
-described above with a single key sequence that does not require moving to
-the drag target window since it is specified by ID as part of the command.
-</p>
-<p>To enable this feature, in your Emacs initialization file after
-Hyperbole is initialized, if you do not have a key bound for
-<code>ace-window</code>, then call: <code>(hkey-ace-window-setup 
\&quot;\M-o\&quot;)</code>
-to bind it to <kbd>{M-o}</kbd>, replacing Hyperbole&rsquo;s
-default <code>hkey-operate</code> command there (because ace-window can emulate
-the drags performed by <code>hkey-operate</code>).  If you already have a key 
bound
-for <code>ace-window</code>, then just ensure it is initialized by calling
+<p>The <em>ace-window</em> package assigns short letter IDs to each Emacs
+window and lets you jump to or operate upon a specific window by giving
+its ID.  Hyperbole can add commands to ace-window that replace the
+two-step drag emulation key described above with a single key sequence
+that does not require moving to the drag target window since it is
+specified by ID as part of the command.
+</p>
+<p>To enable this feature, in your Emacs initialization file after Hyperbole
+is initialized, if you do not have a key bound for <code>ace-window</code>,
+then call: <code>(hkey-ace-window-setup \&quot;\M-o\&quot;)</code> to bind it 
to
+<kbd>{M-o}</kbd>, replacing Hyperbole&rsquo;s default 
<code>hkey-operate</code> command
+there (because ace-window can emulate the drags performed by
+<code>hkey-operate</code>).  If you already have a key bound for
+<code>ace-window</code>, then just ensure it is initialized by calling
 <code>(hkey-ace-window-setup)</code> without a key argument.
 </p>
 <a name="index-M_002do-i-_003cwindow_002did_003e"></a>
@@ -2484,24 +2488,28 @@ selected window&rsquo;s buffer with that of another 
window, use <kbd>{M-o m
 &lt;id-of-window-to-swap-with&gt;}</kbd>.
 </p>
 <a name="index-M_002do-w-_003cwindow_002did_003e"></a>
+<a name="index-M_002d1-M_002do-w-_003cwindow_002did_003e"></a>
 <a name="index-create-link-button"></a>
 <a name="index-link-button"></a>
-<a name="index-hui_003aebut_002dlink_002ddirectly"></a>
-<p>And finally, to create an explicit link between the selected window
-and another window, use <kbd>{M-o w &lt;id-of-referent-window&gt;}</kbd>.
-<code>hui:ebut-link-directly</code> determines the link type by using
-the referent context.  
+<a name="index-hui_003aibut_002dlink_002ddirectly"></a>
+<p>And finally, to create a new, <em>unnamed</em> implicit link in the
+selected window that refers to the location in the other window, use
+<kbd>{M-o w &lt;referent-window-id&gt;}</kbd>.  This executes 
<code>hui:ibut-link-directly</code>
+which determines the link type by using the referent context.  To create
+a <em>named</em> implicit link button in the selected window, use
+<kbd>{M-1 M-o w &lt;window&gt;}</kbd>.  It prompts for the name and then links 
to
+the referent window location.  If you highlight a region
+before invoking this, Hyperbole will use that as the name for the
+implicit button.
 </p>
-
 <a name="index-C_002du-M_002do-w-_003cwindow_002did_003e"></a>
-<a name="index-M_002d1-M_002do-w-_003cwindow_002did_003e"></a>
-<a name="index-hui_003aibut_002dlink_002ddirectly"></a>
-<p><kbd>{C-u M-o w &lt;window&gt;}</kbd> creates a new, <em>unnamed</em> 
implicit
-button in the selected (current) window that links to point in the
-referent &lt;window&gt;.  <code>hui:ibut-link-directly</code> determines the 
link
-type by using the referent context.  <kbd>{M-1 M-o w &lt;window&gt;}</kbd> 
creates
-a new, <em>named</em> implicit button in the selected (current) window
-that links to point in the referent &lt;window&gt;.
+<a name="index-hui_003aebut_002dlink_002ddirectly"></a>
+<p>To create an explicit button the same way, use <kbd>{C-u M-o w
+&lt;window-id&gt;}</kbd>.  This executes <code>hui:ebut-link-directly</code>, 
prompts for
+any needed arguments, determines the link type by using the referent
+context and then creates the explicit button.  If you highlight a region
+before invoking this, Hyperbole will use that as the name for the
+explicit button.
 </p>
 <a name="index-M_002do-t-_003cwindow_002did_003e"></a>
 <a name="index-item-throw"></a>
@@ -2537,18 +2545,20 @@ trigger an error
 </p>
 </dd>
 <dt>M-o w &lt;window&gt;</dt>
-<dd><p>window link, create a new <em>explicit button</em> in the selected
+<dd><p>window link, create a new <em>unnamed implicit button</em> in the 
selected
 (current) window, linking to point in the referent &lt;window&gt;.
 </p>
 </dd>
-<dt>C-u M-o w &lt;window&gt;</dt>
-<dd><p>window link, create a new, <em>unnamed implicit button</em> in the
-selected (current) window, linking to point in the referent &lt;window&gt;.
+<dt>M-1 M-o w &lt;window&gt;</dt>
+<dd><p>window link, create a new <em>named implicit button</em> in the selected
+(current) window, linking to point in the referent &lt;window&gt;.  Use region,
+if any, as the button name.
 </p>
 </dd>
-<dt>M-1 M-o w &lt;window&gt;</dt>
-<dd><p>window link, create a new, <em>named implicit button</em> in the
-selected (current) window, linking to point in the referent &lt;window&gt;.
+<dt>C-u M-o w &lt;window&gt;</dt>
+<dd><p>window link, create a new <em>explicit button</em> in the selected
+(current) window, linking to point in the referent &lt;window&gt;.  Use region,
+if any, as the button name.
 </p></dd>
 </dl>
 
@@ -11432,8 +11442,8 @@ Next: <a href="#Smart-Mouse-Drags-within-a-Window" 
accesskey="n" rel="next">Smar
          See <code>hmouse-drag-item-mode-forms</code> for how to allow for 
draggable
          items in other modes.
      (2) Otherwise, creates a new link button at the drag start location,
-         linked to the drag end location.  Action Key creates an explicit 
button;
-         Assist Key creates an implicit button.
+         linked to the drag end location.  Action Key creates an ixplicit 
button;
+         Assist Key creates an emplicit button.
 
          In Hyperbole versions prior to 9, Assist Key drags between windows 
would
          swap buffers.  In version 9 and above, start or end the drag between
diff --git a/man/hyperbole.info b/man/hyperbole.info
index bee0e06c60..762f3af51d 100644
Binary files a/man/hyperbole.info and b/man/hyperbole.info differ
diff --git a/man/hyperbole.pdf b/man/hyperbole.pdf
index 8ce9cace0f..418e5bab13 100644
Binary files a/man/hyperbole.pdf and b/man/hyperbole.pdf differ
diff --git a/man/hyperbole.texi b/man/hyperbole.texi
index 1c763c438c..6b89e52a1e 100644
--- a/man/hyperbole.texi
+++ b/man/hyperbole.texi
@@ -7,7 +7,7 @@
 @c Author:       Bob Weiner
 @c
 @c Orig-Date:     6-Nov-91 at 11:18:03
-@c Last-Mod:     26-Dec-23 at 20:39:20 by Bob Weiner
+@c Last-Mod:     28-Dec-23 at 00:49:57 by Bob Weiner
 
 @c %**start of header (This is for running Texinfo on a region.)
 @setfilename hyperbole.info
@@ -156,7 +156,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P>
 
 <PRE>
 Edition 9.0.0
-Printed December 26, 2023.
+Printed December 28, 2023.
 
   Published by the Free Software Foundation, Inc.
   Author:    Bob Weiner
@@ -198,7 +198,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 @example
 Edition 9.0.0
-December 26, 2023
+December 28, 2023
 
   Published by the Free Software Foundation, Inc.
   Author:    Bob Weiner
@@ -750,12 +750,13 @@ window's buffer by pressing @bkbd{C-h h e l}.
 @item Implicit buttons
 are patterns automatically recognized within existing text that perform
 actions, e.g. bug#24568 displays the bug status information for that Emacs
-bug number, without the need for any additional markup.
+bug number, without the need for any additional markup.  Implicit link
+buttons can be added to documents with a simple drag between windows too.
 
-With two windows on screen, an implicit link button can be created at point
-in the current buffer linking to the position in the other window's buffer by
-pressing @bkbd{C-h h i l}.  Use @bkbd{C-u C-h h i l} instead to be prompted
-for a name for the implicit button.
+Or from the keyboard, With two windows on screen, an implicit link button
+can be created at point in the current buffer linking to the position in
+the other window's buffer by pressing @bkbd{C-h h i l}.  Use @bkbd{M-1
+C-h h i l} instead to be prompted for a name for the implicit button.
 
 @item Global buttons
 are buttons that are activated by name from anywhere within Emacs.  They may
@@ -781,7 +782,9 @@ Assist Key, that perform an extensive array of 
context-sensitive operations
 across emacs usage, including activating and showing help for Hyperbole
 buttons.  In many popular Emacs modes, they allow you to perform common,
 sometimes complex operations without having to use a different key for each
-operation.  Just press a Smart Key and the right thing happens.  @xref{Smart
+operation.  Just press a Smart Key and the right thing happens.  The
+mouse versions of these keys additionally allow for drag actions.  We
+call these the Action Mouse and Action Assist keys or buttons.  @xref{Smart
 Keys}.
 
 @item HyRolo
@@ -1757,12 +1760,12 @@ the destination (swapping buffers), just as it does 
with other buffers.
 If you run Emacs under a window system and there is no prior key binding
 on @bkbd{M-o} when you load Hyperbole, then many Action Key drags can be
 emulated from the keyboard.  To do so, press @bkbd{M-o}, the
-@code{hkey-operate} command, at the button source location, move
-to the link destination, e.g.@: with @bkbd{C-x o}, and then press
-@bkbd{M-o} again.  This simulates a depress and release of the
-Action Key.  @bkbd{C-u M-o} emulates drags of the Assist Key.
-This will not work when Hyperbole is run from a dumb terminal Emacs
-session since drag actions are not supported without a window system.
+@code{hkey-operate} command, at the button source location, move to the
+link destination, e.g.@: with @bkbd{C-x o}, and then press @bkbd{M-o}
+again.  This simulates a depress and release of the Action Key.
+@bkbd{C-u M-o} emulates drags of the Assist Key.  This will not work when
+Hyperbole is run from a dumb terminal Emacs session since drag actions
+are not supported without a window system.
 
 @findex ace-window
 @findex hkey-ace-window-setup
@@ -1774,19 +1777,20 @@ For even faster keyboard-based display of items and 
drag emulations,
 use the Emacs package @code{ace-window}
 (see @url{https://elpa.gnu.org/packages/ace-window.html}).
 
-The ace-window package assigns short letter IDs to each Emacs window and lets
-you jump to or operate upon a specific window by giving its ID.  Hyperbole can
-add commands to ace-window that replace the two-step drag emulation key
-described above with a single key sequence that does not require moving to
-the drag target window since it is specified by ID as part of the command.
-
-To enable this feature, in your Emacs initialization file after
-Hyperbole is initialized, if you do not have a key bound for
-@code{ace-window}, then call: @code{(hkey-ace-window-setup \"\M-o\")}
-to bind it to @bkbd{M-o}, replacing Hyperbole's
-default @code{hkey-operate} command there (because ace-window can emulate
-the drags performed by @code{hkey-operate}).  If you already have a key bound
-for @code{ace-window}, then just ensure it is initialized by calling
+The @dfn{ace-window} package assigns short letter IDs to each Emacs
+window and lets you jump to or operate upon a specific window by giving
+its ID.  Hyperbole can add commands to ace-window that replace the
+two-step drag emulation key described above with a single key sequence
+that does not require moving to the drag target window since it is
+specified by ID as part of the command.
+
+To enable this feature, in your Emacs initialization file after Hyperbole
+is initialized, if you do not have a key bound for @code{ace-window},
+then call: @code{(hkey-ace-window-setup \"\M-o\")} to bind it to
+@bkbd{M-o}, replacing Hyperbole's default @code{hkey-operate} command
+there (because ace-window can emulate the drags performed by
+@code{hkey-operate}).  If you already have a key bound for
+@code{ace-window}, then just ensure it is initialized by calling
 @code{(hkey-ace-window-setup)} without a key argument.
 
 @kindex M-o i <window-id>
@@ -1815,24 +1819,28 @@ selected window's buffer with that of another window, 
use @bkbd{M-o m
 <id-of-window-to-swap-with>}.
 
 @kindex M-o w <window-id>
+@kindex M-1 M-o w <window-id>
 @cindex create link button
 @cindex link button
-@findex hui:ebut-link-directly
-And finally, to create an explicit link between the selected window
-and another window, use @bkbd{M-o w <id-of-referent-window>}.
-@code{hui:ebut-link-directly} determines the link type by using
-the referent context.  
-
+@findex hui:ibut-link-directly
+And finally, to create a new, @emph{unnamed} implicit link in the
+selected window that refers to the location in the other window, use
+@bkbd{M-o w <referent-window-id>}.  This executes @code{hui:ibut-link-directly}
+which determines the link type by using the referent context.  To create
+a @emph{named} implicit link button in the selected window, use
+@bkbd{M-1 M-o w <window>}.  It prompts for the name and then links to
+the referent window location.  If you highlight a region
+before invoking this, Hyperbole will use that as the name for the
+implicit button.
 
 @kindex C-u M-o w <window-id>
-@kindex M-1 M-o w <window-id>
-@findex hui:ibut-link-directly
-@bkbd{C-u M-o w <window>} creates a new, @emph{unnamed} implicit
-button in the selected (current) window that links to point in the
-referent <window>.  @code{hui:ibut-link-directly} determines the link
-type by using the referent context.  @bkbd{M-1 M-o w <window>} creates
-a new, @emph{named} implicit button in the selected (current) window
-that links to point in the referent <window>.
+@findex hui:ebut-link-directly
+To create an explicit button the same way, use @bkbd{C-u M-o w
+<window-id>}.  This executes @code{hui:ebut-link-directly}, prompts for
+any needed arguments, determines the link type by using the referent
+context and then creates the explicit button.  If you highlight a region
+before invoking this, Hyperbole will use that as the name for the
+explicit button.
 
 @kindex M-o t <window-id>
 @cindex item throw
@@ -1865,16 +1873,18 @@ replace the selected (current) window's buffer with 
that of <window>
 throw region, listing item at point, or current buffer to <window>
 
 @item M-o w <window>
-window link, create a new @emph{explicit button} in the selected
+window link, create a new @emph{unnamed implicit button} in the selected
 (current) window, linking to point in the referent <window>.
 
-@item C-u M-o w <window>
-window link, create a new, @emph{unnamed implicit button} in the
-selected (current) window, linking to point in the referent <window>.
-
 @item M-1 M-o w <window>
-window link, create a new, @emph{named implicit button} in the
-selected (current) window, linking to point in the referent <window>.
+window link, create a new @emph{named implicit button} in the selected
+(current) window, linking to point in the referent <window>.  Use region,
+if any, as the button name.
+
+@item C-u M-o w <window>
+window link, create a new @emph{explicit button} in the selected
+(current) window, linking to point in the referent <window>.  Use region,
+if any, as the button name.
 @end table
 
 @c -------
@@ -9674,8 +9684,8 @@ Otherwise, if dragged from inside one window to another:
          See @code{hmouse-drag-item-mode-forms} for how to allow for draggable
          items in other modes.
      (2) Otherwise, creates a new link button at the drag start location,
-         linked to the drag end location.  Action Key creates an explicit 
button;
-         Assist Key creates an implicit button.
+         linked to the drag end location.  Action Key creates an ixplicit 
button;
+         Assist Key creates an emplicit button.
 
          In Hyperbole versions prior to 9, Assist Key drags between windows 
would
          swap buffers.  In version 9 and above, start or end the drag between



reply via email to

[Prev in Thread] Current Thread [Next in Thread]