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

Function onMSNH_HScroll

outdated/sys/wince/mhmap.c:788–846  ·  view source on GitHub ↗

on WM_HSCROLL */

Source from the content-addressed store, hash-verified

786
787/* on WM_HSCROLL */
788void
789onMSNH_HScroll(HWND hWnd, WPARAM wParam, LPARAM lParam)
790{
791 PNHMapWindow data;
792 SCROLLINFO si;
793 int xNewPos;
794 int xDelta;
795
796 /* get window data */
797 data = (PNHMapWindow) GetWindowLong(hWnd, GWL_USERDATA);
798
799 switch (LOWORD(wParam)) {
800 /* User clicked shaft left of the scroll box. */
801 case SB_PAGEUP:
802 xNewPos = data->xPos - data->xPageSize;
803 break;
804
805 /* User clicked shaft right of the scroll box. */
806 case SB_PAGEDOWN:
807 xNewPos = data->xPos + data->xPageSize;
808 break;
809
810 /* User clicked the left arrow. */
811 case SB_LINEUP:
812 xNewPos = data->xPos - 1;
813 break;
814
815 /* User clicked the right arrow. */
816 case SB_LINEDOWN:
817 xNewPos = data->xPos + 1;
818 break;
819
820 /* User dragged the scroll box. */
821 case SB_THUMBTRACK:
822 xNewPos = HIWORD(wParam);
823 break;
824
825 default:
826 xNewPos = data->xPos;
827 }
828
829 xNewPos = max(0, min(COLNO - data->xPageSize + 1, xNewPos));
830 if (xNewPos == data->xPos)
831 return;
832
833 xDelta = xNewPos - data->xPos;
834 data->xPos = xNewPos;
835
836 ScrollWindowEx(hWnd, -data->xScrTile * xDelta, 0, (CONST RECT *) NULL,
837 (CONST RECT *) NULL, (HRGN) NULL, (LPRECT) NULL,
838 SW_INVALIDATE | SW_ERASE);
839
840 if (!GetNHApp()->bHideScrollBars) {
841 si.cbSize = sizeof(si);
842 si.fMask = SIF_POS;
843 si.nPos = data->xPos;
844 SetScrollInfo(hWnd, SB_HORZ, &si, TRUE);
845 }

Callers 1

MapWndProcFunction · 0.70

Calls 1

GetNHAppFunction · 0.70

Tested by

no test coverage detected