1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| Event sendMeasureItemEvent (TableItem item, int row, int column, int hDC) {
int hFont = item.cellFont != null ? item.cellFont [column] : -1;
if (hFont == -1) hFont = item.font;
GCData data = new GCData ();
data.device = display;
data.hFont = hFont;
int nSavedDC = OS.SaveDC (hDC);
GC gc = GC.win32_new (hDC, data);
RECT itemRect = item.getBounds (row, column, true, true, false, false, hDC);
Event event = new Event ();
event.item = item;
event.gc = gc;
event.index = column;
event.x = itemRect.left;
event.y = itemRect.top;
event.width = itemRect.right - itemRect.left;
event.height = itemRect.bottom - itemRect.top;
sendEvent (SWT.MeasureItem, event);
event.gc = null;
gc.dispose ();
OS.RestoreDC (hDC, nSavedDC);
if (!isDisposed () && !item.isDisposed ()) {
if (columnCount == 0) {
int width = OS.SendMessage (handle, OS.LVM_GETCOLUMNWIDTH, 0, 0);
if (event.x + event.width > width) {
OS.SendMessage (handle, OS.LVM_SETCOLUMNWIDTH, 0, event.x + event.width);
}
}
if (event.height > getItemHeight ()) setItemHeight (event.height);
}
return event;
} |
Partager