Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / docs / source / SystemTray.html
1 <html>\r
2 <head>\r
3   <title>The source code</title>\r
4     <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
5     <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
6 </head>\r
7 <body  onload="prettyPrint();">\r
8     <pre class="prettyprint lang-js">Ext.air.SystemTray = function(){\r
9         var app = air.NativeApplication.nativeApplication;\r
10         var icon, isWindows = false, bitmaps;\r
11         \r
12         // windows\r
13         if(air.NativeApplication.supportsSystemTrayIcon) {\r
14         icon = app.icon;\r
15                 isWindows = true;\r
16     }\r
17     \r
18         // mac\r
19     if(air.NativeApplication.supportsDockIcon) {\r
20                 icon = app.icon;\r
21     }\r
22         \r
23         return {\r
24                 \r
25                 setIcon : function(icon, tooltip, initWithIcon){\r
26                         if(!icon){ // not supported OS\r
27                                 return;\r
28                         }\r
29                         var loader = new air.Loader();\r
30                         loader.contentLoaderInfo.addEventListener(air.Event.COMPLETE, function(e){\r
31                                 bitmaps = new runtime.Array(e.target.content.bitmapData);\r
32                                 if (initWithIcon) {\r
33                                         icon.bitmaps = bitmaps;\r
34                                 }\r
35                         });\r
36                 loader.load(new air.URLRequest(icon));\r
37                         if(tooltip && air.NativeApplication.supportsSystemTrayIcon) {\r
38                                 app.icon.tooltip = tooltip;\r
39                         }\r
40                 },\r
41                 \r
42                 bounce : function(priority){\r
43                         icon.bounce(priority);\r
44                 },\r
45                 \r
46                 on : function(eventName, fn, scope){\r
47                         icon.addEventListener(eventName, function(){\r
48                                 fn.apply(scope || this, arguments);\r
49                         });\r
50                 },\r
51                 \r
52                 hideIcon : function(){\r
53                         if(!icon){ // not supported OS\r
54                                 return;\r
55                         }\r
56                         icon.bitmaps = [];\r
57                 },\r
58                 \r
59                 showIcon : function(){\r
60                         if(!icon){ // not supported OS\r
61                                 return;\r
62                         }\r
63                         icon.bitmaps = bitmaps;\r
64                 },\r
65                 \r
66                 setMenu: function(actions, _parentMenu){\r
67                         if(!icon){ // not supported OS\r
68                                 return;\r
69                         }\r
70                         var menu = new air.NativeMenu();\r
71                         \r
72                         for (var i = 0, len = actions.length; i < len; i++) {\r
73                                 var a = actions[i];\r
74                                 if(a == '-'){\r
75                                         menu.addItem(new air.NativeMenuItem("", true));\r
76                                 }else{\r
77                                         var item = menu.addItem(Ext.air.MenuItem(a));\r
78                                         if(a.menu || (a.initialConfig && a.initialConfig.menu)){\r
79                                                 item.submenu = Ext.air.SystemTray.setMenu(a.menu || a.initialConfig.menu, menu);\r
80                                         }\r
81                                 }\r
82                                 \r
83                                 if(!_parentMenu){\r
84                                         icon.menu = menu;\r
85                                 }\r
86                         }\r
87                         \r
88                         return menu;\r
89                 }\r
90         };      \r
91 }();</pre>    \r
92 </body>\r
93 </html>