From a24902e9444191206529bbad9d54aa71f63dbd92 Mon Sep 17 00:00:00 2001 From: Maciej Barć Date: Fri, 10 Feb 2023 03:40:49 +0100 Subject: elogt.el: add elogt-mode-menu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Maciej Barć --- elogt.el | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/elogt.el b/elogt.el index 87e7977..15dec2c 100644 --- a/elogt.el +++ b/elogt.el @@ -52,6 +52,7 @@ (require 'ansi-color) +(require 'easymenu) (defconst elogt-version "0.0.0" @@ -291,7 +292,7 @@ Uses the `elogt--narrow' function." ;; Major mode (defvar elogt-mode-hook nil - "Hook for the `elogt' major mode.") + "Hook for the `elogt-mode'.") (defvar elogt-mode-map (let ((elogt-mode-map (make-keymap))) @@ -299,19 +300,39 @@ Uses the `elogt--narrow' function." (define-key elogt-mode-map (kbd "o") #'elogt-open-entry) (define-key elogt-mode-map (kbd "d") #'elogt-delete-entry) (define-key elogt-mode-map (kbd "g") #'elogt-refresh-table) - ;; Elogv key bindings. - (define-key elogt-mode-map (kbd "A") #'elogt-sort-package) - (define-key elogt-mode-map (kbd "a") #'elogt-sort-category) - (define-key elogt-mode-map (kbd "c") #'elogt-sort-priority) - (define-key elogt-mode-map (kbd "t") #'elogt-sort-time) (define-key elogt-mode-map (kbd "n l") #'elogt-narrow-priority) (define-key elogt-mode-map (kbd "n c") #'elogt-narrow-category) (define-key elogt-mode-map (kbd "n p") #'elogt-narrow-package) (define-key elogt-mode-map (kbd "n t") #'elogt-narrow-time) + ;; Elogv-mimicking key bindings. + (define-key elogt-mode-map (kbd "A") #'elogt-sort-package) + (define-key elogt-mode-map (kbd "a") #'elogt-sort-category) + (define-key elogt-mode-map (kbd "c") #'elogt-sort-priority) + (define-key elogt-mode-map (kbd "t") #'elogt-sort-time) ;; Miscellaneous key bindings. (define-key elogt-mode-map (kbd "/") #'isearch-forward) elogt-mode-map) - "Key map for `elogt' major mode.") + "Key map for `elogt-mode'.") + +(easy-menu-define elogt-mode-menu elogt-mode-map + "Menu for `elogt-mode'." + `("ElogT" + ;; Menu-bar: standard. + ["Open current entry" elogt-open-entry] + ["Delete current entry" elogt-delete-entry] + ["Refresh the table" elogt-refresh-table] + ;; Menu-bar: narrow. + ("Narrow" + ["Narrow to Priority" elogt-narrow-priority] + ["Narrow to Category" elogt-narrow-category] + ["Narrow to Package" elogt-narrow-package] + ["Narrow to Time" elogt-narrow-time]) + ;; Menu-bar: sort. + ("Sort" + ["Sort by Priority" elogt-sort-priority] + ["Sort by Category" elogt-sort-category] + ["Sort by Package" elogt-sort-package] + ["Sort by Time" elogt-sort-time]))) (define-derived-mode elogt-mode tabulated-list-mode "ElogT" -- cgit v1.2.3-65-gdbad