]> git.proxmox.com Git - extjs.git/blame - extjs/modern/theme-blackberry/src/ux/MenuButton.js
add extjs 6.0.1 sources
[extjs.git] / extjs / modern / theme-blackberry / src / ux / MenuButton.js
CommitLineData
6527f429
DM
1/**\r
2 * User extension designed to be used on the BB10 platform.\r
3 *\r
4 * @private\r
5 */\r
6Ext.define('Ext.theme.blackberry.MenuButton', {\r
7 extend: 'Ext.Button',\r
8 requires: ['Ext.theme.blackberry.ContextMenu'],\r
9\r
10 config: {\r
11 /**\r
12 * @hide\r
13 */\r
14 ui: 'tab',\r
15\r
16 /**\r
17 * @hide\r
18 */\r
19 cls: 'menu',\r
20\r
21 menuConfig: {},\r
22\r
23 menuItems: [],\r
24\r
25 /**\r
26 * @hide\r
27 */\r
28 menuSide: 'right',\r
29\r
30 /**\r
31 * @hide\r
32 */\r
33 menuCover: false,\r
34\r
35 /**\r
36 * @hide\r
37 */\r
38 menuCls: null,\r
39\r
40 /**\r
41 * @hide\r
42 */\r
43 listeners: {\r
44 tap: 'onTap'\r
45 }\r
46 },\r
47\r
48 /**\r
49 * @private\r
50 * Used to show the menu associated with this button\r
51 */\r
52 onTap: function(e) {\r
53 var me = this,\r
54 cls = Ext.baseCSSPrefix + 'open',\r
55 menu = this.$menu;\r
56\r
57 if (menu) {\r
58 menu.destroy();\r
59 }\r
60\r
61 me.element.addCls(cls);\r
62\r
63 me.$menu = menu = new Ext.theme.blackberry.ContextMenu(Ext.apply({}, me.getMenuConfig(), {\r
64 cls: me.getMenuCls(),\r
65 items: me.getMenuItems(),\r
66 listeners: {\r
67 scope: me,\r
68 hide: function() {\r
69 if (me.$menu) {\r
70 me.element.removeCls(cls);\r
71 Ext.Viewport.removeMenu(me.getMenuSide());\r
72 me.$menu.destroy();\r
73 }\r
74 }\r
75 }\r
76 }));\r
77\r
78 menu.on({\r
79 scope: me,\r
80 tap: me.onMenuButtonTap,\r
81 delegate: 'button'\r
82 });\r
83\r
84 Ext.Viewport.setMenu(menu, {\r
85 side: me.getMenuSide(),\r
86 cover: me.getMenuCover()\r
87 });\r
88\r
89 Ext.Viewport.showMenu(me.getMenuSide());\r
90 },\r
91\r
92 onMenuButtonTap: Ext.emptyFn\r
93});