/********************************************************************* * * LISTVIEW__UpdateScrollParas * * Purpose: * Calculates number of items and page size of both vertical * and horizontal scrollbar. After this LISTVIEW__UpdateScrollPos will * be called to ensure scroll positions are in valid ranges. */ int LISTVIEW__UpdateScrollParas(LISTVIEW_Handle hObj, LISTVIEW_Obj* pObj) { int NumRows, IsRequired; int xSize, xSizeHeader; unsigned NumVisibleRows; NumVisibleRows = _GetNumVisibleRows(hObj, pObj); xSize = _GetXSize(hObj); xSizeHeader = _GetHeaderWidth(pObj); if (pObj->Flags & LISTVIEW_SF_AUTOSCROLLBAR_V) { IsRequired = (NumVisibleRows < GUI_ARRAY_GetNumItems(&pObj->RowArray)); WM_SetScrollbarV(hObj, IsRequired); } if (pObj->Flags & LISTVIEW_SF_AUTOSCROLLBAR_H) { IsRequired = (xSizeHeader > xSize); WM_SetScrollbarH(hObj, IsRequired); NumVisibleRows = _GetNumVisibleRows(hObj, pObj); } NumRows = LISTVIEW__GetNumRows(pObj); /* update vertical scrollbar */ pObj->ScrollStateV.PageSize = NumVisibleRows; pObj->ScrollStateV.NumItems = (NumRows) ? NumRows : 1; /* update horizontal scrollbar */ pObj->ScrollStateH.PageSize = xSize; pObj->ScrollStateH.NumItems = xSizeHeader; return LISTVIEW__UpdateScrollPos(hObj, pObj); }
/********************************************************************* * * LISTVIEW__UpdateScrollParas * * Purpose: * Calculates number of items and page size of both vertical * and horizontal scrollbar. After this LISTVIEW__UpdateScrollPos will * be called to ensure scroll positions are in valid ranges. */ int LISTVIEW__UpdateScrollParas(LISTVIEW_Handle hObj, LISTVIEW_Obj* pObj) { int NumRows; NumRows = GUI_ARRAY_GetNumItems(&pObj->RowArray); /* update vertical scrollbar */ pObj->ScrollStateV.PageSize = _GetNumVisibleRows(hObj, pObj); pObj->ScrollStateV.NumItems = (NumRows) ? NumRows : 1; /* update horizontal scrollbar */ pObj->ScrollStateH.PageSize = _GetXSize(hObj); pObj->ScrollStateH.NumItems = _GetHeaderWidth(pObj, pObj->hHeader); return LISTVIEW__UpdateScrollPos(hObj, pObj); }