Changeset 8676


Ignore:
Timestamp:
03/01/05 20:27:39 (16 years ago)
Author:
piso
Message:

Support emacs-style key bindings (work in progress).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/j/src/org/armedbear/j/Editor.java

    r8597 r8676  
    33 *
    44 * Copyright (C) 1998-2005 Peter Graves
    5  * $Id: Editor.java,v 1.135 2005-02-17 15:47:46 piso Exp $
     5 * $Id: Editor.java,v 1.136 2005-03-01 20:27:39 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    24312431    }
    24322432
     2433    private KeyMap requestedKeyMap;
     2434
     2435    private String prefixKeyStatusText;
     2436
    24332437    public boolean handleKeyEvent(char keyChar, int keyCode, int modifiers)
    24342438    {
     
    24602464                    catch (NoSuchMethodException e) {}
    24612465                }
     2466            } else if (command instanceof KeyMap) {
     2467                //Log.debug("setting requestedKeyMap to " + command);
     2468                requestedKeyMap = (KeyMap) command;
     2469                if (prefixKeyStatusText == null) {
     2470                    prefixKeyStatusText = mapping.getKeyText() + "-";
     2471                } else {
     2472                    prefixKeyStatusText =
     2473                        prefixKeyStatusText + mapping.getKeyText();
     2474                }
     2475                status(prefixKeyStatusText);
     2476                return true;
    24622477            } else if (command instanceof LispObject) {
    24632478                try {
     
    24752490    public KeyMapping getKeyMapping(char keyChar, int keyCode, int modifiers)
    24762491    {
     2492        if (requestedKeyMap != null) {
     2493            KeyMapping mapping =
     2494                requestedKeyMap.lookup(keyChar, keyCode, modifiers);
     2495            if (mapping != null) {
     2496                requestedKeyMap = null;
     2497                prefixKeyStatusText = null;
     2498            } else if (keyChar == 7 && keyCode == 0x47 && modifiers == 2) {
     2499                // Control G
     2500                requestedKeyMap = null;
     2501                prefixKeyStatusText = null;
     2502                status("");
     2503            }
     2504            return mapping;
     2505        }
    24772506        // Look in mode-specific key map.
    24782507        KeyMapping mapping =
Note: See TracChangeset for help on using the changeset viewer.