docs: private void addTab(String title, Icon icon, final Component c, boolean hideable, boolean visible, int index, boolean reparent) {
  		if (!this.fullTabList.contains(c)) {
  			this.fullTabList.add(c);
  		}
  
  		if (c instanceof AbstractPanel) {
  			if (reparent) {
  				((AbstractPanel) c).setParent(this);
  			}
  			((AbstractPanel)c).setTabIndex(index);
  			((AbstractPanel)c).setHideable(hideable);
  		}
  
  		if (!visible) {
  			hideTab(c);
  			return;
  		}
  
  		this.hiddenTabs.remove(c);
  
  		if (index == -1 || index > this.getTabCount()) {
  			index = this.getTabCount();
  		}
  		if (icon instanceof ImageIcon) {
  			icon = DisplayUtils.getScaledIcon((ImageIcon)icon);
  		}
  
  		super.insertTab(title, icon, c, c.getName(), index);
  
  		int pos = this.indexOfComponent(c);
  		// Now assign the component for the tab
  		
  		this.setTabComponentAt(pos, new TabbedPanelTab(this, title, icon, c, hideable, this.isTabPinned(c)));
  
  		handleHiddenTabListTab();
  
  		if ((index == 0 || getTabCount() == 1) && indexOfComponent(c) != -1) {
  			// Its now the first one, give it focus
  			setSelectedComponent(c);
  		}
  	}