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