DVX_GUI/widgets/widgetRadio.h

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