"gap": function parse_gap(e) {
- // Get attributes
- var gap_size = e.attributes["size"];
-
// Create element
var gap = document.createElement("div");
gap.className = "guac-keyboard-gap";
// Set gap size
var gap_units = 1;
- if (gap_size)
- gap_units = parseFloat(gap_size.value);
+ if (e.getAttribute("size"))
+ gap_units = parseFloat(e.getAttribute("size"));
scaledElements.push(new ScaledElement(gap, gap_units, gap_units));
row.appendChild(gap);
"key": function parse_key(e) {
- // Get attributes
- var key_size = e.attributes["size"];
- var key_class = e.attributes["class"];
-
// Create element
var key_element = document.createElement("div");
key_element.className = "guac-keyboard-key";
// Append class if specified
- if (key_class)
- key_element.className += " " + key_class.value;
+ if (e.getAttribute("class"))
+ key_element.className += " " + e.getAttribute("class");
// Position keys using container div
var key_container_element = document.createElement("div");
// Set key size
var key_units = 1;
- if (key_size)
- key_units = parseFloat(key_size.value);
+ if (e.getAttribute("size"))
+ key_units = parseFloat(e.getAttribute("size"));
key.size = key_units;
parseChildren(e, {
"cap": function parse_cap(e) {
- // Get attributes
- var required = e.attributes["if"];
- var modifier = e.attributes["modifier"];
- var keysym = e.attributes["keysym"];
- var sticky = e.attributes["sticky"];
- var cap_class = e.attributes["class"];
+ // TODO: Handle "sticky" attribute
// Get content of key cap
- var content = e.textContent;
+ var content = e.textContent || e.text;
// Get keysym
var real_keysym = null;
- if (keysym)
- real_keysym = parseInt(keysym.value);
+ if (e.getAttribute("keysym"))
+ real_keysym = parseInt(e.getAttribute("keysym"));
// If no keysym specified, try to get from key content
else if (content.length == 1) {
// Create cap
var cap = new Guacamole.OnScreenKeyboard.Cap(content, real_keysym);
- if (modifier)
- cap.modifier = modifier.value;
+ if (e.getAttribute("modifier"))
+ cap.modifier = e.getAttribute("modifier");
// Create cap element
var cap_element = document.createElement("div");
key_element.appendChild(cap_element);
// Append class if specified
- if (cap_class)
- cap_element.className += " " + cap_class.value;
+ if (e.getAttribute("class"))
+ cap_element.className += " " + e.getAttribute("class");
// Get modifier value
var modifierValue = 0;
- if (required) {
+ if (e.getAttribute("if")) {
// Get modifier value for specified comma-delimited
// list of required modifiers.
- var requirements = required.value.split(",");
+ var requirements = e.getAttribute("if").split(",");
for (var i=0; i<requirements.length; i++) {
modifierValue |= getModifier(requirements[i]);
addClass(cap_element, "guac-keyboard-requires-" + requirements[i]);
var col = document.createElement("div");
col.className = "guac-keyboard-column";
- var align = col.attributes["align"];
-
- if (align)
- col.style.textAlign = align.value;
+ if (col.getAttribute("align"))
+ col.style.textAlign = col.getAttribute("align");
// Columns can only contain rows
parseChildren(e, {
throw new Error("Root element must be keyboard");
// Get attributes
- if (!keyboard_element.attributes["size"])
+ if (!keyboard_element.getAttribute("size"))
throw new Error("size attribute is required for keyboard");
- var keyboard_size = parseFloat(keyboard_element.attributes["size"].value);
+ var keyboard_size = parseFloat(keyboard_element.getAttribute("size"));
parseChildren(keyboard_element, {