make sure the README will appear on github
[extjs.git] / air / src / Notify.js
1 /*\r
2  * Ext JS Library 0.30\r
3  * Copyright(c) 2006-2009, Ext JS, LLC.\r
4  * licensing@extjs.com\r
5  * \r
6  * http://extjs.com/license\r
7  */\r
8 \r
9 Ext.air.Notify = Ext.extend(Ext.air.NativeWindow, {\r
10         winType: 'notify',\r
11         type: 'lightweight',\r
12         width: 400,\r
13         height: 50,\r
14         chrome: 'none',\r
15         transparent: true,\r
16         alwaysOnTop: true,\r
17         extraHeight: 22,\r
18         hideDelay: 3000,\r
19         msgId: 'msg',\r
20         iconId: 'icon',\r
21         icon: Ext.BLANK_IMAGE_URL,\r
22         boxCls: 'x-box',\r
23         extAllCSS: '../extjs/resources/css/ext-all.css',\r
24         xtpl: new Ext.XTemplate(\r
25                 '<html><head><link rel="stylesheet" href="{extAllCSS}" /></head>',\r
26                         '<body>',\r
27                                 '<div class="{boxCls}-tl"><div class="{boxCls}-tr"><div class="{boxCls}-tc"></div></div></div><div class="{boxCls}-ml"><div class="{boxCls}-mr"><div class="{boxCls}-mc">',\r
28                                 '<div id="{msgId}">',\r
29                                         '<span>{msg}</span>',\r
30                                                 '<div id="{iconId}" style="float: right;"><img src="{icon}"></div>',\r
31                                 '</div>',\r
32                                 '</div></div></div><div class="{boxCls}-bl"><div class="{boxCls}-br"><div class="{boxCls}-bc"></div></div></div>',\r
33                         '</body>',\r
34                 '</html>'\r
35         ),\r
36         constructor: function(config) {\r
37                 config = config || {};\r
38                 Ext.apply(this, config);\r
39                 config.html = this.xtpl.apply(this);\r
40                 Ext.air.Notify.superclass.constructor.call(this, config);\r
41                 this.getNative().alwaysInFront = true;\r
42                 this.onCompleteDelegate = this.onComplete.createDelegate(this);\r
43                 this.loader.addEventListener(air.Event.COMPLETE, this.onCompleteDelegate);\r
44         },\r
45         onComplete: function(event) {\r
46                 this.loader.removeEventListener(air.Event.COMPLETE, this.onCompleteDelegate);\r
47                 this.show(event);                                                                                               \r
48         }, \r
49         show: function(event) {\r
50                 var h = event.target.window.document.getElementById(this.msgId).clientHeight + this.extraHeight;\r
51                 var main = air.Screen.mainScreen;\r
52                 var xy = [0,0];                                         \r
53                 xy[0] = main.visibleBounds.bottomRight.x - this.width;\r
54                 xy[1] = main.visibleBounds.bottomRight.y - this.height; \r
55                 this.moveTo(xy[0], xy[1]);\r
56                 Ext.air.Notify.superclass.show.call(this);\r
57                 this.close.defer(this.hideDelay, this);\r
58         }\r
59 });