X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/0494b8d9b9bb03ab6c22b34dae81261e3cd7e3e6..7a654f8d43fdb43d78b63d90528bed6e86b608cc:/examples/desktop/js/Wallpaper.js diff --git a/examples/desktop/js/Wallpaper.js b/examples/desktop/js/Wallpaper.js new file mode 100644 index 00000000..21c7e0ec --- /dev/null +++ b/examples/desktop/js/Wallpaper.js @@ -0,0 +1,74 @@ +/*! + * Ext JS Library 4.0 + * Copyright(c) 2006-2011 Sencha Inc. + * licensing@sencha.com + * http://www.sencha.com/license + */ + +/** + * @class Ext.ux.desktop.Wallpaper + * @extends Ext.Component + *

This component renders an image that stretches to fill the component.

+ */ +Ext.define('Ext.ux.desktop.Wallpaper', { + extend: 'Ext.Component', + + alias: 'widget.wallpaper', + + cls: 'ux-wallpaper', + html: '', + + stretch: false, + wallpaper: null, + + afterRender: function () { + var me = this; + me.callParent(); + me.setWallpaper(me.wallpaper, me.stretch); + }, + + applyState: function () { + var me = this, old = me.wallpaper; + me.callParent(arguments); + if (old != me.wallpaper) { + me.setWallpaper(me.wallpaper); + } + }, + + getState: function () { + return this.wallpaper && { wallpaper: this.wallpaper }; + }, + + setWallpaper: function (wallpaper, stretch) { + var me = this, imgEl, bkgnd; + + me.stretch = (stretch !== false); + me.wallpaper = wallpaper; + + if (me.rendered) { + imgEl = me.el.dom.firstChild; + + if (!wallpaper || wallpaper == Ext.BLANK_IMAGE_URL) { + Ext.fly(imgEl).hide(); + } else if (me.stretch) { + imgEl.src = wallpaper; + + me.el.removeCls('ux-wallpaper-tiled'); + Ext.fly(imgEl).setStyle({ + width: '100%', + height: '100%' + }).show(); + } else { + Ext.fly(imgEl).hide(); + + bkgnd = 'url('+wallpaper+')'; + me.el.addCls('ux-wallpaper-tiled'); + } + + me.el.setStyle({ + backgroundImage: bkgnd || '' + }); + } + return me; + } +});