Mercurial > hg > rlgwebd
comparison rlgterm.js @ 78:06375a159188
Try to guess a good text size.
When starting, resize the fonts if there isn't room for the terminal,
or if there is a lot of empty space.
author | John "Elwin" Edwards <elwin@sdf.org> |
---|---|
date | Sat, 23 Jun 2012 19:13:34 -0700 |
parents | f8bb37f48d58 |
children | e04c8bf6d4da |
comparison
equal
deleted
inserted
replaced
77:f8bb37f48d58 | 78:06375a159188 |
---|---|
384 function setup() { | 384 function setup() { |
385 keyHexCodes.init(); | 385 keyHexCodes.init(); |
386 termemu.init("termwrap", 24, 80); | 386 termemu.init("termwrap", 24, 80); |
387 setTitle("Not connected."); | 387 setTitle("Not connected."); |
388 setmode("login"); | 388 setmode("login"); |
389 /* Set up the text size. */ | |
390 var cssSize = termemu.view.style.fontSize; | |
391 var match = cssSize.match(/\d*/); | |
392 if (!match) { | |
393 return; | |
394 } | |
395 var csize = Number(match[0]); | |
396 var allscreen = document.getElementById("termwrap"); | |
397 while (csize > 9 && csize < 48) { | |
398 if (allscreen.scrollWidth * 1.2 > window.innerWidth) { | |
399 csize = textsize(false); | |
400 } | |
401 else if (allscreen.scrollWidth * 2 < window.innerWidth) { | |
402 csize = textsize(true); | |
403 } | |
404 else | |
405 break; | |
406 } | |
389 return; | 407 return; |
390 } | 408 } |
391 | 409 |
392 function toggleshift() { | 410 function toggleshift() { |
393 termemu.toggleshift(); | 411 termemu.toggleshift(); |
788 } | 806 } |
789 | 807 |
790 function textsize(larger) { | 808 function textsize(larger) { |
791 var cssSize = termemu.view.style.fontSize; | 809 var cssSize = termemu.view.style.fontSize; |
792 if (!cssSize) { | 810 if (!cssSize) { |
793 return; | 811 return null; |
794 } | 812 } |
795 var match = cssSize.match(/\d*/); | 813 var match = cssSize.match(/\d*/); |
796 if (!match) { | 814 if (!match) { |
797 return; | 815 return null; |
798 } | 816 } |
799 var csize = Number(match[0]); | 817 var csize = Number(match[0]); |
800 var nsize; | 818 var nsize; |
801 if (larger) { | 819 if (larger) { |
802 if (csize >= 48) | 820 if (csize >= 48) |
825 var cssvalstr = nsize.toString() + "px"; | 843 var cssvalstr = nsize.toString() + "px"; |
826 document.getElementById("term").style.fontSize = cssvalstr; | 844 document.getElementById("term").style.fontSize = cssvalstr; |
827 document.getElementById("keys").style.fontSize = cssvalstr; | 845 document.getElementById("keys").style.fontSize = cssvalstr; |
828 termemu.fixsize(); | 846 termemu.fixsize(); |
829 debug(1, "Changing font size to " + nsize.toString()); | 847 debug(1, "Changing font size to " + nsize.toString()); |
830 return; | 848 return nsize; |
831 } | 849 } |
832 | 850 |
833 function idlestr(ms) { | 851 function idlestr(ms) { |
834 if (typeof(ms) != "number") | 852 if (typeof(ms) != "number") |
835 return "?"; | 853 return "?"; |