view nt/Emacs.ad.h @ 5679:a81a739181dc

Add command remapping, a more robust alternative to #'substitute-key-definition src/ChangeLog addition: 2012-09-02 Aidan Kehoe <kehoea@parhasard.net> * keymap.c: Add command remapping, a more robust equivalent to #'substitute-key-definition. * keymap.c (CHECK_REMAPPING_POSITION): New. * keymap.c (keymap_equal): Correct a comment here. * keymap.c (Fdefine_key): Document the command remapping syntax. * keymap.c (Fremap_command): New. * keymap.c (command_remapping): New. * keymap.c (Fcommand_remapping): New. * keymap.c (commands_remapped_to_mapper): New. * keymap.c (commands_remapped_to_traverser): New. * keymap.c (Fcommands_remapped_to): New. * keymap.c (get_relevant_keymaps): Take a new POSITION argument. * keymap.c (Fcurrent_keymaps, event_binding): Supply the new POSITION argument to get_relevant_keymaps. * keymap.c (Fkey_binding): Add new arguments, NO-REMAP and POSITION. * keymap.c (map_keymap_mapper): * keymap.c (Fwhere_is_internal): * keymap.c (where_is_to_char): * keymap.c (where_is_recursive_mapper): Don't expose the key remapping in these functions. This conflicts with GNU, but is more sane for our callers. Access to command remapping is with the functions #'command-remapping, #'commands-remapped-to, and #'remap-command, not with the general keymap functions, apart from the compatibility hack in #'define-key. * keymap.c (syms_of_keymap): * keymap.c (vars_of_keymap): * keymap.c (complex_vars_of_keymap): * lisp.h: New CHECK_COMMAND macro. man/ChangeLog addition: 2012-09-02 Aidan Kehoe <kehoea@parhasard.net> * lispref/keymaps.texi (Keymaps): * lispref/keymaps.texi (Changing Key Bindings): * lispref/keymaps.texi (Scanning Keymaps): * lispref/keymaps.texi (Remapping commands): * lispref/keymaps.texi (XEmacs): New. * lispref/keymaps.texi (Other Keymap Functions): Document the new command remapping functionality in this file. lisp/ChangeLog addition: 2012-09-02 Aidan Kehoe <kehoea@parhasard.net> * help.el (describe-function-1): Document any command remapping that has been done in this function. tests/ChangeLog addition: 2012-09-02 Aidan Kehoe <kehoea@parhasard.net> * automated/keymap-tests.el: Test the new command remapping functionality.
author Aidan Kehoe <kehoea@parhasard.net>
date Sun, 02 Sep 2012 14:31:40 +0100
parents e01bac102bc0
children
line wrap: on
line source

/* Copyright (C) 1997 David Hobley

This file is part of XEmacs.

XEmacs is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version.

XEmacs is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with XEmacs.  If not, see <http://www.gnu.org/licenses/>. */


