Generic_Window_Manager/data/emacs-mouse.gwm

59 lines
2.0 KiB
Plaintext

; EMACS MOUSE CODES
; =================
;;File: emacs-mouse.gwm -- control codes for GOSLING emacs mouse support
;;Author: colas@mirsa.inria.fr (Colas NAHABOO) -- Bull Research FRANCE
;;Revision: 1.0 -- Jan 31 1989
;;State: Exp
;;GWM Version: 1.4
; This package traps mouse control-clicks and send them as keycodes to the
; underneath xterm, supposedly running a Gosling emacs. You will need the
; "gwm.ml" MockLisp package to interpret them
; Sends: ^X 7 x ; y ; n
; Where x,y are the click coordinates in char (increment) positions,
; and n the button number
; The variable "emacs-mouse-loaded" is set to t for decorations supporting it
(defname 'emacs-pop screen.)
(de emacs-click (n)
(: l (current-event-window-coords))
(send-key-to-window 0x78 with-control) ; ^X
(send-key-to-window 0x37 alone) ; 7
(: x (# 0 l))
(: y (# 1 l))
(send-key-to-window (+ 0x30 (/ x 10)) alone); x
(send-key-to-window (+ 0x30 (% x 10)) alone)
(send-key-to-window 0x3b alone) ; ;
(send-key-to-window (+ 0x30 (/ y 10)) alone); y
(send-key-to-window (+ 0x30 (% y 10)) alone)
(send-key-to-window 0x3b alone) ; ;
(send-key-to-window (+ 0x30 n) alone) ; button number
))
(with (fsm pop-fsm menu ())
(: emacs-pop
(menu-make
(item-make "Macro" ; ^Xe
(progn (send-key-to-window 0x78 with-control)
(send-key-to-window 0x65 alone)))
(item-make "Copy" ; Esc-W
(progn (send-key-to-window 0xff1b alone)
(send-key-to-window 0x77 alone)))
(item-make "Cut" ; ^W
(progn (send-key-to-window 0x77 with-control)))
(item-make "Paste" ; ^Y
(progn (send-key-to-window 0x79 with-control)))
(item-make "Re-Search" ; ^S^M
(progn (send-key-to-window 0x73 with-control)
(send-key-to-window 0x6d with-control)))
(item-make "Goto Func" ; Esc-xv fu
(progn
(send-key-to-window 0xff1b alone)
(send-key-to-window "xv fu " alone)))
))
)
(: emacs-mouse-loaded t)