Table

Table view.

Header#include "nativeui/table.h"
Namespacenamespace nu
Typeclass (RefCounted)
InheritsView

The Table does not store any data itself, to display data in Table, users have to provide a TableModel.

How data are renderered depends on the type of column. It is also possible to create a custom renderer for arbitrary data.

Constructors

Table()

Create a new Table.

Class properties

const char* kClassName

The class name of this view.

Methods

void SetModel(scoped_refptr<TableModel> model)

Set model as table's data source.

Parameters

TableModel* GetModel()

Return table's model.

Return

TableModel*

void AddColumn(const std::string& title)

Add a new column with title, which shows readonly text.

Parameters

void AddColumnWithOptions(const std::string& title, const Table::ColumnOptions& options)

Add a new column with title and options.

Parameters

int GetColumnCount() const

Return the number of columns.

Return

int

void SetColumnsVisible(bool visible)

Set whether the columns header is visible.

On macOS adding column after hiding the header will result in missing columns in the header even after making the header visible again.

It is recommended to never show the header again after hiding the header, for consistent behaviors between platforms.

Parameters

bool IsColumnsVisible() const

Return whether the columns header is visible.

Return

bool

void SetRowHeight(float height)

Set the height of each row.

It is not recommended to change row height unless you are drawing all cells yourself, as the default text cells may not show decently under large or small height.

On Linux, due to platform implementations, this method has to be called before adding columns. It does not have any effect when columns have already been added.

Parameters

float GetRowHeight() const

Return the height of each row.

Return

float

void SetHasBorder(bool has)

Set whether the view has border.

Parameters

bool HasBorder() const

Return whether the view has border.

Return

bool

void EnableMultipleSelection(bool enable)

Set whether it is allowed to select more than one row at a time.

Parameters

bool IsMultipleSelectionEnabled() const

Return whether it is allowed to select more than one row at a time.

Return

bool

void SelectRow(int row)

Select a row.

Parameters

int GetSelectedRow() const

Return the index of selected row.

For table that allows multiple selections, this will return the index of first selected row. When no row is selected, -1 will be returned.

Return

int

void SelectRows(std::set<int> rows)

Select multiple rows.

Parameters

std::set<int> GetSelectedRows() const

Return selected rows' indexes.

Return

std::set<int>

Events

void on_selection_change(Table* self)

Emitted when the table's selection has changed.

Parameters

Preventable

No.

void on_row_activate(Table* self, int row)

Emitted when the user double-clicks a row.

Parameters

Preventable

No.

void on_toggle_checkbox(Table* self, int column, int row)

Emitted when the user clicks a cell to toggle checkbox.

Parameters

Preventable

No.