Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / docs / source / Desktop.html
1 <html>\r
2 <head>\r
3   <title>The source code</title>\r
4     <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
5     <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
6 </head>\r
7 <body  onload="prettyPrint();">\r
8     <pre class="prettyprint lang-js">Ext.Desktop = function(app){\r
9         this.taskbar = new Ext.ux.TaskBar(app);\r
10         var taskbar = this.taskbar;\r
11         \r
12         var desktopEl = Ext.get('x-desktop');\r
13     var taskbarEl = Ext.get('ux-taskbar');\r
14     var shortcuts = Ext.get('x-shortcuts');\r
15 \r
16     var windows = new Ext.WindowGroup();\r
17     var activeWindow;\r
18                 \r
19     function minimizeWin(win){\r
20         win.minimized = true;\r
21         win.hide();\r
22     }\r
23 \r
24     function markActive(win){\r
25         if(activeWindow && activeWindow != win){\r
26             markInactive(activeWindow);\r
27         }\r
28         taskbar.setActiveButton(win.taskButton);\r
29         activeWindow = win;\r
30         Ext.fly(win.taskButton.el).addClass('active-win');\r
31         win.minimized = false;\r
32     }\r
33 \r
34     function markInactive(win){\r
35         if(win == activeWindow){\r
36             activeWindow = null;\r
37             Ext.fly(win.taskButton.el).removeClass('active-win');\r
38         }\r
39     }\r
40 \r
41     function removeWin(win){\r
42         taskbar.removeTaskButton(win.taskButton);\r
43         layout();\r
44     }\r
45 \r
46     function layout(){\r
47         desktopEl.setHeight(Ext.lib.Dom.getViewHeight()-taskbarEl.getHeight());\r
48     }\r
49     Ext.EventManager.onWindowResize(layout);\r
50 \r
51     this.layout = layout;\r
52 \r
53     this.createWindow = function(config, cls){\r
54         var win = new (cls||Ext.Window)(\r
55             Ext.applyIf(config||{}, {\r
56                 manager: windows,\r
57                 minimizable: true,\r
58                 maximizable: true\r
59             })\r
60         );\r
61         win.render(desktopEl);\r
62         win.taskButton = taskbar.addTaskButton(win);\r
63 \r
64         win.cmenu = new Ext.menu.Menu({\r
65             items: [\r
66 \r
67             ]\r
68         });\r
69 \r
70         win.animateTarget = win.taskButton.el;\r
71         \r
72         win.on({\r
73                 'activate': {\r
74                         fn: markActive\r
75                 },\r
76                 'beforeshow': {\r
77                         fn: markActive\r
78                 },\r
79                 'deactivate': {\r
80                         fn: markInactive\r
81                 },\r
82                 'minimize': {\r
83                         fn: minimizeWin\r
84                 },\r
85                 'close': {\r
86                         fn: removeWin\r
87                 }\r
88         });\r
89         \r
90         layout();\r
91         return win;\r
92     };\r
93 \r
94     this.getManager = function(){\r
95         return windows;\r
96     };\r
97 \r
98     this.getWindow = function(id){\r
99         return windows.get(id);\r
100     }\r
101     \r
102     this.getWinWidth = function(){\r
103                 var width = Ext.lib.Dom.getViewWidth();\r
104                 return width < 200 ? 200 : width;\r
105         }\r
106                 \r
107         this.getWinHeight = function(){\r
108                 var height = (Ext.lib.Dom.getViewHeight()-taskbarEl.getHeight());\r
109                 return height < 100 ? 100 : height;\r
110         }\r
111                 \r
112         this.getWinX = function(width){\r
113                 return (Ext.lib.Dom.getViewWidth() - width) / 2\r
114         }\r
115                 \r
116         this.getWinY = function(height){\r
117                 return (Ext.lib.Dom.getViewHeight()-taskbarEl.getHeight() - height) / 2;\r
118         }\r
119 \r
120     layout();\r
121 \r
122     if(shortcuts){\r
123         shortcuts.on('click', function(e, t){\r
124             if(t = e.getTarget('dt', shortcuts)){\r
125                 e.stopEvent();\r
126                 var module = app.getModule(t.id.replace('-shortcut', ''));\r
127                 if(module){\r
128                     module.createWindow();\r
129                 }\r
130             }\r
131         });\r
132     }\r
133 };\r
134 </pre>    \r
135 </body>\r
136 </html>