📄 vkboards.js
字号:
case 10:
key.innerHTML = this.DeadAction[1] ? this.DeadAction[0] : " ";
default:
if((this.DeadAction[1] && (i != 10)) || ((i == 8) || (i == 9) || (i == 12) || (i ==13)))
this._set_key_state(key, false, ibc, ibc, ikc);
else
this._set_key_state(key, true, fc, bc, kc);
var ks = key.style;
switch(i)
{
case 4: ks.borderBottomColor = kc; break;
case 8: case 9: case 12: case 13: ks.borderColor = ibc; break;
}
}
}
i = this.pad.length;
while(--i >= 0)
{
key = this.pad[i];
if(this.DeadAction[1])
this._set_key_state(key, false, ibc, ibc, ikc);
else
this._set_key_state(key, true, fc, bc, kc);
}
},
_handle_lang_menu: function(event)
{
var in_el = VKeyboard.prototype._get_event_source(event);
var container_id = in_el.id.substring(0, in_el.id.indexOf("___"));
var vkb = VKeyboard.kbArray[container_id];
var ct = vkb.Cntr, menu = vkb.menu;
if(menu)
{ ct.removeChild(menu); vkb.menu = null; }
else
{
var fs = vkb.fontsize, kc = vkb.keycolor, bc = "1px solid " + vkb.bordercolor;
var pad = vkb.pad.length, per_row = pad ? 5 : 4, item_wd = pad ? 108 : 103;
var num_rows = Math.ceil(vkb.avail_langs.length / per_row);
var mag = parseFloat(fs) / 14.0, cell = Math.floor(25.0 * mag), cp = cell + "px", lh = (cell - 2) + "px", w = item_wd * mag;
var h1 = Math.floor(cell + mag), h2 = String(w - mag) + "px", pad = String(4 * mag) + "px", wd = String(w * per_row + 1) + "px";
var langs = vkb.avail_langs.length;
menu = document.createElement("DIV"); var ms = menu.style;
ms.display = "block";
ms.position = "relative";
ms.top = "1px", ms.left = "0px";
ms.width = wd;
ms.border = bc;
ms.backgroundColor = vkb.bgcolor;
vkb.menu = ct.appendChild(menu);
var menu_main = document.createElement("DIV"); ms = menu_main.style;
ms.fontFamily = vkb.fontname;
ms.position = "relative";
ms.color = vkb.fontcolor;
ms.width = wd;
ms.height = String(num_rows * h1 + 1) + "px";
ms.cursor = "default";
menu.appendChild(menu_main);
function setcolor(obj, c) { return function() { obj.style.backgroundColor = c; } };
for(var j = 0; j < langs; j++)
{
var item = vkb._setup_key(menu_main, "___lang_" + String(j), String(h1 * Math.floor(j / per_row) + 1) + "px", String((j % per_row) * w + 1) + "px", h2, cp, "center", lh, fs, "normal", pad);
item.style.backgroundColor = kc;
item.style.border = bc;
item.innerHTML = vkb.avail_langs[j][1];
vkb._setup_event(item, 'mousedown', vkb._handle_lang_item);
vkb._setup_event(item, 'mouseover', setcolor(item, vkb.lic));
vkb._setup_event(item, 'mouseout', setcolor(item, kc));
}
}
},
_handle_lang_item: function(event)
{
var in_el = VKeyboard.prototype._get_event_source(event);
var container_id = in_el.id.substring(0, in_el.id.indexOf("___"));
var vkb = VKeyboard.kbArray[container_id];
var ndx = in_el.id.indexOf("___lang_");
var lng = in_el.id.substring(ndx + 8, in_el.id.length);
var newl = vkb.avail_langs[lng][0];
if(vkb.mod[7].innerHTML != newl)
vkb._refresh_layout(newl);
vkb.Cntr.removeChild(vkb.menu);
vkb.menu = null;
},
_generic_callback_proc: function(event)
{
var in_el = VKeyboard.prototype._get_event_source(event);
var container_id = in_el.id.substring(0, in_el.id.indexOf("___"));
var vkb = VKeyboard.kbArray[container_id];
var val = in_el.subst || in_el.innerHTML;
if(!val) return;
switch(val)
{
case "Caps": case "Shift": case "AltGr":
vkb[val] = !vkb[val];
vkb._refresh_layout();
if(vkb.sc) vkb._start_flash(in_el);
return;
case "Tab": val = "\t"; break;
case " ": val = " "; break;
case """: val = "\""; break;
case "<": val = "<"; break;
case ">": val = ">"; break;
case "&": val = "&"; break;
}
if(vkb.sc) vkb._start_flash(in_el);
if(in_el.dead)
{
if(in_el.dead == vkb.DeadAction[1])
{ val = ""; vkb.DeadAction[0] = vkb.DeadAction[1] = null; }
else
{ vkb.DeadAction[0] = val; vkb.DeadAction[1] = in_el.dead; }
vkb._refresh_layout();
return;
}
else
{
var r;
if(vkb.DeadAction[1]) { vkb.DeadAction[0] = vkb.DeadAction[1] = null; r = true; }
if(vkb.AltGr || vkb.Shift || r)
{
vkb.AltGr = false; vkb.Shift = false;
vkb._refresh_layout();
}
}
if(vkb._Callback) vkb._Callback(val, vkb.Cntr.id);
},
SetParameters: function()
{
var l = arguments.length;
if(!l || (l % 2 != 0)) return false;
var p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16;
while(--l > 0)
{
var value = arguments[l];
switch(arguments[--l])
{
case "callback":
p0 = ((typeof(value) == "function") && ((value.length == 1) || (value.length == 2))) ? value : this._Callback;
break;
case "font-name": p1 = value; break;
case "font-size": p2 = value; break;
case "font-color": p3 = value; break;
case "dead-color": p4 = value; break;
case "base-color": p5 = value; break;
case "key-color": p6 = value; break;
case "selection-color": p7 = value; break;
case "border-color": p8 = value; break;
case "inactive-border-color": p9 = value; break;
case "inactive-key-color": p10 = value; break;
case "lang-cell-color": p11 = value; break;
case "show-click": p12 = value; break;
case "click-font-color": p13 = value; break;
case "click-key-color": p14 = value; break;
case "click-border-color": p15 = value; break;
case "layout": p16 = value; break;
default: break;
}
}
this._construct(this.Cntr.id, p0, (this.pad.length != 0), p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, this.gap, p16);
return true;
},
Show: function(value)
{
var ct = this.Cntr.style;
ct.display = ((value == undefined) || (value == true)) ? "block" : ((value == false) ? "none" : ct.display);
},
ShowNumpad: function(value)
{
var sh = ((value == undefined) || (value == true)) ? "block" : ((value == false) ? "none" : null);
if(!sh) return;
var kb = this.Cntr.childNodes[0];
var i = this.pad.length;
if(i)
{
while(--i >= 0)
this.pad[i].parentNode.style.display = sh;
kb.style.width = kb.childNodes[0].style.width = (sh == "none") ? (this.kbpH + 1) + "px" : this.kbpM + "px";
}
else
{
if(sh == "block")
{
kb.style.width = kb.childNodes[0].style.width = this._create_numpad(this.Cntr.id, kb.childNodes[0]);
this._refresh_layout();
}
}
},
// Layout info:
avail_langs: [["Us", "English (US)"], ["Ca", "Canadian"],
["Ru", "Русский"], ["De", "Deutsch"],
["Fr", "Français"], ["Es", "Español"], ["It", "Italiano"], ["Cz", "Česky"],
["El", "Έλληνας"], ["He", "עברית"]],
// Us International:
Us_normal: [["`", "Grave"], "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "-", "=",
"q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "[", "]", "\",
"a", "s", "d", "f", "g", "h", "j", "k", "l", ";", "'",,
"z", "x", "c", "v", "b", "n", "m", ",", ".", "/"],
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -