Mercurial > projects > dwt-win
diff dwt/widgets/Tree.d @ 237:e2affbeb686d
Making tango.sys.win32.Types and dwt.internal.win32.WINTYPES to match common declaration. Make ansi charactars of type ubyte.
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Thu, 19 Jun 2008 03:25:36 +0200 |
parents | 9c2ceaa48046 |
children | ecb80b2a89e1 |
line wrap: on
line diff
--- a/dwt/widgets/Tree.d Sun Jun 08 15:12:40 2008 +0200 +++ b/dwt/widgets/Tree.d Thu Jun 19 03:25:36 2008 +0200 @@ -276,7 +276,7 @@ TreeItem _getItem (HANDLE hItem) { TVITEM tvItem; tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_PARAM; - tvItem.hItem = hItem; + tvItem.hItem = cast(HTREEITEM)hItem; if (OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem) !is 0) { return _getItem (tvItem.hItem, tvItem.lParam); } @@ -1248,7 +1248,7 @@ OS.SetRect (&rect, nmcd.nmcd.rc.left, nmcd.nmcd.rc.top, nmcd.nmcd.rc.left + hdItem.cxy, nmcd.nmcd.rc.bottom); if (OS.COMCTL32_MAJOR < 6 || !OS.IsAppThemed ()) { RECT itemRect; - if (OS.TreeView_GetItemRect (handle, item.handle, &itemRect, true)) { + if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)item.handle, &itemRect, true)) { rect.left = Math.min (itemRect.left, rect.right); } } @@ -1385,7 +1385,7 @@ } if (hItem !is null) { RECT rect; - if (OS.TreeView_GetItemRect (handle, hItem, &rect, false)) { + if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hItem, &rect, false)) { top = rect.bottom; } } @@ -1440,7 +1440,7 @@ hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_LASTVISIBLE, 0); } if (hItem !is null) { - if (OS.TreeView_GetItemRect (handle, hItem, &rect, false)) { + if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hItem, &rect, false)) { height = rect.bottom - rect.top; } } @@ -1496,7 +1496,7 @@ if (hItem !is null) { TVITEM tvItem; tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_STATE; - tvItem.hItem = hItem; + tvItem.hItem = cast(HTREEITEM)hItem; OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); hSelect = hItem; ignoreDeselect = ignoreSelect = lockSelection = true; @@ -1743,7 +1743,7 @@ } void clear (HANDLE hItem, TVITEM* tvItem) { - tvItem.hItem = hItem; + tvItem.hItem = cast(HTREEITEM)hItem; TreeItem item = null; if (OS.SendMessage (handle, OS.TVM_GETITEM, 0, tvItem) !is 0) { item = tvItem.lParam !is -1 ? items [tvItem.lParam] : null; @@ -1835,13 +1835,13 @@ if ((style & DWT.VIRTUAL) is 0 && !painted) { TVITEM tvItem; tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_TEXT; - tvItem.hItem = hItem; + tvItem.hItem = cast(HTREEITEM)hItem; tvItem.pszText = OS.LPSTR_TEXTCALLBACK; ignoreCustomDraw = true; OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); ignoreCustomDraw = false; } - if (OS.TreeView_GetItemRect (handle, hItem, &rect, true)) { + if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hItem, &rect, true)) { width = Math.max (width, rect.right); height += rect.bottom - rect.top; } @@ -2113,8 +2113,8 @@ bool fixParent = hFirstItem is null; if (hItem is null) { TVINSERTSTRUCT tvInsert; - tvInsert.hParent = hParent; - tvInsert.hInsertAfter = hInsertAfter; + tvInsert.hParent = cast(HTREEITEM)hParent; + tvInsert.hInsertAfter = cast(HTREEITEM)hInsertAfter; tvInsert.item.lParam = id; tvInsert.item.pszText = OS.LPSTR_TEXTCALLBACK; tvInsert.item.iImage = tvInsert.item.iSelectedImage = cast(HBITMAP) OS.I_IMAGECALLBACK; @@ -2139,7 +2139,7 @@ } else { TVITEM tvItem; tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_PARAM; - tvItem.hItem = hNewItem = hItem; + tvItem.hItem = cast(HTREEITEM)( hNewItem = hItem ); tvItem.lParam = id; OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); } @@ -2165,7 +2165,7 @@ if (fixParent) { if (drawCount is 0 && OS.IsWindowVisible (handle)) { RECT rect; - if (OS.TreeView_GetItemRect (handle, hParent, &rect, false)) { + if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hParent, &rect, false)) { OS.InvalidateRect (handle, &rect, true); } } @@ -2180,7 +2180,7 @@ if ((style & DWT.VIRTUAL) !is 0) { if (currentItem !is null) { RECT rect; - if (OS.TreeView_GetItemRect (handle, hNewItem, &rect, false)) { + if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hNewItem, &rect, false)) { RECT damageRect; bool damaged = cast(bool) OS.GetUpdateRect (handle, &damageRect, true); if (damaged && damageRect.top < rect.bottom) { @@ -2348,7 +2348,7 @@ void deselect (HANDLE hItem, TVITEM* tvItem, HANDLE hIgnoreItem) { while (hItem !is null) { if (hItem !is hIgnoreItem) { - tvItem.hItem = hItem; + tvItem.hItem = cast(HTREEITEM)hItem; OS.SendMessage (handle, OS.TVM_SETITEM, 0, tvItem); } auto hFirstItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CHILD, hItem); @@ -2381,7 +2381,7 @@ TVITEM tvItem; tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_STATE; tvItem.stateMask = OS.TVIS_SELECTED; - tvItem.hItem = item.handle; + tvItem.hItem = cast(HTREEITEM)item.handle; OS.SendMessage (handle, OS.TVM_SETITEM, 0, cast(int)&tvItem); } @@ -2401,7 +2401,7 @@ if ((style & DWT.SINGLE) !is 0) { HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0); if (hItem !is null) { - tvItem.hItem = hItem; + tvItem.hItem = cast(HTREEITEM)hItem; OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); } } else { @@ -2414,7 +2414,7 @@ for (int i=0; i<items.length; i++) { TreeItem item = items [i]; if (item !is null) { - tvItem.hItem = item.handle; + tvItem.hItem = cast(HTREEITEM)item.handle; OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); } } @@ -2584,7 +2584,7 @@ if ((style & DWT.DOUBLE_BUFFERED) is 0) { if (drawCount is 0 && OS.IsWindowVisible (handle)) { RECT rect; - fixRedraw = !OS.TreeView_GetItemRect (handle, hItem, &rect, false); + fixRedraw = !OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hItem, &rect, false); } } if (fixRedraw) { @@ -2630,7 +2630,7 @@ */ if (OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CHILD, hParent) is 0) { RECT rect; - if (OS.TreeView_GetItemRect (handle, hParent, &rect, false)) { + if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hParent, &rect, false)) { OS.InvalidateRect (handle, &rect, true); } } @@ -3146,7 +3146,7 @@ if (id is -1) { TVITEM tvItem; tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_PARAM; - tvItem.hItem = cast(HANDLE) nmcd.nmcd.dwItemSpec; + tvItem.hItem = cast(HTREEITEM) nmcd.nmcd.dwItemSpec; OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); id = tvItem.lParam; } @@ -3288,7 +3288,7 @@ TreeItem [] result = new TreeItem [count]; TVITEM tvItem; tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_PARAM; - tvItem.hItem = hTreeItem; + tvItem.hItem = cast(HTREEITEM)hTreeItem; /* * Feature in Windows. In some cases an expand or collapse message * can occur from within TVM_DELETEITEM. When this happens, the item @@ -3300,7 +3300,7 @@ OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); TreeItem item = _getItem (tvItem.hItem, tvItem.lParam); if (item !is null) result [index++] = item; - tvItem.hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXT, tvItem.hItem); + tvItem.hItem = cast(HTREEITEM) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXT, tvItem.hItem); } if (index !is count) { TreeItem [] newResult = new TreeItem [index]; @@ -3373,7 +3373,7 @@ int getSelection (HANDLE hItem, TVITEM* tvItem, TreeItem [] selection, int index, int count, bool bigSelection, bool all) { while (hItem !is null) { if (OS.IsWinCE || bigSelection) { - tvItem.hItem = hItem; + tvItem.hItem = cast(HTREEITEM)hItem; OS.SendMessage (handle, OS.TVM_GETITEM, 0, tvItem); if ((tvItem.state & OS.TVIS_SELECTED) !is 0) { if (selection !is null && index < selection.length) { @@ -3385,7 +3385,7 @@ int state = OS.SendMessage (handle, OS.TVM_GETITEMSTATE, hItem, OS.TVIS_SELECTED); if ((state & OS.TVIS_SELECTED) !is 0) { if (tvItem !is null && selection !is null && index < selection.length) { - tvItem.hItem = hItem; + tvItem.hItem = cast(HTREEITEM)hItem; OS.SendMessage (handle, OS.TVM_GETITEM, 0, tvItem); selection [index] = _getItem (hItem, tvItem.lParam); } @@ -3429,7 +3429,7 @@ if (hItem is null) return new TreeItem [0]; TVITEM tvItem; tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_PARAM | OS.TVIF_STATE; - tvItem.hItem = hItem; + tvItem.hItem = cast(HTREEITEM)hItem; OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); if ((tvItem.state & OS.TVIS_SELECTED) is 0) return new TreeItem [0]; return [_getItem (tvItem.hItem, tvItem.lParam)]; @@ -3761,7 +3761,7 @@ if (OS.IsWindowEnabled (handle)) { TVITEM tvItem; tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_STATE; - tvItem.hItem = cast(HANDLE) nmcd.nmcd.dwItemSpec; + tvItem.hItem = cast(HTREEITEM)nmcd.nmcd.dwItemSpec; OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); if ((tvItem.state & (OS.TVIS_SELECTED | OS.TVIS_DROPHILITED)) !is 0) { selected = true; @@ -3825,7 +3825,7 @@ HANDLE hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0); if (hItem !is null) { RECT rect; - if (OS.TreeView_GetItemRect (handle, hItem, &rect, false)) { + if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hItem, &rect, false)) { OS.InvalidateRect (handle, &rect, true); } } @@ -3849,7 +3849,7 @@ state = OS.SendMessage (handle, OS.TVM_GETITEMSTATE, hItem, OS.TVIS_SELECTED); } if ((state & OS.TVIS_SELECTED) !is 0) { - if (OS.TreeView_GetItemRect (handle, hItem, &rect, false)) { + if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hItem, &rect, false)) { OS.InvalidateRect (handle, &rect, true); } } @@ -3869,7 +3869,7 @@ void releaseItem (HANDLE hItem, TVITEM* tvItem, bool release) { if (hItem is hAnchor) hAnchor = null; if (hItem is hInsert) hInsert = null; - tvItem.hItem = hItem; + tvItem.hItem = cast(HTREEITEM)hItem; if (OS.SendMessage (handle, OS.TVM_GETITEM, 0, tvItem) !is 0) { if (tvItem.lParam !is -1) { if (tvItem.lParam < lastID) lastID = tvItem.lParam; @@ -4110,7 +4110,7 @@ tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_PARAM; if (!redraw && (style & DWT.VIRTUAL) !is 0) { if (OS.IsWinCE) { - tvItem.hItem = hParent; + tvItem.hItem = cast(HTREEITEM)hParent; tvItem.mask = OS.TVIF_STATE; OS.SendMessage (handle, OS.TVM_GETITEM, 0, cast(int)&tvItem); expanded = (tvItem.state & OS.TVIS_EXPANDED) !is 0; @@ -4126,7 +4126,7 @@ } } while (hItem !is null) { - tvItem.hItem = hItem; + tvItem.hItem = cast(HTREEITEM)hItem; OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXT, hItem); TreeItem item = tvItem.lParam !is -1 ? items [tvItem.lParam] : null; @@ -4140,7 +4140,7 @@ if ((style & DWT.VIRTUAL) !is 0) { for (int i=itemCount; i<count; i++) { if (expanded) ignoreShrink = true; - createItem (null, hParent, cast(HANDLE) OS.TVI_LAST, null); + createItem (null, hParent, cast(HTREEITEM) OS.TVI_LAST, null); if (expanded) ignoreShrink = false; } } else { @@ -4150,7 +4150,7 @@ System.arraycopy (items, 0, newItems, 0, items.length); items = newItems; for (int i=itemCount; i<count; i++) { - new TreeItem (this, DWT.NONE, hParent, cast(HANDLE) OS.TVI_LAST, null); + new TreeItem (this, DWT.NONE, hParent, cast(HTREEITEM) OS.TVI_LAST, null); } } if (redraw) { @@ -4211,7 +4211,7 @@ void select (HANDLE hItem, TVITEM* tvItem) { while (hItem !is null) { - tvItem.hItem = hItem; + tvItem.hItem = cast(HTREEITEM)hItem; OS.SendMessage (handle, OS.TVM_SETITEM, 0, tvItem); auto hFirstItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CHILD, hItem); select (hFirstItem, tvItem); @@ -4303,7 +4303,7 @@ tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_STATE; tvItem.stateMask = OS.TVIS_SELECTED; tvItem.state = OS.TVIS_SELECTED; - tvItem.hItem = item.handle; + tvItem.hItem = cast(HTREEITEM)item.handle; OS.SendMessage (handle, OS.TVM_SETITEM, 0, cast(int)&tvItem); } @@ -4334,7 +4334,7 @@ for (int i=0; i<items.length; i++) { TreeItem item = items [i]; if (item !is null) { - tvItem.hItem = item.handle; + tvItem.hItem = cast(HTREEITEM)item.handle; OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); } } @@ -4755,7 +4755,7 @@ int count = OS.SendMessage (handle, OS.TVM_GETCOUNT, 0, 0); if (count is 0) { TVINSERTSTRUCT tvInsert; - tvInsert.hInsertAfter = cast(HANDLE) OS.TVI_FIRST; + tvInsert.hInsertAfter = cast(HTREEITEM) OS.TVI_FIRST; hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_INSERTITEM, 0, &tvInsert); } OS.DefWindowProc (handle, OS.WM_SETREDRAW, 1, 0); @@ -4843,7 +4843,7 @@ if (item !is null && item.handle is hItem) break; index++; } - tvItem.hItem = hItem; + tvItem.hItem = cast(HTREEITEM)hItem; OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); if ((tvItem.state & OS.TVIS_SELECTED) !is 0) { if (index is selection.length) { @@ -4968,7 +4968,7 @@ tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_STATE; tvItem.state = OS.TVIS_SELECTED; tvItem.stateMask = OS.TVIS_SELECTED; - tvItem.hItem = hNewItem; + tvItem.hItem = cast(HTREEITEM)hNewItem; OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); showItem (hNewItem); } @@ -4993,7 +4993,7 @@ if (items [index] is item) break; index++; } - tvItem.hItem = item.handle; + tvItem.hItem = cast(HTREEITEM)item.handle; OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); if ((tvItem.state & OS.TVIS_SELECTED) !is 0) { if (index is length) { @@ -5141,7 +5141,7 @@ } else { bool scroll = true; RECT itemRect; - if (OS.TreeView_GetItemRect (handle, hItem, &itemRect, true)) { + if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hItem, &itemRect, true)) { forceResize (); RECT rect; OS.GetClientRect (handle, &rect); @@ -5168,7 +5168,7 @@ } if (hwndParent !is null) { RECT itemRect; - if (OS.TreeView_GetItemRect (handle, hItem, &itemRect, true)) { + if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hItem, &itemRect, true)) { forceResize (); RECT rect; OS.GetClientRect (hwndParent, &rect); @@ -5336,7 +5336,7 @@ /*public*/ void sort () { checkWidget (); if ((style & DWT.VIRTUAL) !is 0) return; - sort ( cast(HANDLE) OS.TVI_ROOT, false); + sort ( cast(HTREEITEM) OS.TVI_ROOT, false); } void sort (HANDLE hParent, bool all) { @@ -5351,7 +5351,7 @@ //int lpfnCompare = compareCallback.getAddress (); sThis = this; TVSORTCB psort; - psort.hParent = hParent; + psort.hParent = cast(HTREEITEM)hParent; psort.lpfnCompare = &CompareFunc; psort.lParam = sortColumn is null ? 0 : indexOf (sortColumn); OS.SendMessage (handle, OS.TVM_SORTCHILDRENCB, all ? 1 : 0, &psort); @@ -5781,7 +5781,7 @@ OS.SendMessage (handle, OS.TVM_ENSUREVISIBLE, 0, hItem); TVITEM tvItem; tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_STATE | OS.TVIF_PARAM; - tvItem.hItem = hItem; + tvItem.hItem = cast(HTREEITEM)hItem; if ((style & DWT.CHECK) !is 0) { tvItem.stateMask = OS.TVIS_STATEIMAGEMASK; OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); @@ -5937,32 +5937,32 @@ tvItem.stateMask = OS.TVIS_SELECTED; auto hDeselectItem = hItem; RECT rect1; - if (!OS.TreeView_GetItemRect (handle, hAnchor, &rect1, false)) { + if (!OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hAnchor, &rect1, false)) { hAnchor = hItem; - OS.TreeView_GetItemRect (handle, hAnchor, &rect1, false); + OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hAnchor, &rect1, false); } RECT rect2; - OS.TreeView_GetItemRect (handle, hDeselectItem, &rect2, false); + OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hDeselectItem, &rect2, false); int flags = rect1.top < rect2.top ? OS.TVGN_PREVIOUSVISIBLE : OS.TVGN_NEXTVISIBLE; while (hDeselectItem !is hAnchor) { - tvItem.hItem = hDeselectItem; + tvItem.hItem = cast(HTREEITEM)hDeselectItem; OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); hDeselectItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, flags, hDeselectItem); } auto hSelectItem = hAnchor; - OS.TreeView_GetItemRect (handle, hNewItem, &rect1, false); - OS.TreeView_GetItemRect (handle, hSelectItem, &rect2, false); + OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hNewItem, &rect1, false); + OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hSelectItem, &rect2, false); tvItem.state = OS.TVIS_SELECTED; flags = rect1.top < rect2.top ? OS.TVGN_PREVIOUSVISIBLE : OS.TVGN_NEXTVISIBLE; while (hSelectItem !is hNewItem) { - tvItem.hItem = hSelectItem; + tvItem.hItem = cast(HTREEITEM)hSelectItem; OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); hSelectItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, flags, hSelectItem); } - tvItem.hItem = hNewItem; + tvItem.hItem = cast(HTREEITEM)hNewItem; OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_PARAM; - tvItem.hItem = hNewItem; + tvItem.hItem = cast(HTREEITEM)hNewItem; OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); Event event = new Event (); event.item = _getItem (hNewItem, tvItem.lParam); @@ -5976,7 +5976,7 @@ TVITEM tvItem; tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_STATE; tvItem.stateMask = OS.TVIS_SELECTED; - tvItem.hItem = hItem; + tvItem.hItem = cast(HTREEITEM)hItem; OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); bool oldSelected = (tvItem.state & OS.TVIS_SELECTED) !is 0; HANDLE hNewItem; @@ -6004,7 +6004,7 @@ do { auto hVisible = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXTVISIBLE, hNewItem); if (hVisible is null) break; - if (!OS.TreeView_GetItemRect (handle, hVisible, &rect, false)) break; + if (!OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hVisible, &rect, false)) break; if (rect.bottom > clientRect.bottom) break; if ((hNewItem = hVisible) is hItem) { OS.SendMessage (handle, OS.WM_VSCROLL, OS.SB_PAGEDOWN, 0); @@ -6018,7 +6018,7 @@ } if (hNewItem !is null) { OS.SendMessage (handle, OS.TVM_ENSUREVISIBLE, 0, hNewItem); - tvItem.hItem = hNewItem; + tvItem.hItem = cast(HTREEITEM)hNewItem; OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); bool newSelected = (tvItem.state & OS.TVIS_SELECTED) !is 0; bool redraw = !newSelected && drawCount is 0 && OS.IsWindowVisible (handle); @@ -6033,12 +6033,12 @@ hSelect = null; if (oldSelected) { tvItem.state = OS.TVIS_SELECTED; - tvItem.hItem = hItem; + tvItem.hItem = cast(HTREEITEM)hItem; OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); } if (!newSelected) { tvItem.state = 0; - tvItem.hItem = hNewItem; + tvItem.hItem = cast(HTREEITEM)hNewItem; OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); } if (redraw) { @@ -6046,8 +6046,8 @@ bool fItemRect = (style & DWT.FULL_SELECTION) is 0; if (hooks (DWT.EraseItem) || hooks (DWT.PaintItem)) fItemRect = false; if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) fItemRect = false; - OS.TreeView_GetItemRect (handle, hItem, &rect1, fItemRect); - OS.TreeView_GetItemRect (handle, hNewItem, &rect2, fItemRect); + OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hItem, &rect1, fItemRect); + OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hNewItem, &rect2, fItemRect); OS.DefWindowProc (handle, OS.WM_SETREDRAW, 1, 0); OS.InvalidateRect (handle, &rect1, true); OS.InvalidateRect (handle, &rect2, true); @@ -6203,7 +6203,7 @@ auto hNext = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_NEXTVISIBLE, lpht.hItem); while (hNext !is null) { if (hNext is hAnchor) hAnchor = null; - tvItem.hItem = hNext; + tvItem.hItem = cast(HTREEITEM)hNext; OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); if ((tvItem.state & OS.TVIS_SELECTED) !is 0) deselected = true; tvItem.state = 0; @@ -6245,7 +6245,7 @@ auto hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0); if (hItem !is null) { RECT rect; - if (OS.TreeView_GetItemRect (handle, hItem, &rect, false)) { + if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hItem, &rect, false)) { OS.InvalidateRect (handle, &rect, true); } } @@ -6359,7 +6359,7 @@ /* Get the selected state of the last selected item */ auto hOldItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, OS.TVGN_CARET, 0); if ((style & DWT.MULTI) !is 0) { - tvItem.hItem = hOldItem; + tvItem.hItem = cast(HTREEITEM)hOldItem; OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); /* Check for CONTROL or drag selection */ @@ -6442,7 +6442,7 @@ tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_STATE; tvItem.state = OS.TVIS_SELECTED; tvItem.stateMask = OS.TVIS_SELECTED; - tvItem.hItem = hNewItem; + tvItem.hItem = cast(HTREEITEM)hNewItem; OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); } } @@ -6475,8 +6475,8 @@ bool fItemRect = (style & DWT.FULL_SELECTION) is 0; if (hooks (DWT.EraseItem) || hooks (DWT.PaintItem)) fItemRect = false; if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (6, 0)) fItemRect = false; - OS.TreeView_GetItemRect (handle, hOldItem, &rect1, fItemRect); - OS.TreeView_GetItemRect (handle, hNewItem, &rect2, fItemRect); + OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hOldItem, &rect1, fItemRect); + OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hNewItem, &rect2, fItemRect); OS.DefWindowProc (handle, OS.WM_SETREDRAW, 1, 0); OS.InvalidateRect (handle, &rect1, true); OS.InvalidateRect (handle, &rect2, true); @@ -6496,29 +6496,29 @@ for (int i=0; i<items.length; i++) { TreeItem item = items [i]; if (item !is null && item.handle !is hNewItem) { - tvItem.hItem = item.handle; + tvItem.hItem = cast(HTREEITEM)item.handle; OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); } } } - tvItem.hItem = hNewItem; + tvItem.hItem = cast(HTREEITEM)hNewItem; tvItem.state = OS.TVIS_SELECTED; OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); OS.SetWindowLongPtr (handle, OS.GWLP_WNDPROC, oldProc); if ((wParam & OS.MK_SHIFT) !is 0) { RECT rect1; if (hAnchor is null) hAnchor = hNewItem; - if (OS.TreeView_GetItemRect (handle, hAnchor, &rect1, false)) { + if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hAnchor, &rect1, false)) { RECT rect2; - if (OS.TreeView_GetItemRect (handle, hNewItem, &rect2, false)) { + if (OS.TreeView_GetItemRect (handle, cast(HTREEITEM)hNewItem, &rect2, false)) { int flags = rect1.top < rect2.top ? OS.TVGN_NEXTVISIBLE : OS.TVGN_PREVIOUSVISIBLE; tvItem.state = OS.TVIS_SELECTED; - auto hItem = tvItem.hItem = hAnchor; + auto hItem = tvItem.hItem = cast(HTREEITEM)hAnchor; OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); while (hItem !is hNewItem) { tvItem.hItem = hItem; OS.SendMessage (handle, OS.TVM_SETITEM, 0, &tvItem); - hItem = cast(HANDLE) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, flags, hItem); + hItem = cast(HTREEITEM) OS.SendMessage (handle, OS.TVM_GETNEXTITEM, flags, hItem); } } } @@ -6530,7 +6530,7 @@ /* Issue notification */ if (!gestureCompleted) { - tvItem.hItem = hNewItem; + tvItem.hItem = cast(HTREEITEM)hNewItem; tvItem.mask = OS.TVIF_HANDLE | OS.TVIF_PARAM; OS.SendMessage (handle, OS.TVM_GETITEM, 0, &tvItem); Event event = new Event (); @@ -6683,6 +6683,7 @@ } override LRESULT WM_PAINT (int wParam, int lParam) { + if (shrink && !ignoreShrink) { /* Resize the item array to fit the last item */ int count = items.length - 1;