1 var X_NodeFlags_DESTROYED = 0x0,
\r
2 X_NodeFlags_EXIST = 0x1,
\r
3 X_NodeFlags_IN_TREE = 0x2, // xnode が(仮想)ツリーに追加されている -> 描画の対象
\r
5 X_NodeFlags_STYLE_IS_DISPLAY_NONE = 2 << 1, // display : none
\r
6 X_NodeFlags_STYLE_IS_INVISIBLE = 2 << 2, // visibility : hidden or opacity : 0
\r
7 X_NodeFlags_STYLE_IS_POS_ABSOLUTE = 2 << 3, // position : absolute
\r
8 X_NodeFlags_STYLE_IS_NO_OVERFLOW = 2 << 4, // overflow : hidden
\r
9 X_NodeFlags_STYLE_IS_WIDTH_LENGTH = 2 << 5, // width : overflow:hidden,要素無し、または要素が非表示なら、 width() のための commitUpdate が不要
\r
10 X_NodeFlags_STYLE_IS_WIDTH_PCT = 2 << 6, // width : width() のための commitUpdate が不要かもしれない。(親で LENGTH が指定されているなら)
\r
11 X_NodeFlags_STYLE_IS_HEIGHT_LENGTH = 2 << 7, // height :
\r
12 X_NodeFlags_STYLE_IS_HEIGHT_PCT = 2 << 8, // height :
\r
13 X_NodeFlags_STYLE_IS_FONT_LENGTH = 2 << 9, // fontSize :
\r
14 X_NodeFlags_STYLE_IS_FONT_PCT = 2 << 10, // fontSize :
\r
16 X_NodeFlags_DIRTY_POSITION = 2 << 11, // 要素位置の変更が起こった。
\r
17 X_NodeFlags_DIRTY_CONTENT = 2 << 12, // width, height, x, y textNode の内容 TODO html と排他なので ID と共通でいい
\r
18 X_NodeFlags_DIRTY_ID = 2 << 12, // width, height, x, y
\r
19 X_NodeFlags_DIRTY_CLASSNAME = 2 << 13, // X_Node_CSS_getCharSize, width, height, x, y
\r
20 X_NodeFlags_DIRTY_ATTR = 2 << 14, // X_Node_CSS_getCharSize, width, height, x, y
\r
21 X_NodeFlags_DIRTY_CSS = 2 << 15, // X_Node_CSS_getCharSize, width, height, x, y
\r
22 X_NodeFlags_DIRTY_IE_FILTER = X_UA[ 'IE' ] < 10 && X_UA[ 'ActiveX' ] ? 2 << 16 : 0, //
\r
24 X_NodeFlags_ACTUAL_LISTENING = 2 << 17,
\r
25 X_NodeFlags_OLD_ATTRTEXT = 2 << 18,
\r
26 X_NodeFlags_OLD_CSSTEXT = 2 << 19,
\r
28 // filter 要素が親子になると不具合が出るのを検出
\r
29 X_NodeFlags_IE_FILTER_NOW = 2 << 20,
\r
31 //GPU_WAITING = 2 << 20, // 1:子のGPU解除待
\r
32 X_NodeFlags_GPU_RESERVED = 2 << 21, // 2:GPU予約
\r
33 X_NodeFlags_GPU_NOW = 2 << 22, // 3:GPU now!
\r
34 X_NodeFlags_GPU_RELEASE_RESERVED = 2 << 23, // 4:GPU解除予約
\r
35 X_NodeFlags_GPU_CHILD = 2 << 24,
\r
37 X_NodeFlags_IE4_HAS_TEXTNODE = X_UA[ 'IE4' ] ? 2 << 21 : 0,
\r
38 X_NodeFlags_IE4_HAS_ELEMENT = X_UA[ 'IE4' ] ? 2 << 22 : 0,
\r
39 X_NodeFlags_IE4_DIRTY_CHILDREN = X_UA[ 'IE4' ] ? 2 << 23 : 0,
\r
40 X_NodeFlags_IE4_FIXED = X_UA[ 'IE4' ] ? 2 << 24 : 0,
\r
42 X_NodeFlags_IE5_DISPLAY_NONE_FIX = X_UA[ 'IE5' ] && X_UA[ 'ActiveX' ] ? 2 << 24 : 0,
\r
43 X_NodeFlags_IE8_OPACITY_FIX = X_UA[ 'IE8' ] && X_UA[ 'ActiveX' ] ? 2 << 25 : 0,
\r
45 // http://modernizr.com/downloads/modernizr.js
\r
46 // Thanks to Erik Dahlstrom
\r
47 X_NodeFlags_IS_SVG = document.createElementNS && document.createElementNS( 'http://www.w3.org/2000/svg', 'svg' )[ 'createSVGRect' ] ? 2 << 26 : 0,
\r
48 X_NodeFlags_IS_VML =
\r
50 if( !X_UA[ 'ActiveX' ] || X_UA[ 'IE' ] < 5 || 9 < X_UA[ 'IE' ] /* || X_UA[ 'ieExeComError' ] */ ) return 0; // standalone の除外 -> X_UA[ 'ieExeComError' ]
\r
53 '<!--[if vml]><script id=vmltest1>__vml=1;</script><![endif]-->' +
\r
54 '<!--[if gte vml 1]><script id=vmltest2>__vml=2;</script><![endif]-->' );
\r
61 X[ 'Doc' ][ 'VML' ] = window[ '__vml' ] / 2 || 0;
\r
63 switch( window[ '__vml' ] ){
\r
65 document.getElementById( 'vmltest2' ).removeNode( true );
\r
67 document.getElementById( 'vmltest1' ).removeNode( true );
\r
73 X_NodeFlags_SYSTEM_NODE = 2 << 28,
\r
75 X_Node_BITMASK_RESET_STYLE = ( ( 2 << 29 ) - 1 + ( 2 << 29 ) ) ^ (
\r
76 X_NodeFlags_STYLE_IS_DISPLAY_NONE |
\r
77 X_NodeFlags_STYLE_IS_INVISIBLE |
\r
78 X_NodeFlags_STYLE_IS_POS_ABSOLUTE |
\r
79 X_NodeFlags_STYLE_IS_NO_OVERFLOW |
\r
80 X_NodeFlags_STYLE_IS_WIDTH_LENGTH |
\r
81 X_NodeFlags_STYLE_IS_WIDTH_PCT |
\r
82 X_NodeFlags_STYLE_IS_HEIGHT_LENGTH |
\r
83 X_NodeFlags_STYLE_IS_HEIGHT_PCT |
\r
84 X_NodeFlags_STYLE_IS_FONT_LENGTH |
\r
85 X_NodeFlags_STYLE_IS_FONT_PCT ),
\r
87 X_Node_BitMask_IS_DIRTY = X_NodeFlags_DIRTY_POSITION |
\r
88 X_NodeFlags_DIRTY_CONTENT | X_NodeFlags_DIRTY_ID | X_NodeFlags_DIRTY_CLASSNAME |
\r
89 X_NodeFlags_DIRTY_ATTR | X_NodeFlags_DIRTY_CSS | X_NodeFlags_DIRTY_IE_FILTER | X_NodeFlags_IE8_OPACITY_FIX,
\r
91 X_Node_BitMask_RESET_DIRTY = ( ( 2 << 29 ) - 1 + ( 2 << 29 ) ) ^ X_Node_BitMask_IS_DIRTY,
\r
93 X_Node_BitMask_RESET_GPU = ( ( 2 << 29 ) - 1 + ( 2 << 29 ) ) ^ ( X_NodeFlags_GPU_RESERVED | X_NodeFlags_GPU_NOW | X_NodeFlags_GPU_RELEASE_RESERVED ),
\r
95 X_Node_BitMask_IE4_IS_MIX = X_NodeFlags_IE4_HAS_TEXTNODE | X_NodeFlags_IE4_HAS_ELEMENT;
\r
103 X[ 'Doc' ][ 'SVG' ] = !!X_NodeFlags_IS_SVG;
\r