Listview P1
Dimitrie O. Paun
dpaun at rogers.com
Fri Oct 11 17:21:22 CDT 2002
ChangeLog
Rename GetItemHeight to CalculateMaxHeight, for consistency
Fix usage of nItemWidth vs. iconSpacing.cx
Misc cleanups.
--- dlls/comctl32/listview.c.P0 Fri Oct 11 18:16:39 2002
+++ dlls/comctl32/listview.c Fri Oct 11 18:17:13 2002
@@ -275,7 +275,7 @@
static void LISTVIEW_AlignLeft(LISTVIEW_INFO *);
static void LISTVIEW_AlignTop(LISTVIEW_INFO *);
static void LISTVIEW_AddGroupSelection(LISTVIEW_INFO *, INT);
-static INT LISTVIEW_GetItemHeight(LISTVIEW_INFO *);
+static INT LISTVIEW_CalculateMaxHeight(LISTVIEW_INFO *);
static BOOL LISTVIEW_GetItemListOrigin(LISTVIEW_INFO *, INT, LPPOINT);
static BOOL LISTVIEW_GetItemPosition(LISTVIEW_INFO *, INT, LPPOINT);
static BOOL LISTVIEW_GetItemRect(LISTVIEW_INFO *, INT, LPRECT);
@@ -1440,7 +1440,7 @@
{
State.left = Box.left - infoPtr->iconStateSize.cx - 2;
if (infoPtr->himlNormal)
- State.left += (infoPtr->iconSpacing.cx - infoPtr->iconSize.cx) / 2 + ICON_LR_HALF;
+ State.left += (infoPtr->nItemWidth - infoPtr->iconSize.cx) / 2;
State.top = Box.top + infoPtr->iconSize.cy - infoPtr->iconStateSize.cy + 4;
}
else
@@ -1471,7 +1471,7 @@
{
Icon.left = Box.left;
if (infoPtr->himlNormal)
- Icon.left += (infoPtr->iconSpacing.cx - infoPtr->iconSize.cx) / 2;
+ Icon.left += (infoPtr->nItemWidth - infoPtr->iconSize.cx) / 2;
Icon.top = Box.top + ICON_TOP_PADDING;
Icon.right = Icon.left;
Icon.bottom = Icon.top;
@@ -1542,7 +1542,7 @@
calc_label:
if (uView == LVS_ICON)
{
- Label.left = Box.left + (infoPtr->iconSpacing.cx - labelSize.cx) / 2;
+ Label.left = Box.left + (infoPtr->nItemWidth - labelSize.cx) / 2;
Label.top = Box.top + ICON_TOP_PADDING_HITABLE +
infoPtr->iconSize.cy + ICON_BOTTOM_PADDING;
Label.right = Label.left + labelSize.cx;
@@ -1951,7 +1951,7 @@
* RETURN:
* Returns item height.
*/
-static INT LISTVIEW_GetItemHeight(LISTVIEW_INFO *infoPtr)
+static INT LISTVIEW_CalculateMaxHeight(LISTVIEW_INFO *infoPtr)
{
INT nItemHeight;
@@ -4832,7 +4832,7 @@
if (uView == LVS_ICON)
{
- lpptPosition->x += (infoPtr->iconSpacing.cx - infoPtr->iconSize.cx) / 2;
+ lpptPosition->x += (infoPtr->nItemWidth - infoPtr->iconSize.cx) / 2;
lpptPosition->y += ICON_TOP_PADDING;
}
lpptPosition->x += Origin.x;
@@ -6120,26 +6120,21 @@
LVITEMW lvItem;
WCHAR szDispText[DISP_TEXT_SIZE] = { 0 };
- if (!infoPtr->hwndHeader) /* make sure we have a header */
- return (FALSE);
+ TRACE("(iCol=%d, cx=%d\n", iCol, cx);
/* set column width only if in report or list mode */
- if ((uView != LVS_REPORT) && (uView != LVS_LIST))
- return (FALSE);
-
- TRACE("(iCol=%d, cx=%d\n", iCol, cx);
+ if (uView != LVS_REPORT && uView != LVS_LIST) return FALSE;
/* take care of invalid cx values */
- if((uView == LVS_REPORT) && (cx < -2))
- cx = LVSCW_AUTOSIZE;
- else if (uView == LVS_LIST && (cx < 1))
- return FALSE;
+ if(uView == LVS_REPORT && cx < -2) cx = LVSCW_AUTOSIZE;
+ else if (uView == LVS_LIST && cx < 1) return FALSE;
/* resize all columns if in LVS_LIST mode */
- if(uView == LVS_LIST) {
- infoPtr->nItemWidth = cx;
- LISTVIEW_InvalidateList(infoPtr); /* FIXME: optimize */
- return TRUE;
+ if(uView == LVS_LIST)
+ {
+ infoPtr->nItemWidth = cx;
+ LISTVIEW_InvalidateList(infoPtr);
+ return TRUE;
}
/* autosize based on listview items width */
@@ -6386,7 +6381,7 @@
/* these depend on the iconSpacing */
infoPtr->nItemWidth = LISTVIEW_CalculateMaxWidth(infoPtr);
- infoPtr->nItemHeight = LISTVIEW_GetItemHeight(infoPtr);
+ infoPtr->nItemHeight = LISTVIEW_CalculateMaxHeight(infoPtr);
return oldspacing;
}
@@ -6450,7 +6445,7 @@
return NULL;
}
- infoPtr->nItemHeight = LISTVIEW_GetItemHeight(infoPtr);
+ infoPtr->nItemHeight = LISTVIEW_CalculateMaxHeight(infoPtr);
if (infoPtr->nItemHeight != oldHeight)
LISTVIEW_UpdateScroll(infoPtr);
@@ -6545,7 +6540,7 @@
LISTVIEW_GetOrigin(infoPtr, &pt);
else if (uView == LVS_ICON)
{
- pt.x -= (infoPtr->iconSpacing.cx - infoPtr->iconSize.cx) / 2;
+ pt.x -= (infoPtr->nItemWidth - infoPtr->iconSize.cx) / 2;
pt.y -= ICON_TOP_PADDING;
}
@@ -6954,7 +6949,7 @@
/* initialize size of items */
infoPtr->nItemWidth = LISTVIEW_CalculateMaxWidth(infoPtr);
- infoPtr->nItemHeight = LISTVIEW_GetItemHeight(infoPtr);
+ infoPtr->nItemHeight = LISTVIEW_CalculateMaxHeight(infoPtr);
/* initialize the hover time to -1(indicating the default system hover time) */
infoPtr->dwHoverTime = -1;
@@ -8122,7 +8117,7 @@
/* Now update the full item width and height */
infoPtr->nItemWidth = LISTVIEW_CalculateMaxWidth(infoPtr);
- infoPtr->nItemHeight = LISTVIEW_GetItemHeight(infoPtr);
+ infoPtr->nItemHeight = LISTVIEW_CalculateMaxHeight(infoPtr);
if (lpss->styleNew & LVS_ALIGNLEFT)
LISTVIEW_AlignLeft(infoPtr);
else
@@ -8144,21 +8139,21 @@
infoPtr->iconSize.cx = GetSystemMetrics(SM_CXSMICON);
infoPtr->iconSize.cy = GetSystemMetrics(SM_CYSMICON);
infoPtr->nItemWidth = LISTVIEW_CalculateMaxWidth(infoPtr);
- infoPtr->nItemHeight = LISTVIEW_GetItemHeight(infoPtr);
+ infoPtr->nItemHeight = LISTVIEW_CalculateMaxHeight(infoPtr);
}
else if (uNewView == LVS_LIST)
{
infoPtr->iconSize.cx = GetSystemMetrics(SM_CXSMICON);
infoPtr->iconSize.cy = GetSystemMetrics(SM_CYSMICON);
infoPtr->nItemWidth = LISTVIEW_CalculateMaxWidth(infoPtr);
- infoPtr->nItemHeight = LISTVIEW_GetItemHeight(infoPtr);
+ infoPtr->nItemHeight = LISTVIEW_CalculateMaxHeight(infoPtr);
}
else
{
infoPtr->iconSize.cx = GetSystemMetrics(SM_CXSMICON);
infoPtr->iconSize.cy = GetSystemMetrics(SM_CYSMICON);
infoPtr->nItemWidth = LISTVIEW_CalculateMaxWidth(infoPtr);
- infoPtr->nItemHeight = LISTVIEW_GetItemHeight(infoPtr);
+ infoPtr->nItemHeight = LISTVIEW_CalculateMaxHeight(infoPtr);
if (lpss->styleNew & LVS_ALIGNLEFT)
LISTVIEW_AlignLeft(infoPtr);
else
More information about the wine-patches
mailing list