OSDN Git Service

Version 0.6.196, bug fixes X.XML & X.UI.ScrollBox.
authoritozyun <itozyun@user.sourceforge.jp>
Thu, 19 Nov 2015 15:27:14 +0000 (00:27 +0900)
committeritozyun <itozyun@user.sourceforge.jp>
Thu, 19 Nov 2015 15:27:14 +0000 (00:27 +0900)
0.6.x/js/01_core/03_XScript.js
0.6.x/js/02_dom/04_XBoxModel.js
0.6.x/js/02_dom/08_XNodeSelector.js
0.6.x/js/02_dom/20_XNode.js
0.6.x/js/05_util/04_XXML.js
0.6.x/js/20_ui/05_XUI_Gesture.js
0.6.x/js/20_ui/15_ScrollBox.js

index b8255ca..753af82 100644 (file)
@@ -9,20 +9,20 @@ var X_Script_VBS_ENABLED = X_UA[ 'Windows' ] && !X_UA[ 'WinCE' ] && !X_UA[ 'WinP
  * @type {object}\r
  */\r
 X[ 'Script' ] = {\r
-       'tryCatch' : X_Script_try\r
+\r
+       'tryIfSafe' : X_Script_try,\r
        \r
+       /**\r
+        * Visual Basic Script が使えるか?\r
+        * @alias X.Script.VBS\r
+        * @type {boolean}\r
+        */\r
+       'VBS'       : X_Script_VBS_ENABLED\r
        // git, strict mode, asm.js, \r
 };\r
 \r
 if( X_Script_VBS_ENABLED ){\r
        \r
-/**\r
- * Visual Basic Script が使えるか?\r
- * @alias X.Script.VBS\r
- * @type {boolean}\r
- */\r
-       X[ 'Script' ][ 'VBS' ] = true;\r
-       \r
        X_Script_gte15 || document.write( '<script type=text/vbscript>' +\r
                [\r
                        'Function vbs_testAXO(v)',\r
@@ -66,6 +66,12 @@ if( X_Script_VBS_ENABLED ){
        // byte Array を扱う vba\r
 };\r
 \r
+/**\r
+ * try-catch 構文が使えて安全に実行できるなら、コードを実行する\r
+ * @alias X.Script.tryIfSafe\r
+ * @param {funciton} func\r
+ * @param {array=} 引数の入った配列\r
+ */\r
 function X_Script_try( func, args ){\r
        if( !X_Script_gte15 ){\r
                //return func.apply( {}, args );\r
index e2b13be..43d7e99 100644 (file)
@@ -65,7 +65,7 @@ X_ViewPort[ 'listenOnce' ]( X_EVENT_INIT, function(){
 function X_Node_BoxModel_mesure( that, name ){\r
        var flags = that[ '_flags' ], elm;\r
        \r
-       if( !this[ '_tag' ] || ( ( flags & X_NodeFlags_IN_TREE ) === 0 ) || ( flags & X_NodeFlags_STYLE_IS_DISPLAY_NONE ) ) return 0;\r
+       if( !that[ '_tag' ] || ( ( flags & X_NodeFlags_IN_TREE ) === 0 ) || ( flags & X_NodeFlags_STYLE_IS_DISPLAY_NONE ) ) return 0;\r
        \r
        X_Node_updateTimerID && X_Node_startUpdate();\r
        \r
index ca7fcd5..1208076 100644 (file)
@@ -196,7 +196,7 @@ function X_Node_Selector__parse( query, last ){
                                                not      = true;\r
                                                selector = 0;\r
                                                phase    = 0x0;\r
-                                               name     = null;                                        \r
+                                               name     = null;\r
                                        };\r
                                        //continue;\r
                                } else\r
index cc826b1..7f125ff 100644 (file)
@@ -445,6 +445,7 @@ function X_Node_toggleInGPUFlag( gpuRoot, xnodes, flag ){
  */
 function X_Node_create( tag, opt_attrs, opt_css ){
        var xnode;
+
        if( !this[ '_tag' ] ) return;
        this[ 'append' ]( xnode = X_Doc_create( tag, opt_attrs, opt_css ) );
        return xnode;
index 38fcaf3..df77214 100644 (file)
@@ -171,7 +171,7 @@ function XMLWrapper_val( queryString, type ){
                        n = -1; \r
                        isMulti = isMulti || 1 < l;\r
                        \r
-                       console.log( 'combinator ' + combinator );\r
+                       //console.log( 'combinator ' + combinator );\r
        \r
                        switch( combinator ){\r
                                // > TagName|*\r
@@ -222,12 +222,12 @@ function XMLWrapper_val( queryString, type ){
                                        break;\r
                                default :\r
                                        if( combinator === 1 || ( isStart && selector < 7 ) ){\r
-                                               console.log( l + ' > ' + xmlList.length + ' tag:' + tagName );\r
+                                               //console.log( l + ' > ' + xmlList.length + ' tag:' + tagName );\r
                                                for( ; i < l; ++i ){\r
                                                        xml = parents[ i ];\r
                                                        xml.childNodes && xml.childNodes.length && XMLWrapper_fetchElements( xmlList, xml, isAll ? null : tagName );\r
                                                };\r
-                                               console.log( l + ' >> ' + xmlList.length + ' tag:' + tagName );\r
+                                               //console.log( l + ' >> ' + xmlList.length + ' tag:' + tagName );\r
                                        };\r
                        };\r
                        \r
@@ -245,7 +245,7 @@ function XMLWrapper_val( queryString, type ){
                                // :, 擬似クラス\r
                                case 4 :\r
                                        if( !( filter = XMLWrapper_filter[ name ] ) ){\r
-                                               return XMLListWrapper_0;;\r
+                                               return XMLListWrapper_0;\r
                                        };\r
                                        break;\r
                                // [] 属性\r
@@ -267,7 +267,7 @@ function XMLWrapper_val( queryString, type ){
                                                        filter = [ 'class', 3, name ]; break;\r
                                                // :, 擬似クラス\r
                                                case 4 :\r
-                                                       if( !( filter = X_Node_Selector__filter[ name ] ) ){\r
+                                                       if( !( filter = XMLWrapper_filter[ name ] ) ){\r
                                                                return [];\r
                                                        };\r
                                                        break;\r
@@ -442,13 +442,13 @@ function XMLWrapper_val( queryString, type ){
        function XMLWrapper_funcSelectorChild( type, flag_all, flags, xmlList ){\r
                var res      = [],\r
                        flag_not = flags.not,\r
-                       i = 0, n = -1, xnode, node,\r
+                       i = 0, n = -1, xml, node,\r
                        tagName, tmp;\r
-               for( ; xnode = xmlList[ i ]; ++i ){\r
-                       tagName = flag_all || xnode.tagName;\r
+               for( ; xml = xmlList[ i ]; ++i ){\r
+                       tagName = flag_all || xml.tagName;\r
                        tmp     = null;\r
                        if( /* tmp === null && */ type <= 0 ){\r
-                               for( node = xnode.previousSibling; node; node = node.previousSibling ){\r
+                               for( node = xml.previousSibling; node; node = node.previousSibling ){\r
                                        if( node.nodeType === 1 && ( flag_all || tagName === node.tagName ) ){\r
                                                tmp = false;\r
                                                break;\r
@@ -456,7 +456,7 @@ function XMLWrapper_val( queryString, type ){
                                };\r
                        };\r
                        if( tmp === null && 0 <= type ){\r
-                               for( node = xnode.nextSibling; node; node = node.nextSibling ){\r
+                               for( node = xml.nextSibling; node; node = node.nextSibling ){\r
                                        if( node.nodeType === 1 && ( flag_all || tagName === node.tagName ) ){\r
                                                tmp = false;\r
                                                break;\r
@@ -464,29 +464,32 @@ function XMLWrapper_val( queryString, type ){
                                };                                              \r
                        };\r
                        if( tmp === null ) tmp = true;\r
-                       if( tmp ^ flag_not ) res[ ++n ] = xnode;\r
+                       if( tmp ^ flag_not ) res[ ++n ] = xml;\r
                };\r
                return res;\r
        };\r
        function XMLWrapper_funcSelectorNth( pointer, sibling, flag_all, flags, xmlList, a, b ){\r
-               var res      = [],\r
+               var uids     = X_Array_copy( xmlList ),\r
+                       res      = [],\r
                        checked  = {},\r
                        flag_not = flags.not,\r
-                       i = 0, n = -1, uid,\r
-                       c, xnode, tmp, node, tagName;\r
-               for( ; xnode = xmlList[ i ]; ++i ){\r
-                       uid = xnode._uid;\r
-                       tmp = checked[ uid ];\r
+                       i = 0, n = -1,\r
+                       c, xml, tmp, node, tagName, uid;\r
+\r
+               for( ; xml = xmlList[ i ]; ++i ){\r
+                       tmp = checked[ i ];\r
                        if( tmp === undefined ){\r
-                               for( c = 0, node = xnode.parentNode[ pointer ], tagName = flag_all || xnode.tagName; node; node = node[ sibling ] ){\r
+                               for( c = 0, node = xml.parentNode[ pointer ], tagName = flag_all || xml.tagName; node; node = node[ sibling ] ){\r
                                        if( node.nodeType === 1 && ( flag_all || tagName === node.tagName ) ){\r
                                                ++c;\r
-                                               checked[ node._uid ] = a === 0 ? c === b : (c - b) % a === 0 && (c - b) / a >= 0;\r
-                                       };                                                      \r
+                                               uid = uids.indexOf( node );\r
+                                               if( uid === -1 ) uids[ uid = uids.length ] = node;\r
+                                               checked[ uid ] = a === 0 ? c === b : (c - b) % a === 0 && (c - b) / a >= 0;\r
+                                       };\r
                                };\r
-                               tmp = checked[ uid ];\r
+                               tmp = checked[ i ];\r
                        };\r
-                       if( tmp ^ flag_not ) res[ ++n ] = xnode;\r
+                       if( tmp ^ flag_not ) res[ ++n ] = xml;\r
                };\r
                return res;\r
        };\r
@@ -494,9 +497,9 @@ function XMLWrapper_val( queryString, type ){
        function XMLWrapper_funcSelectorProp( prop, flag, flags, xmlList ){\r
                var res = [],\r
                        flag_not = flag ? flags.not : !flags.not,\r
-                       i = 0, n = -1, xnode;\r
-               for( ; xnode = xmlList[ i ]; ++i ){\r
-                       if( xnode.getAttributeNode( prop ) ^ flag_not ) res[ ++n ] = xnode;\r
+                       i = 0, n = -1, xml;\r
+               for( ; xml = xmlList[ i ]; ++i ){\r
+                       if( xml.getAttributeNode( prop ) ^ flag_not ) res[ ++n ] = xml;\r
                };\r
                return res;\r
        }; */\r
@@ -536,16 +539,16 @@ var XMLWrapper_filter = {
                m : function( flags, xmlList ){\r
                        var res = [],\r
                                flag_not = flags.not,\r
-                               i = 0, n = -1, xnode, tmp, node;\r
-                       for( ; xnode = xmlList[i]; ++i ){\r
+                               i = 0, n = -1, xml, tmp, node;\r
+                       for( ; xml = xmlList[i]; ++i ){\r
                                tmp = true;\r
-                               for( node = xnode.firstChild; node; node = node.nextSibling ){\r
+                               for( node = xml.firstChild; node; node = node.nextSibling ){\r
                                        if( node.nodeType === 1 || ( node.nodeType === 3 && node.nodeValue ) ){\r
                                                tmp = false;\r
                                                break;\r
                                        };                              \r
                                };\r
-                               if( tmp ^ flag_not ) res[ ++n ] = xnode;\r
+                               if( tmp ^ flag_not ) res[ ++n ] = xml;\r
                        };\r
                        return res;\r
                }\r
@@ -554,20 +557,19 @@ var XMLWrapper_filter = {
                m : function( flags, xmlList, arg ){\r
                        var res = [],\r
                                flag_not = flags.not,\r
-                               i = 0, n = -1, xnode, text = '';\r
+                               i = 0, n = -1, xml, text = '';\r
 \r
-                       for( ; xnode = xmlList[ i ]; ++i ){\r
-                               switch( xnode.nodeType ){\r
+                       for( ; xml = xmlList[ i ]; ++i ){\r
+                               switch( xml.nodeType ){\r
                                        case 1 :\r
-                                               text = xml.nodeType === 1 ? xml.innerText || xml.text || xml.textContent : xml.nodeValue;\r
+                                               text = xml.innerText || xml.text || xml.textContent;\r
                                                break;\r
                                        //case 2 :\r
                                        case 3 :\r
-                                               text = xnode.nodeValue;\r
+                                               text = xml.nodeValue;\r
                                                break;\r
                                };\r
-                               console.log( text + ' ' + arg );\r
-                               if ( ( -1 < text.indexOf( arg ) ) ^ flag_not ) res[ ++n ] = xnode;                                              \r
+                               if ( ( -1 < text.indexOf( arg ) ) ^ flag_not ) res[ ++n ] = xml;                \r
                        };\r
                        return res;\r
                }\r
index e726389..c738b38 100644 (file)
@@ -259,7 +259,7 @@ function XUI_Gesture_handleEvent( e ){
                        isMouse    = e.pointerType === 'mouse',\r
                        touches    = [], \r
                        numTouches = 0,// count the total touches on the screen\r
-                       i, p, l, j, captured, ret, activated, gesture, startEv,\r
+                       i, p, l, j, captured, hammerEvent, ret, activated, gesture, startEv,\r
                        deltaTime, deltaX, deltaY, velocity, center, startCenter;\r
 \r
                if( !isStart && !hammer.gestureStartEvent ) return;\r
index f7d334b..3838363 100644 (file)
@@ -12,8 +12,10 @@ function XUI_ScrollBox_start( scrollBox ){
        if( scrollBox.hasVScroll ){\r
                if( !XUI_ScrollBox_indicatorV ){\r
                        XUI_ScrollBox_indicatorV = X_Doc_create( 'div' )[ 'className' ]( 'ScrollBox-IndicatorV' );\r
-                       \r
                };\r
+               if( XUI_ScrollBox_current )\r
+                       XUI_ScrollBox_current[ 'unlisten' ]( [ X_EVENT_CANCELED, XUI_Event.SCROLL_END ], XUI_ScrollBox_indicatorV, XUI_ScrollBox_indicatorHandleEvent );\r
+               \r
                scrollBox.xnode[ 'append' ]( XUI_ScrollBox_indicatorV );\r
                XUI_ScrollBox_indicatorV[ 'animate' ](\r
                                { opacity : 0 },\r
@@ -22,11 +24,17 @@ function XUI_ScrollBox_start( scrollBox ){
                        );\r
                scrollBox\r
                        [ 'listenOnce' ]( [ X_EVENT_CANCELED, XUI_Event.SCROLL_END ], XUI_ScrollBox_indicatorV, XUI_ScrollBox_indicatorHandleEvent );\r
+       } else\r
+       if( XUI_ScrollBox_indicatorV ){\r
+               XUI_ScrollBox_indicatorV[ 'remove' ]();\r
        };\r
+       \r
        if( scrollBox.hasHScroll ){\r
                if( !XUI_ScrollBox_indicatorH ){\r
                        XUI_ScrollBox_indicatorH = X_Doc_create( 'div' )[ 'className' ]( 'ScrollBox-IndicatorH' );\r
                };\r
+               if( XUI_ScrollBox_current )\r
+                       XUI_ScrollBox_current[ 'unlisten' ]( [ X_EVENT_CANCELED, XUI_Event.SCROLL_END ], XUI_ScrollBox_indicatorH, XUI_ScrollBox_indicatorHandleEvent );\r
                scrollBox.xnode[ 'append' ]( XUI_ScrollBox_indicatorH );\r
                XUI_ScrollBox_indicatorH[ 'animate' ](\r
                                { opacity : 0 },\r
@@ -35,7 +43,11 @@ function XUI_ScrollBox_start( scrollBox ){
                        );\r
                scrollBox\r
                        [ 'listenOnce' ]( [ X_EVENT_CANCELED, XUI_Event.SCROLL_END ], XUI_ScrollBox_indicatorH, XUI_ScrollBox_indicatorHandleEvent );\r
+       } else\r
+       if( XUI_ScrollBox_indicatorH ){\r
+               XUI_ScrollBox_indicatorH[ 'remove' ]();\r
        };\r
+       XUI_ScrollBox_current = scrollBox;\r
 };\r
 \r
 function XUI_ScrollBox_indicatorHandleEvent( e ){\r