MCPcopy
hub / github.com/dli/paint / Buttons

Function Buttons

buttons.js:4–56  ·  view source on GitHub ↗
(element, buttonNames, initialActiveIndex, changeCallback)

Source from the content-addressed store, hash-verified

2 'use strict';
3
4 var Buttons = function (element, buttonNames, initialActiveIndex, changeCallback) {
5
6 var elements = [];
7 for (var i = 0; i < buttonNames.length; ++i) {
8 var button = document.createElement('div');
9 button.innerHTML = buttonNames[i];
10 element.appendChild(button);
11 elements.push(button);
12 }
13
14 var activeElement = elements[initialActiveIndex];
15
16 var refresh = function () {
17 for (var i = 0; i < elements.length; ++i) {
18 if (elements[i] === activeElement) {
19 elements[i].className = 'button-selected';
20 } else {
21 elements[i].className = 'button-unselected';
22 }
23 }
24 };
25
26 for (var i = 0; i < elements.length; ++i) {
27 (function () { //create closure to store index
28 var index = i;
29 var clickedElement = elements[i];
30
31 var onSelect = function (event) {
32 event.preventDefault();
33
34 if (activeElement !== clickedElement) {
35 activeElement = clickedElement;
36
37 changeCallback(index);
38
39 refresh();
40 }
41
42 };
43
44 elements[i].addEventListener('click', onSelect);
45 elements[i].addEventListener('touchstart', onSelect);
46 }());
47 }
48
49 this.setIndex = function (index) {
50 activeElement = elements[index];
51
52 refresh();
53 };
54
55 refresh();
56 };
57
58 return Buttons;
59}());

Callers

nothing calls this directly

Calls 1

refreshFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…