;;; popup-test.el --- Test popup menu. -*- lexical-binding: t; -*- (require 'easymenu) (defvar popup-test-value 0) (defun popup-test-select (value) (message "Selected %s" value) (setq popup-test-value value)) (defvar popup-test-menu '("popup-test" :active t "--single-line" [0 (popup-test-select 0) :label "Zero" :style radio :selected (eql 0 popup-test-value)] [1 (popup-test-select 1) :label "One" :style radio :selected (eql 1 popup-test-value)] [2 (popup-test-select 2) :label "Two" :style radio :selected (eql 2 popup-test-value)] [3 (popup-test-select 3) :label "Three" :style radio :selected (eql 3 popup-test-value)] [4 (popup-test-select 4) :label "Four" :style radio :selected (eql 4 popup-test-value)])) (easy-menu-define popup-test-show-menu nil "Context sensitive menu" popup-test-menu) (defun popup-test-action (event) (interactive "e") (let ((result (popup-test-show-menu event))) (popup-test-select (car result)))) (defface popup-test-face '((((background dark)) (:foreground "cyan" :background "DimGray")) (t (:foreground "DarkRed"))) "*popup-test demonstration face") (defvar popup-test-map (make-sparse-keymap)) (define-key popup-test-map [mouse-3] 'popup-test-action) (let ((buffer (get-buffer-create "*popup-test*"))) (with-current-buffer buffer (erase-buffer) (insert (propertize "Right click here." 'face 'popup-test-face 'keymap popup-test-map 'rear-nonsticky t)) (pop-to-buffer buffer))) (provide 'popup-test) ;;; popup-test.el ends here