libui-ng
A portable GUI library for C
uiTab Struct Reference

A multi page control interface that displays one page at a time. More...

#include <ui.h>

Inheritance diagram for uiTab:
uiControl

Public Member Functions

int uiTabSelected (uiTab *t)
 Returns the index of the tab selected. More...
 
void uiTabSetSelected (uiTab *t, int index)
 Sets the tab selected. More...
 
void uiTabOnSelected (uiTab *t, void(*f)(uiTab *sender, void *senderData), void *data)
 Registers a callback for when a tab is selected. More...
 
void uiTabAppend (uiTab *t, const char *name, uiControl *c)
 Appends a control in form of a page/tab with label. More...
 
void uiTabInsertAt (uiTab *t, const char *name, int index, uiControl *c)
 Inserts a control in form of a page/tab with label at index. More...
 
void uiTabDelete (uiTab *t, int index)
 Removes the control at index. More...
 
int uiTabNumPages (uiTab *t)
 Returns the number of pages contained. More...
 
int uiTabMargined (uiTab *t, int index)
 Returns whether or not the page/tab at index has a margin. More...
 
void uiTabSetMargined (uiTab *t, int index, int margined)
 Sets whether or not the page/tab at index has a margin. More...
 
uiTabuiNewTab (void)
 Creates a new tab container. More...
 
- Public Member Functions inherited from uiControl
void uiControlDestroy (uiControl *c)
 Dispose and free all allocated resources. More...
 
uintptr_t uiControlHandle (uiControl *c)
 Returns the control's OS-level handle. More...
 
uiControluiControlParent (uiControl *c)
 Returns the parent control. More...
 
void uiControlSetParent (uiControl *c, uiControl *parent)
 Sets the control's parent. More...
 
int uiControlToplevel (uiControl *c)
 Returns whether or not the control is a top level control. More...
 
int uiControlVisible (uiControl *c)
 Returns whether or not the control is visible. More...
 
void uiControlShow (uiControl *c)
 Shows the control. More...
 
void uiControlHide (uiControl *c)
 Hides the control. More...
 
int uiControlEnabled (uiControl *c)
 Returns whether or not the control is enabled. More...
 
void uiControlEnable (uiControl *c)
 Enables the control. More...
 
void uiControlDisable (uiControl *c)
 Disables the control. More...
 
uiControluiAllocControl (size_t n, uint32_t OSsig, uint32_t typesig, const char *typenamestr)
 Allocates a uiControl. More...
 
void uiFreeControl (uiControl *c)
 Frees the memory associated with the control reference. More...
 
void uiControlVerifySetParent (uiControl *c, uiControl *parent)
 Makes sure the control's parent can be set to parent. More...
 
int uiControlEnabledToUser (uiControl *c)
 Returns whether or not the control can be interacted with by the user. More...
 

Additional Inherited Members

- Public Attributes inherited from uiControl
uint32_t Signature
 
uint32_t OSSignature
 
uint32_t TypeSignature
 
void(* Destroy )(uiControl *)
 
uintptr_t(* Handle )(uiControl *)
 
uiControl *(* Parent )(uiControl *)
 
void(* SetParent )(uiControl *, uiControl *)
 
int(* Toplevel )(uiControl *)
 
int(* Visible )(uiControl *)
 
void(* Show )(uiControl *)
 
void(* Hide )(uiControl *)
 
int(* Enabled )(uiControl *)
 
void(* Enable )(uiControl *)
 
void(* Disable )(uiControl *)
 

Detailed Description

A multi page control interface that displays one page at a time.

Each page/tab has an associated label that can be selected to switch between pages/tabs.

Member Function Documentation

◆ uiNewTab()

uiTab * uiNewTab ( void  )

Creates a new tab container.

Returns
A new uiTab instance.

◆ uiTabAppend()

void uiTabAppend ( uiTab t,
const char *  name,
uiControl c 
)

Appends a control in form of a page/tab with label.

Parameters
tuiTab instance.
nameLabel text.
A valid, NUL terminated UTF-8 string.
Data is copied internally. Ownership is not transferred.
cControl to append.

◆ uiTabDelete()

void uiTabDelete ( uiTab t,
int  index 
)

Removes the control at index.

Parameters
tuiTab instance.
indexIndex of the control to be removed.
Note
The control is neither destroyed nor freed.

◆ uiTabInsertAt()

void uiTabInsertAt ( uiTab t,
const char *  name,
int  index,
uiControl c 
)

Inserts a control in form of a page/tab with label at index.

Parameters
tuiTab instance.
nameLabel text.
A valid, NUL terminated UTF-8 string.
Data is copied internally. Ownership is not transferred.
indexIndex at which to insert the control.
cControl to insert.

◆ uiTabMargined()

int uiTabMargined ( uiTab t,
int  index 
)

Returns whether or not the page/tab at index has a margin.

Parameters
tuiTab instance.
indexIndex to check if it has a margin.
Returns
TRUE if the tab has a margin, FALSE otherwise. [Default: TODO]

◆ uiTabNumPages()

int uiTabNumPages ( uiTab t)

Returns the number of pages contained.

Parameters
tuiTab instance.
Returns
Number of pages.

◆ uiTabOnSelected()

void uiTabOnSelected ( uiTab t,
void(*)(uiTab *sender, void *senderData)  f,
void *  data 
)

Registers a callback for when a tab is selected.

Parameters
tuiTab instance.
fCallback function.
sender Back reference to the instance that triggered the callback.
senderData User data registered with the sender instance.
dataUser data to be passed to the callback.
Note
The callback is not triggered when calling uiTabSetSelected(),
Only one callback can be registered at a time.

◆ uiTabSelected()

int uiTabSelected ( uiTab t)

Returns the index of the tab selected.

Parameters
cuiTab instance.
Returns
Index of the tab selected

◆ uiTabSetMargined()

void uiTabSetMargined ( uiTab t,
int  index,
int  margined 
)

Sets whether or not the page/tab at index has a margin.

The margin size is determined by the OS defaults.

Parameters
tuiTab instance.
indexIndex of the tab/page to un/set margin for.
marginedTRUE to set a margin for tab at index, FALSE otherwise.

◆ uiTabSetSelected()

void uiTabSetSelected ( uiTab t,
int  index 
)

Sets the tab selected.

Parameters
cuiTab instance.
indexIndex of the tab to be selected
Note
The index must be in the range [0, uiTabNumPages(t) - 1]. If out of bounds, the selection is not changed.

The documentation for this struct was generated from the following file: