// widgetDbGrid.h -- Database grid widget API #ifndef WIDGET_DBGRID_H #define WIDGET_DBGRID_H #include "dvxWidget.h" typedef struct { WidgetT *(*create)(WidgetT *parent); void (*setDataWidget)(WidgetT *w, WidgetT *dataWidget); void (*refresh)(WidgetT *w); void (*setColumnVisible)(WidgetT *w, const char *fieldName, bool visible); void (*setColumnHeader)(WidgetT *w, const char *fieldName, const char *header); void (*setColumnWidth)(WidgetT *w, const char *fieldName, int32_t width); int32_t (*getSelectedRow)(const WidgetT *w); } DbGridApiT; static inline const DbGridApiT *dvxDbGridApi(void) { return (const DbGridApiT *)wgtGetApi("dbgrid"); } #define wgtDbGrid(parent) dvxDbGridApi()->create(parent) #define wgtDbGridSetDataWidget(w, dw) dvxDbGridApi()->setDataWidget(w, dw) #define wgtDbGridRefresh(w) dvxDbGridApi()->refresh(w) #define wgtDbGridSetColumnVisible(w, field, vis) dvxDbGridApi()->setColumnVisible(w, field, vis) #define wgtDbGridSetColumnHeader(w, field, hdr) dvxDbGridApi()->setColumnHeader(w, field, hdr) #define wgtDbGridSetColumnWidth(w, field, width) dvxDbGridApi()->setColumnWidth(w, field, width) #define wgtDbGridGetSelectedRow(w) dvxDbGridApi()->getSelectedRow(w) #endif // WIDGET_DBGRID_H