1 2 3 4 #ifndef _WTABLEVIEW_H_ 5 #define _WTABLEVIEW_H_ 6 7 #ifdef __cplusplus 8 extern "C" { 9 #endif 10 11 typedef struct W_TableColumn WMTableColumn; 12 typedef struct W_TableView WMTableView; 13 14 15 extern const char *WMTableViewSelectionDidChangeNotification; 16 17 18 typedef struct WMTableColumnDelegate { 19 void *data; 20 void (*drawCell)(struct WMTableColumnDelegate *self, 21 WMTableColumn *column, int row, Drawable d); 22 void (*drawSelectedCell)(struct WMTableColumnDelegate *self, 23 WMTableColumn *column, int row, Drawable d); 24 25 void (*beginCellEdit)(struct WMTableColumnDelegate *self, WMTableColumn *column, 26 int row); 27 void (*endCellEdit)(struct WMTableColumnDelegate *self, WMTableColumn *column, 28 int row); 29 } WMTableColumnDelegate; 30 31 32 typedef struct W_TableViewDelegate { 33 void *data; 34 int (*numberOfRows)(struct W_TableViewDelegate *self, 35 WMTableView *table); 36 void *(*valueForCell)(struct W_TableViewDelegate *self, 37 WMTableColumn *column, int row); 38 void (*setValueForCell)(struct W_TableViewDelegate *self, 39 WMTableColumn *column, int row, void *value); 40 } WMTableViewDelegate; 41 42 43 44 45 46 WMTableColumn *WMCreateTableColumn(char *title); 47 48 void WMSetTableColumnWidth(WMTableColumn *column, unsigned width); 49 50 void WMSetTableColumnConstraints(WMTableColumn *column, 51 unsigned minWidth, unsigned maxWidth); 52 53 void WMSetTableColumnDelegate(WMTableColumn *column, 54 WMTableColumnDelegate *delegate); 55 56 57 WMTableView *WMGetTableColumnTableView(WMTableColumn *column); 58 59 void WMSetTableColumnId(WMTableColumn *column, void *id); 60 61 void *WMGetTableColumnId(WMTableColumn *column); 62 63 64 WMTableView *WMCreateTableView(WMWidget *parent); 65 66 67 void WMSetTableViewDataSource(WMTableView *table, void *source); 68 69 void *WMGetTableViewDataSource(WMTableView *table); 70 71 void WMSetTableViewHeaderHeight(WMTableView *table, unsigned height); 72 73 void WMAddTableViewColumn(WMTableView *table, WMTableColumn *column); 74 75 void WMSetTableViewDelegate(WMTableView *table, WMTableViewDelegate *delegate); 76 77 void WMSetTableViewAction(WMTableView *table, WMAction *action, 78 void *clientData); 79 80 void *WMGetTableViewClickedColumn(WMTableView *table); 81 82 int WMGetTableViewClickedRow(WMTableView *table); 83 84 WMArray *WMGetTableViewSelectedRows(WMTableView *table); 85 86 WMView *WMGetTableViewDocumentView(WMTableView *table); 87 88 void WMEditTableViewRow(WMTableView *table, int row); 89 90 void WMSelectTableViewRow(WMTableView *table, int row); 91 92 void *WMTableViewDataForCell(WMTableView *table, WMTableColumn *column, 93 int row); 94 95 void WMSetTableViewDataForCell(WMTableView *table, WMTableColumn *column, 96 int row, void *data); 97 98 WMRect WMTableViewRectForCell(WMTableView *table, WMTableColumn *column, 99 int row); 100 101 void WMSetTableViewBackgroundColor(WMTableView *table, WMColor *color); 102 103 void WMSetTableViewGridColor(WMTableView *table, WMColor *color); 104 105 void WMSetTableViewRowHeight(WMTableView *table, int height); 106 107 void WMReloadTableView(WMTableView *table); 108 109 void WMNoteTableViewNumberOfRowsChanged(WMTableView *table); 110 111 void WMScrollTableViewRowToVisible(WMTableView *table, int row); 112 113 void WMSetTableViewHasHorizontalScroller(WMTableView *tPtr, Bool flag); 114 115 116 #ifdef __cplusplus 117 } 118 #endif 119 120 #endif 121 122