59 lines
3.5 KiB
C
59 lines
3.5 KiB
C
// listView.h -- ListView widget API
|
|
//
|
|
// Include this header in app/shell code that uses the ListView widget.
|
|
// Column types (ListViewColT, ListViewAlignE, ListViewSortE) are
|
|
// defined in dvxWgt.h so widget DXEs can reference them.
|
|
#ifndef LISTVIEW_H
|
|
#define LISTVIEW_H
|
|
|
|
#include "../../core/dvxWgt.h"
|
|
|
|
typedef struct {
|
|
WidgetT *(*create)(WidgetT *parent);
|
|
void (*setColumns)(WidgetT *w, const ListViewColT *cols, int32_t count);
|
|
void (*setData)(WidgetT *w, const char **cellData, int32_t rowCount);
|
|
int32_t (*getSelected)(const WidgetT *w);
|
|
void (*setSelected)(WidgetT *w, int32_t idx);
|
|
void (*setSort)(WidgetT *w, int32_t col, ListViewSortE dir);
|
|
void (*setHeaderClickCallback)(WidgetT *w, void (*cb)(WidgetT *w, int32_t col, ListViewSortE dir));
|
|
void (*setMultiSelect)(WidgetT *w, bool multi);
|
|
bool (*isItemSelected)(const WidgetT *w, int32_t idx);
|
|
void (*setItemSelected)(WidgetT *w, int32_t idx, bool selected);
|
|
void (*selectAll)(WidgetT *w);
|
|
void (*clearSelection)(WidgetT *w);
|
|
void (*setReorderable)(WidgetT *w, bool reorderable);
|
|
void (*addItem)(WidgetT *w, const char *text);
|
|
void (*removeRow)(WidgetT *w, int32_t row);
|
|
void (*clear)(WidgetT *w);
|
|
const char *(*getCell)(const WidgetT *w, int32_t row, int32_t col);
|
|
void (*setCell)(WidgetT *w, int32_t row, int32_t col, const char *text);
|
|
int32_t (*getRowCount)(const WidgetT *w);
|
|
} ListViewApiT;
|
|
|
|
static inline const ListViewApiT *dvxListViewApi(void) {
|
|
static const ListViewApiT *sApi;
|
|
if (!sApi) { sApi = (const ListViewApiT *)wgtGetApi("listview"); }
|
|
return sApi;
|
|
}
|
|
|
|
#define wgtListView(parent) dvxListViewApi()->create(parent)
|
|
#define wgtListViewSetColumns(w, cols, count) dvxListViewApi()->setColumns(w, cols, count)
|
|
#define wgtListViewSetData(w, cellData, rowCount) dvxListViewApi()->setData(w, cellData, rowCount)
|
|
#define wgtListViewGetSelected(w) dvxListViewApi()->getSelected(w)
|
|
#define wgtListViewSetSelected(w, idx) dvxListViewApi()->setSelected(w, idx)
|
|
#define wgtListViewSetSort(w, col, dir) dvxListViewApi()->setSort(w, col, dir)
|
|
#define wgtListViewSetHeaderClickCallback(w, cb) dvxListViewApi()->setHeaderClickCallback(w, cb)
|
|
#define wgtListViewSetMultiSelect(w, multi) dvxListViewApi()->setMultiSelect(w, multi)
|
|
#define wgtListViewIsItemSelected(w, idx) dvxListViewApi()->isItemSelected(w, idx)
|
|
#define wgtListViewSetItemSelected(w, idx, selected) dvxListViewApi()->setItemSelected(w, idx, selected)
|
|
#define wgtListViewSelectAll(w) dvxListViewApi()->selectAll(w)
|
|
#define wgtListViewClearSelection(w) dvxListViewApi()->clearSelection(w)
|
|
#define wgtListViewSetReorderable(w, reorderable) dvxListViewApi()->setReorderable(w, reorderable)
|
|
#define wgtListViewAddItem(w, text) dvxListViewApi()->addItem(w, text)
|
|
#define wgtListViewRemoveRow(w, row) dvxListViewApi()->removeRow(w, row)
|
|
#define wgtListViewClear(w) dvxListViewApi()->clear(w)
|
|
#define wgtListViewGetCell(w, row, col) dvxListViewApi()->getCell(w, row, col)
|
|
#define wgtListViewSetCell(w, row, col, text) dvxListViewApi()->setCell(w, row, col, text)
|
|
#define wgtListViewGetRowCount(w) dvxListViewApi()->getRowCount(w)
|
|
|
|
#endif // LISTVIEW_H
|