OSDN Git Service

07056ee8b590fc3a7306bc96472444f70dd2b133
[pettanr/clientJs.git] / 0.6.x / js / ui / 12_HBox.js
1 var HorizontalLayoutManager = ( new LayoutManagerBase() ).define( {\r
2         allowForSelf : {\r
3                 childX  : false,\r
4                 childY  : false,\r
5                 childW  : true,\r
6                 childH  : true,\r
7                 gapX    : true,\r
8                 gapY    : false,\r
9                 padding : true\r
10         },\r
11         allowForChild : {\r
12                 x  : false,\r
13                 y  : false,\r
14                 w  : true,\r
15                 h  : true\r
16         },\r
17         calculate : function( data, x, y, w, h ){\r
18                 var nodes     = data.nodes,\r
19                         styleData = data.styleData,\r
20                         cssObj    = styleData._cssObj,\r
21                         childW    = cssObj.childW,\r
22                         childH    = cssObj.childH,\r
23                         gapX      = cssObj.gapX || 0,\r
24                         gapY      = cssObj.gapY || 0,\r
25                         padding   = cssObj.padding || 0,\r
26                         _x        = padding,\r
27                         _y        = padding,\r
28                         i = 0, l = nodes.length, node;\r
29 \r
30                 if( childW || childW === 0 ){\r
31                         for( ; i < l; ++i ){\r
32                                 node = nodes[ i ];\r
33                                 if( node.instanceOf( _AbstractDisplayContainer ) ){\r
34                                         node.calculate( _x, NaN, childW, childH );\r
35                                 } else {\r
36                                         node.styleData.layout( _x, NaN, childW, childH );\r
37                                 };\r
38                                 _x += childW + gapX;\r
39                         };\r
40                 } else {\r
41                         for( ; i < l; ++i ){\r
42                                 node = nodes[ i ];\r
43                                 if( node.instanceOf( _AbstractDisplayContainer ) ){\r
44                                         node.calculate( _x, NaN, NaN, childH );\r
45                                 } else {\r
46                                         node.styleData.layout( _x, NaN, NaN, childH );\r
47                                 };\r
48                                 //_x += node.rawElement.offsetWidth + gapX;\r
49                                 _x += node.rawElement.width() + gapX;\r
50                         };\r
51                 };\r
52                 data.styleData.layout( x, y, w, h );\r
53         }\r
54 });\r
55 \r
56 /*\r
57 var HBox = function(){\r
58         var arg = arguments;\r
59         arg[ arg.length ] = HorizontalLayoutManager;\r
60         ++arg.length;\r
61         return Box.apply( null, arg );\r
62 }; */\r
63 \r
64 \r
65 var HBox = AbstractDisplayContainer.inherits(\r
66         'HBox',\r
67         X.Class.SUPER_ACCESS,\r
68         {\r
69                 Constructor : function(){\r
70                         this.style = DisplayNodeStyle( this, X.Class._newPrivate( this,  HorizontalLayoutManager, arguments ) );\r
71                         this.style.addName( 'HBox' );\r
72                 }\r
73         }\r
74 );