code: function (settings) {
          var self = this;
  
          self._super(settings);
          self._eventsRoot = self;
  
          self.classes.add('floatpanel');
  
          // Hide floatpanes on click out side the root button
          if (settings.autohide) {
            bindDocumentClickHandler();
            bindWindowResizeHandler();
            visiblePanels.push(self);
          }
  
          if (settings.autofix) {
            bindDocumentScrollHandler();
  
            self.on('move', function () {
              repositionPanel(this);
            });
          }
  
          self.on('postrender show', function (e) {
            if (e.control == self) {
              var $modalBlockEl, prefix = self.classPrefix;
  
              if (self.modal && !hasModal) {
                $modalBlockEl = $('#' + prefix + 'modal-block', self.getContainerElm());
                if (!$modalBlockEl[0]) {
                  $modalBlockEl = $(
                    '<div id="' + prefix + 'modal-block" class="' + prefix + 'reset ' + prefix + 'fade"></div>'
                  ).appendTo(self.getContainerElm());
                }
  
                Delay.setTimeout(function () {
                  $modalBlockEl.addClass(prefix + 'in');
                  $(self.getEl()).addClass(prefix + 'in');
                });
  
                hasModal = true;
              }
  
              addRemove(true, self);
            }
          });
  
          self.on('show', function () {
            self.parents().each(function (ctrl) {
              if (ctrl.state.get('fixed')) {
                self.fixed(true);
                return false;
              }
            });
          });
  
          if (settings.popover) {
            self._preBodyHtml = '<div class="' + self.classPrefix + 'arrow"></div>';
            self.classes.add('popover').add('bottom').add(self.isRtl() ? 'end' : 'start');
          }
  
          self.aria('label', settings.ariaLabel);
          self.aria('labelledby', self._id);
          self.aria('describedby', self.describedBy || self._id + '-none');
        }
docs: Constructs a new control instance with the specified settings.
  
  @constructor
  @param {Object} settings Name/value object with settings.
  @setting {Boolean} autohide Automatically hide the panel.