Форк Rambox
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
142 KiB

Ext.define("Ext.aria.FocusManager",{singleton:true,requires:["Ext.util.KeyNav","Ext.util.Observable"],mixins:{observable:"Ext.util.Observable"},enabled:false,windows:[],constructor:function(c){var f=this,e=f.whitelist,b,d,a;f.mixins.observable.constructor.call(f,c)},enable:function(){var a=this,b=Ext.getDoc();if(a.enabled){return}a.enabled=true;a.toggleKeyMap=new Ext.util.KeyMap({target:b,scope:a,defaultEventAction:"stopEvent",key:Ext.event.Event.F6,fn:a.toggleWindow});a.fireEvent("enable",a)},onComponentBlur:function(b,c){var a=this;if(a.focusedCmp===b){a.previousFocusedCmp=b}Ext.globalEvents.fireEvent("componentblur",a,b,a.previousFocusedCmp);return false},onComponentFocus:function(b,c){var a=this;if(Ext.globalEvents.fireEvent("beforecomponentfocus",a,b,a.previousFocusedCmp)===false){a.clearComponent(b);return}a.focusedCmp=b;return false},onComponentHide:Ext.emptyFn,toggleWindow:function(i,d){var f=this,g=f.windows,b=g.length,h=f.focusedCmp,a=0,j=0,c;if(b===1){return}c=h.isWindow?h:h.up("window");if(c){a=f.findWindowIndex(c)}if(d.shiftKey){j=a-1;if(j<0){j=b-1}}else{j=a+1;if(j===b){j=0}}c=g[j];if(c.cmp.isWindow){c.cmp.toFront()}c.cmp.focus(false,100);return false},addWindow:function(b){var a=this,c={cmp:b};a.windows.push(c)},removeWindow:function(b){var a=this,c=a.windows,d;if(c.length===1){return}d=a.findWindowIndex(b);if(d>=0){Ext.Array.erase(c,d,1)}},findWindowIndex:function(e){var d=this,f=d.windows,c=f.length,b=-1,a;for(a=0;a<c;a++){if(f[a].cmp===e){b=a;break}}return b}},function(){var a=Ext.FocusManager=Ext.aria.FocusManager;Ext.onReady(function(){a.enable()})});Ext.define("Ext.aria.Component",{override:"Ext.Component",requires:["Ext.aria.FocusManager"],ariaRenderAttributesToElement:true,statics:{ariaHighContrastModeCls:Ext.baseCSSPrefix+"aria-highcontrast"},ariaApplyAfterRenderAttributes:function(){var b=this,c=b.ariaRole,a;if(c!=="presentation"){a=b.ariaGetAfterRenderAttributes();b.ariaUpdate(a)}},ariaGetRenderAttributes:function(){var b=this,c=b.ariaRole,a={role:c};if(c==="presentation"||c===undefined){return a}if(b.hidden){a["aria-hidden"]=true}if(b.disabled){a["aria-disabled"]=true}if(b.ariaLabel){a["aria-label"]=b.ariaLabel}Ext.apply(a,b.ariaAttributes);return a},ariaGetAfterRenderAttributes:function(){var c=this,a={},b;if(!c.ariaLabel&&c.ariaLabelledBy){b=c.ariaGetLabelEl(c.ariaLabelledBy);if(b){a["aria-labelledby"]=b.id}}if(c.ariaDescribedBy){b=c.ariaGetLabelEl(c.ariaDescribedBy);if(b){a["aria-describedby"]=b.id}}return a},ariaUpdate:function(b,a){if(arguments.length===1){a=b;b=this.ariaGetEl()}if(!b){return}b.set(a)},ariaGetEl:function(){return this.el},ariaGetLabelEl:function(a){var c=this,b=null;if(a){if(/^#/.test(a)){a=a.replace(/^#/,"");b=Ext.get(a)}else{b=c.ariaGetEl().down(a)}}return b},ariaGetFocusEl:function(){var a=this.getFocusEl();while(a.isComponent){a=a.getFocusEl()}return a},onFocus:function(h,b,a){var d=this,g=Ext.aria.FocusManager,f,c;d.callParent(arguments);if(d.tooltip&&Ext.quickTipsActive){f=Ext.tip.QuickTipManager.getQuickTip();c=d.ariaGetEl();f.cancelShow(c);f.showByTarget(c)}if(d.hasFocus&&g.enabled){return g.onComponentFocus(d)}},onBlur:function(f,b,a){var c=this,d=Ext.aria.FocusManager;c.callParent(arguments);if(c.tooltip&&Ext.quickTipsActive){Ext.tip.QuickTipManager.getQuickTip().cancelShow(c.ariaGetEl())}if(!c.hasFocus&&d.enabled){return d.onComponentBlur(c)}},onDisable:function(){var a=this;a.callParent(arguments);a.ariaUpdate({"aria-disabled":true})},onEnable:function(){var a=this;a.callParent(arguments);a.ariaUpdate({"aria-disabled":false})},onHide:function(){var a=this;a.callParent(arguments);a.ariaUpdate({"aria-hidden":true})},onShow:function(){var a=this;a.callParent(arguments);a.ariaUpdate({"aria-hidden":false})}},function(){function a(){var f="http://www.html5accessibility.com/tests/clear.gif",d={},i=document.createElement("div"),g=Ext.get(i),c=i.style,e=document.createElement("img"),d={images:true,backgroundImages:true,borderColors:true,highContrastMode:false,lightOnDark:false};i.id="ui-helper-high-contrast";i.className="ui-helper-hidden-accessible";c.borderWidth="1px";
/*!
* Ext JS Library
* Copyright(c) 2006-2014 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
Ext.define("Ext.ux.desktop.Desktop",{extend:"Ext.panel.Panel",alias:"widget.desktop",uses:["Ext.util.MixedCollection","Ext.menu.Menu","Ext.view.View","Ext.window.Window","Ext.ux.desktop.TaskBar","Ext.ux.desktop.Wallpaper"],activeWindowCls:"ux-desktop-active-win",inactiveWindowCls:"ux-desktop-inactive-win",lastActiveWindow:null,border:false,html:"&#160;",layout:"fit",xTickSize:1,yTickSize:1,app:null,shortcuts:null,shortcutItemSelector:"div.ux-desktop-shortcut",shortcutTpl:['<tpl for=".">','<div class="ux-desktop-shortcut" id="{name}-shortcut">','<div class="ux-desktop-shortcut-icon {iconCls}">','<img src="',Ext.BLANK_IMAGE_URL,'" title="{name}">',"</div>",'<span class="ux-desktop-shortcut-text">{name}</span>',"</div>","</tpl>",'<div class="x-clear"></div>'],taskbarConfig:null,windowMenu:null,initComponent:function(){var b=this;b.windowMenu=new Ext.menu.Menu(b.createWindowMenu());b.bbar=b.taskbar=new Ext.ux.desktop.TaskBar(b.taskbarConfig);b.taskbar.windowMenu=b.windowMenu;b.windows=new Ext.util.MixedCollection();b.contextMenu=new Ext.menu.Menu(b.createDesktopMenu());b.items=[{xtype:"wallpaper",id:b.id+"_wallpaper"},b.createDataView()];b.callParent();b.shortcutsView=b.items.getAt(1);b.shortcutsView.on("itemclick",b.onShortcutItemClick,b);var a=b.wallpaper;b.wallpaper=b.items.getAt(0);if(a){b.setWallpaper(a,b.wallpaperStretch)}},afterRender:function(){var a=this;a.callParent();a.el.on("contextmenu",a.onDesktopMenu,a)},createDataView:function(){var a=this;return{xtype:"dataview",overItemCls:"x-view-over",trackOver:true,itemSelector:a.shortcutItemSelector,store:a.shortcuts,style:{position:"absolute"},x:0,y:0,tpl:new Ext.XTemplate(a.shortcutTpl)}},createDesktopMenu:function(){var b=this,a={items:b.contextMenuItems||[]};if(a.items.length){a.items.push("-")}a.items.push({text:"Tile",handler:b.tileWindows,scope:b,minWindows:1},{text:"Cascade",handler:b.cascadeWindows,scope:b,minWindows:1});return a},createWindowMenu:function(){var a=this;return{defaultAlign:"br-tr",items:[{text:"Restore",handler:a.onWindowMenuRestore,scope:a},{text:"Minimize",handler:a.onWindowMenuMinimize,scope:a},{text:"Maximize",handler:a.onWindowMenuMaximize,scope:a},"-",{text:"Close",handler:a.onWindowMenuClose,scope:a}],listeners:{beforeshow:a.onWindowMenuBeforeShow,hide:a.onWindowMenuHide,scope:a}}},onDesktopMenu:function(b){var a=this,c=a.contextMenu;b.stopEvent();if(!c.rendered){c.on("beforeshow",a.onDesktopMenuBeforeShow,a)}c.showAt(b.getXY());c.doConstrain()},onDesktopMenuBeforeShow:function(c){var b=this,a=b.windows.getCount();c.items.each(function(e){var d=e.minWindows||0;e.setDisabled(a<d)})},onShortcutItemClick:function(e,a){var c=this,b=c.app.getModule(a.data.module),d=b&&b.createWindow();if(d){c.restoreWindow(d)}},onWindowClose:function(b){var a=this;a.windows.remove(b);a.taskbar.removeTaskButton(b.taskButton);a.updateActiveWindow()},onWindowMenuBeforeShow:function(c){var a=c.items.items,b=c.theWin;a[0].setDisabled(b.maximized!==true&&b.hidden!==true);a[1].setDisabled(b.minimized===true);a[2].setDisabled(b.maximized===true||b.hidden===true)},onWindowMenuClose:function(){var a=this,b=a.windowMenu.theWin;b.close()},onWindowMenuHide:function(a){Ext.defer(function(){a.theWin=null},1)},onWindowMenuMaximize:function(){var a=this,b=a.windowMenu.theWin;b.maximize();b.toFront()},onWindowMenuMinimize:function(){var a=this,b=a.windowMenu.theWin;b.minimize()},onWindowMenuRestore:function(){var a=this,b=a.windowMenu.theWin;a.restoreWindow(b)},getWallpaper:function(){return this.wallpaper.wallpaper},setTickSize:function(b,c){var e=this,a=e.xTickSize=b,d=e.yTickSize=(arguments.length>1)?c:a;e.windows.each(function(g){var f=g.dd,h=g.resizer;f.xTickSize=a;f.yTickSize=d;h.widthIncrement=a;h.heightIncrement=d})},setWallpaper:function(b,a){this.wallpaper.setWallpaper(b,a);return this},cascadeWindows:function(){var a=0,c=0,b=this.getDesktopZIndexManager();b.eachBottomUp(function(d){if(d.isWindow&&d.isVisible()&&!d.maximized){d.setPosition(a,c);a+=20;c+=20}})},createWindow:function(c,b){var d=this,e,a=Ext.applyIf(c||{},{stateful:false,isWindow:true,constrainHeader:tr
/*!
* Ext JS Library
* Copyright(c) 2006-2014 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
Ext.define("Ext.ux.desktop.Module",{mixins:{observable:"Ext.util.Observable"},constructor:function(a){this.mixins.observable.constructor.call(this,a);this.init()},init:Ext.emptyFn});
/*!
* Ext JS Library
* Copyright(c) 2006-2014 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
Ext.define("Ext.ux.desktop.ShortcutModel",{extend:"Ext.data.Model",fields:[{name:"name"},{name:"iconCls"},{name:"module"}]});Ext.define("Ext.ux.desktop.StartMenu",{extend:"Ext.menu.Menu",baseCls:Ext.baseCSSPrefix+"panel",cls:"x-menu ux-start-menu",bodyCls:"ux-start-menu-body",defaultAlign:"bl-tl",iconCls:"user",bodyBorder:true,width:300,initComponent:function(){var a=this;a.layout.align="stretch";a.items=a.menu;a.callParent();a.toolbar=new Ext.toolbar.Toolbar(Ext.apply({dock:"right",cls:"ux-start-menu-toolbar",vertical:true,width:100,layout:{align:"stretch"}},a.toolConfig));a.addDocked(a.toolbar);delete a.toolItems},addMenuItem:function(){var a=this.menu;a.add.apply(a,arguments)},addToolItem:function(){var a=this.toolbar;a.add.apply(a,arguments)}});
/*!
* Ext JS Library
* Copyright(c) 2006-2014 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
Ext.define("Ext.ux.desktop.TaskBar",{extend:"Ext.toolbar.Toolbar",requires:["Ext.button.Button","Ext.resizer.Splitter","Ext.menu.Menu","Ext.ux.desktop.StartMenu"],alias:"widget.taskbar",cls:"ux-taskbar",startBtnText:"Start",initComponent:function(){var a=this;a.startMenu=new Ext.ux.desktop.StartMenu(a.startConfig);a.quickStart=new Ext.toolbar.Toolbar(a.getQuickStart());a.windowBar=new Ext.toolbar.Toolbar(a.getWindowBarConfig());a.tray=new Ext.toolbar.Toolbar(a.getTrayConfig());a.items=[{xtype:"button",cls:"ux-start-button",iconCls:"ux-start-button-icon",menu:a.startMenu,menuAlign:"bl-tl",text:a.startBtnText},a.quickStart,{xtype:"splitter",html:"&#160;",height:14,width:2,cls:"x-toolbar-separator x-toolbar-separator-horizontal"},a.windowBar,"-",a.tray];a.callParent()},afterLayout:function(){var a=this;a.callParent();a.windowBar.el.on("contextmenu",a.onButtonContextMenu,a)},getQuickStart:function(){var b=this,a={minWidth:20,width:Ext.themeName==="neptune"?70:60,items:[],enableOverflow:true};Ext.each(this.quickStart,function(c){a.items.push({tooltip:{text:c.name,align:"bl-tl"},overflowText:c.name,iconCls:c.iconCls,module:c.module,handler:b.onQuickStartClick,scope:b})});return a},getTrayConfig:function(){var a={items:this.trayItems};delete this.trayItems;return a},getWindowBarConfig:function(){return{flex:1,cls:"ux-desktop-windowbar",items:["&#160;"],layout:{overflowHandler:"Scroller"}}},getWindowBtnFromEl:function(a){var b=this.windowBar.getChildByElement(a);return b||null},onQuickStartClick:function(b){var a=this.app.getModule(b.module),c;if(a){c=a.createWindow();c.show()}},onButtonContextMenu:function(d){var c=this,b=d.getTarget(),a=c.getWindowBtnFromEl(b);if(a){d.stopEvent();c.windowMenu.theWin=a.win;c.windowMenu.showBy(b)}},onWindowBtnClick:function(a){var b=a.win;if(b.minimized||b.hidden){a.disable();b.show(null,function(){a.enable()})}else{if(b.active){a.disable();b.on("hide",function(){a.enable()},null,{single:true});b.minimize()}else{b.toFront()}}},addTaskButton:function(c){var a={iconCls:c.iconCls,enableToggle:true,toggleGroup:"all",width:140,margin:"0 2 0 3",text:Ext.util.Format.ellipsis(c.title,20),listeners:{click:this.onWindowBtnClick,scope:this},win:c};var b=this.windowBar.add(a);b.toggle(true);return b},removeTaskButton:function(a){var c,b=this;b.windowBar.items.each(function(d){if(d===a){c=d}return !c});if(c){b.windowBar.remove(c)}return c},setActiveButton:function(a){if(a){a.toggle(true)}else{this.windowBar.items.each(function(b){if(b.isButton){b.toggle(false)}})}}});Ext.define("Ext.ux.desktop.TrayClock",{extend:"Ext.toolbar.TextItem",alias:"widget.trayclock",cls:"ux-desktop-trayclock",html:"&#160;",timeFormat:"g:i A",tpl:"{time}",initComponent:function(){var a=this;a.callParent();if(typeof(a.tpl)=="string"){a.tpl=new Ext.XTemplate(a.tpl)}},afterRender:function(){var a=this;Ext.Function.defer(a.updateTime,100,a);a.callParent()},onDestroy:function(){var a=this;if(a.timer){window.clearTimeout(a.timer);a.timer=null}a.callParent()},updateTime:function(){var a=this,b=Ext.Date.format(new Date(),a.timeFormat),c=a.tpl.apply({time:b});if(a.lastText!=c){a.setText(c);a.lastText=c}a.timer=Ext.Function.defer(a.updateTime,10000,a)}});
/*!
* Ext JS Library
* Copyright(c) 2006-2014 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
Ext.define("Ext.ux.desktop.Video",{extend:"Ext.panel.Panel",alias:"widget.video",layout:"fit",autoplay:false,controls:true,bodyStyle:"background-color:#000;color:#fff",html:"",tpl:['<video id="{id}-video" autoPlay="{autoplay}" controls="{controls}" poster="{poster}" start="{start}" loopstart="{loopstart}" loopend="{loopend}" autobuffer="{autobuffer}" loop="{loop}" style="width:100%;height:100%">','<tpl for="src">','<source src="{src}" type="{type}"/>',"</tpl>","{html}","</video>"],initComponent:function(){var e=this,f,c,b,d;if(e.fallbackHTML){f=e.fallbackHTML}else{f="Your browser does not support HTML5 Video. ";if(Ext.isChrome){f+="Upgrade Chrome."}else{if(Ext.isGecko){f+="Upgrade to Firefox 3.5 or newer."}else{var a='<a href="http://www.google.com/chrome">Chrome</a>';f+='Please try <a href="http://www.mozilla.com">Firefox</a>';if(Ext.isIE){f+=", "+a+' or <a href="http://www.apple.com/safari/">Safari</a>.'}else{f+=" or "+a+"."}}}}e.fallbackHTML=f;b=e.data=Ext.copyTo({tag:"video",html:f},e,"id,poster,start,loopstart,loopend,playcount,autobuffer,loop");if(e.autoplay){b.autoplay=1}if(e.controls){b.controls=1}if(Ext.isArray(e.src)){b.src=e.src}else{b.src=[{src:e.src}]}e.callParent()},afterRender:function(){var a=this;a.callParent();a.video=a.body.getById(a.id+"-video");el=a.video.dom;a.supported=(el&&el.tagName.toLowerCase()=="video");if(a.supported){a.video.on("error",a.onVideoError,a)}},getFallback:function(){return'<h1 style="background-color:#ff4f4f;padding: 10px;">'+this.fallbackHTML+"</h1>"},onVideoError:function(){var a=this;a.video.remove();a.supported=false;a.body.createChild(a.getFallback())},onDestroy:function(){var c=this;var b=c.video;if(c.supported&&b){var a=b.dom;if(a&&a.pause){a.pause()}b.remove();c.video=null}c.callParent()}});
/*!
* Ext JS Library
* Copyright(c) 2006-2014 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
Ext.define("Ext.ux.desktop.Wallpaper",{extend:"Ext.Component",alias:"widget.wallpaper",cls:"ux-wallpaper",html:'<img src="'+Ext.BLANK_IMAGE_URL+'">',stretch:false,wallpaper:null,stateful:true,stateId:"desk-wallpaper",afterRender:function(){var a=this;a.callParent();a.setWallpaper(a.wallpaper,a.stretch)},applyState:function(){var b=this,a=b.wallpaper;b.callParent(arguments);if(a!=b.wallpaper){b.setWallpaper(b.wallpaper)}},getState:function(){return this.wallpaper&&{wallpaper:this.wallpaper}},setWallpaper:function(b,a){var c=this,e,d;c.stretch=(a!==false);c.wallpaper=b;if(c.rendered){e=c.el.dom.firstChild;if(!b||b==Ext.BLANK_IMAGE_URL){Ext.fly(e).hide()}else{if(c.stretch){e.src=b;c.el.removeCls("ux-wallpaper-tiled");Ext.fly(e).setStyle({width:"100%",height:"100%"}).show()}else{Ext.fly(e).hide();d="url("+b+")";c.el.addCls("ux-wallpaper-tiled")}}c.el.setStyle({backgroundImage:d||""});if(c.stateful){c.saveState()}}return c}});Ext.define("Ext.ux.event.Driver",{extend:"Ext.util.Observable",active:null,specialKeysByName:{PGUP:33,PGDN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40},specialKeysByCode:{},getTextSelection:function(d){var e=d.ownerDocument,c,a,f,b;if(typeof d.selectionStart==="number"){f=d.selectionStart;b=d.selectionEnd}else{if(e.selection){c=e.selection.createRange();a=d.createTextRange();a.setEndPoint("EndToStart",c);f=a.text.length;b=f+c.text.length}}return[f,b]},getTime:function(){return new Date().getTime()},getTimestamp:function(){var a=this.getTime();return a-this.startTime},onStart:function(){},onStop:function(){},start:function(){var a=this;if(!a.active){a.active=new Date();a.startTime=a.getTime();a.onStart();a.fireEvent("start",a)}},stop:function(){var a=this;if(a.active){a.active=null;a.onStop();a.fireEvent("stop",a)}}},function(){var a=this.prototype;Ext.Object.each(a.specialKeysByName,function(b,c){a.specialKeysByCode[c]=b})});Ext.define("Ext.ux.event.Maker",{eventQueue:[],startAfter:500,timerIncrement:500,currentTiming:0,constructor:function(a){var b=this;b.currentTiming=b.startAfter;if(!Ext.isArray(a)){a=[a]}Ext.Array.each(a,function(c){c.el=c.el||"el";Ext.Array.each(Ext.ComponentQuery.query(c.cmpQuery),function(g){var f={},d,h,e;if(!c.domQuery){e=g[c.el]}else{e=g.el.down(c.domQuery)}f.target="#"+e.dom.id;f.type=c.type;f.button=a.button||0;d=e.getX()+(e.getWidth()/2);h=e.getY()+(e.getHeight()/2);f.xy=[d,h];f.ts=b.currentTiming;b.currentTiming+=b.timerIncrement;b.eventQueue.push(f)});if(c.screenshot){b.eventQueue[b.eventQueue.length-1].screenshot=true}});return b.eventQueue}});Ext.define("Ext.ux.event.Player",function(d){var h={},c={},a={},g,b={},f={resize:1,reset:1,submit:1,change:1,select:1,error:1,abort:1};Ext.each(["click","dblclick","mouseover","mouseout","mousedown","mouseup","mousemove"],function(i){f[i]=h[i]=c[i]={bubbles:true,cancelable:(i!="mousemove"),detail:1,screenX:0,screenY:0,clientX:0,clientY:0,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false,button:0}});Ext.each(["keydown","keyup","keypress"],function(i){f[i]=h[i]=a[i]={bubbles:true,cancelable:true,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false,keyCode:0,charCode:0}});Ext.each(["blur","change","focus","resize","scroll","select"],function(i){h[i]=b[i]={bubbles:(i in f),cancelable:false,detail:1}});var e={8:function(j,k,i){if(k<i){j.value=j.value.substring(0,k)+j.value.substring(i)}else{if(k>0){j.value=j.value.substring(0,--k)+j.value.substring(i)}}this.setTextSelection(j,k,k)},46:function(j,k,i){if(k<i){j.value=j.value.substring(0,k)+j.value.substring(i)}else{if(k<j.value.length-1){j.value=j.value.substring(0,k)+j.value.substring(k+1)}}this.setTextSelection(j,k,k)}};return{extend:"Ext.ux.event.Driver",keyFrameEvents:{click:true},pauseForAnimations:true,speed:1,stallTime:0,_inputSpecialKeys:{INPUT:e,TEXTAREA:Ext.apply({},e)},tagPathRegEx:/(\w+)(?:\[(\d+)\])?/,constructor:function(i){var j=this;j.callParent(arguments);j.timerFn=function(){j.onTick()};j.attachTo=j.attachTo||window;g=j.attachTo.document},getElementFromXPath:function(s){var t=this,p=s.split("/"),u=t.tagPathRegEx,q,l,o,r,v,k,j=t.attachTo.document;j=(p[0]=="