Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / docs / source / Desktop.html
diff --git a/docs/source/Desktop.html b/docs/source/Desktop.html
new file mode 100644 (file)
index 0000000..244287d
--- /dev/null
@@ -0,0 +1,136 @@
+<html>\r
+<head>\r
+  <title>The source code</title>\r
+    <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
+    <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
+</head>\r
+<body  onload="prettyPrint();">\r
+    <pre class="prettyprint lang-js">Ext.Desktop = function(app){\r
+       this.taskbar = new Ext.ux.TaskBar(app);\r
+       var taskbar = this.taskbar;\r
+       \r
+       var desktopEl = Ext.get('x-desktop');\r
+    var taskbarEl = Ext.get('ux-taskbar');\r
+    var shortcuts = Ext.get('x-shortcuts');\r
+\r
+    var windows = new Ext.WindowGroup();\r
+    var activeWindow;\r
+               \r
+    function minimizeWin(win){\r
+        win.minimized = true;\r
+        win.hide();\r
+    }\r
+\r
+    function markActive(win){\r
+        if(activeWindow && activeWindow != win){\r
+            markInactive(activeWindow);\r
+        }\r
+        taskbar.setActiveButton(win.taskButton);\r
+        activeWindow = win;\r
+        Ext.fly(win.taskButton.el).addClass('active-win');\r
+        win.minimized = false;\r
+    }\r
+\r
+    function markInactive(win){\r
+        if(win == activeWindow){\r
+            activeWindow = null;\r
+            Ext.fly(win.taskButton.el).removeClass('active-win');\r
+        }\r
+    }\r
+\r
+    function removeWin(win){\r
+       taskbar.removeTaskButton(win.taskButton);\r
+        layout();\r
+    }\r
+\r
+    function layout(){\r
+        desktopEl.setHeight(Ext.lib.Dom.getViewHeight()-taskbarEl.getHeight());\r
+    }\r
+    Ext.EventManager.onWindowResize(layout);\r
+\r
+    this.layout = layout;\r
+\r
+    this.createWindow = function(config, cls){\r
+       var win = new (cls||Ext.Window)(\r
+            Ext.applyIf(config||{}, {\r
+                manager: windows,\r
+                minimizable: true,\r
+                maximizable: true\r
+            })\r
+        );\r
+        win.render(desktopEl);\r
+        win.taskButton = taskbar.addTaskButton(win);\r
+\r
+        win.cmenu = new Ext.menu.Menu({\r
+            items: [\r
+\r
+            ]\r
+        });\r
+\r
+        win.animateTarget = win.taskButton.el;\r
+        \r
+        win.on({\r
+               'activate': {\r
+                       fn: markActive\r
+               },\r
+               'beforeshow': {\r
+                       fn: markActive\r
+               },\r
+               'deactivate': {\r
+                       fn: markInactive\r
+               },\r
+               'minimize': {\r
+                       fn: minimizeWin\r
+               },\r
+               'close': {\r
+                       fn: removeWin\r
+               }\r
+        });\r
+        \r
+        layout();\r
+        return win;\r
+    };\r
+\r
+    this.getManager = function(){\r
+        return windows;\r
+    };\r
+\r
+    this.getWindow = function(id){\r
+        return windows.get(id);\r
+    }\r
+    \r
+    this.getWinWidth = function(){\r
+               var width = Ext.lib.Dom.getViewWidth();\r
+               return width < 200 ? 200 : width;\r
+       }\r
+               \r
+       this.getWinHeight = function(){\r
+               var height = (Ext.lib.Dom.getViewHeight()-taskbarEl.getHeight());\r
+               return height < 100 ? 100 : height;\r
+       }\r
+               \r
+       this.getWinX = function(width){\r
+               return (Ext.lib.Dom.getViewWidth() - width) / 2\r
+       }\r
+               \r
+       this.getWinY = function(height){\r
+               return (Ext.lib.Dom.getViewHeight()-taskbarEl.getHeight() - height) / 2;\r
+       }\r
+\r
+    layout();\r
+\r
+    if(shortcuts){\r
+        shortcuts.on('click', function(e, t){\r
+            if(t = e.getTarget('dt', shortcuts)){\r
+                e.stopEvent();\r
+                var module = app.getModule(t.id.replace('-shortcut', ''));\r
+                if(module){\r
+                    module.createWindow();\r
+                }\r
+            }\r
+        });\r
+    }\r
+};\r
+</pre>    \r
+</body>\r
+</html>
\ No newline at end of file