Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Northover2006-12-12 00:19:03 +0000
committerSteve Northover2006-12-12 00:19:03 +0000
commitcd194c07176f18aa948fb81654a527ab7760f6bc (patch)
treee752e78c57a072ed7033f64c5ca3be8090244ed0 /bundles/org.eclipse.swt
parent4a34d65090fb7d63aa75009e413240829ed1f8d1 (diff)
downloadeclipse.platform.swt-cd194c07176f18aa948fb81654a527ab7760f6bc.tar.gz
eclipse.platform.swt-cd194c07176f18aa948fb81654a527ab7760f6bc.tar.xz
eclipse.platform.swt-cd194c07176f18aa948fb81654a527ab7760f6bc.zip
create less garbage - don't keep creating custom draw structs
Diffstat (limited to 'bundles/org.eclipse.swt')
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Table.java30
-rwxr-xr-xbundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tree.java24
2 files changed, 18 insertions, 36 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Table.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Table.java
index ba45605560..cfd44d0569 100755
--- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Table.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Table.java
@@ -341,11 +341,11 @@ static int checkStyle (int style) {
return checkBits (style, SWT.SINGLE, SWT.MULTI, 0, 0, 0, 0);
}
-LRESULT CDDS_ITEMPREPAINT (int wParam, int lParam) {
+LRESULT CDDS_ITEMPREPAINT (NMLVCUSTOMDRAW nmcd, int wParam, int lParam) {
return new LRESULT (OS.CDRF_NOTIFYSUBITEMDRAW | OS.CDRF_NOTIFYPOSTPAINT);
}
-LRESULT CDDS_POSTPAINT (int wParam, int lParam) {
+LRESULT CDDS_POSTPAINT (NMLVCUSTOMDRAW nmcd, int wParam, int lParam) {
if (ignoreCustomDraw) return null;
/*
* Bug in Windows. When the table has the extended style
@@ -382,7 +382,7 @@ LRESULT CDDS_POSTPAINT (int wParam, int lParam) {
return null;
}
-LRESULT CDDS_PREPAINT (int wParam, int lParam) {
+LRESULT CDDS_PREPAINT (NMLVCUSTOMDRAW nmcd, int wParam, int lParam) {
if (ignoreCustomDraw) {
return new LRESULT (OS.CDRF_NOTIFYITEMDRAW | OS.CDRF_NOTIFYPOSTPAINT);
}
@@ -429,8 +429,6 @@ LRESULT CDDS_PREPAINT (int wParam, int lParam) {
if (EXPLORER_THEME) {
if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) {
if (explorerTheme && columnCount == 0) {
- NMLVCUSTOMDRAW nmcd = new NMLVCUSTOMDRAW ();
- OS.MoveMemory (nmcd, lParam, NMLVCUSTOMDRAW.sizeof);
int hDC = nmcd.hdc;
RECT rect = new RECT ();
OS.SetRect (rect, nmcd.left, nmcd.top, nmcd.right, nmcd.bottom);
@@ -446,16 +444,12 @@ LRESULT CDDS_PREPAINT (int wParam, int lParam) {
if (draw) {
Control control = findBackgroundControl ();
if (control != null && control.backgroundImage != null) {
- NMLVCUSTOMDRAW nmcd = new NMLVCUSTOMDRAW ();
- OS.MoveMemory (nmcd, lParam, NMLVCUSTOMDRAW.sizeof);
RECT rect = new RECT ();
OS.SetRect (rect, nmcd.left, nmcd.top, nmcd.right, nmcd.bottom);
fillImageBackground (nmcd.hdc, control, rect);
} else {
if (OS.SendMessage (handle, OS.LVM_GETBKCOLOR, 0, 0) == OS.CLR_NONE) {
if (OS.IsWindowEnabled (handle)) {
- NMLVCUSTOMDRAW nmcd = new NMLVCUSTOMDRAW ();
- OS.MoveMemory (nmcd, lParam, NMLVCUSTOMDRAW.sizeof);
RECT rect = new RECT ();
OS.SetRect (rect, nmcd.left, nmcd.top, nmcd.right, nmcd.bottom);
if (control == null) control = this;
@@ -468,10 +462,8 @@ LRESULT CDDS_PREPAINT (int wParam, int lParam) {
return new LRESULT (OS.CDRF_NOTIFYITEMDRAW | OS.CDRF_NOTIFYPOSTPAINT);
}
-LRESULT CDDS_SUBITEMPOSTPAINT (int wParam, int lParam) {
+LRESULT CDDS_SUBITEMPOSTPAINT (NMLVCUSTOMDRAW nmcd, int wParam, int lParam) {
if (ignoreCustomDraw) return null;
- NMLVCUSTOMDRAW nmcd = new NMLVCUSTOMDRAW ();
- OS.MoveMemory (nmcd, lParam, NMLVCUSTOMDRAW.sizeof);
if (nmcd.left == nmcd.right) {
return new LRESULT (OS.CDRF_DODEFAULT);
}
@@ -487,9 +479,7 @@ LRESULT CDDS_SUBITEMPOSTPAINT (int wParam, int lParam) {
return null;
}
-LRESULT CDDS_SUBITEMPREPAINT (int wParam, int lParam) {
- NMLVCUSTOMDRAW nmcd = new NMLVCUSTOMDRAW ();
- OS.MoveMemory (nmcd, lParam, NMLVCUSTOMDRAW.sizeof);
+LRESULT CDDS_SUBITEMPREPAINT (NMLVCUSTOMDRAW nmcd, int wParam, int lParam) {
/*
* Feature in Windows. When a new table item is inserted
* using LVM_INSERTITEM in a table that is transparent
@@ -5692,11 +5682,11 @@ LRESULT wmNotifyChild (NMHDR hdr, int wParam, int lParam) {
NMLVCUSTOMDRAW nmcd = new NMLVCUSTOMDRAW ();
OS.MoveMemory (nmcd, lParam, NMLVCUSTOMDRAW.sizeof);
switch (nmcd.dwDrawStage) {
- case OS.CDDS_PREPAINT: return CDDS_PREPAINT (wParam, lParam);
- case OS.CDDS_ITEMPREPAINT: return CDDS_ITEMPREPAINT (wParam, lParam);
- case OS.CDDS_SUBITEMPREPAINT: return CDDS_SUBITEMPREPAINT (wParam, lParam);
- case OS.CDDS_SUBITEMPOSTPAINT: return CDDS_SUBITEMPOSTPAINT (wParam, lParam);
- case OS.CDDS_POSTPAINT: return CDDS_POSTPAINT (wParam, lParam);
+ case OS.CDDS_PREPAINT: return CDDS_PREPAINT (nmcd, wParam, lParam);
+ case OS.CDDS_ITEMPREPAINT: return CDDS_ITEMPREPAINT (nmcd, wParam, lParam);
+ case OS.CDDS_SUBITEMPREPAINT: return CDDS_SUBITEMPREPAINT (nmcd, wParam, lParam);
+ case OS.CDDS_SUBITEMPOSTPAINT: return CDDS_SUBITEMPOSTPAINT (nmcd, wParam, lParam);
+ case OS.CDDS_POSTPAINT: return CDDS_POSTPAINT (nmcd, wParam, lParam);
}
break;
}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tree.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tree.java
index 02b6dd2bbf..925ce1ba1c 100755
--- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tree.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tree.java
@@ -300,10 +300,8 @@ int borderHandle () {
return hwndParent != 0 ? hwndParent : handle;
}
-LRESULT CDDS_ITEMPOSTPAINT (int wParam, int lParam) {
+LRESULT CDDS_ITEMPOSTPAINT (NMTVCUSTOMDRAW nmcd, int wParam, int lParam) {
if (ignoreCustomDraw) return null;
- NMTVCUSTOMDRAW nmcd = new NMTVCUSTOMDRAW ();
- OS.MoveMemory (nmcd, lParam, NMTVCUSTOMDRAW.sizeof);
if (nmcd.left == nmcd.right) {
return new LRESULT (OS.CDRF_DODEFAULT);
}
@@ -848,9 +846,7 @@ LRESULT CDDS_ITEMPOSTPAINT (int wParam, int lParam) {
return new LRESULT (OS.CDRF_DODEFAULT);
}
-LRESULT CDDS_ITEMPREPAINT (int wParam, int lParam) {
- NMTVCUSTOMDRAW nmcd = new NMTVCUSTOMDRAW ();
- OS.MoveMemory (nmcd, lParam, NMTVCUSTOMDRAW.sizeof);
+LRESULT CDDS_ITEMPREPAINT (NMTVCUSTOMDRAW nmcd, int wParam, int lParam) {
/*
* Bug in Windows. If the lParam field of TVITEM
* is changed during custom draw using TVM_SETITEM,
@@ -1205,7 +1201,7 @@ LRESULT CDDS_ITEMPREPAINT (int wParam, int lParam) {
return result;
}
-LRESULT CDDS_POSTPAINT (int wParam, int lParam) {
+LRESULT CDDS_POSTPAINT (NMTVCUSTOMDRAW nmcd, int wParam, int lParam) {
if (ignoreCustomDraw) return null;
if (OS.IsWindowVisible (handle)) {
if (OS.COMCTL32_MAJOR >= 6 && OS.IsAppThemed ()) {
@@ -1213,8 +1209,6 @@ LRESULT CDDS_POSTPAINT (int wParam, int lParam) {
if (findImageControl () == null) {
int index = indexOf (sortColumn);
if (index != -1) {
- NMTVCUSTOMDRAW nmcd = new NMTVCUSTOMDRAW ();
- OS.MoveMemory (nmcd, lParam, NMTVCUSTOMDRAW.sizeof);
int top = nmcd.top;
int hItem = OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_LASTVISIBLE, 0);
if (hItem != 0) {
@@ -1236,8 +1230,6 @@ LRESULT CDDS_POSTPAINT (int wParam, int lParam) {
}
}
if (linesVisible) {
- NMTVCUSTOMDRAW nmcd = new NMTVCUSTOMDRAW ();
- OS.MoveMemory (nmcd, lParam, NMTVCUSTOMDRAW.sizeof);
int hDC = nmcd.hdc;
if (hwndHeader != 0) {
int x = 0;
@@ -1278,7 +1270,7 @@ LRESULT CDDS_POSTPAINT (int wParam, int lParam) {
return new LRESULT (OS.CDRF_DODEFAULT);
}
-LRESULT CDDS_PREPAINT (int wParam, int lParam) {
+LRESULT CDDS_PREPAINT (NMTVCUSTOMDRAW nmcd, int wParam, int lParam) {
return new LRESULT (OS.CDRF_NOTIFYITEMDRAW | OS.CDRF_NOTIFYPOSTPAINT);
}
@@ -6495,10 +6487,10 @@ LRESULT wmNotifyChild (NMHDR hdr, int wParam, int lParam) {
NMTVCUSTOMDRAW nmcd = new NMTVCUSTOMDRAW ();
OS.MoveMemory (nmcd, lParam, NMTVCUSTOMDRAW.sizeof);
switch (nmcd.dwDrawStage) {
- case OS.CDDS_PREPAINT: return CDDS_PREPAINT (wParam, lParam);
- case OS.CDDS_ITEMPREPAINT: return CDDS_ITEMPREPAINT (wParam, lParam);
- case OS.CDDS_ITEMPOSTPAINT: return CDDS_ITEMPOSTPAINT (wParam, lParam);
- case OS.CDDS_POSTPAINT: return CDDS_POSTPAINT (wParam, lParam);
+ case OS.CDDS_PREPAINT: return CDDS_PREPAINT (nmcd, wParam, lParam);
+ case OS.CDDS_ITEMPREPAINT: return CDDS_ITEMPREPAINT (nmcd, wParam, lParam);
+ case OS.CDDS_ITEMPOSTPAINT: return CDDS_ITEMPOSTPAINT (nmcd, wParam, lParam);
+ case OS.CDDS_POSTPAINT: return CDDS_POSTPAINT (nmcd, wParam, lParam);
}
break;
}

Back to the top