Skip to content

Commit

Permalink
Extract common helper methods into shared.js
Browse files Browse the repository at this point in the history
  • Loading branch information
garykac committed Oct 25, 2018
1 parent b65086b commit f412e58
Show file tree
Hide file tree
Showing 7 changed files with 101 additions and 96 deletions.
1 change: 1 addition & 0 deletions focus-event-viewer.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<script type="text/javascript" src="output-table.js" ></script>
<script type="text/javascript" src="options.js" ></script>
<script type="text/javascript" src="shared.js" ></script>
<script type="text/javascript" src="focus-event-viewer.js" ></script>
<link rel="stylesheet" type="text/css" href="focus-event-viewer.css" />

Expand Down
1 change: 1 addition & 0 deletions key-event-viewer-ce.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<script type="text/javascript" src="output-table.js" ></script>
<script type="text/javascript" src="options.js" ></script>
<script type="text/javascript" src="shared.js" ></script>
<script type="text/javascript" src="key-event-viewer.js" ></script>
<link rel="stylesheet" type="text/css" href="key-event-viewer.css" />

Expand Down
1 change: 1 addition & 0 deletions key-event-viewer.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<script type="text/javascript" src="output-table.js" ></script>
<script type="text/javascript" src="options.js" ></script>
<script type="text/javascript" src="shared.js" ></script>
<script type="text/javascript" src="key-event-viewer.js" ></script>
<link rel="stylesheet" type="text/css" href="key-event-viewer.css" />

Expand Down
1 change: 1 addition & 0 deletions mouse-event-viewer-shadow.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<script type="text/javascript" src="output-table.js" ></script>
<script type="text/javascript" src="options.js" ></script>
<script type="text/javascript" src="shared.js" ></script>
<script type="text/javascript" src="mouse-event-viewer-shared.js" ></script>
<script type="text/javascript" src="mouse-event-viewer-shadow.js" ></script>
<link rel="stylesheet" type="text/css" href="mouse-event-viewer.css" />
Expand Down
1 change: 1 addition & 0 deletions mouse-event-viewer.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<script type="text/javascript" src="output-table.js" ></script>
<script type="text/javascript" src="options.js" ></script>
<script type="text/javascript" src="shared.js" ></script>
<script type="text/javascript" src="mouse-event-viewer-shared.js" ></script>
<script type="text/javascript" src="mouse-event-viewer-core.js" ></script>
<link rel="stylesheet" type="text/css" href="mouse-event-viewer.css" />
Expand Down
100 changes: 4 additions & 96 deletions output-table.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ var _seqId = 1;
// Format:
// array of <group-info>
// <group-info> : [ <group-title>, <group-type>, <styles>, <num-cols>, <columns> ]
// <group-title> :
// <group-title> :
// <group-type> : cell type for style
// <columns> : an array of <col-info>
// <col-info> : [ <title>, <cell-type>, <options> ]
Expand Down Expand Up @@ -84,19 +84,19 @@ function addEventToOutput(eventinfo, extra_class) {
var type = col[1];
var format = col[2];
var options = col[3];

var val = eventinfo[title];
if (title == '#') {
val = _seqId;
}

var style = undefined;
var align = undefined;
if (options && val != "") {
style = options['style'];
align = options['align'];
}

if (format == 'text')
addTableCellText(row, val, type, style, undefined, align);
else if (format == 'bool')
Expand Down Expand Up @@ -181,95 +181,3 @@ function addTableCell(row, data, celltype, style, span, align) {
cell.style.display = "none";
}
}

// =====
// Helper functions
// =====

function clearChildren(e) {
while (e.firstChild !== null) {
e.removeChild(e.firstChild);
}
}

function setText(e, text) {
clearChildren(e);
e.appendChild(document.createTextNode(text));
}

function addEventListener(obj, etype, handler) {
if (obj.addEventListener) {
obj.addEventListener(etype, handler, false);
} else if (obj.attachEvent) {
obj.attachEvent("on" + etype, handler);
} else {
obj["on" + etype] = handler;
}
}

