25 lines
865 B
C
25 lines
865 B
C
// widgetRadio.h -- Radio button widget API
|
|
#ifndef WIDGET_RADIO_H
|
|
#define WIDGET_RADIO_H
|
|
|
|
#include "../core/dvxWidget.h"
|
|
|
|
typedef struct {
|
|
WidgetT *(*group)(WidgetT *parent);
|
|
WidgetT *(*create)(WidgetT *parent, const char *text);
|
|
void (*groupSetSelected)(WidgetT *w, int32_t idx);
|
|
int32_t (*getIndex)(const WidgetT *w);
|
|
} RadioApiT;
|
|
|
|
static inline const RadioApiT *dvxRadioApi(void) {
|
|
static const RadioApiT *sApi;
|
|
if (!sApi) { sApi = (const RadioApiT *)wgtGetApi("radio"); }
|
|
return sApi;
|
|
}
|
|
|
|
#define wgtRadioGroup(parent) dvxRadioApi()->group(parent)
|
|
#define wgtRadio(parent, text) dvxRadioApi()->create(parent, text)
|
|
#define wgtRadioGroupSetSelected(w, idx) dvxRadioApi()->groupSetSelected(w, idx)
|
|
#define wgtRadioGetIndex(w) dvxRadioApi()->getIndex(w)
|
|
|
|
#endif // WIDGET_RADIO_H
|