X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/ee06f37b0f6f6d94cd05a6ffae556660f7c4a2bc..c930e9176a5a85509c5b0230e2bff5c22a591432:/docs/source/Desktop.html diff --git a/docs/source/Desktop.html b/docs/source/Desktop.html new file mode 100644 index 00000000..244287d1 --- /dev/null +++ b/docs/source/Desktop.html @@ -0,0 +1,136 @@ + + + The source code + + + + +
Ext.Desktop = function(app){
+	this.taskbar = new Ext.ux.TaskBar(app);
+	var taskbar = this.taskbar;
+	
+	var desktopEl = Ext.get('x-desktop');
+    var taskbarEl = Ext.get('ux-taskbar');
+    var shortcuts = Ext.get('x-shortcuts');
+
+    var windows = new Ext.WindowGroup();
+    var activeWindow;
+		
+    function minimizeWin(win){
+        win.minimized = true;
+        win.hide();
+    }
+
+    function markActive(win){
+        if(activeWindow && activeWindow != win){
+            markInactive(activeWindow);
+        }
+        taskbar.setActiveButton(win.taskButton);
+        activeWindow = win;
+        Ext.fly(win.taskButton.el).addClass('active-win');
+        win.minimized = false;
+    }
+
+    function markInactive(win){
+        if(win == activeWindow){
+            activeWindow = null;
+            Ext.fly(win.taskButton.el).removeClass('active-win');
+        }
+    }
+
+    function removeWin(win){
+    	taskbar.removeTaskButton(win.taskButton);
+        layout();
+    }
+
+    function layout(){
+        desktopEl.setHeight(Ext.lib.Dom.getViewHeight()-taskbarEl.getHeight());
+    }
+    Ext.EventManager.onWindowResize(layout);
+
+    this.layout = layout;
+
+    this.createWindow = function(config, cls){
+    	var win = new (cls||Ext.Window)(
+            Ext.applyIf(config||{}, {
+                manager: windows,
+                minimizable: true,
+                maximizable: true
+            })
+        );
+        win.render(desktopEl);
+        win.taskButton = taskbar.addTaskButton(win);
+
+        win.cmenu = new Ext.menu.Menu({
+            items: [
+
+            ]
+        });
+
+        win.animateTarget = win.taskButton.el;
+        
+        win.on({
+        	'activate': {
+        		fn: markActive
+        	},
+        	'beforeshow': {
+        		fn: markActive
+        	},
+        	'deactivate': {
+        		fn: markInactive
+        	},
+        	'minimize': {
+        		fn: minimizeWin
+        	},
+        	'close': {
+        		fn: removeWin
+        	}
+        });
+        
+        layout();
+        return win;
+    };
+
+    this.getManager = function(){
+        return windows;
+    };
+
+    this.getWindow = function(id){
+        return windows.get(id);
+    }
+    
+    this.getWinWidth = function(){
+		var width = Ext.lib.Dom.getViewWidth();
+		return width < 200 ? 200 : width;
+	}
+		
+	this.getWinHeight = function(){
+		var height = (Ext.lib.Dom.getViewHeight()-taskbarEl.getHeight());
+		return height < 100 ? 100 : height;
+	}
+		
+	this.getWinX = function(width){
+		return (Ext.lib.Dom.getViewWidth() - width) / 2
+	}
+		
+	this.getWinY = function(height){
+		return (Ext.lib.Dom.getViewHeight()-taskbarEl.getHeight() - height) / 2;
+	}
+
+    layout();
+
+    if(shortcuts){
+        shortcuts.on('click', function(e, t){
+            if(t = e.getTarget('dt', shortcuts)){
+                e.stopEvent();
+                var module = app.getModule(t.id.replace('-shortcut', ''));
+                if(module){
+                    module.createWindow();
+                }
+            }
+        });
+    }
+};
+
+ + \ No newline at end of file