ColorMenu.js
上传用户:dawnssy
上传日期:2022-08-06
资源大小:9345k
文件大小:3k
源码类别:

JavaScript

开发平台:

JavaScript

  1. /*!  * Ext JS Library 3.1.0  * Copyright(c) 2006-2009 Ext JS, LLC  * licensing@extjs.com  * http://www.extjs.com/license  */ /**
  2.  * @class Ext.menu.ColorMenu
  3.  * @extends Ext.menu.Menu
  4.  * <p>A menu containing a {@link Ext.ColorPalette} Component.</p>
  5.  * <p>Notes:</p><div class="mdetail-params"><ul>
  6.  * <li>Although not listed here, the <b>constructor</b> for this class
  7.  * accepts all of the configuration options of <b>{@link Ext.ColorPalette}</b>.</li>
  8.  * <li>If subclassing ColorMenu, any configuration options for the ColorPalette must be
  9.  * applied to the <tt><b>initialConfig</b></tt> property of the ColorMenu.
  10.  * Applying {@link Ext.ColorPalette ColorPalette} configuration settings to
  11.  * <b><tt>this</tt></b> will <b>not</b> affect the ColorPalette's configuration.</li>
  12.  * </ul></div> * 
  13.  * @xtype colormenu
  14.  */
  15.  Ext.menu.ColorMenu = Ext.extend(Ext.menu.Menu, {
  16.     /** 
  17.      * @cfg {Boolean} enableScrolling
  18.      * @hide 
  19.      */
  20.     enableScrolling : false,
  21.     /**
  22.      * @cfg {Function} handler
  23.      * Optional. A function that will handle the select event of this menu.
  24.      * The handler is passed the following parameters:<div class="mdetail-params"><ul>
  25.      * <li><code>palette</code> : ColorPalette<div class="sub-desc">The {@link #palette Ext.ColorPalette}.</div></li>
  26.      * <li><code>color</code> : String<div class="sub-desc">The 6-digit color hex code (without the # symbol).</div></li>
  27.      * </ul></div>
  28.      */
  29.     /**
  30.      * @cfg {Object} scope
  31.      * The scope (<tt><b>this</b></tt> reference) in which the <code>{@link #handler}</code>
  32.      * function will be called.  Defaults to this ColorMenu instance.
  33.      */    
  34.     
  35.     /** 
  36.      * @cfg {Boolean} hideOnClick
  37.      * False to continue showing the menu after a color is selected, defaults to true.
  38.      */
  39.     hideOnClick : true,
  40.     
  41.     cls : 'x-color-menu',
  42.     
  43.     /** 
  44.      * @cfg {String} paletteId
  45.      * An id to assign to the underlying color palette. Defaults to <tt>null</tt>.
  46.      */
  47.     paletteId : null,
  48.     
  49.     /** 
  50.      * @cfg {Number} maxHeight
  51.      * @hide 
  52.      */
  53.     /** 
  54.      * @cfg {Number} scrollIncrement
  55.      * @hide 
  56.      */
  57.     /**
  58.      * @property palette
  59.      * @type ColorPalette
  60.      * The {@link Ext.ColorPalette} instance for this ColorMenu
  61.      */
  62.     
  63.     
  64.     /**
  65.      * @event click
  66.      * @hide
  67.      */
  68.     
  69.     /**
  70.      * @event itemclick
  71.      * @hide
  72.      */
  73.     
  74.     initComponent : function(){
  75.         Ext.apply(this, {
  76.             plain: true,
  77.             showSeparator: false,
  78.             items: this.palette = new Ext.ColorPalette(Ext.applyIf({
  79.                 id: this.paletteId
  80.             }, this.initialConfig))
  81.         });
  82.         this.palette.purgeListeners();
  83.         Ext.menu.ColorMenu.superclass.initComponent.call(this);
  84.         /**
  85.          * @event select
  86.          * Fires when a color is selected from the {@link #palette Ext.ColorPalette}
  87.          * @param {Ext.ColorPalette} palette The {@link #palette Ext.ColorPalette}
  88.      * @param {String} color The 6-digit color hex code (without the # symbol)
  89.          */
  90.         this.relayEvents(this.palette, ['select']);
  91.         this.on('select', this.menuHide, this);
  92.         if(this.handler){
  93.             this.on('select', this.handler, this.scope || this);
  94.         }
  95.     },
  96.     menuHide : function(){
  97.         if(this.hideOnClick){
  98.             this.hide(true);
  99.         }
  100.     }
  101. });
  102. Ext.reg('colormenu', Ext.menu.ColorMenu);