bongo-patches
[Top][All Lists]
Advanced

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

[bongo-patches] Make <mouse-3> pop up a context menu anywhere, instead o


From: Daniel Brockman
Subject: [bongo-patches] Make <mouse-3> pop up a context menu anywhere, instead of only at object lines (suggested by Daniel Jensen)
Date: Thu, 24 May 2007 13:28:21 +0200
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.92 (gnu/linux)

Make <mouse-3> pop up a context menu anywhere, instead of
only at object lines (suggested by Daniel Jensen).

diff -rN -u old-bongo/bongo.el new-bongo/bongo.el
--- old-bongo/bongo.el  2007-05-24 13:28:18.000000000 +0200
+++ new-bongo/bongo.el  2007-05-24 13:28:18.000000000 +0200
@@ -8416,7 +8416,7 @@
          new-faces))
 
 (defun bongo-pop-up-context-menu (event)
-  "Pop up a context menu at position EVENT for the object there."
+  "Pop up a context menu at position EVENT."
   (interactive "@e")
   (let* ((line-move-ignore-invisible nil)
          (posn (event-end event))
@@ -8509,9 +8509,9 @@
                                n-tracks-in-killed-marking
                                (if (= n-tracks-in-killed-marking 1) "" "s"))
                       bongo-toggle-marking]))))
