Changeset 8728


Ignore:
Timestamp:
03/06/05 19:33:22 (16 years ago)
Author:
piso
Message:

lookupEventSequence()

File:
1 edited

Legend:

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

    r8725 r8728  
    33 *
    44 * Copyright (C) 1998-2005 Peter Graves
    5  * $Id: KeyMap.java,v 1.25 2005-03-06 16:30:06 piso Exp $
     5 * $Id: KeyMap.java,v 1.26 2005-03-06 19:33:22 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    405405    }
    406406
     407    public synchronized final KeyMapping lookupEventSequence(EventSequence es)
     408    {
     409        KeyMap requestedKeyMap = null;
     410        KeyMapping mapping = null;
     411        final int limit = es.size();
     412        for (int i = 0; i < limit; i++) {
     413            final JEvent e = es.getEvent(i);
     414            if (requestedKeyMap != null) {
     415                mapping = requestedKeyMap.lookup(e.getKeyChar(), e.getKeyCode(),
     416                                                 e.getModifiers());
     417            } else {
     418                mapping = lookup(e.getKeyChar(), e.getKeyCode(),
     419                                 e.getModifiers());
     420            }
     421            if (mapping == null)
     422                return null;
     423            final Object command = mapping.getCommand();
     424            if (command instanceof KeyMap) {
     425                requestedKeyMap = (KeyMap) command;
     426                continue;
     427            }
     428            if (i < limit - 1) {
     429                // Sequence is too long.
     430                return null;
     431            }
     432        }
     433        return mapping;
     434    }
     435
    407436    public synchronized final KeyMapping lookup(char keyChar, int keyCode,
    408437                                                int modifiers)
Note: See TracChangeset for help on using the changeset viewer.