added responder chain alike stuff for relaying kbd events from widget to widget
[wmaker-crm.git] / WINGs / Extras / wtableview.h
blob49d46d29e524f10416281d8a91b14a6f7b9e6da7
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 WMArray *WMGetTableViewSelectedRows(WMTableView *table);
82 WMView *WMGetTableViewDocumentView(WMTableView *table);
84 void WMEditTableViewRow(WMTableView *table, int row);
86 void WMSelectTableViewRow(WMTableView *table, int row);
88 void *WMTableViewDataForCell(WMTableView *table, WMTableColumn *column,
89 int row);
91 void WMSetTableViewDataForCell(WMTableView *table, WMTableColumn *column,
92 int row, void *data);
94 WMRect WMTableViewRectForCell(WMTableView *table, WMTableColumn *column,
95 int row);
97 void WMSetTableViewBackgroundColor(WMTableView *table, WMColor *color);
99 void WMSetTableViewGridColor(WMTableView *table, WMColor *color);
101 void WMSetTableViewRowHeight(WMTableView *table, int height);
103 void WMReloadTableView(WMTableView *table);
105 void WMNoteTableViewNumberOfRowsChanged(WMTableView *table);
107 void WMScrollTableViewRowToVisible(WMTableView *table, int row);
108 #ifdef __cplusplus
110 #endif
112 #endif