mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-23 22:52:34 +01:00
changed stringselector for enumeration selector
This commit is contained in:
@@ -5,6 +5,15 @@
|
|||||||
#include "wtableview.h"
|
#include "wtableview.h"
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
WMTableView *table;
|
||||||
|
WMFont *font;
|
||||||
|
GC gc;
|
||||||
|
GC selGc;
|
||||||
|
GC selTextGc;
|
||||||
|
} StringData;
|
||||||
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
WMTextField *widget;
|
WMTextField *widget;
|
||||||
WMTableView *table;
|
WMTableView *table;
|
||||||
@@ -15,6 +24,19 @@ typedef struct {
|
|||||||
} StringEditorData;
|
} StringEditorData;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
WMPopUpButton *widget;
|
||||||
|
WMTableView *table;
|
||||||
|
WMFont *font;
|
||||||
|
char **options;
|
||||||
|
int count;
|
||||||
|
GC gc;
|
||||||
|
GC selGc;
|
||||||
|
GC selTextGc;
|
||||||
|
} EnumSelectorData;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void stringDraw(WMScreen *scr, Drawable d, GC gc,
|
static void stringDraw(WMScreen *scr, Drawable d, GC gc,
|
||||||
GC sgc, GC stgc, WMFont *font, void *data,
|
GC sgc, GC stgc, WMFont *font, void *data,
|
||||||
WMRect rect, Bool selected)
|
WMRect rect, Bool selected)
|
||||||
@@ -52,8 +74,10 @@ static void stringDraw(WMScreen *scr, Drawable d, GC gc,
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void cellPainter(WMTableColumnDelegate *self, WMTableColumn *column,
|
|
||||||
int row)
|
|
||||||
|
static void SECellPainter(WMTableColumnDelegate *self,
|
||||||
|
WMTableColumn *column, int row)
|
||||||
{
|
{
|
||||||
StringEditorData *strdata = (StringEditorData*)self->data;
|
StringEditorData *strdata = (StringEditorData*)self->data;
|
||||||
WMTableView *table = WMGetTableColumnTableView(column);
|
WMTableView *table = WMGetTableColumnTableView(column);
|
||||||
@@ -67,7 +91,7 @@ static void cellPainter(WMTableColumnDelegate *self, WMTableColumn *column,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void selectedCellPainter(WMTableColumnDelegate *self,
|
static void selectedSECellPainter(WMTableColumnDelegate *self,
|
||||||
WMTableColumn *column, int row)
|
WMTableColumn *column, int row)
|
||||||
{
|
{
|
||||||
StringEditorData *strdata = (StringEditorData*)self->data;
|
StringEditorData *strdata = (StringEditorData*)self->data;
|
||||||
@@ -82,7 +106,7 @@ static void selectedCellPainter(WMTableColumnDelegate *self,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void beginCellEdit(WMTableColumnDelegate *self,
|
static void beginSECellEdit(WMTableColumnDelegate *self,
|
||||||
WMTableColumn *column, int row)
|
WMTableColumn *column, int row)
|
||||||
{
|
{
|
||||||
StringEditorData *strdata = (StringEditorData*)self->data;
|
StringEditorData *strdata = (StringEditorData*)self->data;
|
||||||
@@ -97,8 +121,19 @@ static void beginCellEdit(WMTableColumnDelegate *self,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void endSECellEdit(WMTableColumnDelegate *self,
|
||||||
|
WMTableColumn *column, int row)
|
||||||
|
{
|
||||||
|
StringEditorData *strdata = (StringEditorData*)self->data;
|
||||||
|
WMRect rect = WMTableViewRectForCell(strdata->table, column, row);
|
||||||
|
char *text;
|
||||||
|
|
||||||
WMTableColumnDelegate *WTCreateStringDelegate(WMTableView *parent)
|
text = WMGetTextFieldText(strdata->widget);
|
||||||
|
WMSetTableViewDataForCell(strdata->table, column, row, (void*)text);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
WMTableColumnDelegate *WTCreateStringEditorDelegate(WMTableView *parent)
|
||||||
{
|
{
|
||||||
WMTableColumnDelegate *delegate = wmalloc(sizeof(WMTableColumnDelegate));
|
WMTableColumnDelegate *delegate = wmalloc(sizeof(WMTableColumnDelegate));
|
||||||
WMScreen *scr = WMWidgetScreen(parent);
|
WMScreen *scr = WMWidgetScreen(parent);
|
||||||
@@ -115,13 +150,180 @@ WMTableColumnDelegate *WTCreateStringDelegate(WMTableView *parent)
|
|||||||
data->gc = WMColorGC(WMBlackColor(scr));
|
data->gc = WMColorGC(WMBlackColor(scr));
|
||||||
|
|
||||||
delegate->data = data;
|
delegate->data = data;
|
||||||
delegate->drawCell = cellPainter;
|
delegate->drawCell = SECellPainter;
|
||||||
delegate->drawSelectedCell = selectedCellPainter;
|
delegate->drawSelectedCell = selectedSECellPainter;
|
||||||
delegate->beginCellEdit = beginCellEdit;
|
delegate->beginCellEdit = beginSECellEdit;
|
||||||
delegate->endCellEdit = NULL;
|
delegate->endCellEdit = endSECellEdit;
|
||||||
|
|
||||||
return delegate;
|
return delegate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
|
||||||
|
static void ESCellPainter(WMTableColumnDelegate *self,
|
||||||
|
WMTableColumn *column, int row)
|
||||||
|
{
|
||||||
|
EnumSelectorData *strdata = (EnumSelectorData*)self->data;
|
||||||
|
WMTableView *table = WMGetTableColumnTableView(column);
|
||||||
|
int i = WMTableViewDataForCell(table, column, row);
|
||||||
|
|
||||||
|
stringDraw(WMWidgetScreen(table),
|
||||||
|
WMViewXID(WMGetTableViewDocumentView(table)),
|
||||||
|
strdata->gc, strdata->selGc, strdata->selTextGc, strdata->font,
|
||||||
|
strdata->options[i],
|
||||||
|
WMTableViewRectForCell(table, column, row),
|
||||||
|
False);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void selectedESCellPainter(WMTableColumnDelegate *self,
|
||||||
|
WMTableColumn *column, int row)
|
||||||
|
{
|
||||||
|
EnumSelectorData *strdata = (EnumSelectorData*)self->data;
|
||||||
|
WMTableView *table = WMGetTableColumnTableView(column);
|
||||||
|
int i = WMTableViewDataForCell(table, column, row);
|
||||||
|
|
||||||
|
stringDraw(WMWidgetScreen(table),
|
||||||
|
WMViewXID(WMGetTableViewDocumentView(table)),
|
||||||
|
strdata->gc, strdata->selGc, strdata->selTextGc, strdata->font,
|
||||||
|
strdata->options[i],
|
||||||
|
WMTableViewRectForCell(table, column, row),
|
||||||
|
True);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void beginESCellEdit(WMTableColumnDelegate *self,
|
||||||
|
WMTableColumn *column, int row)
|
||||||
|
{
|
||||||
|
EnumSelectorData *strdata = (EnumSelectorData*)self->data;
|
||||||
|
WMRect rect = WMTableViewRectForCell(strdata->table, column, row);
|
||||||
|
int data = (int)WMTableViewDataForCell(strdata->table, column, row);
|
||||||
|
|
||||||
|
wassertr(data < strdata->count);
|
||||||
|
|
||||||
|
WMSetPopUpButtonSelectedItem(strdata->widget, data);
|
||||||
|
|
||||||
|
WMMoveWidget(strdata->widget, rect.pos.x, rect.pos.y-1);
|
||||||
|
WMResizeWidget(strdata->widget, rect.size.width, rect.size.height+2);
|
||||||
|
|
||||||
|
WMMapWidget(strdata->widget);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void endESCellEdit(WMTableColumnDelegate *self,
|
||||||
|
WMTableColumn *column, int row)
|
||||||
|
{
|
||||||
|
EnumSelectorData *strdata = (EnumSelectorData*)self->data;
|
||||||
|
WMRect rect = WMTableViewRectForCell(strdata->table, column, row);
|
||||||
|
int option;
|
||||||
|
|
||||||
|
option = WMGetPopUpButtonSelectedItem(strdata->widget);
|
||||||
|
WMSetTableViewDataForCell(strdata->table, column, row, (void*)option);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
WMTableColumnDelegate *WTCreateEnumSelectorDelegate(WMTableView *parent)
|
||||||
|
{
|
||||||
|
WMTableColumnDelegate *delegate = wmalloc(sizeof(WMTableColumnDelegate));
|
||||||
|
WMScreen *scr = WMWidgetScreen(parent);
|
||||||
|
EnumSelectorData *data = wmalloc(sizeof(EnumSelectorData));
|
||||||
|
|
||||||
|
data->widget = WMCreatePopUpButton(parent);
|
||||||
|
W_ReparentView(WMWidgetView(data->widget),
|
||||||
|
WMGetTableViewDocumentView(parent),
|
||||||
|
0, 0);
|
||||||
|
data->table = parent;
|
||||||
|
data->font = WMSystemFontOfSize(scr, 12);
|
||||||
|
data->selGc = WMColorGC(WMDarkGrayColor(scr));
|
||||||
|
data->selTextGc = WMColorGC(WMWhiteColor(scr));
|
||||||
|
data->gc = WMColorGC(WMBlackColor(scr));
|
||||||
|
data->count = 0;
|
||||||
|
data->options = NULL;
|
||||||
|
|
||||||
|
delegate->data = data;
|
||||||
|
delegate->drawCell = ESCellPainter;
|
||||||
|
delegate->drawSelectedCell = selectedESCellPainter;
|
||||||
|
delegate->beginCellEdit = beginESCellEdit;
|
||||||
|
delegate->endCellEdit = endESCellEdit;
|
||||||
|
|
||||||
|
return delegate;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void WTSetEnumSelectorOptions(WMTableColumnDelegate *delegate,
|
||||||
|
char **options, int count)
|
||||||
|
{
|
||||||
|
EnumSelectorData *data = (EnumSelectorData*)delegate->data;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0;
|
||||||
|
i < WMGetPopUpButtonNumberOfItems(data->widget);
|
||||||
|
i++) {
|
||||||
|
WMRemovePopUpButtonItem(data->widget, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
data->options = options;
|
||||||
|
data->count = count;
|
||||||
|
|
||||||
|
for (i = 0; i < count; i++) {
|
||||||
|
WMAddPopUpButtonItem(data->widget, options[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
|
||||||
|
static void SCellPainter(WMTableColumnDelegate *self,
|
||||||
|
WMTableColumn *column, int row)
|
||||||
|
{
|
||||||
|
StringData *strdata = (StringData*)self->data;
|
||||||
|
WMTableView *table = WMGetTableColumnTableView(column);
|
||||||
|
|
||||||
|
stringDraw(WMWidgetScreen(table),
|
||||||
|
WMViewXID(WMGetTableViewDocumentView(table)),
|
||||||
|
strdata->gc, strdata->selGc, strdata->selTextGc, strdata->font,
|
||||||
|
WMTableViewDataForCell(table, column, row),
|
||||||
|
WMTableViewRectForCell(table, column, row),
|
||||||
|
False);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void selectedSCellPainter(WMTableColumnDelegate *self,
|
||||||
|
WMTableColumn *column, int row)
|
||||||
|
{
|
||||||
|
StringData *strdata = (StringData*)self->data;
|
||||||
|
WMTableView *table = WMGetTableColumnTableView(column);
|
||||||
|
|
||||||
|
stringDraw(WMWidgetScreen(table),
|
||||||
|
WMViewXID(WMGetTableViewDocumentView(table)),
|
||||||
|
strdata->gc, strdata->selGc, strdata->selTextGc, strdata->font,
|
||||||
|
WMTableViewDataForCell(table, column, row),
|
||||||
|
WMTableViewRectForCell(table, column, row),
|
||||||
|
True);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
WMTableColumnDelegate *WTCreateStringDelegate(WMTableView *parent)
|
||||||
|
{
|
||||||
|
WMTableColumnDelegate *delegate = wmalloc(sizeof(WMTableColumnDelegate));
|
||||||
|
WMScreen *scr = WMWidgetScreen(parent);
|
||||||
|
StringData *data = wmalloc(sizeof(StringData));
|
||||||
|
|
||||||
|
data->table = parent;
|
||||||
|
data->font = WMSystemFontOfSize(scr, 12);
|
||||||
|
data->selGc = WMColorGC(WMDarkGrayColor(scr));
|
||||||
|
data->selTextGc = WMColorGC(WMWhiteColor(scr));
|
||||||
|
data->gc = WMColorGC(WMBlackColor(scr));
|
||||||
|
|
||||||
|
delegate->data = data;
|
||||||
|
delegate->drawCell = SCellPainter;
|
||||||
|
delegate->drawSelectedCell = selectedSCellPainter;
|
||||||
|
delegate->beginCellEdit = NULL;
|
||||||
|
delegate->endCellEdit = NULL;
|
||||||
|
|
||||||
|
return delegate;
|
||||||
|
}
|
||||||
|
|||||||
@@ -6,7 +6,9 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
WMTableColumnDelegate *WTCreateStringDelegate(WMScreen *scr);
|
WMTableColumnDelegate *WTCreateStringDelegate(WMTableView *table);
|
||||||
|
WMTableColumnDelegate *WTCreateStringEditorDelegate(WMTableView *table);
|
||||||
|
WMTableColumnDelegate *WTCreateEnumSelectorDelegate(WMTableView *table);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,18 @@
|
|||||||
#include "tabledelegates.h"
|
#include "tabledelegates.h"
|
||||||
|
|
||||||
|
|
||||||
|
static char *col1[20] = {0};
|
||||||
|
static int col2[20];
|
||||||
|
|
||||||
|
|
||||||
|
static char *options[] = {
|
||||||
|
"Option1",
|
||||||
|
"Option2",
|
||||||
|
"Option3",
|
||||||
|
"Option4",
|
||||||
|
"Option5"
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
int numberOfRows(WMTableViewDelegate *self, WMTableView *table)
|
int numberOfRows(WMTableViewDelegate *self, WMTableView *table)
|
||||||
{
|
{
|
||||||
@@ -15,8 +27,27 @@ int numberOfRows(WMTableViewDelegate *self, WMTableView *table)
|
|||||||
void *valueForCell(WMTableViewDelegate *self, WMTableColumn *column, int row)
|
void *valueForCell(WMTableViewDelegate *self, WMTableColumn *column, int row)
|
||||||
{
|
{
|
||||||
WMTableView *table = (WMTableView*)WMGetTableColumnTableView(column);
|
WMTableView *table = (WMTableView*)WMGetTableColumnTableView(column);
|
||||||
|
int i;
|
||||||
|
if (col1[0] == 0) {
|
||||||
|
for (i = 0; i < 20; i++) {
|
||||||
|
col1[i] = "teste";
|
||||||
|
col2[i] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (WMGetTableColumnId(column) == 1)
|
||||||
|
return col1[row];
|
||||||
|
else
|
||||||
|
return col2[row];
|
||||||
|
}
|
||||||
|
|
||||||
return "TESTE";
|
|
||||||
|
void setValueForCell(WMTableViewDelegate *self, WMTableColumn *column, int row,
|
||||||
|
void *data)
|
||||||
|
{
|
||||||
|
if (WMGetTableColumnId(column) == 1)
|
||||||
|
col1[row] = data;
|
||||||
|
else
|
||||||
|
col2[row] = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -24,11 +55,21 @@ static WMTableViewDelegate delegate = {
|
|||||||
NULL,
|
NULL,
|
||||||
numberOfRows,
|
numberOfRows,
|
||||||
valueForCell,
|
valueForCell,
|
||||||
NULL
|
setValueForCell
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void selectedRowObserver(void *self, WMNotification *notif)
|
||||||
|
{
|
||||||
|
int row = (int)WMGetNotificationClientData(notif);
|
||||||
|
|
||||||
|
WMEditTableViewRow(self, row);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
main(int argc, char **argv)
|
main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
Display *dpy = XOpenDisplay("");
|
Display *dpy = XOpenDisplay("");
|
||||||
@@ -60,8 +101,11 @@ main(int argc, char **argv)
|
|||||||
WMSetTableViewGridColor(table, WMGrayColor(scr));
|
WMSetTableViewGridColor(table, WMGrayColor(scr));
|
||||||
WMSetTableViewHeaderHeight(table, 20);
|
WMSetTableViewHeaderHeight(table, 20);
|
||||||
WMSetTableViewDelegate(table, &delegate);
|
WMSetTableViewDelegate(table, &delegate);
|
||||||
|
WMAddNotificationObserver(selectedRowObserver, table,
|
||||||
|
WMTableViewRowWasSelectedNotification,
|
||||||
|
table);
|
||||||
|
|
||||||
colDeleg = WTCreateStringDelegate(table);
|
colDeleg = WTCreateStringEditorDelegate(table);
|
||||||
|
|
||||||
col = WMCreateTableColumn("Group");
|
col = WMCreateTableColumn("Group");
|
||||||
WMSetTableColumnWidth(col, 180);
|
WMSetTableColumnWidth(col, 180);
|
||||||
@@ -69,10 +113,11 @@ main(int argc, char **argv)
|
|||||||
WMSetTableColumnDelegate(col, colDeleg);
|
WMSetTableColumnDelegate(col, colDeleg);
|
||||||
WMSetTableColumnId(col, (void*)1);
|
WMSetTableColumnId(col, (void*)1);
|
||||||
|
|
||||||
colDeleg = WTCreateStringDelegate(table);
|
colDeleg = WTCreateEnumSelectorDelegate(table);
|
||||||
|
WTSetEnumSelectorOptions(colDeleg, options, 5);
|
||||||
|
|
||||||
col = WMCreateTableColumn("Package");
|
col = WMCreateTableColumn("Package");
|
||||||
WMSetTableColumnWidth(col, 240);
|
WMSetTableColumnWidth(col, 140);
|
||||||
WMAddTableViewColumn(table, col);
|
WMAddTableViewColumn(table, col);
|
||||||
WMSetTableColumnDelegate(col, colDeleg);
|
WMSetTableColumnDelegate(col, colDeleg);
|
||||||
WMSetTableColumnId(col, (void*)2);
|
WMSetTableColumnId(col, (void*)2);
|
||||||
|
|||||||
@@ -143,6 +143,8 @@ struct W_TableView {
|
|||||||
|
|
||||||
WMTableViewDelegate *delegate;
|
WMTableViewDelegate *delegate;
|
||||||
|
|
||||||
|
int editingRow;
|
||||||
|
|
||||||
unsigned headerHeight;
|
unsigned headerHeight;
|
||||||
|
|
||||||
unsigned rowHeight;
|
unsigned rowHeight;
|
||||||
@@ -297,6 +299,8 @@ WMTableView *WMCreateTableView(WMWidget *parent)
|
|||||||
GCForeground, &gcv);
|
GCForeground, &gcv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
table->editingRow = -1;
|
||||||
|
|
||||||
table->drawsGrid = 1;
|
table->drawsGrid = 1;
|
||||||
table->rowHeight = 16;
|
table->rowHeight = 16;
|
||||||
|
|
||||||
@@ -428,6 +432,13 @@ void *WMTableViewDataForCell(WMTableView *table, WMTableColumn *column,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void WMSetTableViewDataForCell(WMTableView *table, WMTableColumn *column,
|
||||||
|
int row, void *data)
|
||||||
|
{
|
||||||
|
(*table->delegate->setValueForCell)(table->delegate, column, row, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
WMRect WMTableViewRectForCell(WMTableView *table, WMTableColumn *column,
|
WMRect WMTableViewRectForCell(WMTableView *table, WMTableColumn *column,
|
||||||
int row)
|
int row)
|
||||||
{
|
{
|
||||||
@@ -686,15 +697,37 @@ static void repaintTable(WMTableView *table, int x, int y,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void startRowEdit(WMTableView *table, int row)
|
static void stopRowEdit(WMTableView *table, int row)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
WMTableColumn *column;
|
WMTableColumn *column;
|
||||||
|
|
||||||
|
table->editingRow = -1;
|
||||||
for (i = 0; i < WMGetArrayItemCount(table->columns); i++) {
|
for (i = 0; i < WMGetArrayItemCount(table->columns); i++) {
|
||||||
column = WMGetFromArray(table->columns, i);
|
column = WMGetFromArray(table->columns, i);
|
||||||
|
|
||||||
wassertr(column->delegate && column->delegate->drawCell);
|
wassertr(column->delegate && column->delegate->endCellEdit);
|
||||||
|
|
||||||
|
(*column->delegate->endCellEdit)(column->delegate, column, row);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void WMEditTableViewRow(WMTableView *table, int row)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
WMTableColumn *column;
|
||||||
|
|
||||||
|
if (table->editingRow >= 0) {
|
||||||
|
stopRowEdit(table, table->editingRow);
|
||||||
|
}
|
||||||
|
|
||||||
|
table->editingRow = row;
|
||||||
|
for (i = 0; i < WMGetArrayItemCount(table->columns); i++) {
|
||||||
|
column = WMGetFromArray(table->columns, i);
|
||||||
|
|
||||||
|
wassertr(column->delegate && column->delegate->beginCellEdit);
|
||||||
|
|
||||||
(*column->delegate->beginCellEdit)(column->delegate, column, row);
|
(*column->delegate->beginCellEdit)(column->delegate, column, row);
|
||||||
}
|
}
|
||||||
@@ -708,7 +741,6 @@ static void handleTableEvents(XEvent *event, void *data)
|
|||||||
switch (event->type) {
|
switch (event->type) {
|
||||||
case ButtonPress:
|
case ButtonPress:
|
||||||
setRowSelected(table, event->xbutton.y/table->rowHeight, True);
|
setRowSelected(table, event->xbutton.y/table->rowHeight, True);
|
||||||
startRowEdit(table, event->xbutton.y/table->rowHeight);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Expose:
|
case Expose:
|
||||||
|
|||||||
@@ -72,9 +72,14 @@ void WMSetTableViewDelegate(WMTableView *table, WMTableViewDelegate *delegate);
|
|||||||
|
|
||||||
WMView *WMGetTableViewDocumentView(WMTableView *table);
|
WMView *WMGetTableViewDocumentView(WMTableView *table);
|
||||||
|
|
||||||
|
void WMEditTableViewRow(WMTableView *table, int row);
|
||||||
|
|
||||||
void *WMTableViewDataForCell(WMTableView *table, WMTableColumn *column,
|
void *WMTableViewDataForCell(WMTableView *table, WMTableColumn *column,
|
||||||
int row);
|
int row);
|
||||||
|
|
||||||
|
void WMSetTableViewDataForCell(WMTableView *table, WMTableColumn *column,
|
||||||
|
int row, void *data);
|
||||||
|
|
||||||
WMRect WMTableViewRectForCell(WMTableView *table, WMTableColumn *column,
|
WMRect WMTableViewRectForCell(WMTableView *table, WMTableColumn *column,
|
||||||
int row);
|
int row);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user