case VK_TAB:
for (i = 0; i < 3; i++) {
if (GetFocus() == v->hwndEdit[i])
break;
}
if (! shift)
i = (i == 2) ? 0: i + 1;
else
i = (i == 0) ? 2: i - 1;
SetFocus(v->hwndEdit[i]);
return 0;
case WM_PAINT:
si.fMask = SIF_RANGE | SIF_PAGE;
si.cbSize = sizeof(si);
// Set vertical scroll bar range and page size
si.nMin = -89;
si.nPage = (int)(89. / v->zoom);
si.nMax = 89 + (si.nPage - 1);
SetScrollInfo (v->hwndCont, SB_VERT, &si, TRUE);
// Set horizontal scroll bar range and page size
si.nMin = -180;
si.nPage = (int)(180. / v->zoom);
si.nMax = 180 + (si.nPage - 1);
SetScrollInfo(v->hwndCont, SB_HORZ, &si, TRUE);
// Show scroll bars in case they were hidden
ShowScrollBar(v->hwndCont, SB_VERT, TRUE);
ShowScrollBar(v->hwndCont, SB_HORZ, TRUE);
// Make sure edit boxes are redrawn before painting the map
for (i = 0; i < 3; i++) {
InvalidateRect(v->hwndLabel[i], NULL, TRUE);
UpdateWindow(v->hwndLabel[i]);
InvalidateRect(v->hwndEdit[i], NULL, TRUE);
UpdateWindow(v->hwndEdit[i]);
}
case IDM_SHW_MINMAX:
if (GetMinMax(v)) {
InvalidateRect(v->hwndCont, NULL, FALSE);
UpdateWindow(v->hwndCont);
}
return 0;
case IDM_SHW_COAST:
case IDM_SHW_COUNTRY:
case IDM_SHW_STATE:
case IDM_SHW_ISLAND:
case IDM_SHW_LAKE:
case IDM_SHW_RIVER:
case IDM_SHW_GRID:
case IDM_SHW_DEGREES:
if (GetMenuState(v->hMenu, id, MF_BYCOMMAND) & MF_CHECKED) {
CheckMenuItem(v->hMenu, id, MF_UNCHECKED);
v->shwFeatures &= ~(1 << (id - 200));
} else {
CheckMenuItem(v->hMenu, id, MF_CHECKED);
v->shwFeatures |= (1 << (id - 200));
}
InvalidateRect(v->hwndCont, NULL, FALSE);
UpdateWindow(v->hwndCont);
return 0;
case IDM_SHW_WDB_BDY1:
case IDM_SHW_WDB_BDY2:
case IDM_SHW_WDB_BDY3:
if (GetMenuState(v->hMenu, id, MF_BYCOMMAND) & MF_CHECKED) {
CheckMenuItem(v->hMenu, id, MF_UNCHECKED);
v->wdbShwBdyFeatures[id - 300] = 0;
} else {
CheckMenuItem(v->hMenu, id, MF_CHECKED);
v->wdbShwBdyFeatures[id - 300] = 1;
}
case IDM_SHW_WDB_CIL1:
case IDM_SHW_WDB_CIL2:
case IDM_SHW_WDB_CIL3:
case IDM_SHW_WDB_CIL4:
case IDM_SHW_WDB_CIL6:
case IDM_SHW_WDB_CIL7:
case IDM_SHW_WDB_CIL8:
case IDM_SHW_WDB_CIL9:
case IDM_SHW_WDB_CIL10:
case IDM_SHW_WDB_CIL13:
case IDM_SHW_WDB_CIL14:
case IDM_SHW_WDB_CIL15:
if (GetMenuState(v->hMenu, id, MF_BYCOMMAND) & MF_CHECKED) {
CheckMenuItem(v->hMenu, id, MF_UNCHECKED);
v->wdbShwCilFeatures[id - 400] = 0;
} else {
CheckMenuItem(v->hMenu, id, MF_CHECKED);
v->wdbShwCilFeatures[id - 400] = 1;
}
if (v->wdbIIMode && WDBIILoaded(v, "cil")) {
InvalidateRect(v->hwndCont, NULL, FALSE);
UpdateWindow(v->hwndCont);
}
return 0;
case IDM_SHW_WDB_RIV1:
case IDM_SHW_WDB_RIV2:
case IDM_SHW_WDB_RIV3:
case IDM_SHW_WDB_RIV4:
case IDM_SHW_WDB_RIV5:
case IDM_SHW_WDB_RIV6:
case IDM_SHW_WDB_RIV7:
case IDM_SHW_WDB_RIV8:
case IDM_SHW_WDB_RIV10:
case IDM_SHW_WDB_RIV11:
case IDM_SHW_WDB_RIV12:
if (GetMenuState(v->hMenu, id, MF_BYCOMMAND) & MF_CHECKED) {
CheckMenuItem(v->hMenu, id, MF_UNCHECKED);
v->wdbShwRivFeatures[id - 500] = 0;
} else {
CheckMenuItem(v->hMenu, id, MF_CHECKED);
v->wdbShwRivFeatures[id - 500] = 1;
}
if (v->wdbIIMode && WDBIILoaded(v, "riv")) {
InvalidateRect(v->hwndCont, NULL, FALSE);
UpdateWindow(v->hwndCont);
}
return 0;
case IDM_CLR_COAST:
case IDM_CLR_COUNTRY:
case IDM_CLR_STATE:
case IDM_CLR_ISLAND:
case IDM_CLR_LAKE:
case IDM_CLR_RIVER:
case IDM_CLR_BKGRND:
case IDM_CLR_GRID:
cc.lStructSize = sizeof (CHOOSECOLOR);
cc.hwndOwner = hwnd;
cc.hInstance = (HWND)v->hInst;
cc.rgbResult = v->colors[id - 600];
cc.lpCustColors = crCustColors;
cc.Flags = CC_RGBINIT | CC_FULLOPEN;
cc.lCustData = 0;
cc.lpfnHook = NULL;
cc.lpTemplateName = NULL;
if (ChooseColor(&cc)) {
v->colors[id - 600] = cc.rgbResult;
InvalidateRect(v->hwndCont, NULL, FALSE);
UpdateWindow(v->hwndCont);
}
return 0;
case IDM_CLR_RESET:
memcpy(v->colors, v->defColors, sizeof(v->defColors));
InvalidateRect(v->hwndCont, NULL, FALSE);
UpdateWindow(v->hwndCont);
return 0;
/*
case ID_SB_PAGEUP:
case ID_SB_PAGEDOWN:
case ID_SB_TOP:
case ID_SB_BOTTOM:
switch (id) {
case ID_SB_PAGEUP:
wScrollNotify = SB_PAGEUP;
break;
case ID_SB_PAGEDOWN:
wScrollNotify = SB_PAGEDOWN;
break;
case ID_SB_TOP:
wScrollNotify = SB_TOP;
break;
case ID_SB_BOTTOM:
wScrollNotify = SB_BOTTOM;
break;
}