# TabControl | Basalt
A UI Framework made for CC:Tweaked

Skip to content

# TabControl ​

The TabControl is a container that provides tabbed interface functionality

Extends: `Container`

## Properties ​

Property | Type | Default | Description
--- | --- | --- | ---
activeTab | number | The | currently active tab ID
tabHeight | number | Height | of the tab header area
tabs | table | List | of tab definitions
headerBackground | color | Background | color for the tab header area
activeTabBackground | color | Background | color for the active tab
activeTabTextColor | color | Foreground | color for the active tab text

## Functions ​

Method | Returns | Description
--- | --- | ---
TabControl:newTab | table | Creates a new tab handler proxy
TabControl:setTab | TabControl | Sets an element to belong to a specific tab
TabControl:addElement | table | Adds an element to the TabControl and assigns it to the active tab
TabControl:setActiveTab | - | Sets the active tab
TabControl:setCursor | - | Sets the cursor position; accounts for tab header offset when delegating to parent

## TabControl:newTab(title) ​

returns a proxy for adding elements to the tab

### Parameters ​

- `title` `string` The title of the tab

### Returns ​

- `table` `tabHandler` The tab handler proxy for adding elements to the new tab

## TabControl:setTab(element, tabId) ​

### Parameters ​

- `element` `table` The element to assign to a tab
- `tabId` `number` The ID of the tab to assign the element to

### Returns ​

- `TabControl` `self` For method chaining

## TabControl:addElement(elementType, tabId) ​

### Parameters ​

- `elementType` `string` The type of element to add
- `tabId` `number` Optional tab ID, defaults to active tab

### Returns ​

- `table` `element` The created element

## TabControl:setActiveTab(tabId) ​

### Parameters ​

- `tabId` `number` The ID of the tab to activate

## TabControl:setCursor() ​