function handleDefaultPropagation(etype, e) {
var preventDefault = document.getElementById("pd_" + etype);
if (preventDefault.checked && e.preventDefault) {
e.preventDefault();
}
var stopPropagation = document.getElementById("sp_" + etype);
if (stopPropagation.checked && e.stopPropagation) {
e.stopPropagation();
}
// Always prevent default for Tab.
if (e.keyCode == 9 || e.code == "Tab") {
e.preventDefault();
}
}

function getModifierState(e) {
Modifiers = [
"Alt", "AltGraph", "Control", "Shift", "Meta",
// Locking keys
"CapsLock", "NumLock", "ScrollLock",
// Linux
"Hyper", "Super",
// Virtual keyboards
"Symbol", "SymbolLock",
// Not valid, but check anyway
"Fn", "FnLock",
];

// Safari doesn't define getModifierState for mouse events.
if (e.getModifierState === undefined) {
return "Undefined";
}

mods = undefined;
for (var mod of Modifiers) {
if (e.getModifierState(mod)) {
if (!mods) {
mods = mod;
} else {
mods += ", " + mod;
}
}
}
return mods;
}

function getEventPhase(e) {
var p = e.eventPhase;
var phase = '?';
if (p == 0)
phase = 'None';
else if (p == 1)
phase = 'Capturing';
else if (p == 2)
phase = 'AtTarget';
else if (p == 3)
phase = 'Bubbling';
return phase;
}

function calcString(data) {
if (data === undefined) {
return data;
}
return "'" + data + "'";
}
92 changes: 92 additions & 0 deletions shared.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
// Shared helper
// Gary Kacmarcik - garykac@{gmail|google}.com

function clearChildren(e) {
while (e.firstChild !== null) {
e.removeChild(e.firstChild);
}
}

function setText(e, text) {
clearChildren(e);
e.appendChild(document.createTextNode(text));
}

function addEventListener(obj, etype, handler) {
if (obj.addEventListener) {
obj.addEventListener(etype, handler, false);
} else if (obj.attachEvent) {
obj.attachEvent("on" + etype, handler);
} else {
obj["on" + etype] = handler;
}
}

function handleDefaultPropagation(etype, e) {
var preventDefault = document.getElementById("pd_" + etype);
console.log("preventDefault for " + etype + " ");
console.log(preventDefault);
if (preventDefault.checked && e.preventDefault) {
e.preventDefault();
}
var stopPropagation = document.getElementById("sp_" + etype);
if (stopPropagation.checked && e.stopPropagation) {
e.stopPropagation();
}
// Always prevent default for Tab.
if (e.keyCode == 9 || e.code == "Tab") {
e.preventDefault();
}
}

function getModifierState(e) {
Modifiers = [
"Alt", "AltGraph", "Control", "Shift", "Meta",
// Locking keys
"CapsLock", "NumLock", "ScrollLock",
// Linux
"Hyper", "Super",
// Virtual keyboards
"Symbol", "SymbolLock",
// Not valid, but check anyway
"Fn", "FnLock",
];

// Safari doesn't define getModifierState for mouse events.
if (e.getModifierState === undefined) {
return "Undefined";
}

mods = undefined;
for (var mod of Modifiers) {
if (e.getModifierState(mod)) {
if (!mods) {
mods = mod;
} else {
mods += ", " + mod;
}
}
}
return mods;
}

function getEventPhase(e) {
var p = e.eventPhase;
var phase = '?';
if (p == 0)
phase = 'None';
else if (p == 1)
phase = 'Capturing';
else if (p == 2)
phase = 'AtTarget';
else if (p == 3)
phase = 'Bubbling';
return phase;
}

function calcString(data) {
if (data === undefined) {
return data;
}
return "'" + data + "'";
}

0 comments on commit f412e58

Please sign in to comment.