various table widget updates
[wmaker-crm.git] / WINGs / Extras / wtableview.h
blob8d5daa03c5def3dde7099c5ac1e2df374da53fd0
4 #ifndef _WTABLEVIEW_H_
5 #define _WTABLEVIEW_H_
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
11 typedef struct W_TableColumn WMTableColumn;
12 typedef struct W_TableView WMTableView;
15 extern const char *WMTableViewSelectionDidChangeNotification;
18 typedef struct WMTableColumnDelegate {
19 void *data;
20 void (*drawCell)(struct WMTableColumnDelegate *self, WMTableColumn *column,
21 int row);
22 void (*drawSelectedCell)(struct WMTableColumnDelegate *self,
23 WMTableColumn *column, int row);
24 void (*beginCellEdit)(struct WMTableColumnDelegate *self, WMTableColumn *column,
25 int row);
26 void (*endCellEdit)(struct WMTableColumnDelegate *self, WMTableColumn *column,
27 int row);
28 } WMTableColumnDelegate;
31 typedef struct W_TableViewDelegate {
32 void *data;
33 int (*numberOfRows)(struct W_TableViewDelegate *self,
34 WMTableView *table);
35 void *(*valueForCell)(struct W_TableViewDelegate *self,
36 WMTableColumn *column, int row);
37 void (*setValueForCell)(struct W_TableViewDelegate *self,
38 WMTableColumn *column, int row, void *value);
39 } WMTableViewDelegate;
45 WMTableColumn *WMCreateTableColumn(char *title);
47 void WMSetTableColumnWidth(WMTableColumn *column, unsigned width);
49 void WMSetTableColumnDelegate(WMTableColumn *column,
50 WMTableColumnDelegate *delegate);
53 WMTableView *WMGetTableColumnTableView(WMTableColumn *column);
55 void WMSetTableColumnId(WMTableColumn *column, void *id);
57 void *WMGetTableColumnId(WMTableColumn *column);
60 WMTableView *WMCreateTableView(WMWidget *parent);
63 void WMSetTableViewDataSource(WMTableView *table, void *source);
65 void *WMGetTableViewDataSource(WMTableView *table);
67 void WMSetTableViewHeaderHeight(WMTableView *table, unsigned height);
69 void WMAddTableViewColumn(WMTableView *table, WMTableColumn *column);
71 void WMSetTableViewDelegate(WMTableView *table, WMTableViewDelegate *delegate);
73 void WMSetTableViewAction(WMTableView *table, WMAction *action,
74 void *clientData);
76 void *WMGetTableViewClickedColumn(WMTableView *table);
78 int WMGetTableViewClickedRow(WMTableView *table);
80 WMView *WMGetTableViewDocumentView(WMTableView *table);
82 void WMEditTableViewRow(WMTableView *table, int row);
84 void WMSelectTableViewRow(WMTableView *table, int row);
86 void *WMTableViewDataForCell(WMTableView *table, WMTableColumn *column,
87 int row);
89 void WMSetTableViewDataForCell(WMTableView *table, WMTableColumn *column,
90 int row, void *data);
92 WMRect WMTableViewRectForCell(WMTableView *table, WMTableColumn *column,
93 int row);
95 void WMSetTableViewBackgroundColor(WMTableView *table, WMColor *color);
97 void WMSetTableViewGridColor(WMTableView *table, WMColor *color);
99 void WMSetTableViewRowHeight(WMTableView *table, int height);
101 void WMReloadTableView(WMTableView *table);
103 void WMNoteTableViewNumberOfRowsChanged(WMTableView *table);
105 void WMScrollTableViewRowToVisible(WMTableView *table, int row);
106 #ifdef __cplusplus
108 #endif
110 #endif