29 lines
1.1 KiB
C
29 lines
1.1 KiB
C
// widgetTimer.h -- Timer widget API
|
|
#ifndef WIDGET_TIMER_H
|
|
#define WIDGET_TIMER_H
|
|
|
|
#include "../core/dvxWidget.h"
|
|
|
|
typedef struct {
|
|
WidgetT *(*create)(WidgetT *parent, int32_t intervalMs, bool repeat);
|
|
void (*start)(WidgetT *w);
|
|
void (*stop)(WidgetT *w);
|
|
void (*setInterval)(WidgetT *w, int32_t intervalMs);
|
|
bool (*isRunning)(const WidgetT *w);
|
|
void (*updateTimers)(void);
|
|
} TimerApiT;
|
|
|
|
static inline const TimerApiT *dvxTimerApi(void) {
|
|
static const TimerApiT *sApi;
|
|
if (!sApi) { sApi = (const TimerApiT *)wgtGetApi("timer"); }
|
|
return sApi;
|
|
}
|
|
|
|
#define wgtTimer(parent, intervalMs, repeat) dvxTimerApi()->create(parent, intervalMs, repeat)
|
|
#define wgtTimerStart(w) dvxTimerApi()->start(w)
|
|
#define wgtTimerStop(w) dvxTimerApi()->stop(w)
|
|
#define wgtTimerSetInterval(w, intervalMs) dvxTimerApi()->setInterval(w, intervalMs)
|
|
#define wgtTimerIsRunning(w) dvxTimerApi()->isRunning(w)
|
|
#define wgtUpdateTimers() do { const TimerApiT *_ta = dvxTimerApi(); if (_ta) { _ta->updateTimers(); } } while(0)
|
|
|
|
#endif // WIDGET_TIMER_H
|