#ifndef _WTABLEVIEW_H_ #define _WTABLEVIEW_H_ #ifdef __cplusplus extern "C" { #endif typedef struct W_TableColumn WMTableColumn; typedef struct W_TableView WMTableView; extern const char *WMTableViewSelectionDidChangeNotification; typedef struct WMTableColumnDelegate { void *data; void (*drawCell)(struct WMTableColumnDelegate *self, WMTableColumn *column, int row, Drawable d); void (*drawSelectedCell)(struct WMTableColumnDelegate *self, WMTableColumn *column, int row, Drawable d); void (*beginCellEdit)(struct WMTableColumnDelegate *self, WMTableColumn *column, int row); void (*endCellEdit)(struct WMTableColumnDelegate *self, WMTableColumn *column, int row); } WMTableColumnDelegate; typedef struct W_TableViewDelegate { void *data; int (*numberOfRows)(struct W_TableViewDelegate *self, WMTableView *table); void *(*valueForCell)(struct W_TableViewDelegate *self, WMTableColumn *column, int row); void (*setValueForCell)(struct W_TableViewDelegate *self, WMTableColumn *column, int row, void *value); } WMTableViewDelegate; WMTableColumn *WMCreateTableColumn(char *title); void WMSetTableColumnWidth(WMTableColumn *column, unsigned width); void WMSetTableColumnConstraints(WMTableColumn *column, unsigned minWidth, unsigned maxWidth); void WMSetTableColumnDelegate(WMTableColumn *column, WMTableColumnDelegate *delegate); WMTableView *WMGetTableColumnTableView(WMTableColumn *column); void WMSetTableColumnId(WMTableColumn *column, void *id); void *WMGetTableColumnId(WMTableColumn *column); WMTableView *WMCreateTableView(WMWidget *parent); void WMSetTableViewDataSource(WMTableView *table, void *source); void *WMGetTableViewDataSource(WMTableView *table); void WMSetTableViewHeaderHeight(WMTableView *table, unsigned height); void WMAddTableViewColumn(WMTableView *table, WMTableColumn *column); void WMSetTableViewDelegate(WMTableView *table, WMTableViewDelegate *delegate); void WMSetTableViewAction(WMTableView *table, WMAction *action, void *clientData); void *WMGetTableViewClickedColumn(WMTableView *table); int WMGetTableViewClickedRow(WMTableView *table); WMArray *WMGetTableViewSelectedRows(WMTableView *table); WMView *WMGetTableViewDocumentView(WMTableView *table); void WMEditTableViewRow(WMTableView *table, int row); void WMSelectTableViewRow(WMTableView *table, int row); void *WMTableViewDataForCell(WMTableView *table, WMTableColumn *column, int row); void WMSetTableViewDataForCell(WMTableView *table, WMTableColumn *column, int row, void *data); WMRect WMTableViewRectForCell(WMTableView *table, WMTableColumn *column, int row); void WMSetTableViewBackgroundColor(WMTableView *table, WMColor *color); void WMSetTableViewGridColor(WMTableView *table, WMColor *color); void WMSetTableViewRowHeight(WMTableView *table, int height); void WMReloadTableView(WMTableView *table); void WMNoteTableViewNumberOfRowsChanged(WMTableView *table); void WMScrollTableViewRowToVisible(WMTableView *table, int row); #ifdef __cplusplus } #endif #endif