comparison src/com/five_ten_sg/connectbot/service/TerminalBridge.java @ 308:42b15aaa7ac7 ganymed

merge
author Carl Byington <carl@five-ten-sg.com>
date Wed, 30 Jul 2014 14:21:50 -0700
parents 071eccdff8ea
children 651aff5a46c7
comparison
equal deleted inserted replaced
306:90e47d99ea54 308:42b15aaa7ac7
330 relayThread.start(); 330 relayThread.start();
331 } 331 }
332 332
333 // get proper font size 333 // get proper font size
334 setMyFontSize(); 334 setMyFontSize();
335
336 // finally send any post-login string, if requested 335 // finally send any post-login string, if requested
337 injectString(host.getPostLogin()); 336 injectString(host.getPostLogin());
338 } 337 }
339 338
340 private void setMyFontSize() { 339 private void setMyFontSize() {
443 * Request a different font size. Will make call to parentChanged() to make 442 * Request a different font size. Will make call to parentChanged() to make
444 * sure we resize PTY if needed. 443 * sure we resize PTY if needed.
445 */ 444 */
446 final void setFontSize(float size) { 445 final void setFontSize(float size) {
447 if (size <= 0.0) size = 12.0f; 446 if (size <= 0.0) size = 12.0f;
447
448 size = (float)(int)((size * 10.0f) + 0.5f) / 10.0f; 448 size = (float)(int)((size * 10.0f) + 0.5f) / 10.0f;
449 defaultPaint.setTextSize(size); 449 defaultPaint.setTextSize(size);
450 fontSize = size; 450 fontSize = size;
451 // read new metrics to get exact pixel dimensions 451 // read new metrics to get exact pixel dimensions
452 FontMetrics fm = defaultPaint.getFontMetrics(); 452 FontMetrics fm = defaultPaint.getFontMetrics();
780 } 780 }
781 781
782 this.columns = cols; 782 this.columns = cols;
783 this.rows = rows; 783 this.rows = rows;
784 forcedSize = true; 784 forcedSize = true;
785
785 if (fixed) setFontSize(host.getFontSize()); 786 if (fixed) setFontSize(host.getFontSize());
786 else setFontSize(size); 787 else setFontSize(size);
787 } 788 }
788 789
789 private int fontSizeCompare(float size, int cols, int rows, int width, int height) { 790 private int fontSizeCompare(float size, int cols, int rows, int width, int height) {
1134 /** 1135 /**
1135 * Show arrows dialog 1136 * Show arrows dialog
1136 */ 1137 */
1137 public boolean showArrowsDialog() { 1138 public boolean showArrowsDialog() {
1138 final String []pickerStrings = {"←", "→", "↑", "↓", "tab", "ins", "del", "ret"}; 1139 final String []pickerStrings = {"←", "→", "↑", "↓", "tab", "ins", "del", "ret"};
1139 final HashMap<String,Integer> keymap = new HashMap<String,Integer>(); 1140 final HashMap<String, Integer> keymap = new HashMap<String, Integer>();
1140 keymap.put("←", vt320.KEY_LEFT); 1141 keymap.put("←", vt320.KEY_LEFT);
1141 keymap.put("→", vt320.KEY_RIGHT); 1142 keymap.put("→", vt320.KEY_RIGHT);
1142 keymap.put("↑", vt320.KEY_UP); 1143 keymap.put("↑", vt320.KEY_UP);
1143 keymap.put("↓", vt320.KEY_DOWN); 1144 keymap.put("↓", vt320.KEY_DOWN);
1144 keymap.put("tab", vt320.KEY_TAB); 1145 keymap.put("tab", vt320.KEY_TAB);
1145 keymap.put("ins", vt320.KEY_INSERT); 1146 keymap.put("ins", vt320.KEY_INSERT);
1146 keymap.put("del", vt320.KEY_DELETE); 1147 keymap.put("del", vt320.KEY_DELETE);
1147 keymap.put("ret", vt320.KEY_ENTER); 1148 keymap.put("ret", vt320.KEY_ENTER);
1148
1149 CharSequence str = ""; 1149 CharSequence str = "";
1150 Editable content = Editable.Factory.getInstance().newEditable(str); 1150 Editable content = Editable.Factory.getInstance().newEditable(str);
1151 1151
1152 if (parent == null) return false; 1152 if (parent == null) return false;
1153 1153
1154 StringPickerDialog cpd = new StringPickerDialog(parent.getContext(), 1154 StringPickerDialog cpd = new StringPickerDialog(parent.getContext(),
1155 parent, content, 1155 parent, content,
1156 pickerStrings, true) { 1156 pickerStrings, true) {
1157 private void buttonPressed(String s) { 1157 private void buttonPressed(String s) {
1158 if (keymap.containsKey(s)) buffer.keyPressed(keymap.get(s), ' ', 0); 1158 if (keymap.containsKey(s)) buffer.keyPressed(keymap.get(s), ' ', 0);
1159 } 1159 }
1160 @Override 1160 @Override
1161 public void onItemClick(AdapterView p, View v, int pos, long id) { 1161 public void onItemClick(AdapterView p, View v, int pos, long id) {
1163 } 1163 }
1164 @Override 1164 @Override
1165 public void onClick(View v) { 1165 public void onClick(View v) {
1166 if (v instanceof Button) { 1166 if (v instanceof Button) {
1167 final String s = ((Button) v).getText().toString(); 1167 final String s = ((Button) v).getText().toString();
1168
1168 if (s.equals("")) dismiss(); 1169 if (s.equals("")) dismiss();
1169 else buttonPressed(s); 1170 else buttonPressed(s);
1170 } 1171 }
1171 } 1172 }
1172 @Override 1173 @Override
1258 /** 1259 /**
1259 * Function keys dialog 1260 * Function keys dialog
1260 */ 1261 */
1261 public boolean showFKeysDialog() { 1262 public boolean showFKeysDialog() {
1262 final String []pickerStrings = {"F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12", "F13", "F14", "F15", "F16", "F17", "F18", "F19", "F20", "F21", "F22", "F23", "F24", "←", "→", "↑", "↓", "tab", "ins", "del", "ret"}; 1263 final String []pickerStrings = {"F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12", "F13", "F14", "F15", "F16", "F17", "F18", "F19", "F20", "F21", "F22", "F23", "F24", "←", "→", "↑", "↓", "tab", "ins", "del", "ret"};
1263 final HashMap<String,Integer> keymap = new HashMap<String,Integer>(); 1264 final HashMap<String, Integer> keymap = new HashMap<String, Integer>();
1264 keymap.put("F1", vt320.KEY_F1); 1265 keymap.put("F1", vt320.KEY_F1);
1265 keymap.put("F2", vt320.KEY_F2); 1266 keymap.put("F2", vt320.KEY_F2);
1266 keymap.put("F3", vt320.KEY_F3); 1267 keymap.put("F3", vt320.KEY_F3);
1267 keymap.put("F4", vt320.KEY_F4); 1268 keymap.put("F4", vt320.KEY_F4);
1268 keymap.put("F5", vt320.KEY_F5); 1269 keymap.put("F5", vt320.KEY_F5);
1291 keymap.put("↓", vt320.KEY_DOWN); 1292 keymap.put("↓", vt320.KEY_DOWN);
1292 keymap.put("tab", vt320.KEY_TAB); 1293 keymap.put("tab", vt320.KEY_TAB);
1293 keymap.put("ins", vt320.KEY_INSERT); 1294 keymap.put("ins", vt320.KEY_INSERT);
1294 keymap.put("del", vt320.KEY_DELETE); 1295 keymap.put("del", vt320.KEY_DELETE);
1295 keymap.put("ret", vt320.KEY_ENTER); 1296 keymap.put("ret", vt320.KEY_ENTER);
1296
1297 CharSequence str = ""; 1297 CharSequence str = "";
1298 Editable content = Editable.Factory.getInstance().newEditable(str); 1298 Editable content = Editable.Factory.getInstance().newEditable(str);
1299 1299
1300 if (parent == null) return false; 1300 if (parent == null) return false;
1301 1301
1302 StringPickerDialog cpd = new StringPickerDialog(parent.getContext(), 1302 StringPickerDialog cpd = new StringPickerDialog(parent.getContext(),
1303 parent, content, 1303 parent, content,
1304 pickerStrings, true) { 1304 pickerStrings, true) {
1305 private void buttonPressed(String s) { 1305 private void buttonPressed(String s) {
1306 if (keymap.containsKey(s)) buffer.keyPressed(keymap.get(s), ' ', 0); 1306 if (keymap.containsKey(s)) buffer.keyPressed(keymap.get(s), ' ', 0);
1307
1307 dismiss(); 1308 dismiss();
1308 } 1309 }
1309 @Override 1310 @Override
1310 public void onItemClick(AdapterView p, View v, int pos, long id) { 1311 public void onItemClick(AdapterView p, View v, int pos, long id) {
1311 buttonPressed(pickerStrings[pos]); 1312 buttonPressed(pickerStrings[pos]);
1312 } 1313 }
1313 @Override 1314 @Override
1314 public void onClick(View v) { 1315 public void onClick(View v) {
1315 if (v instanceof Button) { 1316 if (v instanceof Button) {
1316 final String s = ((Button) v).getText().toString(); 1317 final String s = ((Button) v).getText().toString();
1318
1317 if (s.equals("")) dismiss(); 1319 if (s.equals("")) dismiss();
1318 else buttonPressed(s); 1320 else buttonPressed(s);
1319 } 1321 }
1320 } 1322 }
1321 @Override 1323 @Override