(String) "Emacs.modeline*attributeForeground:	Black",
(String) "Emacs.modeline*attributeBackground:	Gray75",
(String) "Emacs.text-cursor*attributeBackground:	Red3",
(String) "*menubar*Foreground:			Gray30",
(String) "*menubar*Background:			Gray75",
(String) "*menubar*buttonForeground:		Blue",
(String) "*XlwMenu*selectColor:			ForestGreen",
(String) "*XmToggleButton*selectColor:		ForestGreen",
(String) "*popup*Foreground:			Black",
(String) "*popup*Background:			Gray75",
(String) "*dialog*Foreground:			Black",
(String) "*dialog*Background:			#A5C0C1",
(String) "*dialog*XmTextField*Background:		WhiteSmoke",
(String) "*dialog*XmText*Background:		WhiteSmoke",
(String) "*dialog*XmList*Background:		WhiteSmoke",
(String) "*dialog*Command*Background:		WhiteSmoke",
(String) "*XlwScrollBar*Foreground:		Gray30",
(String) "*XlwScrollBar*Background:		Gray75",
(String) "*XmScrollBar*Foreground:		Gray30",
(String) "*XmScrollBar*Background:		Gray75",
(String) "*topToolBarShadowColor:			Gray90",
(String) "*bottomToolBarShadowColor:		Gray40",
(String) "*backgroundToolBarColor:		Gray75",
(String) "*toolBarShadowThickness:		2",
(String) "*menubar*Font: 			-*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*",
(String) "*popup*Font:			-*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*",
(String) "*XmDialogShell*FontList:	-*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*",
(String) "*XmTextField*FontList:		-*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*",
(String) "*XmText*FontList:		-*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*",
(String) "*XmList*FontList:		-*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*",
(String) "*Dialog*Font:			-*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-*",
(String) "*dialog*button1.accelerators:#override\
<KeyPress>Return: ArmAndActivate()\\n\
<KeyPress>KP_Enter: ArmAndActivate()\\n\
Ctrl<KeyPress>m: ArmAndActivate()\\n",
(String) "*XmTextField*translations: #override\\n\
	!<Key>osfBackSpace:	delete-previous-character()\\n\
	!<Key>osfDelete:	delete-previous-character()\\n\
	!Ctrl<Key>h: 		delete-previous-character()\\n\
	!Ctrl<Key>d: 		delete-next-character()\\n\
	!Meta<Key>osfDelete:	delete-previous-word()\\n\
	!Meta<Key>osfBackSpace:	delete-previous-word()\\n\
	!Meta<Key>d:		delete-next-word()\\n\
	!Ctrl<Key>k:		delete-to-end-of-line()\\n\
	!Ctrl<Key>g:		process-cancel()\\n\
	!Ctrl<Key>b:		backward-character()\\n\
	!<Key>osfLeft:		backward-character()\\n\
	!Ctrl<Key>f:		forward-character()\\n\
	!<Key>osfRight:		forward-character()\\n\
	!Meta<Key>b:		backward-word()\\n\
	!Meta<Key>osfLeft:	backward-word()\\n\
	!Meta<Key>f:		forward-word()\\n\
	!Meta<Key>osfRight:	forward-word()\\n\
	!Ctrl<Key>e:		end-of-line()\\n\
	!Ctrl<Key>a:		beginning-of-line()\\n\
	!Ctrl<Key>w:		cut-clipboard()\\n\
	!Meta<Key>w:		copy-clipboard()\\n\
	<Btn2Up>:		copy-primary()\\n",
(String) "*dialog*XmPushButton*translations:#override\\n\
    <Btn1Down>:         Arm()\\n\
    <Btn1Down>,<Btn1Up>: Activate()\
			Disarm()\\n\
    <Btn1Down>(2+):     MultiArm()\\n\
    <Btn1Up>(2+):       MultiActivate()\\n\
    <Btn1Up>:           Activate()\
		        Disarm()\\n\
    <Key>osfSelect:  	ArmAndActivate()\\n\
    <Key>osfActivate:   ArmAndActivate()\\n\
    <Key>osfHelp:	Help()\\n\
    ~Shift ~Meta ~Alt <Key>Return:	ArmAndActivate()\\n\
    <EnterWindow>:      Enter()\\n\
    <LeaveWindow>:      Leave()\\n",
(String) "*ximStyles: XIMPreeditPosition|XIMStatusArea\
            XIMPreeditPosition|XIMStatusNothing\
            XIMPreeditPosition|XIMStatusNone\
            XIMPreeditNothing|XIMStatusArea\
            XIMPreeditNothing|XIMStatusNothing\
            XIMPreeditNothing|XIMStatusNone\
            XIMPreeditNone|XIMStatusArea\
            XIMPreeditNone|XIMStatusNothing\
            XIMPreeditNone|XIMStatusNone",
(String) "*EmacsFrame.ximForeground: black",
(String) "*EmacsFrame.ximBackground: white",