[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 0a70727: Port snake menu to Emacs
From: |
Stefan Kangas |
Subject: |
[Emacs-diffs] master 0a70727: Port snake menu to Emacs |
Date: |
Thu, 17 Oct 2019 13:40:01 -0400 (EDT) |
branch: master
commit 0a70727c4024ac6a66c378df52e37808ee2d7993
Author: Stefan Kangas <address@hidden>
Commit: Stefan Kangas <address@hidden>
Port snake menu to Emacs
* lisp/play/snake.el (snake--menu-def): New constant.
(snake-mode-menu, snake-null-menu): Add a menu.
(snake-mode): Remove XEmacs compat code.
(snake-mode-map, snake-null-map): Add docstring.
---
lisp/play/snake.el | 42 +++++++++++++++++++++++++++++-------------
1 file changed, 29 insertions(+), 13 deletions(-)
diff --git a/lisp/play/snake.el b/lisp/play/snake.el
index d0f9457..5e8a718 100644
--- a/lisp/play/snake.el
+++ b/lisp/play/snake.el
@@ -186,12 +186,39 @@ and then start moving it leftwards.")
(define-key map "\C-f" 'snake-move-right)
(define-key map "\C-p" 'snake-move-up)
(define-key map "\C-n" 'snake-move-down)
- map))
+ map)
+ "Keymap for Snake games.")
(defvar snake-null-map
(let ((map (make-sparse-keymap 'snake-null-map)))
(define-key map "n" 'snake-start-game)
- map))
+ map)
+ "Keymap for finished Snake games.")
+
+(defconst snake--menu-def
+ '("Snake"
+ ["Start new game" snake-start-game
+ :help "Start a new Snake game"]
+ ["End game" snake-end-game
+ :active (snake-active-p)
+ :help "End the current Snake game"]
+ ["Pause" snake-pause-game
+ :active (and (snake-active-p) (not snake-paused))
+ :help "Pause running Snake game"]
+ ["Resume" snake-pause-game
+ :active (and (snake-active-p) snake-paused)
+ :help "Resume paused Snake game"])
+ "Menu for `snake'. Used to initialize menus.")
+
+(easy-menu-define
+ snake-mode-menu snake-mode-map
+ "Menu for running Snake games."
+ snake--menu-def)
+
+(easy-menu-define
+ snake-null-menu snake-null-map
+ "Menu for finished Snake games."
+ snake--menu-def)
;; ;;;;;;;;;;;;;;;; game functions ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -368,17 +395,6 @@ Argument SNAKE-BUFFER is the name of the buffer."
(use-local-map snake-null-map)
- (unless (featurep 'emacs)
- (setq mode-popup-menu
- '("Snake Commands"
- ["Start new game" snake-start-game]
- ["End game" snake-end-game
- (snake-active-p)]
- ["Pause" snake-pause-game
- (and (snake-active-p) (not snake-paused))]
- ["Resume" snake-pause-game
- (and (snake-active-p) snake-paused)])))
-
(setq gamegrid-use-glyphs snake-use-glyphs-flag)
(setq gamegrid-use-color snake-use-color-flag)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master 0a70727: Port snake menu to Emacs,
Stefan Kangas <=