code: function (settings) {
          var self = this;
  
          self._super(settings);
          settings = self.settings;
          self.canFocus = true;
  
          if (settings.tooltip && Widget.tooltips !== false) {
            self.on('mouseenter', function (e) {
              var tooltip = self.tooltip().moveTo(-0xFFFF);
  
              if (e.control == self) {
                var rel = tooltip.text(settings.tooltip).show().testMoveRel(self.getEl(), ['bc-tc', 'bc-tl', 'bc-tr']);
  
                tooltip.classes.toggle('tooltip-n', rel == 'bc-tc');
                tooltip.classes.toggle('tooltip-nw', rel == 'bc-tl');
                tooltip.classes.toggle('tooltip-ne', rel == 'bc-tr');
  
                tooltip.moveRel(self.getEl(), rel);
              } else {
                tooltip.hide();
              }
            });
  
            self.on('mouseleave mousedown click', function () {
              self.tooltip().hide();
            });
          }
  
          self.aria('label', settings.ariaLabel || settings.tooltip);
        }
docs: Constructs a instance with the specified settings.
  
  @constructor
  @param {Object} settings Name/value object with settings.
  @setting {String} tooltip Tooltip text to display when hovering.
  @setting {Boolean} autofocus True if the control should be focused when rendered.
  @setting {String} text Text to display inside widget.