OSDN Git Service

Version 0.6.55, working uinode.listen(...)!
authoritozyun <itozyun@user.sourceforge.jp>
Sat, 12 Jul 2014 13:06:27 +0000 (22:06 +0900)
committeritozyun <itozyun@user.sourceforge.jp>
Sat, 12 Jul 2014 13:06:27 +0000 (22:06 +0900)
14 files changed:
0.6.x/js/core/01_XUa.js
0.6.x/js/dom/13_XDomBoxModel.js
0.6.x/js/main.js
0.6.x/js/ui/00_XUI.js
0.6.x/js/ui/02_XUI_Attr.js
0.6.x/js/ui/05_XUI_Gesture.js
0.6.x/js/ui/06_AbstractUINode.js
0.6.x/js/ui/08_Box.js
0.6.x/js/ui/11_VBox.js
0.6.x/js/ui/12_HBox.js
0.6.x/js/ui/13_TileBox.js
0.6.x/js/ui/15_ScrollBox.js
0.6.x/js/ui/17_Text.js
0.6.x/js/ui/20_PageRoot.js

index 0260437..ff34297 100644 (file)
@@ -27,13 +27,14 @@ X.UA = (function( n, undefined ){
                acme.OperaMini   = 0 < dua.indexOf("Opera Mini");\r
                acme.OperaMobile = 0 < dua.indexOf("Opera Mobi");\r
                acme.OperaTablet = 0 < dua.indexOf("Opera Tablet");\r
-               // TODO NDS\r
+               acme.Wii         = dua.indexOf( 'Nintendo Wii' ) !== -1;\r
+               acme.NDS         = dua.indexOf( 'Nitro' ) !== -1;\r
                console.log( '>> Opera : ' + acme.Opera );\r
                return acme;\r
        };\r
        \r
        // Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko\r
-       if( document.all ){\r
+       if( document.all || dav.indexOf( 'Trident/' ) !== -1 ){\r
                acme.ActiveX  = !!window[ 'ActiveXObject' ];\r
                acme.IE       = document.documentMode || parseFloat(dua.split("MSIE ")[1]) || parseFloat(dua.split("rv:")[1]) || parseFloat(dav.split("MSIE ")[1]) || 0;\r
                acme.IE4      = acme.IE && acme.IE < 5;\r
@@ -42,6 +43,7 @@ X.UA = (function( n, undefined ){
                acme.IEMobile = dua.toLowerCase().indexOf( 'iemobile' ) !== -1 || n.platform === 'WinCE';\r
                acme.WinPhone = dua.toLowerCase().indexOf( 'windows phone' ) !== -1;\r
                console.log( '>> IE : ' + acme.IE + ' ActiveX : ' + acme.ActiveX );\r
+               // TODO XBox360, XBox1\r
                return acme;\r
        };\r
        \r
@@ -85,25 +87,30 @@ X.UA = (function( n, undefined ){
                //Fennec\r
                if( ( i = dua.indexOf( 'Fennec/' ) ) !== -1 ){\r
                        acme.Fennec = parseFloat( dua.substr( i + 7 ) );\r
+                       console.log( '>> Fennec : ' + acme.Fennec + ', Gecko : ' + acme.Gecko );\r
+                       return acme;\r
                };\r
                //Firefox\r
                \r
                //Netscape\r
                //Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:0.9.4.1) Gecko/20020508 Netscape6/6.2.3\r
-               if( ( i = dua.indexOf( 'Netscape6/' ) ) !== -1 && ( v = parseFloat( dua.substr( i + 10 ) ) ) ){\r
-                       acme.NN = v;\r
+               if( ( i = dua.indexOf( 'Netscape6/' ) ) !== -1 ){\r
+                       acme.NN  = parseFloat( dua.substr( i + 10 ) ) || 6;\r
                        acme.NN6 = true;\r
+                       console.log( '>> NN : ' + acme.NN + ', Gecko : ' + acme.Gecko );\r
                        return acme;\r
                } else\r
                //Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.2) Gecko/20040804 Netscape/7.2 (ax)\r
                //Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20070321 Netscape/8.1.3\r
-               if( ( i = dua.indexOf( 'Netscape/' ) ) !== -1 && ( v = parseFloat( dua.substr( i + 9 ) ) ) ){\r
-                       acme.NN = v;\r
+               if( ( i = dua.indexOf( 'Netscape/' ) ) !== -1 ){\r
+                       acme.NN = parseFloat( dua.substr( i + 9 ) ) || 7;\r
+                       console.log( '>> NN : ' + acme.NN + ', Gecko : ' + acme.Gecko );\r
                        return acme;\r
                } else\r
                //Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080219 Firefox/2.0.0.12 Navigator/9.0.0.6\r
-               if( ( i = dua.indexOf( 'Navigator/' ) ) !== -1 && ( v = parseFloat( dua.substr( i + 10 ) ) ) ){\r
-                       acme.NN = v;\r
+               if( ( i = dua.indexOf( 'Navigator/' ) ) !== -1 ){\r
+                       acme.NN = parseFloat( dua.substr( i + 10 ) ) || 9;\r
+                       console.log( '>> NN : ' + acme.NN + ', Gecko : ' + acme.Gecko );\r
                        return acme;\r
                };\r
                \r
@@ -155,13 +162,19 @@ X.UA = (function( n, undefined ){
                };\r
        };\r
        \r
-       acme.Android  = dua.toLowerCase().indexOf( 'android' ) !== -1;  \r
-       \r
-       acme.iOS      = dua.toLowerCase().indexOf( 'iphone' ) !== -1 ||\r
-                                       dua.toLowerCase().indexOf( 'ipad' ) !== -1 ||\r
-                                       dua.toLowerCase().indexOf( 'ipod' ) !== -1;\r
-       \r
-       acme.TouchPad = dua.toLowerCase().indexOf( 'hp-tablet' ) !== -1; // webOS\r
+       // Mozilla/5.0 (Android; Linux armv7l; rv:9.0) Gecko/20111216 Firefox/9.0 Fennec/9.0\r
+       if( ( i = dua.toLowerCase().indexOf( 'android' ) ) !== -1 ){\r
+               acme.Android = parseFloat( ua.substr( i + 8 ) ) || 1.5;\r
+               console.log( '>> Android : ' + acme.Android );\r
+       } else\r
+       if( dua.indexOf( 'iPhone;' ) !== -1 || dua.indexOf( 'iPad;' ) !== -1 || dua.indexOf( 'iPod;' ) !== -1 ){\r
+               acme.iOS = parseFloat( dua.split( 'OS ' )[ 1 ].split( '_' ).join( '' ) ) || 1;\r
+               console.log( '>> iOS : ' + acme.iOS );\r
+       } else\r
+       if( dua.indexOf( 'hp-tablet' ) !== -1 || dua.indexOf( 'webOS' ) !== -1 ){\r
+               // http://user-agent-string.info/list-of-ua/os-detail?os=webOS\r
+               acme.webOS = true; // webOS\r
+       };\r
        \r
        //http://www.useragentstring.com/pages/Iris/\r
        acme.Iris     = dua.toLowerCase().indexOf( 'iris' ) !== -1;\r
@@ -191,12 +204,12 @@ if( X.UA.Safari && X.UA.WebKit < 525.13 ){
        };\r
 };*/\r
 \r
-if( X.UA.IE && X.UA.IE < 7 ){ // error @ NN7.2\r
+if( X.UA.IE < 7 ){ // error @ NN7.2\r
        // bonus: hotfix for IE6 SP1 (bug KB823727)\r
        document.execCommand && document.execCommand( 'BackgroundImageCache', false, true );\r
 };\r
 \r
-X.inObject = X.UA.IE && X.UA.IE < 5.5 ? // TODO JScript で判定\r
+X.inObject = X.UA.IE < 5.5 ? // TODO JScript で判定\r
        (function( name, obj ){\r
                var p;\r
                if( obj[ name ] ) return true;\r
index 2fc367a..da7df74 100644 (file)
@@ -38,7 +38,7 @@ X.Dom.listenOnce( X.Dom.Event.DOM_INIT, function(){
 \r
        X.Dom.BoxModel.vScrollbarSize = w;\r
        X.Dom.BoxModel.hScrollbarSize = h;\r
-       if( h < 0 ){\r
+       if( h <= 0 ){ // ie6, ie11, firefox で 負の値が返る\r
                console.log( 'invalid hScrollbarSize: ' + h );\r
                X.Dom.BoxModel.hScrollbarSize = w;\r
        };\r
index aa91895..ae31769 100644 (file)
@@ -1,4 +1,4 @@
-PageRoot(\r
+root = PageRoot(\r
        Box({\r
                width   : '10%',\r
                height  : '10%',\r
@@ -23,19 +23,24 @@ PageRoot(
                        borderColor : 0x111111,\r
                        borderWidth : [ 0, 0, 0, 0 ],\r
                        borderStyle : 'solid dotted',\r
-                       padding     : [ 2, 1.5 ],\r
+                       padding     : [ 4, 1 ],\r
                        sizing      : 'border'\r
                },\r
                Box({\r
                        width       : '50%',\r
                        height      : 2,\r
-                       left        : '30%',\r
+                       left        : '25%',\r
                        bgColor     : 0x999999\r
                }),\r
                Text( 'Hello, world!', { width : '100%' } ),\r
                Text( '----------------------------', { width : '100%' } ),\r
-               txt = Text( 'PettanR-team. rrrrrrrrrr', { width : '100%' } )\r
+               text = Text( 'PettanR-team. rrrrrrrrrr', { width : '100%' } )\r
+                       .listen( X.UI.Event.TAP, _onClick )\r
        )\r
 );\r
+_root = X.Class._getPrivate( root );\r
+_text = X.Class._getPrivate( text );\r
 \r
-_text = X.Class._getPrivate( txt );\r
+function _onClick( e ){\r
+       alert( e.type );\r
+};\r
index 676ec7c..12e614f 100644 (file)
@@ -2,12 +2,14 @@
  * init_only,\r
  * always,\r
  * \r
- * uinode によって指定可能な css は異なる\r
+ * uinode によって指定可能な attr は異なる\r
  * + 直接 xnode.css() に渡す値\r
  * + uinode 内で加工してから xnode.css() に渡す値\r
  *    ChromeBox での css3 の fallback\r
- * + layoutManager で使う値がある\r
+ * + layoutManager で使う値\r
  *    x, y, gap, childW, childH など\r
+ * + uinode で使う値\r
+ *    mouseDisabled など\r
  */\r
 \r
 X.UI = {\r
index 5d9dd5e..788a3f4 100644 (file)
@@ -32,7 +32,7 @@ X.UI.Attr = {
                ALIGN             : X.UI.Util.createChecker( 'left,center,right,justify' ),\r
                TEXT_DECORATION   : X.UI.Util.createChecker( 'none,underline,overline,line-through,blink' ),\r
                TEXT_TRANSFORM    : X.UI.Util.createChecker( 'none,capitalize,lowercase,uppercase' ),\r
-               BOX_SIZING        : X.UI.Util.createChecker( 'content,padding,border' ), // ,margin-box\r
+               BOX_SIZING        : X.UI.Util.createChecker( 'content,padding,border' ),\r
                CURSOR            : X.UI.Util.createChecker( 'pointer,wait' )\r
        },\r
        \r
index 1c7dc77..58f8432 100644 (file)
@@ -36,7 +36,7 @@
                        gestures   = Detection.gestures,\r
                        numTouches = 0,// count the total touches on the screen\r
                        pointerType, i, l, touches, ret, active, gesture, startEv,\r
-                       deltaTime, deltaX, deltaY, velocity;\r
+                       hammer, deltaTime, deltaX, deltaY, velocity;\r
 \r
                if( !type ) return;\r
                \r
                        type |= POINTER;\r
                        switch( e.pointerType ){\r
                                case 'touch' :\r
-                               case e.MSPOINTER_TYPE_TOUCH :\r
+                               case 2       : //e.MSPOINTER_TYPE_TOUCH :\r
                                        type |= TOUCH; break;\r
                                case 'pen' :\r
-                               case e.MSPOINTER_TYPE_PEN :\r
+                               case 3     : //e.MSPOINTER_TYPE_PEN :\r
                                        type |= PEN; break;\r
                                case 'mouse' :\r
-                               case e.MSPOINTER_TYPE_MOUSE :\r
+                               case 4       : //e.MSPOINTER_TYPE_MOUSE :\r
                                        type |= MOUSE; break;\r
                                default :\r
                                        return;\r
                                        target     : e.target\r
                                }];\r
                        };\r
-\r
                        // if we are in a end event, but when we remove one touch and\r
                        // we still have enough, set eventType to move\r
                        if( 0 < numTouches && type & END ){ // eventType === Hammer.EVENT_END ){\r
        /*\r
         *  "Android version < 2.2" return ev.touches.length === 1 when touchend, others return ev.touches.length === 0\r
         */\r
-       Hammer.DO_TOUCHES_FIX = Hammer.HAS_TOUCHEVENTS && ( function( ua, i ){\r
-                               if( ( i = ua.indexOf('android') ) === -1 ) return false;\r
-                               return ( parseFloat( ua.substr( i + 8 ) ) || 0 ) < 2.2;\r
-                       })( navigator.userAgent.toLowerCase() );\r
+       Hammer.DO_TOUCHES_FIX = Hammer.HAS_TOUCHEVENTS && X.UA.Android < 2.2;\r
        \r
        // detect touchevents\r
        Hammer.HAS_POINTEREVENTS = navigator.pointerEnabled || navigator.msPointerEnabled;\r
         * @events  hold holdend\r
         */\r
        Gestures.Hold = {\r
-               name  : 'hold',\r
-               index : 10,\r
+               name    : 'hold',\r
+               index   : 10,\r
                startID : X.UI.Event.HOLD,\r
                endID   : X.UI.Event.HOLD_END,\r
                defaults : {\r
                                // do a single tap\r
                                if( hammer.options.tap_always ){\r
                                        Detection.current.name = 'tap';\r
-                                       return hammer.trigger(  X.UI.Event.TAP, e );\r
+                                       return hammer.trigger( X.UI.Event.TAP, e );\r
                                };\r
                        };\r
                }\r
         * @events  swipe, swipeleft, swiperight, swipeup, swipedown\r
         */\r
        Gestures.Swipe = {\r
-               name : 'swipe',\r
-               index : 40,\r
+               name     : 'swipe',\r
+               index    : 40,\r
                startID  : X.UI.Event.SWIP,\r
                endID    : X.UI.Event.SWIP_DOWN,\r
                defaults : {\r
                        // set 0 for unlimited, but this can conflict with transform\r
                        swipe_max_touches : 1,\r
-                       swipe_velocity : 0.7\r
+                       swipe_velocity    : 0.7\r
                },\r
                handler : function swipeGesture(e, hammer) {\r
                        if( e.eventType === END ){\r
         * @events  drag, dragstart, dragend, drapleft, dragright, dragup, dragdown\r
         */\r
        Gestures.Drag = {\r
-               name : 'drag',\r
-               index : 50,\r
+               name     : 'drag',\r
+               index    : 50,\r
                startID  : X.UI.Event.DRAG,\r
                endID    : X.UI.Event.DRAG_DOWN,\r
                defaults : {\r
         * @events  transform, transformstart, transformend, pinch, pinchin, pinchout, rotate\r
         */\r
        Gestures.Transform = {\r
-               name : 'transform',\r
-               index : 45,\r
+               name     : 'transform',\r
+               index    : 45,\r
                startID  : X.UI.Event.TRANSFORM,\r
                endID    : X.UI.Event.ROTATE,\r
                defaults : {\r
         * @events  touch\r
         */\r
        Gestures.Touch = {\r
-               name : 'touch',\r
-               index : -Infinity,\r
+               name     : 'touch',\r
+               index    : -Infinity,\r
                defaults : {\r
                        // call preventDefault at touchstart, and makes the element blocking by\r
                        // disabling the scrolling of the page, but it improves gestures like\r
         * @events  release\r
         */\r
        Gestures.Release = {\r
-               name : 'release',\r
-               index : Infinity,\r
+               name    : 'release',\r
+               index   : Infinity,\r
                handler : function releaseGesture( e, hammer ){\r
                        e.eventType === END && hammer.trigger( this.name, e );\r
                }\r
index 20acbe1..73d9c4b 100644 (file)
@@ -62,9 +62,6 @@ var _AbstractUINode = X.EventDispatcher.inherits(
                // :hover, :focus, :disabled\r
                \r
                initialize : function( root, rootData, parent, parentData ){\r
-                       var events = this.reserveEvents,\r
-                               l, i;                   \r
-                       \r
                        this.root       = root;\r
                        this.rootData   = rootData;\r
                        this.parent     = parent;\r
@@ -73,15 +70,6 @@ var _AbstractUINode = X.EventDispatcher.inherits(
                        this.phase      = 1;\r
                        \r
                        this.dispatch( { type : X.UI.Event.INIT } );\r
-                       \r
-                       // html 要素が親に追加されるまで控えていたイベントの登録\r
-                       if( events && ( l = events.length ) ){\r
-                               for( i = 0; i < l; ++i ){\r
-                                       this.listen.apply( this, events[ i ] );\r
-                               };\r
-                               events.length = 0;\r
-                               delete this.reserveEvents;\r
-                       };                      \r
                },\r
                \r
                addToParent : function( parentElement ){\r
@@ -92,8 +80,20 @@ var _AbstractUINode = X.EventDispatcher.inherits(
                },\r
                \r
                creationComplete : function(){\r
+                       var events = this.reserveEvents,\r
+                               l, i;\r
+                       \r
                        this.phase = 3;\r
                        this.User.dispatch( { type : X.UI.Event.CREATION_COMPLETE } );\r
+                       \r
+                       // html 要素が親に追加されるまで控えていたイベントの登録\r
+                       if( events && ( l = events.length ) ){\r
+                               for( i = 0; i < l; ++i ){\r
+                                       this.listen.apply( this, events[ i ] );\r
+                               };\r
+                               events.length = 0;\r
+                               delete this.reserveEvents;\r
+                       };                      \r
                },\r
                \r
                /*\r
@@ -415,8 +415,8 @@ var _AbstractUINode = X.EventDispatcher.inherits(
                 * X.Dom.BoxModel の情報を引きながら top,left,width,height,padding,border の設定\r
                 */\r
                updateLayout : function( x, y ){\r
-                       x += this.boxX;\r
-                       y += this.boxY;\r
+                       this.boxX = x;\r
+                       this.boxY = y;\r
                        this.xnode\r
                                .css( 'left',        x ? x + 'em' : 0 )\r
                                .css( 'top',         y ? y + 'em' : 0 )\r
@@ -745,6 +745,7 @@ var _AbstractUINode = X.EventDispatcher.inherits(
                        y -= this.boxY;\r
 \r
                        if( 0 <= x && x < this.boxWidth && 0 <= y && y < this.boxHeight ){\r
+                               \r
                                !this.hovering && ( this.rootData.hoverList[ this.rootData.hoverList.length ] = this );\r
                                this.rootData.targetNodeData = this;\r
                                return true;\r
@@ -767,6 +768,7 @@ var _AbstractUINode = X.EventDispatcher.inherits(
                                                this.gesture.listen( type );\r
                                        };\r
                                } else {\r
+                                       console.log( type )\r
                                        root    = this.rootData;\r
                                        counter = root.eventCounter;\r
                                        if( counter[ type ] ){\r
index 3ccf225..cdd5433 100644 (file)
@@ -42,7 +42,7 @@ X.UI.Layout.Canvas = X.UI.Layout.create( {
                };\r
                \r
                data.postMesure();\r
-               data.updateLayout( x, y );\r
+               data.updateLayout( x + data.boxX, y + data.boxY );\r
        }\r
 });\r
 \r
@@ -59,6 +59,9 @@ var _Box = _AbstractUINode.inherits(
                pointerChildren : true,\r
                through         : false,\r
 \r
+               scrollingX      : 0,\r
+               scrollingY      : 0,\r
+\r
                Constructor : function( layout, args ){\r
                        var i = 0,\r
                                l = args.length,\r
@@ -150,8 +153,7 @@ var _Box = _AbstractUINode.inherits(
                                };                              \r
                        };\r
                        \r
-                       this.phase = 3;\r
-                       this.User.dispatch( { type : X.UI.Event.CREATION_COMPLETE } );\r
+                       _AbstractUINode.prototype.creationComplete.apply( this, arguments );\r
                },\r
                \r
                calculate : function( isNeedsDetection, x, y, w, h ){\r
@@ -170,9 +172,9 @@ var _Box = _AbstractUINode.inherits(
                                _y = y - this.scrollingY;\r
                                for( ; i; ){\r
                                        child = uinodes[ --i ];\r
-                                       if( !child.pointerDisabled && child.boxX <= _x && _x < child.boxX + child.boxWidth && child.boxY <= _y && _y < child.boxY + child.boxHeight ){\r
-                                               !child.hovering && ( child.rootData.hoverList[ child.rootData.hoverList.length ] = child );\r
-                                               this.hitChildData = child.rootData.targetNodeData = child;\r
+                                       if( !child.pointerDisabled && child.boxX <= _x && _x < child.boxX + child.boxWidth && child.boxY <= _y && _y < child.boxY + child.boxHeight && child.capcher( _x, _y ) ){\r
+                                               //console.log( 'hit child ' + _x + ' ' + _y + ' boxX:' + child.boxX + ' boxY:' + child.boxY );\r
+                                               this.hitChildData = child;\r
                                                break;\r
                                        };\r
                                };\r
@@ -181,7 +183,7 @@ var _Box = _AbstractUINode.inherits(
                                this.hitChildData && !this.hovering && ( this.rootData.hoverList[ this.rootData.hoverList.length ] = this );\r
                                return !!this.hitChildData;\r
                        };\r
-                       hit = 0 <= x && x < this.w && 0 <= y && y < this.h;\r
+                       hit = 0 <= x && x < this.boxWidth && 0 <= y && y < this.boxHeight;\r
                        ( this.hitChildData || hit ) && !this.hovering && ( this.rootData.hoverList[ this.rootData.hoverList.length ] = this );\r
                        if( hit && this.hitChildData === null ) this.rootData.targetNodeData = this;\r
                        return hit || !!this.hitChildData;\r
@@ -213,8 +215,7 @@ var _Box = _AbstractUINode.inherits(
                                        _p2 && data.addToParent( this.xnode );\r
                                        uinodes[ uinodes.length ] = data;       \r
                                };\r
-                               //p3 && data.phase < 3 && data.afterAddition();\r
-                               p3 && data.phase < 4 && data.creationComplete();\r
+                               p3 && data.phase < 3 && data.creationComplete();\r
                        };\r
                        4 <= this.phase && this.rootData.reserveCalc();\r
                },\r
index de9006f..8a7fd98 100644 (file)
@@ -66,7 +66,7 @@ X.UI.Layout.Vertical = X.UI.Layout.create( {
                        //data.postMesure();\r
                };\r
                \r
-               !isNeedsDetection && data.updateLayout( x, y );\r
+               !isNeedsDetection && data.updateLayout( x + data.boxX, y + data.boxY );\r
        }\r
 });\r
 \r
index fa9dbd2..0ce6781 100644 (file)
@@ -64,7 +64,7 @@ X.UI.Layout.Horizontal = X.UI.Layout.create( {
                        //data.postMesure();\r
                };\r
                \r
-               !isNeedsDetection && data.updateLayout( x, y );\r
+               !isNeedsDetection && data.updateLayout( x + data.boxX, y + data.boxY );\r
        }\r
 });\r
 \r
index 0283fe9..8ff5499 100644 (file)
@@ -69,7 +69,7 @@ X.UI.Layout.Tile = X.UI.Layout.create( {
                };\r
                \r
                data.postMesure();\r
-               data.updateLayout( x, y );\r
+               data.updateLayout( x + data.boxX, y + data.boxY );\r
        }\r
 });\r
 \r
index 2538fa2..1b9fb48 100644 (file)
@@ -917,8 +917,6 @@ _ScrollBox = _ChromeBox.inherits(
                _scrollY       : 0,\r
                scrollXPercent : 0,\r
                scrollYPercent : 0,\r
-               scrollingX     : 0,\r
-               scrollingY     : 0,\r
                \r
                _containerNode : null,\r
                scrollManager  : null,\r
index bc02512..58c6a02 100644 (file)
@@ -10,16 +10,11 @@ var _Text = _AbstractUINode.inherits(
                        };\r
                        this.xnode      = X.Dom.Node.create( 'div' );\r
                        \r
-                       if( X.Type.isString( content ) ){\r
+                       if( X.Type.isString( content ) && content ){\r
                                this.content = content;\r
+                               this.xnode.text( this.content );\r
                                this.dirty   = X.UI.Dirty.CONTENT;\r
                        };\r
-               },\r
-               creationComplete : function(){\r
-                       this.content && this.xnode.text( this.content );\r
-                       \r
-                       this.phase = 3;\r
-                       this.dispatch( { type : X.UI.Event.CREATION_COMPLETE } );\r
                }\r
        }\r
 );\r
index 90b799e..d9167ad 100644 (file)
@@ -1,16 +1,16 @@
 
 function eventRellay( e ){
-       var x       = e.clientX,
-               y       = e.clientY,
+       var x       = e.clientX / X.Dom.baseFontSize,
+               y       = e.clientY / X.Dom.baseFontSize,
                type    = X.UI.Event.NameToID[ e.type ],
                i       = 0,
                data    = X.UI.currentRootData,
                sysOnly = false,
                ret     = X.Callback.NONE,
                list, parent, _ret;
-       if( type !== X.UI.Event._POINTER_MOVE && type !== X.UI.Event._MOUSE_MOVE ){
-               //console.log( type + ' x:' + x + ', y:' + y )
-       };
+       //if( type !== '' + X.UI.Event._POINTER_MOVE && type !== '' + X.UI.Event._TOUCH_MOVE && type !== '' + X.UI.Event._MOUSE_MOVE ){
+               //console.log( e.type + ' ' + type + ' x:' + x + ', y:' + y );
+       //};
        
        e.type = type;
 
@@ -19,10 +19,11 @@ function eventRellay( e ){
        if( X.UI.currentRootData === null ) return ret;
        
        list = X.UI.currentRootData.hoverList;
-       data = X.UI.currentRootData.targetNodeData = X.UI.currentRootData;
-       data.capcher( x, y );
+       ( X.UI.currentRootData.targetNodeData = X.UI.currentRootData ).capcher( x, y );
        data = X.UI.currentRootData.targetNodeData;
 
+       //data !== X.UI.currentRootData && console.log( data.xnode.text() );
+
        while( data ){
                _ret = data.dispatch( e, sysOnly );
                ret |= _ret;
@@ -123,7 +124,6 @@ var _PageRoot = _Box.inherits(
                        X.Timer.once( 0, this, this.afterAddToView );
                },
                afterAddToView : function(){
-                       //this.afterAddition();
                        this.xnode.className( 'PageRoot' );
                        
                        this.creationComplete();