I'm guessing by "hardcoded" Sebastian means that the tabs are loaded via their names rather than some Boolean flag -if so that's true. In the case of control panel the first set of tabs is loaded via:
private void GetAdminTabs()
{
var adminTab = TabController.GetTabByTabPath(PortalSettings.PortalId, "//Admin", string.Empty);
_adminTabs = TabController.GetTabsByParent(adminTab, PortalSettings.PortalId).OrderBy(t => t.LocalizedTabName).ToList();
_adminBaseTabs = new List<TabInfo>();
_adminAdvancedTabs = new List<TabInfo>();
foreach (var tabInfo in _adminTabs)
{
switch (tabInfo.TabName)
{
case "Site Settings":
case "Pages":
case "Security Roles":
case "User Accounts":
case "File Management":
case "Recycle Bin":
case "Log Viewer":
_adminBaseTabs.Add(tabInfo);
break;
default:
_adminAdvancedTabs.Add(tabInfo);
break;
}
}
}
So, as long as you have //Admin as your tabpath, and you have tab's with those names, they should load into the respective collections (_adminbasetabs for the common items, _adminadvancedtabs for the advanced ones).