| OLD | NEW |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 // TODO: RE: implements RequestAnimationFrameCallback. File bug | 5 // TODO: RE: implements RequestAnimationFrameCallback. File bug |
| 6 // against dom libs because it should be possible to pass a function | 6 // against dom libs because it should be possible to pass a function |
| 7 // to webkitRequestAnimationFrame just like addEventListener. | 7 // to webkitRequestAnimationFrame just like addEventListener. |
| 8 class InnerMenuView { | 8 class InnerMenuView { |
| 9 static final List<String> _textAlignmentClassNames = const <String>[ "l", "c",
"r" ]; | 9 static final List<String> _textAlignmentClassNames = const <String>[ "l", "c",
"r" ]; |
| 10 static final List<int> _textAlignmentValues = const <int>[ | 10 static final List<int> _textAlignmentValues = const <int>[ |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 _currentRowHeight = _initialRowHeight; | 158 _currentRowHeight = _initialRowHeight; |
| 159 | 159 |
| 160 EventListener f = myfunc(Event event) { | 160 EventListener f = myfunc(Event event) { |
| 161 _transitionDidComplete = true; | 161 _transitionDidComplete = true; |
| 162 _row.on.transitionEnd.remove(myfunc); | 162 _row.on.transitionEnd.remove(myfunc); |
| 163 _bar.style.setProperty("overflow", "visible"); | 163 _bar.style.setProperty("overflow", "visible"); |
| 164 }; | 164 }; |
| 165 _row.on.transitionEnd.add(f); | 165 _row.on.transitionEnd.add(f); |
| 166 _window.webkitRequestAnimationFrame((int time) { | 166 _window.webkitRequestAnimationFrame((int time) { |
| 167 _onRequestAnimationFrame(time); | 167 _onRequestAnimationFrame(time); |
| 168 }, _row); | 168 }); |
| 169 | 169 |
| 170 _row.on['DOMNodeRemoved'].add(void g(Event event) { | 170 _row.on['DOMNodeRemoved'].add(void g(Event event) { |
| 171 if (_row == event.target) { | 171 if (_row == event.target) { |
| 172 _finishHide(); | 172 _finishHide(); |
| 173 _row.on['DOMNodeRemoved'].remove(g); | 173 _row.on['DOMNodeRemoved'].remove(g); |
| 174 } | 174 } |
| 175 }); | 175 }); |
| 176 | 176 |
| 177 // Initialize boolean | 177 // Initialize boolean |
| 178 _transitionDidComplete = false; | 178 _transitionDidComplete = false; |
| (...skipping 13 matching lines...) Expand all Loading... |
| 192 f = (Event event) { | 192 f = (Event event) { |
| 193 _finishHide(); | 193 _finishHide(); |
| 194 _row.on.transitionEnd.remove(f); | 194 _row.on.transitionEnd.remove(f); |
| 195 if (callAtEnd != null) { | 195 if (callAtEnd != null) { |
| 196 callAtEnd(); | 196 callAtEnd(); |
| 197 } | 197 } |
| 198 }; | 198 }; |
| 199 _row.on.transitionEnd.add(f); | 199 _row.on.transitionEnd.add(f); |
| 200 _window.webkitRequestAnimationFrame((int time) { | 200 _window.webkitRequestAnimationFrame((int time) { |
| 201 _onRequestAnimationFrame(time); | 201 _onRequestAnimationFrame(time); |
| 202 }, _row); | 202 }); |
| 203 } | 203 } |
| 204 | 204 |
| 205 bool isAttachedTo(TableRowElement row) => _row == row; | 205 bool isAttachedTo(TableRowElement row) => _row == row; |
| 206 | 206 |
| 207 void updateSize() { | 207 void updateSize() { |
| 208 if (_row.parent == null) { | 208 if (_row.parent == null) { |
| 209 // The row we were attached to has disappeared (e.g., by scrolling), so cl
ean up the menu bar | 209 // The row we were attached to has disappeared (e.g., by scrolling), so cl
ean up the menu bar |
| 210 _bar.remove(); | 210 _bar.remove(); |
| 211 return; | 211 return; |
| 212 } | 212 } |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 335 // During CSS transitions, we use a webkitRequestAnimationFrame based | 335 // During CSS transitions, we use a webkitRequestAnimationFrame based |
| 336 // animation loop to keep visual state in sync. | 336 // animation loop to keep visual state in sync. |
| 337 void _onRequestAnimationFrame(int time) { | 337 void _onRequestAnimationFrame(int time) { |
| 338 updateSize(); | 338 updateSize(); |
| 339 | 339 |
| 340 _selectionManager.updateSelection(); | 340 _selectionManager.updateSelection(); |
| 341 | 341 |
| 342 if (!_transitionDidComplete) { | 342 if (!_transitionDidComplete) { |
| 343 _window.webkitRequestAnimationFrame((int time_) { | 343 _window.webkitRequestAnimationFrame((int time_) { |
| 344 _onRequestAnimationFrame(time_); | 344 _onRequestAnimationFrame(time_); |
| 345 }, _row); | 345 }); |
| 346 } | 346 } |
| 347 } | 347 } |
| 348 | 348 |
| 349 void _selectTextStyle(int index, String className, bool selected) { | 349 void _selectTextStyle(int index, String className, bool selected) { |
| 350 Element element = _textStyleButtons[index]; | 350 Element element = _textStyleButtons[index]; |
| 351 if (selected) { | 351 if (selected) { |
| 352 element.parent.style.setProperty("border", "1px solid black"); | 352 element.parent.style.setProperty("border", "1px solid black"); |
| 353 className = "${className}-selected"; | 353 className = "${className}-selected"; |
| 354 } else { | 354 } else { |
| 355 element.parent.style.removeProperty("border"); | 355 element.parent.style.removeProperty("border"); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 416 for (int i = 0; i < 4; i++) { | 416 for (int i = 0; i < 4; i++) { |
| 417 if (_textStyleButtons[i].attributes["class"].length > 1) { | 417 if (_textStyleButtons[i].attributes["class"].length > 1) { |
| 418 textStyle += _textStyleValues[i]; | 418 textStyle += _textStyleValues[i]; |
| 419 } | 419 } |
| 420 } | 420 } |
| 421 | 421 |
| 422 _execute(Style _(Style s, int selectedIndex) | 422 _execute(Style _(Style s, int selectedIndex) |
| 423 => s.setTextFormatByIndex(selectedIndex), textStyle); | 423 => s.setTextFormatByIndex(selectedIndex), textStyle); |
| 424 } | 424 } |
| 425 } | 425 } |
| OLD | NEW |