GUI -- Updated Equalize Master glyph. SVG practice progress - better algorithm f…
…or changing button position. Various other small edits. Change-Id: I4d04a31b3cf5b329b2227c6ccf494de0b5603455
Showing
6 changed files
with
46 additions
and
72 deletions
... | @@ -42,6 +42,7 @@ | ... | @@ -42,6 +42,7 @@ |
42 | .button { | 42 | .button { |
43 | fill: #369; | 43 | fill: #369; |
44 | /* TODO: figure out why svg filters are not working */ | 44 | /* TODO: figure out why svg filters are not working */ |
45 | + /* is it because there is an invisible rectangle behind it? */ | ||
45 | /*filter: url(#innerbevel);*/ | 46 | /*filter: url(#innerbevel);*/ |
46 | } | 47 | } |
47 | svg text { | 48 | svg text { | ... | ... |
... | @@ -29,7 +29,7 @@ | ... | @@ -29,7 +29,7 @@ |
29 | btnHeight = 50, | 29 | btnHeight = 50, |
30 | hoverZone = 60, | 30 | hoverZone = 60, |
31 | sectorDivisions = 3, | 31 | sectorDivisions = 3, |
32 | - pageMargin = 20; | 32 | + pageMargin = 10; |
33 | 33 | ||
34 | // svg elements | 34 | // svg elements |
35 | var svg, g; | 35 | var svg, g; |
... | @@ -37,48 +37,16 @@ | ... | @@ -37,48 +37,16 @@ |
37 | // other variables | 37 | // other variables |
38 | var winWidth, winHeight, | 38 | var winWidth, winHeight, |
39 | sectorWidth, sectorHeight, | 39 | sectorWidth, sectorHeight, |
40 | - currSector = 4, | 40 | + currSector = 4, // always starts in the middle |
41 | mouse; | 41 | mouse; |
42 | 42 | ||
43 | // ==================================================== | 43 | // ==================================================== |
44 | 44 | ||
45 | - // helper functions | ||
46 | function centeredOnWindow(axis, dim) { | 45 | function centeredOnWindow(axis, dim) { |
47 | return (axis / 2) - (dim / 2); | 46 | return (axis / 2) - (dim / 2); |
48 | } | 47 | } |
49 | 48 | ||
50 | - // ==================================================== | ||
51 | - | ||
52 | - function center(elem) { | ||
53 | - $log.debug(winWidth / 2); | ||
54 | - $log.debug(winHeight / 2); | ||
55 | - $log.debug((winWidth / 2) - ((elem.node().getBBox().width) / 2)); | ||
56 | - $log.debug((winHeight / 2) - ((elem.node().getBBox().height) / 2)); | ||
57 | - return { | ||
58 | - x: (winWidth / 2) - ((elem.node().getBBox().width) / 2), | ||
59 | - y: (winHeight / 2) - ((elem.node().getBBox().height) / 2) | ||
60 | - } | ||
61 | - } | ||
62 | - | ||
63 | function showSectors() { | 49 | function showSectors() { |
64 | - svg.append('line') | ||
65 | - .attr({ | ||
66 | - x1: winWidth / 2, | ||
67 | - x2: winWidth / 2, | ||
68 | - y1: 0, | ||
69 | - y2: winHeight, | ||
70 | - stroke: 'purple', | ||
71 | - 'stroke-width': '3px' | ||
72 | - }); | ||
73 | - svg.append('line') | ||
74 | - .attr({ | ||
75 | - x1: 0, | ||
76 | - x2: winWidth, | ||
77 | - y1: winHeight / 2, | ||
78 | - y2: winHeight / 2, | ||
79 | - stroke: 'purple', | ||
80 | - 'stroke-width': '3px' | ||
81 | - }); | ||
82 | for (var i = 1; i < 5; i++) { | 50 | for (var i = 1; i < 5; i++) { |
83 | var j; | 51 | var j; |
84 | if (i < 3) { | 52 | if (i < 3) { |
... | @@ -122,37 +90,34 @@ | ... | @@ -122,37 +90,34 @@ |
122 | } | 90 | } |
123 | 91 | ||
124 | function selectSector() { | 92 | function selectSector() { |
125 | - var sector, row, col; | 93 | + var sector, row, col, |
94 | + currSectorCol = currSector % sectorDivisions; | ||
126 | 95 | ||
127 | do { | 96 | do { |
128 | sector = Math.floor((Math.random() * 9)); | 97 | sector = Math.floor((Math.random() * 9)); |
129 | - } while (sector === currSector); | 98 | + col = sector % sectorDivisions; |
130 | - $log.debug('sector after loop: ' + sector); | 99 | + } while (col === currSectorCol); |
131 | - $log.debug('currSector after loop: ' + currSector); | ||
132 | currSector = sector; | 100 | currSector = sector; |
133 | - $log.debug('currSector after assignment: ' + currSector); | ||
134 | row = Math.floor(sector / sectorDivisions); | 101 | row = Math.floor(sector / sectorDivisions); |
135 | - col = sector % sectorDivisions; | ||
136 | - | ||
137 | - $log.debug('row: ' + row); | ||
138 | - $log.debug('col: ' + col); | ||
139 | 102 | ||
103 | + // active area is the coordinates of the sector, plus or minus a margin | ||
140 | return { | 104 | return { |
141 | - xmin: sectorWidth * col, | 105 | + xmin: (sectorWidth * col) + pageMargin, |
142 | - xmax: (sectorWidth * col) + sectorWidth, | 106 | + xmax: ((sectorWidth * col) + sectorWidth) - pageMargin, |
143 | - ymin: sectorHeight * row, | 107 | + ymin: (sectorHeight * row) + pageMargin, |
144 | - ymax: (sectorHeight * row) + sectorHeight | 108 | + ymax: ((sectorHeight * row) + sectorHeight) - pageMargin |
145 | } | 109 | } |
146 | } | 110 | } |
147 | 111 | ||
148 | function selectXY(sectorCoords) { | 112 | function selectXY(sectorCoords) { |
149 | var x, y, x1, y1; | 113 | var x, y, x1, y1; |
114 | + | ||
150 | do { | 115 | do { |
151 | x = (Math.random() * sectorCoords.xmax) + sectorCoords.xmin; | 116 | x = (Math.random() * sectorCoords.xmax) + sectorCoords.xmin; |
152 | y = (Math.random() * sectorCoords.ymax) + sectorCoords.ymin; | 117 | y = (Math.random() * sectorCoords.ymax) + sectorCoords.ymin; |
153 | x1 = x + btnWidth; | 118 | x1 = x + btnWidth; |
154 | y1 = y + btnHeight; | 119 | y1 = y + btnHeight; |
155 | - } while (x1 >= winWidth - pageMargin || y1 >= winHeight - pageMargin); | 120 | + } while (x1 > sectorCoords.xmax || y1 > sectorCoords.ymax); |
156 | 121 | ||
157 | return { | 122 | return { |
158 | x: x, | 123 | x: x, |
... | @@ -167,9 +132,8 @@ | ... | @@ -167,9 +132,8 @@ |
167 | function moveButton() { | 132 | function moveButton() { |
168 | var sec = selectSector(), | 133 | var sec = selectSector(), |
169 | pos = selectXY(sec); | 134 | pos = selectXY(sec); |
170 | - $log.debug(pos.x, pos.y); | ||
171 | g.transition() | 135 | g.transition() |
172 | - .duration(400) | 136 | + .duration(300) |
173 | .ease('cubic-out') | 137 | .ease('cubic-out') |
174 | .each('start', removeMouseListener) | 138 | .each('start', removeMouseListener) |
175 | .attr('transform', gTranslate(pos.x, pos.y)) | 139 | .attr('transform', gTranslate(pos.x, pos.y)) |
... | @@ -186,13 +150,9 @@ | ... | @@ -186,13 +150,9 @@ |
186 | fs = _fs_; | 150 | fs = _fs_; |
187 | return { | 151 | return { |
188 | restrict: 'E', | 152 | restrict: 'E', |
189 | - link: function (scope, elem, attrs) { | 153 | + link: function (scope, elem) { |
190 | winWidth = fs.windowSize().width; | 154 | winWidth = fs.windowSize().width; |
191 | winHeight = fs.windowSize().height; | 155 | winHeight = fs.windowSize().height; |
192 | - // getting rid of pageMargin to see if the math is easier | ||
193 | - // could put the padding somewhere else as in where it's ok to move the button | ||
194 | - //sectorWidth = (winWidth / sectorDivisions) - pageMargin; | ||
195 | - //sectorHeight = (winHeight / sectorDivisions) - pageMargin; | ||
196 | sectorWidth = winWidth / sectorDivisions; | 156 | sectorWidth = winWidth / sectorDivisions; |
197 | sectorHeight = winHeight / sectorDivisions; | 157 | sectorHeight = winHeight / sectorDivisions; |
198 | 158 | ||
... | @@ -203,7 +163,7 @@ | ... | @@ -203,7 +163,7 @@ |
203 | height: winHeight + 'px' | 163 | height: winHeight + 'px' |
204 | }); | 164 | }); |
205 | 165 | ||
206 | - showSectors(); | 166 | + //showSectors(); |
207 | g = svg.append('g'); | 167 | g = svg.append('g'); |
208 | 168 | ||
209 | var button = g.append('rect') | 169 | var button = g.append('rect') |
... | @@ -228,12 +188,10 @@ | ... | @@ -228,12 +188,10 @@ |
228 | height: btnHeight + hoverZone + 'px', | 188 | height: btnHeight + hoverZone + 'px', |
229 | x: -(hoverZone / 2), | 189 | x: -(hoverZone / 2), |
230 | y: -(hoverZone / 2) | 190 | y: -(hoverZone / 2) |
231 | - }), | 191 | + }); |
232 | - centeredG = center(g); | ||
233 | g.attr('transform', | 192 | g.attr('transform', |
234 | - gTranslate(centeredG.x, centeredG.y)); | 193 | + gTranslate(centeredOnWindow(winWidth, btnWidth), |
235 | - //gTranslate(centeredOnWindow(winWidth, btnWidth), | 194 | + centeredOnWindow(winHeight, btnHeight))); |
236 | - // centeredOnWindow(winHeight, btnHeight))); | ||
237 | 195 | ||
238 | addMouseListener(); | 196 | addMouseListener(); |
239 | } | 197 | } | ... | ... |
... | @@ -267,13 +267,16 @@ | ... | @@ -267,13 +267,16 @@ |
267 | "61.4,90.2,61.4,93.7z M93.8,61.8c-3.5,0-6.4-2.9-6.4-6.4c0-3.5," + | 267 | "61.4,90.2,61.4,93.7z M93.8,61.8c-3.5,0-6.4-2.9-6.4-6.4c0-3.5," + |
268 | "2.9-6.4,6.4-6.4s6.4,2.9,6.4,6.4C100.1,58.9,97.3,61.8,93.8,61.8z", | 268 | "2.9-6.4,6.4-6.4s6.4,2.9,6.4,6.4C100.1,58.9,97.3,61.8,93.8,61.8z", |
269 | 269 | ||
270 | - eqMaster: "M94.6,80.1c0,5.7-4.6,10.3-10.3,10.3S74,85.8,74,80.1" + | 270 | + eqMaster: "M100.1,46.9l-10.8-25h0.2c0.5,0,0.8-0.5,0.8-1.1v-3.2" + |
271 | - "c0-3.8,2-7,5-8.8L64.4,37.5H45.8L31.1,71.3c2.9,1.8,4.9,5.1,4.9," + | 271 | + "c0-0.6-0.4-1.1-0.8-1.1H59.2v-5.1c0-0.5-0.8-1-1.7-1h-5.1c-0.9,0" + |
272 | - "8.8c0,5.7-4.6,10.3-10.3,10.3s-10.3-4.6-10.3-10.3S20,69.8,25.7," + | 272 | + "-1.7,0.4-1.7,1v5.1l-30.2,0c-0.5,0-0.8,0.5-0.8,1.1v3.2c0,0.6," + |
273 | - "69.8c0.7,0,1.5,0.1,2.2,0.2L42,37.5H26.7c-0.6,0-1-0.4-1-0.8V20.4" + | 273 | + "0.4,1.1,0.8,1.1h0.1l-10.8,25C9,47.3,8.4,48,8.4,48.8v1.6l0,0h0" + |
274 | - "c0-0.5,0.5-0.8,1-0.8h56.6c0.6,0,1,0.4,1,0.8v16.2c0,0.5-0.5,0.8" + | 274 | + "v6.4c0,1.3,1.4,2.3,3.2,2.3h21.7c1.8,0,3.2-1,3.2-2.3v-8c0-0.9" + |
275 | - "-1,0.8H68.2L82.3,70c0.6-0.1,1.3-0.2,2-0.2C90,69.8,94.6,74.4," + | 275 | + "-0.7-1.6-1.7-2L22.9,21.9h27.9v59.6l-29,15.9c0,1.2,1.8,2.2,4.1," + |
276 | - "94.6,80.1z" | 276 | + "2.2h58.3c2.3,0,4.1-1,4.1-2.2l-29-15.9V21.9h27.8L75.2,46.8c-1," + |
277 | + "0.4-1.7,1.1-1.7,2v8c0,1.3,1.4,2.3,3.2,2.3h21.7c1.8,0,3.2-1,3.2" + | ||
278 | + "-2.3v-8C101.6,48,101,47.3,100.1,46.9z M22,23.7l10.8,22.8H12.1" + | ||
279 | + "L22,23.7z M97.9,46.5H77.2L88,23.7L97.9,46.5z" | ||
277 | }, | 280 | }, |
278 | 281 | ||
279 | badgeViewBox = '0 0 10 10', | 282 | badgeViewBox = '0 0 10 10', | ... | ... |
... | @@ -95,7 +95,7 @@ | ... | @@ -95,7 +95,7 @@ |
95 | toolbar.addToggle('demo-toggle', 'chain', false, togFn, 'another tooltip'); | 95 | toolbar.addToggle('demo-toggle', 'chain', false, togFn, 'another tooltip'); |
96 | toolbar.addSeparator(); | 96 | toolbar.addSeparator(); |
97 | toolbar.addRadioSet('demo-radio', rset); | 97 | toolbar.addRadioSet('demo-radio', rset); |
98 | - toolbar.show(); | 98 | + toolbar.hide(); |
99 | 99 | ||
100 | checkFn(); | 100 | checkFn(); |
101 | 101 | ... | ... |
... | @@ -53,7 +53,7 @@ describe('factory: fw/svg/glyph.js', function() { | ... | @@ -53,7 +53,7 @@ describe('factory: fw/svg/glyph.js', function() { |
53 | intentTraffic: 'M14.7,71.5h', | 53 | intentTraffic: 'M14.7,71.5h', |
54 | allTraffic: 'M15.7,64.5h-7v', | 54 | allTraffic: 'M15.7,64.5h-7v', |
55 | flows: 'M93.8,46.1c', | 55 | flows: 'M93.8,46.1c', |
56 | - eqMaster: 'M94.6,80.1c0,5.7', | 56 | + eqMaster: 'M100.1,46.9l', |
57 | 57 | ||
58 | // badges | 58 | // badges |
59 | uiAttached: 'M2,2.5a.5,.5', | 59 | uiAttached: 'M2,2.5a.5,.5', | ... | ... |
... | @@ -55,12 +55,24 @@ describe('factory: fw/widget/tooltip.js', function () { | ... | @@ -55,12 +55,24 @@ describe('factory: fw/widget/tooltip.js', function () { |
55 | }); | 55 | }); |
56 | 56 | ||
57 | // testing mouse events is tough | 57 | // testing mouse events is tough |
58 | - | 58 | + // showTooltip needs a d3 event, which currently has no test backend |
59 | + // .each is a workaround, which provides this, d, and i | ||
59 | xit('should show a tooltip', function () { | 60 | xit('should show a tooltip', function () { |
60 | var btn = d3.select('body').append('div').attr('id', 'foo'); | 61 | var btn = d3.select('body').append('div').attr('id', 'foo'); |
61 | - // each is used to trigger a "mouse" event, providing this, d, and i | ||
62 | btn.each(function () { | 62 | btn.each(function () { |
63 | tts.showTooltip(this, 'yay a tooltip'); | 63 | tts.showTooltip(this, 'yay a tooltip'); |
64 | }); | 64 | }); |
65 | + // tests here | ||
66 | + }); | ||
67 | + | ||
68 | + // can't cancel a tooltip until we show one | ||
69 | + // because currElemId isn't set otherwise | ||
70 | + xit('should cancel an existing tooltip', function () { | ||
71 | + var btn = d3.select('body').append('div').attr('id', 'foo'); | ||
72 | + btn.each(function () { | ||
73 | + tts.cancelTooltip(this); | ||
74 | + }); | ||
75 | + expect(d3Elem.text()).toBe(''); | ||
76 | + expect(d3Elem.style('display')).toBe('none'); | ||
65 | }); | 77 | }); |
66 | }); | 78 | }); | ... | ... |
-
Please register or login to post a comment