Desktop.js
资源名称:ext-3.0.0.zip [点击查看]
上传用户:shuoshiled
上传日期:2018-01-28
资源大小:10124k
文件大小:3k
源码类别:
中间件编程
开发平台:
JavaScript
- /*! * Ext JS Library 3.0.0 * Copyright(c) 2006-2009 Ext JS, LLC * licensing@extjs.com * http://www.extjs.com/license */ 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();
- }
- }
- });
- }
- };