]> git.proxmox.com Git - extjs.git/blame - extjs/classic/classic/src/layout/container/boxOverflow/None.js
add extjs 6.0.1 sources
[extjs.git] / extjs / classic / classic / src / layout / container / boxOverflow / None.js
CommitLineData
6527f429
DM
1/**\r
2 * @private\r
3 * Base class for Box Layout overflow handlers. These specialized classes are invoked when a Box Layout\r
4 * (either an HBox or a VBox) has child items that are either too wide (for HBox) or too tall (for VBox)\r
5 * for its container.\r
6 */\r
7Ext.define('Ext.layout.container.boxOverflow.None', {\r
8 alternateClassName: 'Ext.layout.boxOverflow.None',\r
9 alias: [\r
10 'box.overflow.none',\r
11 'box.overflow.None' // capitalized for 4.x compat\r
12 ],\r
13\r
14 mixins: [\r
15 'Ext.mixin.Factoryable'\r
16 ],\r
17\r
18 factoryConfig: {\r
19 defaultType: 'none'\r
20 },\r
21\r
22 isBoxOverflowHandler: true,\r
23\r
24 $configPrefixed: false,\r
25 $configStrict: false,\r
26 \r
27 constructor: function(config) {\r
28 this.initConfig(config);\r
29 },\r
30\r
31 handleOverflow: Ext.emptyFn,\r
32\r
33 clearOverflow: Ext.emptyFn,\r
34\r
35 beginLayout: Ext.emptyFn,\r
36 beginLayoutCycle: Ext.emptyFn,\r
37\r
38 calculate: function(ownerContext) {\r
39 var me = this,\r
40 plan = ownerContext.state.boxPlan,\r
41 overflow;\r
42\r
43 if (plan && plan.tooNarrow) {\r
44 overflow = me.handleOverflow(ownerContext);\r
45\r
46 if (overflow) {\r
47 if (overflow.reservedSpace) {\r
48 me.layout.publishInnerCtSize(ownerContext, overflow.reservedSpace);\r
49 }\r
50\r
51 // TODO: If we need to use the code below then we will need to pass along\r
52 // the new targetSize as state and use it calculate somehow...\r
53 //\r
54 //if (overflow.recalculate) {\r
55 // ownerContext.invalidate({\r
56 // state: {\r
57 // overflow: overflow\r
58 // }\r
59 // });\r
60 //}\r
61 }\r
62 } else {\r
63 me.clearOverflow();\r
64 }\r
65 },\r
66\r
67 completeLayout: Ext.emptyFn,\r
68\r
69 finishedLayout: function (ownerContext) {\r
70 var me = this,\r
71 owner = me.layout.owner,\r
72 hiddens,\r
73 hiddenCount;\r
74\r
75 // Only count hidden children if someone is interested when the overflow state changes\r
76 if (owner.hasListeners.overflowchange) {\r
77 hiddens = owner.query('>[hidden]');\r
78 hiddenCount = hiddens.length;\r
79 if (hiddenCount !== me.lastHiddenCount) {\r
80 owner.fireEvent('overflowchange', me.lastHiddenCount, hiddenCount, hiddens);\r
81 me.lastHiddenCount = hiddenCount;\r
82 }\r
83 }\r
84 },\r
85\r
86 onRemove: Ext.emptyFn,\r
87\r
88 /**\r
89 * @private\r
90 * Normalizes an item reference, string id or numerical index into a reference to the item\r
91 * @param {Ext.Component/String/Number} item The item reference, id or index\r
92 * @return {Ext.Component} The item\r
93 */\r
94 getItem: function(item) {\r
95 return this.layout.owner.getComponent(item);\r
96 },\r
97\r
98 getOwnerType: function(owner){\r
99 var type;\r
100 if (owner.isToolbar) {\r
101 type = 'toolbar';\r
102 } else if (owner.isTabBar) {\r
103 type = 'tab-bar';\r
104 } else if (owner.isMenu) {\r
105 type = 'menu';\r
106 } else if (owner.isBreadcrumb) {\r
107 type = 'breadcrumb';\r
108 } else {\r
109 type = owner.getXType();\r
110 }\r
111 \r
112 return type;\r
113 },\r
114\r
115 getPrefixConfig: Ext.emptyFn,\r
116 getSuffixConfig: Ext.emptyFn,\r
117 getOverflowCls: function() {\r
118 return '';\r
119 },\r
120\r
121 setVertical: function() {\r
122 var me = this,\r
123 layout = me.layout,\r
124 innerCt = layout.innerCt;\r
125\r
126 innerCt.removeCls(me.getOverflowCls(layout.oppositeDirection));\r
127 innerCt.addCls(me.getOverflowCls(layout.direction));\r
128 }\r
129});