]>
Commit | Line | Data |
---|---|---|
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 | |
7 | Ext.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 |