]> git.proxmox.com Git - extjs.git/blob - extjs/modern/modern/src/Mask.js
add extjs 6.0.1 sources
[extjs.git] / extjs / modern / modern / src / Mask.js
1 /**
2 * A simple class used to mask any {@link Ext.Container}.
3 *
4 * This should rarely be used directly, instead look at the {@link Ext.Container#masked} configuration.
5 *
6 * ## Example
7 *
8 * @example miniphone
9 * // Create our container
10 * var container = Ext.create('Ext.Container', {
11 * html: 'My container!'
12 * });
13 *
14 * // Add the container to the Viewport
15 * Ext.Viewport.add(container);
16 *
17 * // Mask the container
18 * container.setMasked(true);
19 */
20 Ext.define('Ext.Mask', {
21 extend: 'Ext.Component',
22 xtype: 'mask',
23 requires: ['Ext.util.InputBlocker'],
24
25 config: {
26 /**
27 * @cfg
28 * @inheritdoc
29 */
30 baseCls: Ext.baseCSSPrefix + 'mask',
31
32 /**
33 * @cfg {Boolean} transparent True to make this mask transparent.
34 */
35 transparent: false,
36
37 /**
38 * @cfg
39 * @hide
40 */
41 top: 0,
42
43 /**
44 * @cfg
45 * @hide
46 */
47 left: 0,
48
49 /**
50 * @cfg
51 * @hide
52 */
53 right: 0,
54
55 /**
56 * @cfg
57 * @hide
58 */
59 bottom: 0
60 },
61
62 /**
63 * @event tap
64 * A tap event fired when a user taps on this mask
65 * @param {Ext.Mask} this The mask instance
66 * @param {Ext.EventObject} e The event object
67 */
68 initialize: function() {
69 var me = this;
70
71 me.callParent();
72 me.element.on('tap', 'onTap', me);
73 me.on('hide', 'onHide', me);
74 },
75
76 onHide: function(){
77 Ext.util.InputBlocker.unblockInputs();
78
79 // Oh how I loves the Android
80 if (Ext.browser.is.AndroidStock4 && Ext.os.version.getMinor() === 0) {
81 var firstChild = this.element.getFirstChild();
82 if (firstChild) {
83 firstChild.redraw();
84 }
85 }
86 },
87
88 onTap: function(e) {
89 this.fireEvent('tap', this, e);
90 },
91
92 updateTransparent: function(transparent) {
93 this.toggleCls(this.getBaseCls() + '-transparent', transparent);
94 }
95 });