X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/ee06f37b0f6f6d94cd05a6ffae556660f7c4a2bc..c930e9176a5a85509c5b0230e2bff5c22a591432:/air/src/NativeWindow.js?ds=inline
diff --git a/air/src/NativeWindow.js b/air/src/NativeWindow.js
deleted file mode 100644
index abdb3a22..00000000
--- a/air/src/NativeWindow.js
+++ /dev/null
@@ -1,430 +0,0 @@
-/*
- * Ext JS Library 0.30
- * Copyright(c) 2006-2009, Ext JS, LLC.
- * licensing@extjs.com
- *
- * http://extjs.com/license
- */
-
-/**
- * @class Ext.air.NativeWindow
- * @extends Ext.air.NativeObservable
- *
- * Wraps the AIR NativeWindow class to give an Ext friendly API.
This class also adds
- * automatic state management (position and size) for the window (by id) and it can be used
- * for easily creating "minimize to system tray" for the main window in your application.
- *
- * Note: Many of the config options for this class can only be applied to NEW windows. Passing
- * in an existing instance of a window along with those config options will have no effect.
- *
- * @constructor
- * @param {Object} config
- */
-Ext.air.NativeWindow = function(config){
- Ext.apply(this, config);
-
- /**
- * @type String
- */
- this.id = this.id || Ext.uniqueId();
-
- this.addEvents(
- /**
- * @event close
- * @param {Object} e The air event object
- */
- 'close',
- /**
- * @event closing
- * @param {Object} e The air event object
- */
- 'closing',
- /**
- * @event move
- * @param {Object} e The air event object
- */
- 'move',
- /**
- * @event moving
- * @param {Object} e The air event object
- */
- 'moving',
- /**
- * @event resize
- * @param {Object} e The air event object
- */
- 'resize',
- /**
- * @event resizing
- * @param {Object} e The air event object
- */
- 'resizing',
- /**
- * @event displayStateChange
- * @param {Object} e The air event object
- */
- 'displayStateChange',
- /**
- * @event displayStateChanging
- * @param {Object} e The air event object
- */
- 'displayStateChanging'
- );
-
- Ext.air.NativeWindow.superclass.constructor.call(this);
-
- if(!this.instance){
- var options = new air.NativeWindowInitOptions();
- options.systemChrome = this.chrome;
- options.type = this.type;
- options.resizable = this.resizable;
- options.minimizable = this.minimizable;
- options.maximizable = this.maximizable;
- options.transparent = this.transparent;
-
- this.loader = window.runtime.flash.html.HTMLLoader.createRootWindow(false, options, false);
- if (this.file) {
- this.loader.load(new air.URLRequest(this.file));
- } else {
- this.loader.loadString(this.html || '');
- }
-
-
- this.instance = this.loader.window.nativeWindow;
- }else{
- this.loader = this.instance.stage.getChildAt(0);
- }
-
- var provider = Ext.state.Manager;
- var b = air.Screen.mainScreen.visibleBounds;
-
- var state = provider.get(this.id) || {};
- provider.set(this.id, state);
-
- var win = this.instance;
-
- var width = Math.max(state.width || this.width, 100);
- var height = Math.max(state.height || this.height, 100);
-
- var centerX = b.x + ((b.width/2)-(width/2));
- var centerY = b.y + ((b.height/2)-(height/2));
-
- var x = !Ext.isEmpty(state.x, false) ? state.x : (!Ext.isEmpty(this.x, false) ? this.x : centerX);
- var y = !Ext.isEmpty(state.y, false) ? state.y : (!Ext.isEmpty(this.y, false) ? this.y : centerY);
-
- win.width = width;
- win.height = height;
- win.x = x;
- win.y = y;
-
- win.addEventListener('move', function(){
- if(win.displayState != air.NativeWindowDisplayState.MINIMIZED && win.width > 100 && win.height > 100) {
- state.x = win.x;
- state.y = win.y;
- }
- });
- win.addEventListener('resize', function(){
- if (win.displayState != air.NativeWindowDisplayState.MINIMIZED && win.width > 100 && win.height > 100) {
- state.width = win.width;
- state.height = win.height;
- }
- });
-
- Ext.air.NativeWindowManager.register(this);
- this.on('close', this.unregister, this);
-
- /**
- * @cfg {Boolean} minimizeToTray
- * True to enable minimizing to the system tray. Note: this should only be applied
- * to the primary window in your application. A trayIcon is required.
- */
- if(this.minimizeToTray){
- this.initMinimizeToTray(this.trayIcon, this.trayMenu);
- }
-
-};
-
-Ext.extend(Ext.air.NativeWindow, Ext.air.NativeObservable, {
-
- /**
- * @cfg {air.NativeWindow} instance
- * The native window instance to wrap. If undefined, a new window will be created.
- */
-
- /**
- * @cfg {String} trayIcon
- * The icon to display when minimized in the system tray
- */
- /**
- * @cfg {NativeMenu} trayMenu
- * Menu to display when the tray icon is right clicked
- */
- /**
- * @cfg {String} trayTip
- * Tooltip for the tray icon
- */
-
- /**
- * @cfg {String} chrome
- * The native window chrome (defaults to 'standard', can also be 'none').
- */
- chrome: 'standard', // can also be none
- /**
- * @cfg {String} type
- * The native window type - normal, utility or lightweight. (defaults to normal)
- */
- type: 'normal', // can be normal, utility or lightweight
- /**
- * @cfg {Number} width
- */
- width:600,
- /**
- * @cfg {Number} height
- */
- height:400,
- /**
- * @cfg {Boolean} resizable
- */
- resizable: true,
- /**
- * @cfg {Boolean} minimizable
- */
- minimizable: true,
- /**
- * @cfg {Boolean} maximizable
- */
- maximizable: true,
- /**
- * @cfg {Boolean} transparent
- */
- transparent: false,
-
- /**
- * Returns the air.NativeWindow instance
- * @return air.NativeWindow
- */
- getNative : function(){
- return this.instance;
- },
-
- /**
- * Returns the x/y coordinates for centering the windw on the screen
- * @return {x: Number, y: Number}
- */
- getCenterXY : function(){
- var b = air.Screen.mainScreen.visibleBounds;
- return {
- x: b.x + ((b.width/2)-(this.width/2)),
- y: b.y + ((b.height/2)-(this.height/2))
- };
- },
-
- /**
- * Shows the window
- */
- show :function(){
- if(this.trayed){
- Ext.air.SystemTray.hideIcon();
- this.trayed = false;
- }
- this.instance.visible = true;
- },
-
- /**
- * Shows and activates the window
- */
- activate : function(){
- this.show();
- this.instance.activate();
- },
-
- /**
- * Hides the window
- */
- hide :function(){
- this.instance.visible = false;
- },
-
- /**
- * Closes the window
- */
- close : function(){
- this.instance.close();
- },
-
- /**
- * Returns true if this window is minimized
- * @return Boolean
- */
- isMinimized :function(){
- return this.instance.displayState == air.NativeWindowDisplayState.MINIMIZED;
- },
-
- /**
- * Returns true if this window is maximized
- * @return Boolean
- */
- isMaximized :function(){
- return this.instance.displayState == air.NativeWindowDisplayState.MAXIMIZED;
- },
-
- /**
- * Moves the window to the passed xy and y coordinates
- * @param {Number} x
- * @param {Number} y
- */
- moveTo : function(x, y){
- this.x = this.instance.x = x;
- this.y = this.instance.y = y;
- },
- /**
- * Enter full-screen mode for the window.
- * @param {Boolean} nonInteractive (optional) Boolean flag to allow the full screen window to be interactive or not. By default this is false.
- * Example Code:
- * var win = new Ext.air.NativeWindow({instance: Ext.air.NativeWindow.getRootWindow()});
- * win.fullscreen();
- */
- fullscreen: function(nonInteractive) {
- var SDS = runtime.flash.display.StageDisplayState;
- this.instance.stage.displayState = nonInteractive ? SDS.FULL_SCREEN : SDS.FULL_SCREEN_INTERACTIVE;
- },
-
- bringToFront: function() {
- this.instance.orderToFront();
- },
-
- bringInFrontOf: function(win) {
- this.instance.orderInFrontOf(win.instance ? win.instance : win);
- },
-
- sendToBack: function() {
- this.instance.orderToBack();
- },
-
- sendBehind: function(win) {
- this.instance.orderInBackOf(win.instance ? win.instance : win);
- },
-
-
- /**
- * @param {Number} width
- * @param {Number} height
- */
- resize : function(width, height){
- this.width = this.instance.width = width;
- this.height = this.instance.height = height;
- },
-
- unregister : function(){
- Ext.air.NativeWindowManager.unregister(this);
- },
-
- initMinimizeToTray : function(icon, menu){
- var tray = Ext.air.SystemTray;
-
- tray.setIcon(icon, this.trayTip);
- this.on('displayStateChanging', function(e){
- if(e.afterDisplayState == 'minimized'){
- e.preventDefault();
- this.hide();
- tray.showIcon();
- this.trayed = true;
- }
- }, this);
-
- tray.on('click', function(){
- this.activate();
- }, this);
-
- if(menu){
- tray.setMenu(menu);
- }
- }
-});
-
-/**
- * Returns the first opened window in your application
- * @return air.NativeWindow
- * @static
- */
-Ext.air.NativeWindow.getRootWindow = function(){
- return air.NativeApplication.nativeApplication.openedWindows[0];
-};
-
-/**
- * Returns the javascript "window" object of the first opened window in your application
- * @return Window
- * @static
- */
-Ext.air.NativeWindow.getRootHtmlWindow = function(){
- return Ext.air.NativeWindow.getRootWindow().stage.getChildAt(0).window;
-};
-
-/**
- * @class Ext.air.NativeWindowGroup
- *
- * A collection of NativeWindows.
- */
-Ext.air.NativeWindowGroup = function(){
- var list = {};
-
- return {
- /**
- * @param {Object} win
- */
- register : function(win){
- list[win.id] = win;
- },
-
- /**
- * @param {Object} win
- */
- unregister : function(win){
- delete list[win.id];
- },
-
- /**
- * @param {String} id
- */
- get : function(id){
- return list[id];
- },
-
- /**
- * Closes all windows
- */
- closeAll : function(){
- for(var id in list){
- if(list.hasOwnProperty(id)){
- list[id].close();
- }
- }
- },
-
- /**
- * Executes the specified function once for every window in the group, passing each
- * window as the only parameter. Returning false from the function will stop the iteration.
- * @param {Function} fn The function to execute for each item
- * @param {Object} scope (optional) The scope in which to execute the function
- */
- each : function(fn, scope){
- for(var id in list){
- if(list.hasOwnProperty(id)){
- if(fn.call(scope || list[id], list[id]) === false){
- return;
- }
- }
- }
- }
- };
-};
-
-/**
- * @class Ext.air.NativeWindowManager
- * @extends Ext.air.NativeWindowGroup
- *
- * Collection of all NativeWindows created.
- *
- * @singleton
- */
-Ext.air.NativeWindowManager = new Ext.air.NativeWindowGroup();
\ No newline at end of file