Mercurial > 510Connectbot
comparison src/com/five_ten_sg/connectbot/service/TerminalKeyListener.java @ 52:0e3fc85d0586 tn5250
start tn5250 integration
author | Carl Byington <carl@five-ten-sg.com> |
---|---|
date | Wed, 11 Jun 2014 12:18:18 -0700 |
parents | 8c6de858bb73 |
children | e872762ec105 |
comparison
equal
deleted
inserted
replaced
51:8c6de858bb73 | 52:0e3fc85d0586 |
---|---|
119 | 119 |
120 public void sendEscape() { | 120 public void sendEscape() { |
121 buffer.write(0x1b); | 121 buffer.write(0x1b); |
122 } | 122 } |
123 | 123 |
124 protected void sendEncoded(String s) { | |
125 buffer.write(s.getBytes(encoding)); | |
126 } | |
127 | |
124 /** | 128 /** |
125 * Handle onKey() events coming down from a {@link com.five_ten_sg.connectbot.TerminalView} above us. | 129 * Handle onKey() events coming down from a {@link com.five_ten_sg.connectbot.TerminalView} above us. |
126 * Modify the keys to make more sense to a host then pass it to the vt320. | 130 * Modify the keys to make more sense to a host then pass it to the vt320. |
127 */ | 131 */ |
128 public boolean onKey(View v, int keyCode, KeyEvent event) { | 132 public boolean onKey(View v, int keyCode, KeyEvent event) { |
196 | 200 |
197 bridge.resetScrollPosition(); | 201 bridge.resetScrollPosition(); |
198 | 202 |
199 if (keyCode == KeyEvent.KEYCODE_UNKNOWN && | 203 if (keyCode == KeyEvent.KEYCODE_UNKNOWN && |
200 event.getAction() == KeyEvent.ACTION_MULTIPLE) { | 204 event.getAction() == KeyEvent.ACTION_MULTIPLE) { |
201 byte[] input = event.getCharacters().getBytes(encoding); | 205 sendEncoded(event.getCharacters()); |
202 buffer.write(input); | |
203 return true; | 206 return true; |
204 } | 207 } |
205 | 208 |
206 int curMetaState = event.getMetaState(); | 209 int curMetaState = event.getMetaState(); |
207 final int orgMetaState = curMetaState; | 210 final int orgMetaState = curMetaState; |
287 return true; | 290 return true; |
288 | 291 |
289 if (uchar < 0x80) | 292 if (uchar < 0x80) |
290 buffer.write(uchar); | 293 buffer.write(uchar); |
291 else | 294 else |
292 // TODO write encoding routine that doesn't allocate each time | 295 sendEncoded(new String(Character.toChars(uchar))); |
293 buffer.write(new String(Character.toChars(uchar)) | |
294 .getBytes(encoding)); | |
295 | 296 |
296 return true; | 297 return true; |
297 } | 298 } |
298 | 299 |
299 // send ctrl and meta-keys as appropriate | 300 // send ctrl and meta-keys as appropriate |
792 metaState |= code; | 793 metaState |= code; |
793 bridge.redraw(); | 794 bridge.redraw(); |
794 } | 795 } |
795 } | 796 } |
796 | 797 |
797 private void metaKeyUp(int code) { | 798 protected void metaKeyUp(int code) { |
798 if ((metaState & code) != 0) { | 799 if ((metaState & code) != 0) { |
799 metaState &= ~code; | 800 metaState &= ~code; |
800 bridge.redraw(); | 801 bridge.redraw(); |
801 } | 802 } |
802 } | 803 } |