Commit 96b90570 authored by Huw Davies's avatar Huw Davies Committed by Alexandre Julliard

Merge GetItem[AW] into GetItemT.

parent 97903d26
...@@ -2004,7 +2004,7 @@ TREEVIEW_GetVisibleCount(TREEVIEW_INFO *infoPtr) ...@@ -2004,7 +2004,7 @@ TREEVIEW_GetVisibleCount(TREEVIEW_INFO *infoPtr)
static LRESULT static LRESULT
TREEVIEW_GetItemW(TREEVIEW_INFO *infoPtr, LPTVITEMEXW tvItem) TREEVIEW_GetItemT(TREEVIEW_INFO *infoPtr, LPTVITEMEXW tvItem, BOOL isW)
{ {
TREEVIEW_ITEM *wineItem; TREEVIEW_ITEM *wineItem;
...@@ -2015,7 +2015,11 @@ TREEVIEW_GetItemW(TREEVIEW_INFO *infoPtr, LPTVITEMEXW tvItem) ...@@ -2015,7 +2015,11 @@ TREEVIEW_GetItemW(TREEVIEW_INFO *infoPtr, LPTVITEMEXW tvItem)
TREEVIEW_UpdateDispInfo(infoPtr, wineItem, tvItem->mask); TREEVIEW_UpdateDispInfo(infoPtr, wineItem, tvItem->mask);
if (tvItem->mask & TVIF_CHILDREN) if (tvItem->mask & TVIF_CHILDREN)
{
if (TVIF_CHILDREN==I_CHILDRENCALLBACK)
FIXME("I_CHILDRENCALLBACK not supported\n");
tvItem->cChildren = wineItem->cChildren; tvItem->cChildren = wineItem->cChildren;
}
if (tvItem->mask & TVIF_HANDLE) if (tvItem->mask & TVIF_HANDLE)
tvItem->hItem = wineItem; tvItem->hItem = wineItem;
...@@ -2034,16 +2038,40 @@ TREEVIEW_GetItemW(TREEVIEW_INFO *infoPtr, LPTVITEMEXW tvItem) ...@@ -2034,16 +2038,40 @@ TREEVIEW_GetItemW(TREEVIEW_INFO *infoPtr, LPTVITEMEXW tvItem)
if (tvItem->mask & TVIF_SELECTEDIMAGE) if (tvItem->mask & TVIF_SELECTEDIMAGE)
tvItem->iSelectedImage = wineItem->iSelectedImage; tvItem->iSelectedImage = wineItem->iSelectedImage;
if (tvItem->mask & TVIF_STATE) { if (tvItem->mask & TVIF_STATE)
/* Careful here - Windows ignores the stateMask when you get the state /* Careful here - Windows ignores the stateMask when you get the state
That contradicts the documentation, but makes more common sense, masking That contradicts the documentation, but makes more common sense, masking
retrieval in this way seems overkill */ retrieval in this way seems overkill */
tvItem->state = wineItem->state; tvItem->state = wineItem->state;
}
if (tvItem->mask & TVIF_TEXT) if (tvItem->mask & TVIF_TEXT)
lstrcpynW(tvItem->pszText, wineItem->pszText, tvItem->cchTextMax); {
if (isW)
{
if (wineItem->pszText == LPSTR_TEXTCALLBACKW)
{
tvItem->pszText = LPSTR_TEXTCALLBACKW;
FIXME(" GetItem called with LPSTR_TEXTCALLBACK\n");
}
else
{
lstrcpynW(tvItem->pszText, wineItem->pszText, tvItem->cchTextMax);
}
}
else
{
if (wineItem->pszText == LPSTR_TEXTCALLBACKW)
{
tvItem->pszText = (LPWSTR)LPSTR_TEXTCALLBACKA;
FIXME(" GetItem called with LPSTR_TEXTCALLBACK\n");
}
else
{
WideCharToMultiByte(CP_ACP, 0, wineItem->pszText, -1,
(LPSTR)tvItem->pszText, tvItem->cchTextMax, NULL, NULL);
}
}
}
TRACE("item <%p>, txt %p, img %p, mask %x\n", TRACE("item <%p>, txt %p, img %p, mask %x\n",
wineItem, tvItem->pszText, &tvItem->iImage, tvItem->mask); wineItem, tvItem->pszText, &tvItem->iImage, tvItem->mask);
...@@ -2109,60 +2137,6 @@ TREEVIEW_SetItemW(TREEVIEW_INFO *infoPtr, LPTVITEMEXW tvItem) ...@@ -2109,60 +2137,6 @@ TREEVIEW_SetItemW(TREEVIEW_INFO *infoPtr, LPTVITEMEXW tvItem)
} }
static LRESULT static LRESULT
TREEVIEW_GetItemA(TREEVIEW_INFO *infoPtr, LPTVITEMEXA tvItem)
{
TREEVIEW_ITEM *wineItem;
wineItem = tvItem->hItem;
if(!TREEVIEW_ValidItem (infoPtr, wineItem))
return FALSE;
TREEVIEW_UpdateDispInfo(infoPtr, wineItem, tvItem->mask);
if (tvItem->mask & TVIF_CHILDREN) {
if (TVIF_CHILDREN==I_CHILDRENCALLBACK)
FIXME("I_CHILDRENCALLBACK not supported\n");
tvItem->cChildren = wineItem->cChildren;
}
if (tvItem->mask & TVIF_HANDLE) {
tvItem->hItem = wineItem;
}
if (tvItem->mask & TVIF_IMAGE) {
tvItem->iImage = wineItem->iImage;
}
if (tvItem->mask & TVIF_INTEGRAL) {
tvItem->iIntegral = wineItem->iIntegral;
}
/* undocumented: windows ignores TVIF_PARAM and
* always sets lParam */
tvItem->lParam = wineItem->lParam;
if (tvItem->mask & TVIF_SELECTEDIMAGE) {
tvItem->iSelectedImage = wineItem->iSelectedImage;
}
if (tvItem->mask & TVIF_STATE) {
tvItem->state = wineItem->state & tvItem->stateMask;
}
if (tvItem->mask & TVIF_TEXT) {
if (wineItem->pszText == LPSTR_TEXTCALLBACKW) {
tvItem->pszText = LPSTR_TEXTCALLBACKA;
FIXME(" GetItem called with LPSTR_TEXTCALLBACK\n");
}
else if (wineItem->pszText) {
TRACE("orig str %s at %p\n",
debugstr_w(wineItem->pszText), wineItem->pszText);
WideCharToMultiByte(CP_ACP, 0, wineItem->pszText,
-1 , tvItem->pszText, tvItem->cchTextMax, NULL, NULL);
}
}
TRACE("item <%p>, txt %p, img %p, action %x\n",
tvItem, tvItem->pszText, &tvItem->iImage, tvItem->mask);
return TRUE;
}
static LRESULT
TREEVIEW_SetItemA(TREEVIEW_INFO *infoPtr, LPTVITEMEXA tvItem) TREEVIEW_SetItemA(TREEVIEW_INFO *infoPtr, LPTVITEMEXA tvItem)
{ {
TVITEMEXW tvItemW; TVITEMEXW tvItemW;
...@@ -4379,7 +4353,7 @@ static INT TREEVIEW_ProcessLetterKeys( ...@@ -4379,7 +4353,7 @@ static INT TREEVIEW_ProcessLetterKeys(
item.hItem = idx; item.hItem = idx;
item.pszText = buffer; item.pszText = buffer;
item.cchTextMax = sizeof(buffer); item.cchTextMax = sizeof(buffer);
TREEVIEW_GetItemW( infoPtr, &item ); TREEVIEW_GetItemT( infoPtr, &item, TRUE );
/* check for a match */ /* check for a match */
if (strncmpiW(item.pszText,infoPtr->szSearchParam,infoPtr->nSearchParamLength) == 0) { if (strncmpiW(item.pszText,infoPtr->szSearchParam,infoPtr->nSearchParamLength) == 0) {
...@@ -5262,10 +5236,10 @@ TREEVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) ...@@ -5262,10 +5236,10 @@ TREEVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
return 0; return 0;
case TVM_GETITEMA: case TVM_GETITEMA:
return TREEVIEW_GetItemA(infoPtr, (LPTVITEMEXA)lParam); return TREEVIEW_GetItemT(infoPtr, (LPTVITEMEXW)lParam, FALSE);
case TVM_GETITEMW: case TVM_GETITEMW:
return TREEVIEW_GetItemW(infoPtr, (LPTVITEMEXW)lParam); return TREEVIEW_GetItemT(infoPtr, (LPTVITEMEXW)lParam, TRUE);
case TVM_GETITEMHEIGHT: case TVM_GETITEMHEIGHT:
return TREEVIEW_GetItemHeight(infoPtr); return TREEVIEW_GetItemHeight(infoPtr);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment