whole_func_string: function() {
          var me = this;
  
          // Ensure no selection happens
          me.addCls('x-unselectable');
  
          me.callParent(arguments);
  
          me.addEvents(
              /**
               * @event click
               * Fires when this button is clicked, before the configured {@link #handler} is invoked. Execution of the
               * {@link #handler} may be vetoed by returning <code>false</code> to this event.
               * @param {Ext.button.Button} this
               * @param {Event} e The click event
               */
              'click',
  
              /**
               * @event toggle
               * Fires when the 'pressed' state of this button changes (only if enableToggle = true)
               * @param {Ext.button.Button} this
               * @param {Boolean} pressed
               */
              'toggle',
  
              /**
               * @event mouseover
               * Fires when the mouse hovers over the button
               * @param {Ext.button.Button} this
               * @param {Event} e The event object
               */
              'mouseover',
  
              /**
               * @event mouseout
               * Fires when the mouse exits the button
               * @param {Ext.button.Button} this
               * @param {Event} e The event object
               */
              'mouseout',
  
              /**
               * @event menushow
               * If this button has a menu, this event fires when it is shown
               * @param {Ext.button.Button} this
               * @param {Ext.menu.Menu} menu
               */
              'menushow',
  
              /**
               * @event menuhide
               * If this button has a menu, this event fires when it is hidden
               * @param {Ext.button.Button} this
               * @param {Ext.menu.Menu} menu
               */
              'menuhide',
  
              /**
               * @event menutriggerover
               * If this button has a menu, this event fires when the mouse enters the menu triggering element
               * @param {Ext.button.Button} this
               * @param {Ext.menu.Menu} menu
               * @param {Event} e
               */
              'menutriggerover',
  
              /**
               * @event menutriggerout
               * If this button has a menu, this event fires when the mouse leaves the menu triggering element
               * @param {Ext.button.Button} this
               * @param {Ext.menu.Menu} menu
               * @param {Event} e
               */
              'menutriggerout',
  
              /**
               * @event textchange
               * Fired when the button's text is changed by the {@link #setText} method.
               * @param {Ext.button.Button} this
               * @param {String} oldText
               * @param {String} newText
               */
              'textchange',
  
              /**
               * @event iconchange
               * Fired when the button's icon is changed by the {@link #setIcon} or {@link #setIconCls} methods.
               * @param {Ext.button.Button} this
               * @param {String} oldIcon
               * @param {String} newIcon
               */
              'iconchange',
  
              /**
               * @event glyphchange
               * Fired when the button's glyph is changed by the {@link #setGlyph} method.
               * @param {Ext.button.Button} this
               * @param {Number/String} newGlyph
               * @param {Number/String} oldGlyph
               */
              'glyphchange'
          );
  
          if (me.menu) {
              // Flag that we'll have a splitCls
              me.split = true;
  
              // retrieve menu by id or instantiate instance if needed
              me.menu = Ext.menu.Manager.get(me.menu);
  
              // Use ownerButton as the upward link. Menus *must have no ownerCt* - they are global floaters.
              // Upward navigation is done using the up() method.
              me.menu.ownerButton = me;
          }
  
          // Accept url as a synonym for href
          if (me.url) {
              me.href = me.url;
          }
  
          // preventDefault defaults to false for links
          if (me.href && !me.hasOwnProperty('preventDefault')) {
              me.preventDefault = false;
          }
  
          if (Ext.isString(me.toggleGroup) && me.toggleGroup !== '') {
              me.enableToggle = true;
          }
          
          if (me.html && !me.text) {
              me.text = me.html;
              delete me.html;
          }
  
          me.glyphCls = me.baseCls + '-glyph';
      }
func_code_string: function() {
          var me = this;
  
          // Ensure no selection happens
          me.addCls('x-unselectable');
  
          me.callParent(arguments);
  
          me.addEvents(
              /**
               * @event click
               * Fires when this button is clicked, before the configured {@link #handler} is invoked. Execution of the
               * {@link #handler} may be vetoed by returning <code>false</code> to this event.
               * @param {Ext.button.Button} this
               * @param {Event} e The click event
               */
              'click',
  
              /**
               * @event toggle
               * Fires when the 'pressed' state of this button changes (only if enableToggle = true)
               * @param {Ext.button.Button} this
               * @param {Boolean} pressed
               */
              'toggle',
  
              /**
               * @event mouseover
               * Fires when the mouse hovers over the button
               * @param {Ext.button.Button} this
               * @param {Event} e The event object
               */
              'mouseover',
  
              /**
               * @event mouseout
               * Fires when the mouse exits the button
               * @param {Ext.button.Button} this
               * @param {Event} e The event object
               */
              'mouseout',
  
              /**
               * @event menushow
               * If this button has a menu, this event fires when it is shown
               * @param {Ext.button.Button} this
               * @param {Ext.menu.Menu} menu
               */
              'menushow',
  
              /**
               * @event menuhide
               * If this button has a menu, this event fires when it is hidden
               * @param {Ext.button.Button} this
               * @param {Ext.menu.Menu} menu
               */
              'menuhide',
  
              /**
               * @event menutriggerover
               * If this button has a menu, this event fires when the mouse enters the menu triggering element
               * @param {Ext.button.Button} this
               * @param {Ext.menu.Menu} menu
               * @param {Event} e
               */
              'menutriggerover',
  
              /**
               * @event menutriggerout
               * If this button has a menu, this event fires when the mouse leaves the menu triggering element
               * @param {Ext.button.Button} this
               * @param {Ext.menu.Menu} menu
               * @param {Event} e
               */
              'menutriggerout',
  
              /**
               * @event textchange
               * Fired when the button's text is changed by the {@link #setText} method.
               * @param {Ext.button.Button} this
               * @param {String} oldText
               * @param {String} newText
               */
              'textchange',
  
              /**
               * @event iconchange
               * Fired when the button's icon is changed by the {@link #setIcon} or {@link #setIconCls} methods.
               * @param {Ext.button.Button} this
               * @param {String} oldIcon
               * @param {String} newIcon
               */
              'iconchange',
  
              /**
               * @event glyphchange
               * Fired when the button's glyph is changed by the {@link #setGlyph} method.
               * @param {Ext.button.Button} this
               * @param {Number/String} newGlyph
               * @param {Number/String} oldGlyph
               */
              'glyphchange'
          );
  
          if (me.menu) {
              // Flag that we'll have a splitCls
              me.split = true;
  
              // retrieve menu by id or instantiate instance if needed
              me.menu = Ext.menu.Manager.get(me.menu);
  
              // Use ownerButton as the upward link. Menus *must have no ownerCt* - they are global floaters.
              // Upward navigation is done using the up() method.
              me.menu.ownerButton = me;
          }
  
          // Accept url as a synonym for href
          if (me.url) {
              me.href = me.url;
          }
  
          // preventDefault defaults to false for links
          if (me.href && !me.hasOwnProperty('preventDefault')) {
              me.preventDefault = false;
          }
  
          if (Ext.isString(me.toggleGroup) && me.toggleGroup !== '') {
              me.enableToggle = true;
          }
          
          if (me.html && !me.text) {
              me.text = me.html;
              delete me.html;
          }
  
          me.glyphCls = me.baseCls + '-glyph';
      }
func_documentation_string: inherit docs