TwAddButton (function)

int TwAddButton(TwBar *bar, const char *name, TwButtonCallback callback, void *clientData, const char *def)

Description

This function adds a button entry to a tweak bar. When the button is clicked by a user, the callback function provided to TwAddButton is called.

Parameters

bar

The tweak bar to which adding a new variable.

name

The name of the button. It will be displayed in the tweak bar if no label is specified for this button. It will also be used to refer to this button in other functions, so choose a unique, simple and short name and avoid special characters like spaces or punctuation marks.

callback

The callback function that will be called by AntTweakBar when the button is clicked.

You should define this callback function like this:

void TW_CALL Callback(void *clientData)
{ 
    // do something
}

clientData

For your convenience, this is a supplementary pointer that will be passed to the callback function when it is called. For instance, if you set it to an object pointer, you can use it to access to the object’s members inside the callback function.

def

An optional definition string used to modify the behavior of this new entry. This string must follow the variable parameters syntax, or set to NULL to get the default behavior. It could be set or modified later by calling the TwDefine or TwSetParam functions.

Return value

  • 1 if the button was successfully added to the tweak bar.
  • 0 if an error occurred (call TwGetLastError to retrieve the error).

Example

void TW_CALL RunCB(void * /*clientData*/)
{ 
  Gump.State = RUNNING;
}
// ...
TwAddButton(bar, "Run", RunCB, NULL, " label='Run Forest' ");

Remark

If you add a button without specifying callback and clientData (ie. they are set to NULL), no button icon is displayed. Only the name or label of the button is displayed, and it is not clickable. It looks like a comment. This is a way to add a line of text in a tweak bar.

Example:

TwAddButton(bar, "comment1", NULL, NULL, " label='Life is like a box a chocolates' ");

See also