]> git.proxmox.com Git - extjs.git/blame - extjs/modern/modern/src/viewport/Viewport.js
add extjs 6.0.1 sources
[extjs.git] / extjs / modern / modern / src / viewport / Viewport.js
CommitLineData
6527f429
DM
1/**\r
2 * This class acts as a factory for environment-specific viewport implementations.\r
3 *\r
4 * Please refer to the {@link Ext.Viewport} documentation about using the global instance.\r
5 * @private\r
6 */\r
7Ext.define('Ext.viewport.Viewport', {\r
8 requires: [\r
9 'Ext.viewport.Ios',\r
10 'Ext.viewport.Android',\r
11 'Ext.viewport.WindowsPhone'\r
12 ],\r
13 singleton: true,\r
14\r
15 setup: function (config) {\r
16 var osName = Ext.os.name,\r
17 viewportName;\r
18\r
19 switch (osName) {\r
20 case 'Android':\r
21 viewportName = (Ext.browser.name === 'ChromeMobile') ? 'Default' : 'Android';\r
22 break;\r
23\r
24 case 'iOS':\r
25 viewportName = 'Ios';\r
26 break;\r
27\r
28 case 'Windows':\r
29 viewportName = (Ext.browser.name === 'IE') ? 'WindowsPhone' : 'Default';\r
30 break;\r
31\r
32 case 'WindowsPhone':\r
33 viewportName = 'WindowsPhone';\r
34 break;\r
35\r
36 default:\r
37 viewportName = 'Default';\r
38 break;\r
39 }\r
40\r
41 Ext.Viewport = Ext.create('Ext.viewport.' + viewportName, config);\r
42 }\r
43});\r
44\r
45// Docs for the singleton instance created by above factory:\r
46\r
47/**\r
48 * @class Ext.Viewport\r
49 * @extends Ext.viewport.Default\r
50 * @singleton\r
51 *\r
52 * Ext.Viewport is a instance created when you use {@link Ext#setup}. Because {@link Ext.Viewport} extends from\r
53 * {@link Ext.Container}, it has as {@link #layout} (which defaults to {@link Ext.layout.Card}). This means you\r
54 * can add items to it at any time, from anywhere in your code. The {@link Ext.Viewport} {@link #cfg-fullscreen}\r
55 * configuration is `true` by default, so it will take up your whole screen.\r
56 *\r
57 * @example raw\r
58 * Ext.setup({\r
59 * onReady: function() {\r
60 * Ext.Viewport.add({\r
61 * xtype: 'container',\r
62 * html: 'My new container!'\r
63 * });\r
64 * }\r
65 * });\r
66 *\r
67 * If you want to customize anything about this {@link Ext.Viewport} instance, you can do so by adding a property\r
68 * called `viewport` into your {@link Ext#setup} object:\r
69 *\r
70 * @example raw\r
71 * Ext.setup({\r
72 * viewport: {\r
73 * layout: 'vbox'\r
74 * },\r
75 * onReady: function() {\r
76 * //do something\r
77 * }\r
78 * });\r
79 *\r
80 * **Note** if you use {@link Ext#onReady}, this instance of {@link Ext.Viewport} will **not** be created. Though, in most cases,\r
81 * you should **not** use {@link Ext#onReady}.\r
82 */\r