MCPcopy Create free account
hub / github.com/NetHack/NetHack / onMSNH_VScroll

Function onMSNH_VScroll

outdated/sys/wince/mhmap.c:727–785  ·  view source on GitHub ↗

on WM_VSCROLL */

Source from the content-addressed store, hash-verified

725
726/* on WM_VSCROLL */
727void
728onMSNH_VScroll(HWND hWnd, WPARAM wParam, LPARAM lParam)
729{
730 PNHMapWindow data;
731 SCROLLINFO si;
732 int yNewPos;
733 int yDelta;
734
735 /* get window data */
736 data = (PNHMapWindow) GetWindowLong(hWnd, GWL_USERDATA);
737
738 switch (LOWORD(wParam)) {
739 /* User clicked shaft left of the scroll box. */
740 case SB_PAGEUP:
741 yNewPos = data->yPos - data->yPageSize;
742 break;
743
744 /* User clicked shaft right of the scroll box. */
745 case SB_PAGEDOWN:
746 yNewPos = data->yPos + data->yPageSize;
747 break;
748
749 /* User clicked the left arrow. */
750 case SB_LINEUP:
751 yNewPos = data->yPos - 1;
752 break;
753
754 /* User clicked the right arrow. */
755 case SB_LINEDOWN:
756 yNewPos = data->yPos + 1;
757 break;
758
759 /* User dragged the scroll box. */
760 case SB_THUMBTRACK:
761 yNewPos = HIWORD(wParam);
762 break;
763
764 default:
765 yNewPos = data->yPos;
766 }
767
768 yNewPos = max(0, min(ROWNO - data->yPageSize + 1, yNewPos));
769 if (yNewPos == data->yPos)
770 return;
771
772 yDelta = yNewPos - data->yPos;
773 data->yPos = yNewPos;
774
775 ScrollWindowEx(hWnd, 0, -data->yScrTile * yDelta, (CONST RECT *) NULL,
776 (CONST RECT *) NULL, (HRGN) NULL, (LPRECT) NULL,
777 SW_INVALIDATE | SW_ERASE);
778
779 if (!GetNHApp()->bHideScrollBars) {
780 si.cbSize = sizeof(si);
781 si.fMask = SIF_POS;
782 si.nPos = data->yPos;
783 SetScrollInfo(hWnd, SB_VERT, &si, TRUE);
784 }

Callers 1

MapWndProcFunction · 0.70

Calls 1

GetNHAppFunction · 0.70

Tested by

no test coverage detected