DVX_GUI/widgets/widgetDataCtrl.h

52 lines
2.5 KiB
C

// widgetDataCtrl.h -- VB3-style Data control for database binding
#ifndef WIDGET_DATACTRL_H
#define WIDGET_DATACTRL_H
#include "dvxWidget.h"
typedef struct {
WidgetT *(*create)(WidgetT *parent);
void (*refresh)(WidgetT *w);
void (*moveFirst)(WidgetT *w);
void (*movePrev)(WidgetT *w);
void (*moveNext)(WidgetT *w);
void (*moveLast)(WidgetT *w);
const char *(*getField)(WidgetT *w, const char *colName);
void (*setField)(WidgetT *w, const char *colName, const char *value);
void (*updateRow)(WidgetT *w);
void (*update)(WidgetT *w);
void (*addNew)(WidgetT *w);
void (*delete)(WidgetT *w);
void (*setMasterValue)(WidgetT *w, const char *val);
int32_t (*getRowCount)(WidgetT *w);
int32_t (*getColCount)(WidgetT *w);
const char *(*getColName)(WidgetT *w, int32_t col);
const char *(*getCellText)(WidgetT *w, int32_t row, int32_t col);
void (*setCurrentRow)(WidgetT *w, int32_t row);
} DataCtrlApiT;
static inline const DataCtrlApiT *dvxDataCtrlApi(void) {
return (const DataCtrlApiT *)wgtGetApi("data");
}
#define wgtDataCtrl(parent) dvxDataCtrlApi()->create(parent)
#define wgtDataCtrlRefresh(w) dvxDataCtrlApi()->refresh(w)
#define wgtDataCtrlMoveFirst(w) dvxDataCtrlApi()->moveFirst(w)
#define wgtDataCtrlMovePrev(w) dvxDataCtrlApi()->movePrev(w)
#define wgtDataCtrlMoveNext(w) dvxDataCtrlApi()->moveNext(w)
#define wgtDataCtrlMoveLast(w) dvxDataCtrlApi()->moveLast(w)
#define wgtDataCtrlGetField(w, col) dvxDataCtrlApi()->getField(w, col)
#define wgtDataCtrlSetField(w, col, v) dvxDataCtrlApi()->setField(w, col, v)
#define wgtDataCtrlUpdateRow(w) dvxDataCtrlApi()->updateRow(w)
#define wgtDataCtrlUpdate(w) dvxDataCtrlApi()->update(w)
#define wgtDataCtrlAddNew(w) dvxDataCtrlApi()->addNew(w)
#define wgtDataCtrlDelete(w) dvxDataCtrlApi()->delete(w)
#define wgtDataCtrlSetMasterValue(w, val) dvxDataCtrlApi()->setMasterValue(w, val)
#define wgtDataCtrlGetRowCount(w) dvxDataCtrlApi()->getRowCount(w)
#define wgtDataCtrlGetColCount(w) dvxDataCtrlApi()->getColCount(w)
#define wgtDataCtrlGetColName(w, col) dvxDataCtrlApi()->getColName(w, col)
#define wgtDataCtrlGetCellText(w, r, c) dvxDataCtrlApi()->getCellText(w, r, c)
#define wgtDataCtrlSetCurrentRow(w, row) dvxDataCtrlApi()->setCurrentRow(w, row)
#endif // WIDGET_DATACTRL_H