-         (playback-menu
+         (playback-menu-content
           (when (bongo-playing-p)
-            `(["Pause" bongo-pause/resume
+            `(["Pause/Resume" bongo-pause/resume
                :style toggle
                :selected (bongo-paused-p)
                :help "\
@@ -8541,101 +8541,105 @@
       (save-excursion
         (goto-char (posn-point posn))
         (popup-menu
-         (if (bongo-currently-playing-track-line-p)
-             `("Playing Bongo Track"
-               ,@playback-menu
-               ["----" bongo-separator-1]
-               ["Copy Track"
-                ,(if region/marking
-                     'bongo-copy-line
-                   'bongo-copy-forward)]
-               ["Cut Track"
-                ,(if region/marking
-                     'bongo-kill-line
-                   'bongo-kill)]
-               ,@region-menu
-               ,@marking-menu)
-           `(,(cond ((bongo-local-file-track-line-p)
-                     "Bongo File Track")
-                    ((bongo-uri-track-line-p)
-                     "Bongo URI Track")
-                    ((bongo-action-track-line-p)
-                     "Bongo Action Track")
-                    ((bongo-header-line-p)
-                     "Bongo Section"))
-             [,(if (bongo-library-buffer-p)
-                   (if (bongo-action-track-line-p)
-                       "Enqueue and Perform Action"
-                     "Enqueue and Play")
-                 (cond ((bongo-action-track-line-p)
-                        "Perform Action")
-                       ((bongo-header-line-p)
-                        "Play Contents")
-                       (t
-                        "Play")))
-              ,(if (bongo-header-line-p)
-                   'bongo-play-lines
-                 'bongo-dwim)]
-             ,@(when (bongo-library-buffer-p)
-                 `(["Enqueue"
+         (if (and (bongo-object-line-p)
+                  (get-text-property (point) 'follow-link))
+             (if (bongo-currently-playing-track-line-p)
+                 `("Playing Bongo Track"
+                   ,@playback-menu-content
+                   ["----" bongo-separator-1]
+                   ["Copy Track"
                     ,(if region/marking
-                         'bongo-insert-enqueue-line
-                       'bongo-insert-enqueue)]
-                   ["Enqueue at End"
+                         'bongo-copy-line
+                       'bongo-copy-forward)]
+                   ["Cut Track"
                     ,(if region/marking
-                         'bongo-append-enqueue-line
-                       'bongo-append-enqueue)]))
-             ,@(when (and (bongo-track-line-p)
-                          (bongo-playlist-buffer-p)
-                          bongo-mark-played-tracks)
-                 `(["Played" bongo-mark-line-as-played]))
-             ["----" bongo-separator-1]
-             ["Copy"
-              ,(if region/marking
-                   'bongo-copy-line
-                 'bongo-copy-forward)]
-             ["Cut"
-              ,(if region/marking
-                   'bongo-kill-line
-                 'bongo-kill)]
-             ,@(when (bongo-track-line-p)
-                 `(["Marked" ,(if (bongo-marked-track-line-p)
-                                  'bongo-unmark-forward
-                                'bongo-mark-forward)
-                    :style toggle
-                    :selected (bongo-marked-track-line-p)]))
-             ,@(when (bongo-header-line-p)
-                 `(["Collapsed" bongo-dwim
-                    :style toggle
-                    :selected (bongo-collapsed-header-line-p)]))
-             ["----" bongo-separator-2]
-             ,@(when (bongo-track-line-p)
-                 `([,(cond ((bongo-local-file-track-line-p)
-                            "Rename File...")
-                           ((bongo-uri-track-line-p)
-                            "Change URI or Title...")
-                           ((bongo-action-track-line-p)
-                            "Edit Action...")
+                         'bongo-kill-line
+                       'bongo-kill)]
+                   ,@region-menu
+                   ,@marking-menu)
+               `(,(cond ((bongo-local-file-track-line-p)
+                         "Bongo File Track")
+                        ((bongo-uri-track-line-p)
+                         "Bongo URI Track")
+                        ((bongo-action-track-line-p)
+                         "Bongo Action Track")
+                        ((bongo-header-line-p)
+                         "Bongo Section"))
+                 [,(if (bongo-library-buffer-p)
+                       (if (bongo-action-track-line-p)
+                           "Enqueue and Perform Action"
+                         "Enqueue and Play")
+                     (cond ((bongo-action-track-line-p)
+                            "Perform Action")
+                           ((bongo-header-line-p)
+                            "Play Contents")
                            (t
-                            "Rename Track..."))
-                    bongo-rename-line]))
-             ,@(when (save-excursion
-                       (while (bongo-header-line-p)
-                         (bongo-down-section))
-                       (bongo-local-file-track-line-p))
-                 `(["Open Dired" bongo-dired-line]))
+                            "Play")))
+                  ,(if (bongo-header-line-p)
+                       (if region/marking
+                           'bongo-play-lines
+                         'bongo-play)
+                     'bongo-dwim)]
+                 ,@(when (bongo-library-buffer-p)
+                     `(["Enqueue"
+                        ,(if region/marking
+                             'bongo-insert-enqueue-line
+                           'bongo-insert-enqueue)]
+                       ["Enqueue at End"
+                        ,(if region/marking
+                             'bongo-append-enqueue-line
+                           'bongo-append-enqueue)]))
+                 ,@(when (and (bongo-track-line-p)
+                              (bongo-playlist-buffer-p)
+                              bongo-mark-played-tracks)
+                     `(["Played" bongo-mark-line-as-played]))
+                 ["----" bongo-separator-1]
+                 ["Copy"
+                  ,(if region/marking
+                       'bongo-copy-line
+                     'bongo-copy-forward)]
+                 ["Cut"
+                  ,(if region/marking
+                       'bongo-kill-line
+                     'bongo-kill)]
+                 ,@(when (bongo-track-line-p)
+                     `(["Marked" ,(if (bongo-marked-track-line-p)
+                                      'bongo-unmark-forward
+                                    'bongo-mark-forward)
+                        :style toggle
+                        :selected (bongo-marked-track-line-p)]))
+                 ,@(when (bongo-header-line-p)
+                     `(["Collapsed" bongo-dwim
+                        :style toggle
+                        :selected (bongo-collapsed-header-line-p)]))
+                 ["----" bongo-separator-2]
+                 ,@(when (bongo-track-line-p)
+                     `([,(cond ((bongo-local-file-track-line-p)
+                                "Rename File...")
+                               ((bongo-uri-track-line-p)
+                                "Change URI or Title...")
+                               ((bongo-action-track-line-p)
+                                "Edit Action...")
+                               (t
+                                "Rename Track..."))
+                        bongo-rename-line]))
+                 ,@(when (save-excursion
+                           (while (bongo-header-line-p)
+                             (bongo-down-section))
+                           (bongo-local-file-track-line-p))
+                     `(["Open Dired" bongo-dired-line]))
+                 ,@region-menu
+                 ,@marking-menu
+                 ,@(when playback-menu-content
+                     `(["----" bongo-playback-separator-1]
+                       ["----" bongo-playback-separator-2]
+                       ("Current Playback" ,@playback-menu-content)))))
+           `("Bongo"
+             ,@playback-menu-content
              ,@region-menu
-             ,@marking-menu
-             ,@(when playback-menu
-                 `(["----" bongo-playback-separator]
-                   ("Current Playback" ,@playback-menu)))))
+             ,@marking-menu))
          event)))))
 
-(defvar bongo-object-map
-  (let ((map (make-sparse-keymap)))
-    (prog1 map
-      (define-key map [mouse-3] 'bongo-pop-up-context-menu))))
-
 (defun bongo-current-column (&optional point window)
   (let ((posn (posn-at-point point window)))
     (and posn (car (posn-col-row posn)))))
@@ -8680,8 +8684,7 @@
                                 (bongo-format-string
                                  bongo-section-header-line-format))
                             (bongo-format-string bongo-track-line-format))
-                          'follow-link t 'mouse-face 'highlight
-                          'keymap bongo-object-map)))
+                          'follow-link t 'mouse-face 'highlight)))
         (when (not header)
           (cond ((bongo-currently-playing-track-line-p)
                  (bongo-facify content 'bongo-currently-playing-track))
@@ -9780,6 +9783,7 @@
   (let ((map bongo-mode-map))
     (define-key map "\C-m" 'bongo-dwim)
     (define-key map [mouse-2] 'bongo-mouse-dwim)
+    (define-key map [mouse-3] 'bongo-pop-up-context-menu)
     (define-key map "q" 'bongo-quit)
     (define-key map "Q" 'bury-buffer)
     (define-key map "h" 'bongo-switch-buffers)
-- 
Daniel Brockman <address@hidden>

reply via email to

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