OSDN Git Service

Version 0.6.138, working X.UI.ScrollBox!, fix Node.prev & Node.next.
[pettanr/clientJs.git] / 0.6.x / js / 20_ui / 20_PageRoot.js
index 16521e3..8890fd4 100644 (file)
@@ -2,7 +2,7 @@ var X_UI_rootData  = null,
        X_UI_eventBusy = false;
 
 function X_UI_eventRellay( e ){
-       var font    = X.ViewPort.getBaseFontSize(),
+       var font    = X[ 'ViewPort' ][ 'getBaseFontSize' ](),
                x       = e.clientX / font,
                y       = e.clientY / font,
                type    = X.UI.Event.NameToID[ e.type ],
@@ -47,14 +47,14 @@ function X_UI_eventRellay( e ){
                };
                if( parent !== X_UI_rootData ){
                        data.hoverClassName && data.xnode[ 'removeClass' ]( data.hoverClassName );
-                       data._listeners && data._listeners[ X.UI.Event.POINTER_OUT ] && data[ 'dispatch' ]( e, X.UI.Event.POINTER_OUT, false ); // new Event
+                       data[ '_listeners' ] && data[ '_listeners' ][ X.UI.Event.POINTER_OUT ] && data[ 'dispatch' ]( e, X.UI.Event.POINTER_OUT, false ); // new Event
                        delete data.hovering;
                        list.splice( i, 1 );
                        continue;
                };
                if( !data.hovering ){
                        data.hoverClassName && data.xnode.addClassName( data.hoverClassName );
-                       data._listeners && data._listeners[ X.UI.Event.POINTER_IN ] && data[ 'dispatch' ]( e, X.UI.Event.POINTER_IN, true ); // new Event
+                       data[ '_listeners' ] && data[ '_listeners' ][ X.UI.Event.POINTER_IN ] && data[ 'dispatch' ]( e, X.UI.Event.POINTER_IN, true ); // new Event
                        data.hovering = true;
                };
        };
@@ -69,7 +69,7 @@ function X_UI_eventRellay( e ){
 
 X.UI._PageRoot = X.UI._Box.inherits(
        '_PageRoot',
-       X.Class.FINAL | X.Class.PRIVATE_DATA | X.Class.SUPER_ACCESS,
+       X_Class.FINAL | X_Class.PRIVATE_DATA | X_Class.SUPER_ACCESS,
        {
                layout                : X.UI.Layout.Canvas,
                
@@ -114,7 +114,7 @@ X.UI._PageRoot = X.UI._Box.inherits(
                        } );
                        
                        // hover や rollover rollout のための move イベントの追加
-                       this.xnodeInteractiveLayer[ 'listen' ]( X.UI.Event.IdToName[ X.UI.Event._POINTER_MOVE ], X_UI_eventRellay );
+                       this.xnodeInteractiveLayer[ 'listen' ]( 'pointermove', X_UI_eventRellay );
                        if( counter[ X.UI.Event._POINTER_MOVE ] ){
                                ++counter[ X.UI.Event._POINTER_MOVE ];
                        } else {
@@ -145,12 +145,16 @@ X.UI._PageRoot = X.UI._Box.inherits(
                        };
                },
                calculate : function( e ){
-                       var size = X.ViewPort.getSize(),
-                               font = X.ViewPort.getBaseFontSize(),
-                               w    = size[ 0 ],
-                               h    = size[ 1 ];
-                       this.layout.calculate( this, false, 0, 0, w / font, h / font );
+                       var size, font, w, h;
+                       
+                       this[ 'dispatch' ]( X.UI.Event.LAYOUT_BEFORE );
+                       
+                       size = X[ 'ViewPort' ][ 'getSize' ]();
+                       font = X[ 'ViewPort' ][ 'getBaseFontSize' ]();
+                       this.layout.calculate( this, false, 0, 0, size[ 0 ] / font, size[ 1 ] / font );
                        this.calcReserved = false;
+                       
+                       X_ViewPort[ 'listenOnce' ]( X_EVENT_AFTER_UPDATE, this, XUI_PageRoot_onViewUpdate );
                },
                
                updateCoursor : function( cursor ){
@@ -158,12 +162,16 @@ X.UI._PageRoot = X.UI._Box.inherits(
                },
                
                _remove : function(){
-                       this.xnodeInteractiveLayer[ 'unlisten' ]();
+                       X_EventDispatcher_unlistenAll( this.xnodeInteractiveLayer );
                        _Box.prototype._remove.call( this );
                }
        }
 );
 
+function XUI_PageRoot_onViewUpdate( e ){
+       this[ 'dispatch' ]( X.UI.Event.LAYOUT_COMPLETE );
+};
+
 X.UI.PageRoot = X.UI.Box.presets(
        'PageRoot',
        X.UI._PageRoot,