(itemIndex < infoPtr->leftmostVisible)))
{
TRACE("Not Visible\n");
- /* need to initialize these to empty rects */
- if (itemRect)
- {
- memset(itemRect,0,sizeof(RECT));
- itemRect->bottom = infoPtr->tabHeight;
- }
- if (selectedRect)
- memset(selectedRect,0,sizeof(RECT));
+ SetRect(itemRect, 0, 0, 0, infoPtr->tabHeight);
+ SetRectEmpty(selectedRect);
return FALSE;
}
/* Now, calculate the position of the item as if it were selected. */
if (selectedRect!=NULL)
{
- CopyRect(selectedRect, itemRect);
+ *selectedRect = *itemRect;
/* The rectangle of a selected item is a bit wider. */
if(infoPtr->dwStyle & TCS_VERTICAL)
tabwidth = max(tabwidth, infoPtr->tabMinWidth);
curr->rect.right = curr->rect.left + tabwidth;
- TRACE("for <%s>, l,r=%d,%d\n",
- debugstr_w(curr->pszText), curr->rect.left, curr->rect.right);
+ TRACE("for <%s>, rect %s\n", debugstr_w(curr->pszText), wine_dbgstr_rect(&curr->rect));
}
/*
curr->rect.left = 0;
curItemRowCount++;
- TRACE("wrapping <%s>, l,r=%d,%d\n", debugstr_w(curr->pszText),
- curr->rect.left, curr->rect.right);
+ TRACE("wrapping <%s>, rect %s\n", debugstr_w(curr->pszText), wine_dbgstr_rect(&curr->rect));
}
curr->rect.bottom = 0;
else
curItemLeftPos = curr->rect.right;
- TRACE("arranging <%s>, l,r=%d,%d, row=%d\n",
- debugstr_w(curr->pszText), curr->rect.left,
- curr->rect.right, curr->rect.top);
+ TRACE("arranging <%s>, rect %s\n", debugstr_w(curr->pszText), wine_dbgstr_rect(&curr->rect));
}
/*
item->rect.left += iCount * widthDiff;
item->rect.right += (iCount + 1) * widthDiff;
- TRACE("adjusting 1 <%s>, l,r=%d,%d\n",
- debugstr_w(item->pszText),
- item->rect.left, item->rect.right);
+ TRACE("adjusting 1 <%s>, rect %s\n", debugstr_w(item->pszText), wine_dbgstr_rect(&item->rect));
}
TAB_GetItem(infoPtr, iIndex - 1)->rect.right += remainder;
start->rect.left = clientRect.left;
start->rect.right = clientRect.right - 4;
- TRACE("adjusting 2 <%s>, l,r=%d,%d\n",
- debugstr_w(start->pszText),
- start->rect.left, start->rect.right);
-
+ TRACE("adjusting 2 <%s>, rect %s\n", debugstr_w(start->pszText), wine_dbgstr_rect(&start->rect));
}
-
iIndexStart = iIndexEnd;
}
}
HPEN holdPen;
INT oldBkMode;
HFONT hOldFont;
+#ifdef __REACTOS__
+HTHEME theme = GetWindowTheme (infoPtr->hwnd);
+#endif
/* if (drawRect == NULL) */
{
}
}
else
- {
- drawRect->left += 2;
- drawRect->top += 2;
- drawRect->right -= 2;
- drawRect->bottom -= 2;
- }
+ InflateRect(drawRect, -2, -2);
}
else
{
if (iItem != infoPtr->iSelected)
{
drawRect->left += 2;
- drawRect->top += 2;
- drawRect->bottom -= 2;
+ InflateRect(drawRect, 0, -2);
}
}
else if (infoPtr->dwStyle & TCS_VERTICAL)
}
else
{
- drawRect->top += 2;
drawRect->right -= 2;
- drawRect->bottom -= 2;
+ InflateRect(drawRect, 0, -2);
}
}
else if (infoPtr->dwStyle & TCS_BOTTOM)
drawRect->top += 2;
drawRect->right -= 1;
if ( iItem == infoPtr->iSelected )
- {
- drawRect->right -= 1;
- drawRect->left += 1;
- }
+ InflateRect(drawRect, -1, 0);
id = (UINT)GetWindowLongPtrW( infoPtr->hwnd, GWLP_ID );
dis.itemState |= ODS_FOCUS;
dis.hwndItem = infoPtr->hwnd;
dis.hDC = hdc;
- CopyRect(&dis.rcItem,drawRect);
+ dis.rcItem = *drawRect;
/* when extra data fits ULONG_PTR, store it directly */
if (infoPtr->cbInfo > sizeof(LPARAM))
rcImage = *drawRect;
rcTemp = *drawRect;
-
- rcText.left = rcText.top = rcText.right = rcText.bottom = 0;
+ SetRectEmpty(&rcText);
/* get the rectangle that the text fits in */
if (item->pszText)
TRACE("for <%s>, c_o_h=%d, c_o_v=%d, draw=(%s), textlen=%d\n",
debugstr_w(item->pszText), center_offset_h, center_offset_v,
wine_dbgstr_rect(drawRect), (rcText.right-rcText.left));
+#ifdef __REACTOS__
+ if (theme && item->pszText)
+ {
+ int partIndex = iItem == infoPtr->iSelected ? TABP_TABITEM : TABP_TOPTABITEM;
+ int stateId = TIS_NORMAL;
+
+ if (iItem == infoPtr->iSelected)
+ stateId = TIS_SELECTED;
+ else if (iItem == infoPtr->iHotTracked)
+ stateId = TIS_HOT;
+ else if (iItem == infoPtr->uFocus)
+ stateId = TIS_FOCUSED;
+
+ DrawThemeText(theme,
+ hdc,
+ partIndex,
+ stateId,
+ item->pszText,
+ lstrlenW(item->pszText),
+ DT_LEFT | DT_SINGLELINE, 0, drawRect);
+ }
+ else
+#endif
if (item->pszText)
{
DrawTextW