Changeset 110 for trunk/src/comctl32/trackbar.c
- Timestamp:
- Jun 16, 1999, 10:25:45 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/comctl32/trackbar.c
r109 r110 1 /* $Id: trackbar.c,v 1. 4 1999-06-16 15:29:27cbratschi Exp $ */1 /* $Id: trackbar.c,v 1.5 1999-06-16 20:25:44 cbratschi Exp $ */ 2 2 /* 3 3 * Trackbar control … … 15 15 * - better tic handling. 16 16 * - more notifications. 17 * - implement TRACKBAR_Draw with inUpdate 17 18 * 18 19 */ … … 345 346 } 346 347 347 348 static VOID 349 TRACKBAR_Refresh (HWND hwnd, HDC hdc)348 //draw the trackbar 349 350 static VOID TRACKBAR_Draw(HWND hwnd,HDC hdc,INT lastPos,BOOL inUpdate) 350 351 { 351 352 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); … … 356 357 357 358 GetClientRect (hwnd, &rcClient); 358 hBrush = CreateSolidBrush (infoPtr->clrBk); 359 FillRect (hdc, &rcClient, hBrush); 360 DeleteObject (hBrush); 359 if (!inUpdate) 360 { 361 hBrush = CreateSolidBrush (infoPtr->clrBk); 362 FillRect (hdc, &rcClient, hBrush); 363 DeleteObject (hBrush); 364 } 361 365 362 366 if (infoPtr->flags & TB_DRAGPOSVALID) { … … 478 482 } 479 483 484 //update display 485 486 static VOID TRACKBAR_Update(HWND hwnd,INT lastPos) 487 { 488 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 489 HDC hdc; 490 491 if (infoPtr->flags & TB_DRAGPOSVALID && lastPos == infoPtr->dragPos) return; 492 if (!infoPtr->flags & TB_DRAGPOSVALID && lastPos == infoPtr->nPos) return; 493 hdc = GetDC(hwnd); 494 TRACKBAR_Draw(hwnd,hdc,lastPos,TRUE); 495 ReleaseDC(hwnd,hdc); 496 } 497 498 //redraw everything 499 500 static VOID TRACKBAR_Refresh (HWND hwnd) 501 { 502 HDC hdc; 503 504 hdc = GetDC (hwnd); 505 TRACKBAR_Draw(hwnd,hdc,0,FALSE); 506 ReleaseDC(hwnd,hdc); 507 } 480 508 481 509 static VOID … … 541 569 infoPtr->flags |= TB_SELECTIONCHANGED; 542 570 543 if ((BOOL)wParam) 544 InvalidateRect (hwnd, NULL, FALSE); 571 if ((BOOL)wParam) TRACKBAR_Refresh(hwnd); 545 572 546 573 return 0; … … 559 586 } 560 587 561 if (wParam) 562 InvalidateRect (hwnd, NULL, FALSE); 588 if (wParam) TRACKBAR_Refresh(hwnd); 563 589 564 590 return 0; … … 811 837 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 812 838 839 INT lastPos = infoPtr->nPos; 813 840 infoPtr->nPos = (INT)LOWORD(lParam); 814 841 … … 820 847 infoPtr->flags |= TB_THUMBPOSCHANGED; 821 848 822 if (wParam) 823 InvalidateRect (hwnd, NULL, FALSE); 849 if (wParam) TRACKBAR_Update(hwnd,lastPos); 824 850 825 851 return 0; … … 849 875 TRACKBAR_RecalculateTics (infoPtr); 850 876 851 if (wParam) 852 InvalidateRect (hwnd, NULL, FALSE); 877 if (wParam) TRACKBAR_Refresh(hwnd); 853 878 854 879 return 0; … … 872 897 TRACKBAR_RecalculateTics (infoPtr); 873 898 874 if (wParam) 875 InvalidateRect (hwnd, NULL, FALSE); 899 if (wParam) TRACKBAR_Refresh(hwnd); 876 900 877 901 return 0; … … 895 919 TRACKBAR_RecalculateTics (infoPtr); 896 920 897 if (wParam) 898 InvalidateRect (hwnd, NULL, FALSE); 921 if (wParam) TRACKBAR_Refresh(hwnd); 899 922 900 923 return 0; … … 912 935 TRACKBAR_RecalculateTics (infoPtr); 913 936 914 InvalidateRect (hwnd, NULL, FALSE);937 TRACKBAR_Refresh(hwnd); //CB: necessary? 915 938 916 939 return 0; … … 935 958 infoPtr->nSelMax = infoPtr->nRangeMax; 936 959 937 if (wParam) 938 InvalidateRect (hwnd, NULL, FALSE); 960 if (wParam) TRACKBAR_Refresh(hwnd); 939 961 940 962 … … 957 979 infoPtr->nSelMax = infoPtr->nRangeMax; 958 980 959 if (wParam) 960 InvalidateRect (hwnd, NULL, FALSE); 981 if (wParam) TRACKBAR_Refresh(hwnd); 961 982 962 983 return 0; … … 978 999 infoPtr->nSelMin = infoPtr->nRangeMin; 979 1000 980 if (wParam) 981 InvalidateRect (hwnd, NULL, FALSE); 1001 if (wParam) TRACKBAR_Refresh(hwnd); 982 1002 983 1003 return 0; … … 995 1015 infoPtr->flags |= TB_THUMBSIZECHANGED; 996 1016 997 InvalidateRect (hwnd, NULL, FALSE);1017 TRACKBAR_Refresh(hwnd); 998 1018 999 1019 return 0; … … 1015 1035 infoPtr->tics[infoPtr->uNumTics-1]=nPos; 1016 1036 1017 InvalidateRect (hwnd, NULL, FALSE);1037 TRACKBAR_Refresh(hwnd); 1018 1038 1019 1039 return TRUE; … … 1149 1169 infoPtr->flags &= ~TB_DRAG_MODE; 1150 1170 1151 InvalidateRect (hwnd, NULL, FALSE);1171 TRACKBAR_Refresh(hwnd); //CB: make changes here 1152 1172 1153 1173 return 0; … … 1215 1235 if (prevPos!=infoPtr->nPos) { 1216 1236 infoPtr->flags |= TB_THUMBPOSCHANGED; 1217 InvalidateRect (hwnd, NULL, FALSE);1237 TRACKBAR_Update(hwnd,prevPos); 1218 1238 } 1219 1239 … … 1247 1267 } 1248 1268 1249 InvalidateRect (hwnd, NULL, FALSE);1269 //TRACKBAR_Refresh(hwnd); //CB: nothing changed 1250 1270 1251 1271 return 0; … … 1259 1279 1260 1280 if (infoPtr->flags & TB_DRAGPOSVALID) { 1281 int lastPos = infoPtr->nPos; 1261 1282 infoPtr->nPos=infoPtr->dragPos; 1262 InvalidateRect (hwnd, NULL, FALSE);1283 TRACKBAR_Update(hwnd,lastPos); 1263 1284 } 1264 1285 … … 1277 1298 1278 1299 hdc = wParam==0 ? BeginPaint (hwnd, &ps) : (HDC)wParam; 1279 TRACKBAR_ Refresh (hwnd, hdc);1300 TRACKBAR_Draw(hwnd,hdc,0,FALSE); 1280 1301 if(!wParam) 1281 1302 EndPaint (hwnd, &ps); … … 1292 1313 infoPtr->bFocus = TRUE; 1293 1314 1294 InvalidateRect (hwnd, NULL, FALSE);1315 TRACKBAR_Refresh(hwnd); //CB: make changes here 1295 1316 1296 1317 return 0; … … 1332 1353 DOUBLE dragPos; 1333 1354 char buf[80]; 1355 INT lastDragPos; 1334 1356 1335 1357 // TRACE (trackbar, "%x\n",wParam); … … 1344 1366 1345 1367 SetCapture (hwnd); 1368 lastDragPos = infoPtr->dragPos; 1346 1369 dragPos = TRACKBAR_ConvertPlaceToPosition (infoPtr, clickPlace, 1347 1370 dwStyle & TBS_VERT); … … 1377 1400 } 1378 1401 1379 InvalidateRect (hwnd, NULL, FALSE);1402 TRACKBAR_Update(hwnd,lastDragPos); 1380 1403 UpdateWindow (hwnd); 1381 1404 … … 1438 1461 if (pos!=infoPtr->nPos) { 1439 1462 infoPtr->flags |=TB_THUMBPOSCHANGED; 1440 InvalidateRect (hwnd, NULL, FALSE);1463 TRACKBAR_Update(hwnd,pos); 1441 1464 } 1442 1465
Note:
See TracChangeset
for help on using the changeset viewer.