From 80c70e2fabde7524b16cefccdcfd96eb1345ef9b Mon Sep 17 00:00:00 2001 From: tomyeh Date: Mon, 22 Apr 2013 14:15:01 +0800 Subject: [PATCH] Use DomUtil instead of DomAgent --- CHANGES.md | 4 --- example/custom-layout/CustomLayoutDemo.dart | 2 +- example/effect/MiscEffectDemo.dart | 8 ++--- example/effect/SwitchViewEffectDemo2.dart | 8 ++--- example/gesture/AlbumDemo.dart | 4 +-- example/gesture/MapDemo.dart | 9 ++---- example/scroll-view/GridViewDemo.dart | 7 ++--- example/viewport/Viewport.dart | 8 ++--- lib/src/effect/SlideEffect.dart | 24 +++++++-------- lib/src/event/ViewEvent.dart | 2 +- lib/src/gesture/DragGesture.dart | 4 +-- lib/src/gesture/Dragger.dart | 2 +- lib/src/gesture/Scroller.dart | 8 ++--- lib/src/layout/AnchorRelation.dart | 4 +-- lib/src/layout/Layout.dart | 32 ++++++++++---------- lib/src/layout/MeasureContext.dart | 11 +++---- lib/src/view/Panel.dart | 14 ++++----- lib/src/view/ScrollView.dart | 4 +-- lib/src/view/View.dart | 18 ++++++----- lib/src/view/impl/ViewImpl.dart | 2 +- lib/src/view/printc.dart | 5 ++- lib/src/view/view_impls.dart | 9 +++--- pubspec.yaml | 2 +- test/TestAnimation2.dart | 2 +- test/TestAnimation3.dart | 2 +- test/{TestDomAgent.dart => TestDomUtil.dart} | 4 +-- test/{TestDomAgent.html => TestDomUtil.html} | 2 +- test/TestDrag.dart | 8 ++--- test/TestZoom.dart | 2 +- 29 files changed, 102 insertions(+), 109 deletions(-) rename test/{TestDomAgent.dart => TestDomUtil.dart} (92%) rename test/{TestDomAgent.html => TestDomUtil.html} (82%) diff --git a/CHANGES.md b/CHANGES.md index 5a923838..fb24945b 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -18,15 +18,12 @@ * Offset and Rectangle are removed. Use Point and Rect of dart:html instead. * Offset3d is renamed to Point3D. * View.pageOffset is renamed to View.page -* DomAgent.pageOffset is renamed to DomAgent.pageOffset. -* DomAgent.offset is renamed to DomAgent.position. ##0.6.3 * View event stream is supported. Use Steam.listen() instead. For example, view.on.click.listen((event){}). * Data event stream is supported. Use Stream.listen() instead. For example, model.on.select.listen((event){}). * UiError is renamed to UIError to follow Dart naming convention -* DomAgent.computedStyle is removed. Use Element.getComputedStyle() instead. ##0.6.2 @@ -53,7 +50,6 @@ December 14, 2012 * Overriding View.className is optional. It will return the class name correctly. * View.fellows returns a map instead of a collection, and View.getFellow is removed. * Browser.innerSize and innerOffset are removed since they are useless. -* Follow Dart's new naming guidelines and rename to DomAgent, Css, XmlUtil, DomEvent **Features:** diff --git a/example/custom-layout/CustomLayoutDemo.dart b/example/custom-layout/CustomLayoutDemo.dart index 0514563f..9beef1f0 100644 --- a/example/custom-layout/CustomLayoutDemo.dart +++ b/example/custom-layout/CustomLayoutDemo.dart @@ -20,7 +20,7 @@ class CustomLayoutDemo { mainView.on.click.listen((DomEvent event) { if (anchor == null) _createViews(); - _move(event.page - new DomAgent(mainView.node).page); + _move(event.page - DomUtil.page(mainView.node)); }); } void _move(Point offset) { diff --git a/example/effect/MiscEffectDemo.dart b/example/effect/MiscEffectDemo.dart index cf86ecc6..5caff4a2 100644 --- a/example/effect/MiscEffectDemo.dart +++ b/example/effect/MiscEffectDemo.dart @@ -366,7 +366,7 @@ class SwitchViewDemo { ..profile.location = "top right" ..on.click.listen((ViewEvent event) { replace(v1, v2, _eff = (Element n1, Element n2, void end()) { - final int width = new DomAgent(body).width; + final int width = body.offsetWidth; new EasingMotion((num x, MotionState state) { final int l = (width * x).toInt(); n1.style.left = CssUtil.px(-l); @@ -398,10 +398,10 @@ class SwitchViewDemo { replace(v1, v2, _eff = (Element n1, Element n2, void end()) { final List actions = new List(); final List ends = new List(); - - int h = new DomAgent(body).height; + + int h = body.offsetHeight; final int height = h > 0 ? h : browser.size.height; - final int width = new DomAgent(body).width; + final int width = body.offsetWidth; final Point range = new Point(width / 2, height / 2); final Element vonode = n1; diff --git a/example/effect/SwitchViewEffectDemo2.dart b/example/effect/SwitchViewEffectDemo2.dart index 587cf0f0..920cb614 100644 --- a/example/effect/SwitchViewEffectDemo2.dart +++ b/example/effect/SwitchViewEffectDemo2.dart @@ -114,7 +114,7 @@ void main() { ..profile.location = "top right" ..on.click.listen((ViewEvent event) { replace(v1, v2, _eff = (Element n1, Element n2, void end()) { - final int width = new DomAgent(body).width; + final int width = body.offsetWidth; new EasingMotion((num x, MotionState state) { final int l = (width * x).toInt(); n1.style.left = CssUtil.px(-l); @@ -146,10 +146,10 @@ void main() { replace(v1, v2, _eff = (Element n1, Element n2, void end()) { final List actions = new List(); final List ends = new List(); - - int h = new DomAgent(body).height; + + int h = body.offsetHeight; final int height = h > 0 ? h : browser.size.height; - final int width = new DomAgent(body).width; + final int width = body.offsetWidth; final Point range = new Point(width / 2, height / 2); final Element vonode = n1; diff --git a/example/gesture/AlbumDemo.dart b/example/gesture/AlbumDemo.dart index 35f9ef14..50a74e3a 100644 --- a/example/gesture/AlbumDemo.dart +++ b/example/gesture/AlbumDemo.dart @@ -43,7 +43,7 @@ void previous() => select(_index - 1); void select(int index) { if (index < 0 || index >= photoCount) { final View photo = frameInner.children[_index]; - final Point pos = new DomAgent(photo.node).position; + final Point pos = DomUtil.position(photo.node); new EasingMotion((num x, MotionState state) { photo.style.transform = "rotate(${rand()}deg)"; photo.left = pos.x + rand(); @@ -162,7 +162,7 @@ void main() { // responsive sizing frame.on.preLayout.listen((LayoutEvent event) { - final Size msize = new DomAgent(mainView.node).innerSize; + final Size msize = DomUtil.clientSize(mainView.node); frameSize = min(msize.width, msize.height); final int photoSize = min(frameSize - 50, 500); final int photoOffset = (frameSize - photoSize) ~/ 2; diff --git a/example/gesture/MapDemo.dart b/example/gesture/MapDemo.dart index 2dccc0c4..88424997 100644 --- a/example/gesture/MapDemo.dart +++ b/example/gesture/MapDemo.dart @@ -8,11 +8,8 @@ import 'package:rikulo_ui/view.dart'; import 'package:rikulo_ui/gesture.dart'; import 'package:rikulo_ui/event.dart'; -Point center(View v) { - final dq = new DomAgent(v.node); - Size size = dq.size; - return dq.page + new Point(size.width / 2, size.height / 2); -} +Point center(View v) +=> DomUtil.page(v.node) + new Point(v.node.offsetWidth / 2, v.node.offsetHeight / 2); void main() { final int imgw = 500, imgh = 395; @@ -39,7 +36,7 @@ void main() { // sizing img.on.preLayout.listen((LayoutEvent event) { - Size psize = new DomAgent(panel.node).innerSize; + Size psize = DomUtil.clientSize(panel.node); if (psize.width / imgw < psize.height / imgh) { img.width = psize.width.toInt(); img.height = psize.width * imgh ~/ imgw; diff --git a/example/scroll-view/GridViewDemo.dart b/example/scroll-view/GridViewDemo.dart index 3015b51e..7d07aa20 100644 --- a/example/scroll-view/GridViewDemo.dart +++ b/example/scroll-view/GridViewDemo.dart @@ -9,7 +9,7 @@ import 'package:rikulo_commons/html.dart'; void main() { final View mainView = new View()..addToDocument(); final int barSize = 50, barInnerSize = 40; - final Size msize = new WindowAgent(window).innerSize; + final Size msize = new Size(window.innerWidth, window.innerHeight); bool compact = msize.width < 500 || msize.height < 500; // responsive final View container = new View(); final String occupation = compact ? "100%" : "80%"; @@ -22,9 +22,8 @@ void main() { view.classes.add("list-view"); view.on.preLayout.listen((LayoutEvent event) { - final cs = new DomAgent(container.node).innerSize; - view.width = cs.width - barSize; - view.height = cs.height - barSize; + view.width = container.node.clientWidth - barSize; + view.height = container.node.clientHeight - barSize; }); final ScrollView hbar = new ScrollView(direction: Dir.HORIZONTAL); diff --git a/example/viewport/Viewport.dart b/example/viewport/Viewport.dart index f01f7ed3..e59cc6e1 100644 --- a/example/viewport/Viewport.dart +++ b/example/viewport/Viewport.dart @@ -78,9 +78,9 @@ class Viewport extends View { _adjustHeight(); } //@override - int get innerWidth => new DomAgent(contentNode).innerWidth; + int get clientWidth => contentNode.clientWidth; //@override - int get innerHeight => new DomAgent(contentNode).innerHeight; + int get clientHeight => contentNode.clientHeight; //@override to adjust [contentNode]'s width accordingly void set width(int width) { super.width = width; @@ -94,11 +94,11 @@ class Viewport extends View { _adjustHeight(); } void _adjustWidth() { - int v = new DomAgent(node).innerWidth - _spacingLeft - _spacingRight; + int v = node.clientWidth - _spacingLeft - _spacingRight; contentNode.style.width = CssUtil.px(v > 0 ? v: 0); } void _adjustHeight() { - int v = new DomAgent(node).innerHeight - _spacingTop - _spacingBottom; + int v = node.clientHeight - _spacingTop - _spacingBottom; contentNode.style.height = CssUtil.px(v > 0 ? v: 0); } } diff --git a/lib/src/effect/SlideEffect.dart b/lib/src/effect/SlideEffect.dart index 1644b77d..f9e1d867 100644 --- a/lib/src/effect/SlideEffect.dart +++ b/lib/src/effect/SlideEffect.dart @@ -100,8 +100,8 @@ class SlideOutEffect extends HideEffect { static MotionAction createAction(Element element, bool fade, SlideDirection dir) { switch (dir) { case SlideDirection.EAST: - final int size = new DomAgent(element).width; - final int initLeft = new DomAgent(element).offsetLeft; + final int size = element.offsetWidth; + final int initLeft = element.offsetLeft; return (num x, MotionState state) { final int w = (x * size).toInt(); element.style.left = CssUtil.px(initLeft + w); @@ -110,15 +110,15 @@ class SlideOutEffect extends HideEffect { element.style.opacity = "${1-x}"; }; case SlideDirection.WEST: - final int size = new DomAgent(element).width; + final int size = element.offsetWidth; return (num x, MotionState state) { element.style.width = CssUtil.px(((1-x) * size).toInt()); if (fade) element.style.opacity = "${1-x}"; }; case SlideDirection.SOUTH: - final int size = new DomAgent(element).height; - final int initTop = new DomAgent(element).offsetTop; + final int size = element.offsetHeight; + final int initTop = element.offsetTop; return (num x, MotionState state) { final int h = (x * size).toInt(); element.style.top = CssUtil.px(initTop + h); @@ -128,7 +128,7 @@ class SlideOutEffect extends HideEffect { }; case SlideDirection.NORTH: default: - final int size = new DomAgent(element).height; + final int size = element.offsetHeight; return (num x, MotionState state) { element.style.height = CssUtil.px(((1-x) * size).toInt()); if (fade) @@ -142,18 +142,18 @@ class SlideOutEffect extends HideEffect { class _SlideEffectUtil { static int leftOf(Element element) => - _valueOf(element, element.style.left, (DomAgent dq) => dq.offsetLeft); + _valueOf(element, element.style.left, (Element n) => n.offsetLeft); static int topOf(Element element) => - _valueOf(element, element.style.top, (DomAgent dq) => dq.offsetTop); + _valueOf(element, element.style.top, (Element n) => n.offsetTop); static int widthOf(Element element) => - _valueOf(element, element.style.width, (DomAgent dq) => dq.width); + _valueOf(element, element.style.width, (Element n) => n.offsetWidth); static int heightOf(Element element) => - _valueOf(element, element.style.height, (DomAgent dq) => dq.height); + _valueOf(element, element.style.height, (Element n) => n.offsetHeight); - static int _valueOf(Element elem, String stxt, int f(DomAgent dq)) => - stxt != null && stxt.endsWith("px") ? CssUtil.intOf(stxt) : f(new DomAgent(elem)); + static int _valueOf(Element element, String stxt, int f(Element n)) => + stxt != null && stxt.endsWith("px") ? CssUtil.intOf(stxt) : f(element); } diff --git a/lib/src/event/ViewEvent.dart b/lib/src/event/ViewEvent.dart index 8248e556..d9977750 100644 --- a/lib/src/event/ViewEvent.dart +++ b/lib/src/event/ViewEvent.dart @@ -280,7 +280,7 @@ class ActivateEvent extends ViewEvent { srcNode = source; popNode = popup is View ? popup.node: popup; } - return !new DomAgent(srcNode).isDescendantOf(popNode); + return !DomUtil.isDescendant(srcNode, popNode); } } diff --git a/lib/src/gesture/DragGesture.dart b/lib/src/gesture/DragGesture.dart index a3adf4c9..c1183186 100644 --- a/lib/src/gesture/DragGesture.dart +++ b/lib/src/gesture/DragGesture.dart @@ -156,7 +156,7 @@ class _TouchDragGesture extends DragGesture { _touchEnd(); //ignore multiple fingers else { _touchStart(event.target, event.touches[0].page, event.timeStamp); - if (!new DomAgent(event.target).isInput) + if (!DomUtil.isInput(event.target)) event.preventDefault(); } }); @@ -217,7 +217,7 @@ class _MouseDragGesture extends DragGesture { _subStart = owner.onMouseDown.listen((MouseEvent event) { _touchStart(event.target, event.page, event.timeStamp); _capture(); - if (!new DomAgent(event.target).isInput) + if (!DomUtil.isInput(event.target)) event.preventDefault(); }); } diff --git a/lib/src/gesture/Dragger.dart b/lib/src/gesture/Dragger.dart index f9186714..f3597cd5 100644 --- a/lib/src/gesture/Dragger.dart +++ b/lib/src/gesture/Dragger.dart @@ -175,7 +175,7 @@ class Dragger extends Gesture { Point getElementPosition_(Element target) { return _transform ? CssUtil.point3DOf(target.style.transform): - new DomAgent(target).position; + DomUtil.position(target); } void setElementPosition_(Element target, Point position) { diff --git a/lib/src/gesture/Scroller.dart b/lib/src/gesture/Scroller.dart index 0a3c5ab1..97bf7cbc 100644 --- a/lib/src/gesture/Scroller.dart +++ b/lib/src/gesture/Scroller.dart @@ -65,7 +65,7 @@ class Scroller { _onMove(state.transition - _state.startPosition, state.time); }, end: (DragGestureState state) { - final Point pos = new DomAgent(owner).position; + final Point pos = DomUtil.position(owner); final Rect range = _state.dragRange; // always go through this motion _bim = new _BoundedInertialMotion(owner, state.velocity, range, @@ -127,7 +127,7 @@ class Scroller { /** Return the current scroll position. */ Point get scrollPosition => - _state != null ? _state.position : new DomAgent(owner).position * -1; + _state != null ? _state.position : DomUtil.position(owner) * -1; /** Set the scroll position. The current scrolling motion, if any, will be stopped. */ @@ -238,7 +238,7 @@ class ScrollerState extends GestureState { ScrollerState._(Scroller scroller, this.eventTarget, this._fnViewPortSize, this._fnContentSize, this._time) : this.scroller = scroller, - startPosition = new DomAgent(scroller.owner).position * -1 { + startPosition = DomUtil.position(scroller.owner) * -1 { _pos = startPosition; Size cs = contentSize, vs = viewPortSize; _hor = scroller._hasHor && cs.width > vs.width; @@ -422,7 +422,7 @@ class _BoundedInertialMotion extends Motion { this._hor, this._ver, void move(Point position, int time), void end(), {this.friction: 0.0005, this.bounce: 0.0002, this.snapSpeedThreshold: 0.05, ScrollerSnap snap}) : _move = move, _end = end, _snap = snap { - final Point pos = new DomAgent(element).position; + final Point pos = DomUtil.position(element); _posx = pos.x; _posy = pos.y; _velx = _hor ? velocity.x : 0; diff --git a/lib/src/layout/AnchorRelation.dart b/lib/src/layout/AnchorRelation.dart index 8a05a56d..3fdbe575 100644 --- a/lib/src/layout/AnchorRelation.dart +++ b/lib/src/layout/AnchorRelation.dart @@ -177,8 +177,8 @@ final List<_AnchorLocator> _anchorYLocators = [ class _AnchorOfPoint { //mimic View API const _AnchorOfPoint(); int get realWidth => 0; - int get innerWidth => 0; + int get clientWidth => 0; int get realHeight => 0; - int get innerHeight => 0; + int get clientHeight => 0; } const _anchorOfPoint = const _AnchorOfPoint(); diff --git a/lib/src/layout/Layout.dart b/lib/src/layout/Layout.dart index 16f6dffd..47966ecf 100644 --- a/lib/src/layout/Layout.dart +++ b/lib/src/layout/Layout.dart @@ -99,7 +99,7 @@ class FreeLayout extends AbstractLayout { int measureWidth(MeasureContext mctx, View view) { int wd = mctx.getWidthByApp(view); if (wd == null) { - wd = view.innerWidth; + wd = view.clientWidth; for (final View child in view.children) { if (view.shallLayout_(child) && child.profile.anchorView == null) { int subsz = child.measureWidth_(mctx); @@ -117,7 +117,7 @@ class FreeLayout extends AbstractLayout { int measureHeight(MeasureContext mctx, View view) { int hgh = mctx.getHeightByApp(view); if (hgh == null) { - hgh = view.innerHeight; + hgh = view.clientHeight; for (final View child in view.children) { if (view.shallLayout_(child) && child.profile.anchorView == null) { int subsz = child.measureHeight_(mctx); @@ -134,11 +134,11 @@ class FreeLayout extends AbstractLayout { } bool get isProfileInherited => false; void doLayout_(MeasureContext mctx, View view, List children) { - final AsInt innerWidth = () => view.innerWidth, - innerHeight = () => view.innerHeight; //future: introduce cache + final AsInt clientWidth = () => view.clientWidth, + clientHeight = () => view.clientHeight; //future: introduce cache for (final View child in children) { - mctx.setWidthByProfile(child, innerWidth); - mctx.setHeightByProfile(child, innerHeight); + mctx.setWidthByProfile(child, clientWidth); + mctx.setHeightByProfile(child, clientHeight); } } } @@ -151,7 +151,7 @@ void rootLayout(MeasureContext mctx, View root) { Element cave = dlgInfo != null ? dlgInfo.cave.parent: node.parent; if (cave == document.body) cave = null; - final size = cave == null ? browser.size: new DomAgent(cave).innerSize; + final size = cave == null ? browser.size: DomUtil.clientSize(cave); final anchor = root.profile.anchorView; mctx.setWidthByProfile(root, @@ -171,7 +171,7 @@ void rootLayout(MeasureContext mctx, View root) { anchor.page - root.page + new Point(root.left, root.top): new Point(anchor.left, anchor.top): cave != null && node.offsetParent != node.parent ? //if parent is relative/absolute/fixed - new DomAgent(cave).position: new Point(0,0); + DomUtil.position(cave): new Point(0,0); final locators = _getLocators(loc); final mi = new SideInfo(root.profile.margin, 0); @@ -192,17 +192,17 @@ void rootLayout(MeasureContext mctx, View root) { class _AnchorOfRoot { //mimic View API const _AnchorOfRoot(); int get realWidth => browser.size.width; - int get innerWidth => browser.size.width; + int get clientWidth => browser.size.width; int get realHeight => browser.size.height; - int get innerHeight => browser.size.height; + int get clientHeight => browser.size.height; } const _anchorOfRoot = const _AnchorOfRoot(); class _AnchorOfNode { //mimic View API - final DomAgent _q; - _AnchorOfNode(Element n): _q = new DomAgent(n); - int get realWidth => _q.width; - int get innerWidth => _q.innerWidth; - int get realHeight => _q.height; - int get innerHeight => _q.innerHeight; + final Element _n; + _AnchorOfNode(this._n); + int get realWidth => _n.offsetWidth; + int get clientWidth => _n.clientWidth; + int get realHeight => _n.offsetHeight; + int get clientHeight => _n.clientHeight; } diff --git a/lib/src/layout/MeasureContext.dart b/lib/src/layout/MeasureContext.dart index b34455fc..4522839f 100644 --- a/lib/src/layout/MeasureContext.dart +++ b/lib/src/layout/MeasureContext.dart @@ -36,14 +36,14 @@ class MeasureContext { int getBorderWidth(View view) { final v = _borderWds[view]; return v != null ? v: - (_borderWds[view] = new DomAgent(view.node).sumWidth(border:true)); + (_borderWds[view] = DomUtil.sumWidth(view.node, border:true)); } /** Returns the border's height (top border plus bottom border). */ int getBorderHeight(View view) { final v = _borderHghs[view]; return v != null ? v: - (_borderHghs[view] = new DomAgent(view.node).sumHeight(border:true)); + (_borderHghs[view] = DomUtil.sumHeight(view.node, border:true)); } /** Returns the value of the profile with the given name. @@ -260,8 +260,7 @@ class MeasureContext { nodestyle.height = ""; } - final qview = new DomAgent(view.node); - num width = qview.width, height = qview.height; + num width = view.node.offsetWidth, height = view.node.offsetHeight; if (orgspace != null) nodestyle.whiteSpace = orgspace; //restore @@ -280,8 +279,8 @@ class MeasureContext { || (limit != null && width > limit)) { nodestyle.width = CssUtil.px(limit != null ? limit: browser.size.width); - width = qview.width; - height = qview.height; + width = view.node.offsetWidth; + height = view.node.offsetHeight; //Note: we don't restore the width such that browser will really limit the width } diff --git a/lib/src/view/Panel.dart b/lib/src/view/Panel.dart index af302fb5..d3afa163 100644 --- a/lib/src/view/Panel.dart +++ b/lib/src/view/Panel.dart @@ -34,19 +34,19 @@ class Panel extends View { btns.nodes.add(_createBtn(name)..onClick.listen(listener)); } - //@override + @override Element render_() => new Element.html('
'); - - //@override + + @override int measureHeight_(MeasureContext mctx) { - final int btnh = new DomAgent(getNode("btns")).height + new DomAgent(node).sumHeight(border: true); + final int btnh = getNode("btns").offsetHeight + DomUtil.sumHeight(node, border: true); return max(super.measureHeight_(mctx), btnh); } - - //@override + + @override int measureWidth_(MeasureContext mctx) { - final int btnw = new DomAgent(getNode("btns")).width + new DomAgent(node).sumWidth(border: true); + final int btnw = getNode("btns").offsetWidth + DomUtil.sumWidth(node, border: true); return max(super.measureWidth_(mctx), btnw); } diff --git a/lib/src/view/ScrollView.dart b/lib/src/view/ScrollView.dart index 066b8e84..a59ffb7c 100644 --- a/lib/src/view/ScrollView.dart +++ b/lib/src/view/ScrollView.dart @@ -22,8 +22,8 @@ class ScrollView extends View { /** Return the view port size, which is determined by the inner size of the * node. */ - Size get viewPortSize => new DomAgent(node).innerSize; - + Size get viewPortSize => DomUtil.clientSize(node); + /** Returns the total size of the content. * It shall cover all sub views (excluding invisible, anchored views). * In other words, it is the total size that the user can scroll. diff --git a/lib/src/view/View.dart b/lib/src/view/View.dart index ca9ca7a1..9483c771 100644 --- a/lib/src/view/View.dart +++ b/lib/src/view/View.dart @@ -773,7 +773,7 @@ class View implements CapturableStreamTarget { * if it is not specified. */ bool get shallMeasureContent - => !isViewGroup || (firstChild == null && new DomAgent(node).hasContent); + => !isViewGroup || (firstChild == null && DomUtil.hasContent(node)); /** Returns whether the given child shall be handled by the layout manager. * @@ -817,7 +817,7 @@ class View implements CapturableStreamTarget { * Both layout handlers and the browser will handle it as if visible. * * 3. Override this method to check CSS rules: - * `new DomAgent(node).style.display != "none"` + * `node.style.display != "none"` */ bool get visible => node.style.display != "none"; /** Sets if this view is visible. @@ -913,7 +913,7 @@ class View implements CapturableStreamTarget { * However, if not assigned (i.e., null), this method calculates it from [node]'s width. */ int get realWidth - => _width != null ? _width: new DomAgent(node).width; + => _width != null ? _width: node.offsetWidth; //for better performance, we don't need to get the outer width if _width is //assigned (because we use box-sizing: border-box) /** Returns the real height of this view (never null). @@ -921,7 +921,7 @@ class View implements CapturableStreamTarget { * However, if not assigned (i.e., null), this method calculates it from [node]'s height. */ int get realHeight - => _height != null ? _height: new DomAgent(node).height; + => _height != null ? _height: node.offsetHeight; //for better performance, we don't need to get the outer height if _height is //assigned (because we use box-sizing: border-box) /** Returns the viewable width of this view, excluding the borders, margins @@ -929,13 +929,17 @@ class View implements CapturableStreamTarget { * * Derives can override this method if the child views occupies only a portion. */ - int get innerWidth => new DomAgent(node).innerWidth; + int get clientWidth => node.clientWidth; /** Returns the viewable height of this view, excluding the borders, margins * and scrollbars. * * Derives can override this method if the child views occupies only a portion. */ - int get innerHeight => new DomAgent(node).innerHeight; + int get clientHeight => node.clientHeight; + @deprecated //TODO: remove + int get innerWidth => node.clientWidth; + @deprecated //TODO: remove + int get innerHeight => node.clientHeight; /** Returns the offset of this view relative to the left-top corner * of the document. @@ -943,7 +947,7 @@ class View implements CapturableStreamTarget { */ Point get page { if (_inDoc) - return new DomAgent(node).page; + return DomUtil.page(node); int left = 0, top = 0; for (View view = this;;) { diff --git a/lib/src/view/impl/ViewImpl.dart b/lib/src/view/impl/ViewImpl.dart index 0bf3c8d3..c11c004b 100644 --- a/lib/src/view/impl/ViewImpl.dart +++ b/lib/src/view/impl/ViewImpl.dart @@ -108,7 +108,7 @@ class DialogInfo { void updateSize() { final p = cave.parent; final size = p == document.body || p == null ? - browser.size: new DomAgent(p).innerSize; + browser.size: DomUtil.clientSize(p); mask.style ..width = CssUtil.px(size.width) ..height = CssUtil.px(size.height); diff --git a/lib/src/view/printc.dart b/lib/src/view/printc.dart index cd0b220c..8368e368 100644 --- a/lib/src/view/printc.dart +++ b/lib/src/view/printc.dart @@ -69,14 +69,13 @@ class _Printc { } HoldGestureAction _gestureAction() { return (HoldGestureState state) { - Point off = state.position - new DomAgent(state.gesture.owner).page; + Point off = state.position - DomUtil.page(state.gesture.owner); (_popup = new _PrintcPopup(this)).open(off.x, off.y); }; } HoldGestureStart _gestureStart() { return (HoldGestureState state) - => _popup == null - || !new DomAgent(state.eventTarget).isDescendantOf(_popup._node); + => _popup == null || !DomUtil.isDescendant(state.eventTarget, _popup._node); } void _defer() { diff --git a/lib/src/view/view_impls.dart b/lib/src/view/view_impls.dart index 4e8dc3d7..dca6cc2b 100644 --- a/lib/src/view/view_impls.dart +++ b/lib/src/view/view_impls.dart @@ -27,9 +27,9 @@ class _ViewImpl { //Android: resize will be fired when virtual keyboard showed up //so we have to ignore this case: width must be changed, or height is larger //(since user might bring up kbd, rotate, and close kbd) - Size old = new WindowAgent(window).innerSize; + Size old = new Size(window.innerWidth, window.innerHeight); return (event) { //DOM event - final cur = new WindowAgent(window).innerSize; + final cur = new Size(window.innerWidth, window.innerHeight); if (old.width != cur.width || old.height < cur.height) { old = cur; browser.updateSize(); @@ -108,8 +108,7 @@ class _ViewImpl { /** Creates a dialog encloser. */ static DialogInfo createDialog(Element node, View view, [String maskClass="v-mask"]) { - Size size = node == document.body ? - browser.size: new DomAgent(node).innerSize; + Size size = node == document.body ? browser.size: DomUtil.clientSize(node); final parent = new DivElement(); parent.style.position = "relative"; @@ -126,7 +125,7 @@ class _ViewImpl { // mask inherits visibility of dialog view mask.style.visibility = view.style.visibility; if (!view.visible) - new DomAgent(mask).hide(); + DomUtil.hide(mask); parent.nodes.add(mask); return new DialogInfo(parent, mask); diff --git a/pubspec.yaml b/pubspec.yaml index 04d138b5..571e0283 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -9,6 +9,6 @@ authors: - Henri Chen homepage: http://rikulo.org/projects/ui dependencies: - rikulo_commons: {path: ../commons} + rikulo_commons: any browser: any meta: any diff --git a/test/TestAnimation2.dart b/test/TestAnimation2.dart index 1d9a896b..18c6d0c6 100644 --- a/test/TestAnimation2.dart +++ b/test/TestAnimation2.dart @@ -65,7 +65,7 @@ void main() { if (speed == 0) return; Point unitv = Points.divide(vel, speed); - Point pos = new DomAgent(element).position; + Point pos = DomUtil.position(element); motion = new Motion(move: (MotionState mstate) { int elapsed = mstate.elapsedTime; pos = Points.snap(range, pos + (unitv * speed * elapsed)); diff --git a/test/TestAnimation3.dart b/test/TestAnimation3.dart index 217f423d..6d2ad32c 100644 --- a/test/TestAnimation3.dart +++ b/test/TestAnimation3.dart @@ -116,7 +116,7 @@ void main() { return; } Point unitv = Points.divide(vel, speed); - Point pos = new DomAgent(element).position; + Point pos = DomUtil.position(element); inertialMotion = new Motion(move: (MotionState mstate) { int elapsed = mstate.elapsedTime; pos += unitv * speed * elapsed; diff --git a/test/TestDomAgent.dart b/test/TestDomUtil.dart similarity index 92% rename from test/TestDomAgent.dart rename to test/TestDomUtil.dart index f04e8bb7..647e7a94 100644 --- a/test/TestDomAgent.dart +++ b/test/TestDomUtil.dart @@ -1,4 +1,4 @@ -//Test Code: TestDomAgent +//Test Code: TestDomUtil import 'package:rikulo_ui/view.dart'; import "package:rikulo_commons/html.dart"; @@ -34,7 +34,7 @@ void main() { button.on.click.listen((event) { for (TextView textView in mainView.queryAll("TextView:first-child")) { final TextView info = textView.nextSibling; - info.text = "${new DomAgent(textView.node).measureText(textView.text)}"; + info.text = "${DomUtil.measureText(textView.node, textView.text)}"; } }); mainView.addChild(button); diff --git a/test/TestDomAgent.html b/test/TestDomUtil.html similarity index 82% rename from test/TestDomAgent.html rename to test/TestDomUtil.html index 0b63196c..43d23195 100644 --- a/test/TestDomAgent.html +++ b/test/TestDomUtil.html @@ -5,7 +5,7 @@ - + diff --git a/test/TestDrag.dart b/test/TestDrag.dart index 90c38f09..4c4390cc 100644 --- a/test/TestDrag.dart +++ b/test/TestDrag.dart @@ -26,12 +26,12 @@ View _createBoxedDrag(View parent) { View view = _createDragView(box, "Boxed"); new Dragger(view.node, snap: (Point ppos, Point pos) => Points.snap(range, pos)); - + view.on.layout.listen((event) { - final Size vs = new DomAgent(view.node).size; - final Size bs = new DomAgent(box.node).innerSize; + final Size vs = DomUtil.offsetSize(view.node); + final Size bs = DomUtil.clientSize(box.node); range = new Rect(0, 0, bs.width - vs.width, bs.height - vs.height); - final Point vpos = Points.snap(range, new DomAgent(view.node).position); + final Point vpos = Points.snap(range, DomUtil.position(view.node)); view.left = vpos.x; view.top = vpos.y; }); diff --git a/test/TestZoom.dart b/test/TestZoom.dart index 4204985f..b4d7a980 100644 --- a/test/TestZoom.dart +++ b/test/TestZoom.dart @@ -66,7 +66,7 @@ void main() { // sizing panel.on.preLayout.listen((LayoutEvent e) { - panel.height = new DomAgent(mainView.node).innerHeight - statusHeight; + panel.height = mainView.node.clientHeight - statusHeight; }); // zoom gesture