Changeset 3585 for trunk/src/comctl32/trackbar.cpp
- Timestamp:
- May 22, 2000, 7:25:13 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/comctl32/trackbar.cpp
r3154 r3585 1 /* $Id: trackbar.cpp,v 1. 3 2000-03-18 16:17:33 cbratschi Exp $ */1 /* $Id: trackbar.cpp,v 1.4 2000-05-22 17:25:13 cbratschi Exp $ */ 2 2 /* 3 3 * Trackbar control … … 52 52 #define SCALE_SPACE 1 53 53 54 #define THUMB_LEN 23 55 #define THUMB_MINLEN 4 54 #define THUMB_LEN_SEL 23 55 #define THUMB_LEN 21 56 #define THUMB_MINLEN 4 56 57 57 58 #define CHANNEL_NOSEL_HEIGHT 4 //min no sel height … … 74 75 #define TOOLTIP_YSPACE 5 75 76 76 static BOOL TRACKBAR_SendNotify (HWND hwnd, UINT code); 77 78 static void TRACKBAR_RecalculateTics (HWND hwnd,TRACKBAR_INFO *infoPtr,BOOL restoreOld) 77 static const WORD pattern[8] = 78 {0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA}; 79 80 static BOOL TRACKBAR_SendNotify(TRACKBAR_INFO *infoPtr,UINT code); 81 82 static void TRACKBAR_RecalculateTics(TRACKBAR_INFO *infoPtr,BOOL restoreOld) 79 83 { 80 84 INT i,tic,nrTics; 81 DWORD dwStyle = GetWindowLongA(hwnd,GWL_STYLE); 82 83 if (dwStyle & TBS_NOTICKS) //no ticks 85 86 if (infoPtr->dwStyle & TBS_NOTICKS) //no ticks 84 87 { 85 88 COMCTL32_Free(infoPtr->tics); … … 90 93 } 91 94 92 if (restoreOld && !( dwStyle & TBS_AUTOTICKS) && infoPtr->tics != NULL)95 if (restoreOld && !(infoPtr->dwStyle & TBS_AUTOTICKS) && infoPtr->tics) 93 96 { //check old ticks 94 97 LPLONG oldTics = (LONG*)COMCTL32_Alloc(infoPtr->uNumTics*sizeof(DWORD)); … … 111 114 } 112 115 113 if (infoPtr->uTicFreq && (infoPtr->nRangeMax > infoPtr->nRangeMin) && ( dwStyle & TBS_AUTOTICKS))116 if (infoPtr->uTicFreq && (infoPtr->nRangeMax > infoPtr->nRangeMin) && (infoPtr->dwStyle & TBS_AUTOTICKS)) 114 117 { 115 118 //Tics without start and end tic … … 168 171 else if (pos < infoPtr->nRangeMin) pos = infoPtr->nRangeMin; 169 172 170 // TRACE (trackbar,"%.2f\n",pos);171 173 return pos; 172 174 } … … 174 176 175 177 static VOID 176 TRACKBAR_CalcChannel (HWND hwnd,TRACKBAR_INFO *infoPtr) 177 { 178 DWORD dwStyle = GetWindowLongA(hwnd,GWL_STYLE); 178 TRACKBAR_CalcChannel(TRACKBAR_INFO *infoPtr) 179 { 179 180 INT channelSize; 180 181 RECT lpRect,*channel = &infoPtr->rcChannel; 181 182 INT thumbDiff; 182 183 183 GetClientRect( hwnd,&lpRect);184 185 if ( dwStyle & TBS_ENABLESELRANGE) channelSize = MAX(infoPtr->uThumbLen-CHANNEL_THUMB_DIFF,CHANNEL_MIN_HEIGHT);184 GetClientRect(infoPtr->hwnd,&lpRect); 185 186 if (infoPtr->dwStyle & TBS_ENABLESELRANGE) channelSize = MAX(infoPtr->uThumbLen-CHANNEL_THUMB_DIFF,CHANNEL_MIN_HEIGHT); 186 187 else channelSize = CHANNEL_NOSEL_HEIGHT; 187 188 188 189 thumbDiff = (infoPtr->uThumbLen-channelSize)/2; 189 190 190 if ( dwStyle & TBS_VERT)191 if (infoPtr->dwStyle & TBS_VERT) 191 192 { 192 193 channel->top = lpRect.top+CHANNEL_SPACE; 193 194 channel->bottom = lpRect.bottom-CHANNEL_SPACE; 194 195 195 if (( dwStyle & TBS_BOTH) || (dwStyle & TBS_NOTICKS))196 if ((infoPtr->dwStyle & TBS_BOTH) || (infoPtr->dwStyle & TBS_NOTICKS)) 196 197 { //center 197 198 channel->left = (lpRect.right-channelSize)/2; 198 199 channel->right = (lpRect.right+channelSize)/2; 199 } else if ( dwStyle & TBS_LEFT)200 } else if (infoPtr->dwStyle & TBS_LEFT) 200 201 { 201 202 channel->left = lpRect.left+thumbDiff+CHANNEL_SCALE_SPACE; … … 210 211 channel->left = lpRect.left+CHANNEL_SPACE; 211 212 channel->right = lpRect.right-CHANNEL_SPACE; 212 if (( dwStyle & TBS_BOTH) || (dwStyle & TBS_NOTICKS))213 if ((infoPtr->dwStyle & TBS_BOTH) || (infoPtr->dwStyle & TBS_NOTICKS)) 213 214 { //center 214 215 channel->top = (lpRect.bottom-channelSize)/2; 215 216 channel->bottom = (lpRect.bottom+channelSize)/2; 216 } else if ( dwStyle & TBS_TOP)217 } else if (infoPtr->dwStyle & TBS_TOP) 217 218 { 218 219 channel->top = lpRect.top+thumbDiff+CHANNEL_SCALE_SPACE; … … 226 227 } 227 228 228 //Calculate thumb size229 230 229 static VOID 231 TRACKBAR_CalcThumb( HWND hwnd,TRACKBAR_INFO *infoPtr)230 TRACKBAR_CalcThumb(TRACKBAR_INFO *infoPtr) 232 231 { 233 232 RECT *thumb; … … 235 234 int range, width; 236 235 int x,y; 237 DWORD dwStyle = GetWindowLongA(hwnd,GWL_STYLE);238 236 int thumbFactor = 2; 239 237 … … 241 239 fullThumb = &infoPtr->rcFullThumb; 242 240 range = infoPtr->nRangeMax-infoPtr->nRangeMin; 243 if ( dwStyle & TBS_VERT)241 if (infoPtr->dwStyle & TBS_VERT) 244 242 { 245 243 width = infoPtr->rcChannel.bottom-infoPtr->rcChannel.top; … … 252 250 thumb->right = thumb->left+infoPtr->uThumbLen; 253 251 CopyRect(fullThumb,thumb); 254 if ( dwStyle & TBS_BOTH) return;252 if (infoPtr->dwStyle & TBS_BOTH) return; 255 253 x = y/2; //arrow width 256 if ( dwStyle & TBS_LEFT) thumb->left += x; else thumb->right -= x;254 if (infoPtr->dwStyle & TBS_LEFT) thumb->left += x; else thumb->right -= x; 257 255 } else 258 256 { … … 266 264 thumb->bottom = thumb->top+infoPtr->uThumbLen; 267 265 CopyRect(fullThumb,thumb); 268 if ( dwStyle & TBS_BOTH) return;266 if (infoPtr->dwStyle & TBS_BOTH) return; 269 267 y = x/2; //arrow height 270 if ( dwStyle & TBS_TOP) thumb->top += y; else thumb->bottom -= y;268 if (infoPtr->dwStyle & TBS_TOP) thumb->top += y; else thumb->bottom -= y; 271 269 } 272 270 } 273 271 274 272 static VOID 275 TRACKBAR_CalcSelection (HWND hwnd,TRACKBAR_INFO *infoPtr)273 TRACKBAR_CalcSelection(TRACKBAR_INFO *infoPtr) 276 274 { 277 275 RECT *selection; … … 285 283 if ((range <= 0) || (selMin == selMax)) SetRectEmpty(selection); 286 284 else 287 if (!( GetWindowLongA(hwnd, GWL_STYLE)& TBS_VERT))285 if (!(infoPtr->dwStyle & TBS_VERT)) 288 286 { //Horizontal 289 287 width = infoPtr->rcChannel.right-infoPtr->rcChannel.left; … … 307 305 308 306 static VOID 309 TRACKBAR_DrawHorizTic (TRACKBAR_INFO *infoPtr, HDC hdc, LONG ticPos, 310 int flags, COLORREF clrTic) 307 TRACKBAR_DrawHorizTic(TRACKBAR_INFO *infoPtr,HDC hdc,LONG ticPos,int flags,COLORREF clrTic) 311 308 { 312 309 RECT rcChannel = infoPtr->rcChannel; … … 386 383 387 384 static VOID 388 TRACKBAR_DrawVertTic (TRACKBAR_INFO *infoPtr, HDC hdc, LONG ticPos, 389 int flags, COLORREF clrTic) 385 TRACKBAR_DrawVertTic(TRACKBAR_INFO *infoPtr,HDC hdc,LONG ticPos,int flags,COLORREF clrTic) 390 386 { 391 387 RECT rcChannel = infoPtr->rcChannel; … … 467 463 468 464 static VOID 469 TRACKBAR_DrawTics (TRACKBAR_INFO *infoPtr, HDC hdc, LONG ticPos, 470 int flags, COLORREF clrTic) 465 TRACKBAR_DrawTics(TRACKBAR_INFO *infoPtr,HDC hdc,LONG ticPos,int flags,COLORREF clrTic) 471 466 { 472 467 if (flags & TBS_VERT) … … 489 484 //draw thumb, call only from draw! 490 485 491 static VOID TRACKBAR_DrawThumb(TRACKBAR_INFO *infoPtr,H WND hwnd,HDC hdc,DWORD dwStyle)492 { 493 if (!( dwStyle & TBS_NOTHUMB))486 static VOID TRACKBAR_DrawThumb(TRACKBAR_INFO *infoPtr,HDC hdc) 487 { 488 if (!(infoPtr->dwStyle & TBS_NOTHUMB)) 494 489 { 495 490 HBRUSH hbr,hbrOld; 496 491 RECT thumb = infoPtr->rcThumb; 497 492 498 if ((infoPtr->flags & TB_DRAG_MODE) || !IsWindowEnabled( hwnd)) hbr = CreateSolidBrush(GetSysColor(COLOR_3DHILIGHT));499 else hbr = CreateSolidBrush(GetSysColor(COLOR_3DFACE));493 if ((infoPtr->flags & TB_DRAG_MODE) || !IsWindowEnabled(infoPtr->hwnd)) hbr = CreateSolidBrush(infoPtr->clrHighlightedThumb); 494 else hbr = infoPtr->hbrThumb; 500 495 hbrOld = SelectObject(hdc,hbr); 501 496 502 if ( dwStyle & TBS_BOTH)497 if (infoPtr->dwStyle & TBS_BOTH) 503 498 { 504 499 DrawEdge(hdc,&thumb,EDGE_RAISED,BF_RECT | BF_ADJUST); … … 509 504 RECT triangle; /* for correct shadows of thumb */ 510 505 511 if ( dwStyle & TBS_VERT)506 if (infoPtr->dwStyle & TBS_VERT) 512 507 { //Vertical 513 508 514 if ( dwStyle & TBS_LEFT)509 if (infoPtr->dwStyle & TBS_LEFT) 515 510 { 516 511 HPEN oldPen,pen; … … 606 601 { //Horizontal 607 602 608 if ( dwStyle & TBS_TOP)603 if (infoPtr->dwStyle & TBS_TOP) 609 604 { 610 605 //Outline … … 689 684 } 690 685 SelectObject(hdc,hbrOld); 691 DeleteObject(hbr);686 if (hbr != infoPtr->hbrThumb) DeleteObject(hbr); 692 687 } 693 688 } … … 695 690 //draw the trackbar 696 691 697 static VOID TRACKBAR_Draw(HWND hwnd,HDC hdc) 698 { 699 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 700 DWORD dwStyle = GetWindowLongA(hwnd, GWL_STYLE); 692 static VOID TRACKBAR_Draw(TRACKBAR_INFO *infoPtr,HDC hdc) 693 { 701 694 RECT rcClient,rcChannel,rcSelection; 702 695 HBRUSH hBrush; … … 705 698 LRESULT cdctlres,cdres; 706 699 707 GetClientRect( hwnd,&rcClient);700 GetClientRect(infoPtr->hwnd,&rcClient); 708 701 709 702 //Custom draw … … 711 704 cdraw.hdc = hdc; 712 705 cdraw.dwItemSpec = 0; 713 cdraw.uItemState = CDIS_DEFAULT;706 cdraw.uItemState = infoPtr->bFocus ? CDIS_FOCUS:CDIS_DEFAULT; 714 707 cdraw.rc = rcClient; 715 708 cdraw.lItemlParam = 0; 716 709 717 cdctlres = sendNotify( hwnd,NM_CUSTOMDRAW,&cdraw.hdr);710 cdctlres = sendNotify(infoPtr->hwnd,NM_CUSTOMDRAW,&cdraw.hdr); 718 711 719 712 if (cdctlres & CDRF_SKIPDEFAULT) return; … … 734 727 if (infoPtr->flags & TB_THUMBSIZECHANGED) 735 728 { 736 TRACKBAR_CalcChannel( hwnd,infoPtr);737 TRACKBAR_CalcSelection( hwnd,infoPtr);729 TRACKBAR_CalcChannel(infoPtr); 730 TRACKBAR_CalcSelection(infoPtr); 738 731 } 739 TRACKBAR_CalcThumb( hwnd,infoPtr);740 } 741 if (infoPtr->flags & TB_SELECTIONCHANGED) TRACKBAR_CalcSelection( hwnd,infoPtr);732 TRACKBAR_CalcThumb(infoPtr); 733 } 734 if (infoPtr->flags & TB_SELECTIONCHANGED) TRACKBAR_CalcSelection(infoPtr); 742 735 infoPtr->flags &= ~ (TB_THUMBCHANGED | TB_SELECTIONCHANGED | TB_DRAGPOSVALID); 743 736 … … 750 743 cdraw.rc = infoPtr->rcChannel; 751 744 752 cdres = sendNotify( hwnd,NM_CUSTOMDRAW,&cdraw.hdr);745 cdres = sendNotify(infoPtr->hwnd,NM_CUSTOMDRAW,&cdraw.hdr); 753 746 } else cdres = 0; 754 747 … … 759 752 DrawEdge(hdc,&rcChannel,EDGE_SUNKEN,BF_RECT | BF_ADJUST); 760 753 761 if ( dwStyle & TBS_ENABLESELRANGE) /* fill the channel */754 if (infoPtr->dwStyle & TBS_ENABLESELRANGE) /* fill the channel */ 762 755 { 763 756 HBRUSH hbr = CreateSolidBrush(RGB(255,255,255)); 764 757 FillRect(hdc,&rcChannel,hbr); 765 758 DeleteObject(hbr); 766 if ((( dwStyle & TBS_VERT) && (rcSelection.top != rcSelection.bottom)) ||767 ((!( dwStyle & TBS_VERT)) && (rcSelection.left != rcSelection.right)))759 if (((infoPtr->dwStyle & TBS_VERT) && (rcSelection.top != rcSelection.bottom)) || 760 ((!(infoPtr->dwStyle & TBS_VERT)) && (rcSelection.left != rcSelection.right))) 768 761 { 769 762 hbr = CreateSolidBrush (COLOR_HIGHLIGHT); … … 777 770 cdraw.dwDrawStage = CDDS_ITEMPOSTPAINT; 778 771 779 sendNotify( hwnd,NM_CUSTOMDRAW,&cdraw.hdr);772 sendNotify(infoPtr->hwnd,NM_CUSTOMDRAW,&cdraw.hdr); 780 773 } 781 774 } … … 789 782 SetRectEmpty(&cdraw.rc); 790 783 791 cdres = sendNotify( hwnd,NM_CUSTOMDRAW,&cdraw.hdr);784 cdres = sendNotify(infoPtr->hwnd,NM_CUSTOMDRAW,&cdraw.hdr); 792 785 } else cdres = 0; 793 786 794 787 if (!(cdres & CDRF_SKIPDEFAULT)) 795 788 { 796 if (!( dwStyle & TBS_NOTICKS))789 if (!(infoPtr->dwStyle & TBS_NOTICKS)) 797 790 { 798 int ticFlags = dwStyle & 0x0f;791 int ticFlags = infoPtr->dwStyle & 0x0f; 799 792 COLORREF clrTic = GetSysColor(COLOR_3DDKSHADOW); 800 793 INT range = infoPtr->nRangeMax-infoPtr->nRangeMin; 801 INT width = ( dwStyle & TBS_VERT) ? rcChannel.bottom-rcChannel.top:rcChannel.right-rcChannel.left;794 INT width = (infoPtr->dwStyle & TBS_VERT) ? rcChannel.bottom-rcChannel.top:rcChannel.right-rcChannel.left; 802 795 803 796 //check if maximum of visible marks is reached 804 if (( dwStyle & TBS_AUTOTICKS) && (infoPtr->uNumTics > 1) && ((INT)(width*infoPtr->tics[0]/range) == (INT)(width*infoPtr->tics[1]/range)))797 if ((infoPtr->dwStyle & TBS_AUTOTICKS) && (infoPtr->uNumTics > 1) && ((INT)(width*infoPtr->tics[0]/range) == (INT)(width*infoPtr->tics[1]/range))) 805 798 { 806 799 //draw all pixels at once -> much faster 807 if ( dwStyle & TBS_VERT)800 if (infoPtr->dwStyle & TBS_VERT) 808 801 { 809 802 if ((ticFlags & TBS_LEFT) || (ticFlags & TBS_BOTH)) … … 827 820 TRACKBAR_DrawTics(infoPtr,hdc,0,ticFlags | TIC_RIGHTEDGE,clrTic); 828 821 829 if (( dwStyle & TBS_ENABLESELRANGE) &&830 (( dwStyle & TBS_VERT && rcSelection.bottom != rcSelection.top) ||831 (!( dwStyle & TBS_VERT) && rcSelection.left != rcSelection.right)))822 if ((infoPtr->dwStyle & TBS_ENABLESELRANGE) && 823 ((infoPtr->dwStyle & TBS_VERT && rcSelection.bottom != rcSelection.top) || 824 (!(infoPtr->dwStyle & TBS_VERT) && rcSelection.left != rcSelection.right))) 832 825 { 833 826 TRACKBAR_DrawTics(infoPtr,hdc,infoPtr->nSelMin,ticFlags | TIC_SELECTIONMARKMIN,clrTic); … … 840 833 cdraw.dwDrawStage = CDDS_ITEMPOSTPAINT; 841 834 842 sendNotify( hwnd,NM_CUSTOMDRAW,&cdraw.hdr);835 sendNotify(infoPtr->hwnd,NM_CUSTOMDRAW,&cdraw.hdr); 843 836 } 844 837 } … … 852 845 cdraw.rc = infoPtr->rcFullThumb; 853 846 854 cdres = sendNotify( hwnd,NM_CUSTOMDRAW,&cdraw.hdr);847 cdres = sendNotify(infoPtr->hwnd,NM_CUSTOMDRAW,&cdraw.hdr); 855 848 } else cdres = 0; 856 849 857 850 if (!(cdres & CDRF_SKIPDEFAULT)) 858 851 { 859 TRACKBAR_DrawThumb(infoPtr,h wnd,hdc,dwStyle);852 TRACKBAR_DrawThumb(infoPtr,hdc); 860 853 861 854 if (cdctlres & CDRF_NOTIFYITEMDRAW) … … 863 856 cdraw.dwDrawStage = CDDS_ITEMPOSTPAINT; 864 857 865 sendNotify( hwnd,NM_CUSTOMDRAW,&cdraw.hdr);858 sendNotify(infoPtr->hwnd,NM_CUSTOMDRAW,&cdraw.hdr); 866 859 } 867 860 868 861 } 869 862 870 if (infoPtr->bFocus && IsWindowEnabled( hwnd)) DrawFocusRect(hdc,&rcClient);863 if (infoPtr->bFocus && IsWindowEnabled(infoPtr->hwnd)) DrawFocusRect(hdc,&rcClient); 871 864 872 865 if (cdctlres & CDRF_NOTIFYPOSTPAINT) … … 874 867 cdraw.dwDrawStage = CDDS_POSTPAINT; 875 868 cdraw.dwItemSpec = 0; 876 GetClientRect( hwnd,&cdraw.rc);877 878 sendNotify( hwnd,NM_CUSTOMDRAW,&cdraw.hdr);869 GetClientRect(infoPtr->hwnd,&cdraw.rc); 870 871 sendNotify(infoPtr->hwnd,NM_CUSTOMDRAW,&cdraw.hdr); 879 872 } 880 873 … … 883 876 //update thumb position 884 877 885 static VOID TRACKBAR_UpdateThumbPosition( HWND hwnd,INT lastPos,BOOL mustRedraw)878 static VOID TRACKBAR_UpdateThumbPosition(TRACKBAR_INFO *infoPtr,INT lastPos,BOOL mustRedraw) 886 879 { 887 880 HDC hdc; 888 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr(hwnd);889 DWORD dwStyle = GetWindowLongA(hwnd,GWL_STYLE);890 881 RECT lastRect,newRect,updateRect; 891 882 HDC hdcCompatible; … … 903 894 if (!mustRedraw && (infoPtr->nPos == lastPos)) return; 904 895 905 if ( dwStyle & TBS_NOTHUMB) return;906 907 TRACKBAR_CalcThumb( hwnd,infoPtr);896 if (infoPtr->dwStyle & TBS_NOTHUMB) return; 897 898 TRACKBAR_CalcThumb(infoPtr); 908 899 infoPtr->flags &= ~TB_THUMBCHANGED; 909 900 newRect = infoPtr->rcFullThumb; … … 923 914 updateRect.top = MIN(lastRect.top,newRect.top); 924 915 updateRect.bottom = MAX(lastRect.bottom,newRect.bottom); 925 hdc = GetDC( hwnd);916 hdc = GetDC(infoPtr->hwnd); 926 917 hdcCompatible = CreateCompatibleDC(hdc); 927 918 bitmap = CreateCompatibleBitmap(hdc,updateRect.right,updateRect.bottom); 928 919 oldbmp = SelectObject(hdcCompatible,bitmap); 929 TRACKBAR_Draw( hwnd,hdcCompatible);930 if ( dwStyle & TBS_VERT)920 TRACKBAR_Draw(infoPtr,hdcCompatible); 921 if (infoPtr->dwStyle & TBS_VERT) 931 922 { 932 923 if ((lastRect.top > newRect.top) && (lastRect.top < newRect.bottom)) … … 954 945 DeleteObject(bitmap); 955 946 DeleteDC(hdcCompatible); 956 ReleaseDC( hwnd,hdc);947 ReleaseDC(infoPtr->hwnd,hdc); 957 948 } 958 949 959 950 //redraw everything 960 951 961 static VOID TRACKBAR_Refresh (HWND hwnd)952 static VOID TRACKBAR_Refresh(TRACKBAR_INFO *infoPtr) 962 953 { 963 954 HDC hdc; 964 955 965 hdc = GetDC (hwnd);966 TRACKBAR_Draw( hwnd,hdc);967 ReleaseDC( hwnd,hdc);956 hdc = GetDC(infoPtr->hwnd); 957 TRACKBAR_Draw(infoPtr,hdc); 958 ReleaseDC(infoPtr->hwnd,hdc); 968 959 } 969 960 970 961 static VOID 971 TRACKBAR_AlignBuddies (HWND hwnd, TRACKBAR_INFO *infoPtr) 972 { 973 DWORD dwStyle = GetWindowLongA(hwnd,GWL_STYLE); 974 HWND hwndParent = GetParent(hwnd); 962 TRACKBAR_AlignBuddies(TRACKBAR_INFO *infoPtr) 963 { 964 HWND hwndParent = GetParent(infoPtr->hwnd); 975 965 RECT rcSelf,rcBuddy; 976 966 INT x, y; 977 967 978 GetWindowRect( hwnd,&rcSelf);968 GetWindowRect(infoPtr->hwnd,&rcSelf); 979 969 MapWindowPoints(HWND_DESKTOP,hwndParent,(LPPOINT)&rcSelf,2); 980 970 … … 984 974 GetWindowRect(infoPtr->hwndBuddyLA,&rcBuddy); 985 975 986 if ( dwStyle & TBS_VERT)976 if (infoPtr->dwStyle & TBS_VERT) 987 977 { //above 988 978 x = (infoPtr->rcChannel.right+infoPtr->rcChannel.left)/2-(rcBuddy.right-rcBuddy.left)/2+rcSelf.left; … … 1003 993 GetWindowRect(infoPtr->hwndBuddyRB,&rcBuddy); 1004 994 1005 if ( dwStyle & TBS_VERT)995 if (infoPtr->dwStyle & TBS_VERT) 1006 996 { //below 1007 997 x = (infoPtr->rcChannel.right+infoPtr->rcChannel.left)/2-(rcBuddy.right-rcBuddy.left)/2+rcSelf.left; … … 1017 1007 } 1018 1008 1019 1020 static LRESULT 1021 TRACKBAR_ClearSel (HWND hwnd, WPARAM wParam, LPARAM lParam) 1022 { 1023 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1024 1009 static LRESULT 1010 TRACKBAR_ClearSel(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1011 { 1025 1012 if (infoPtr->nSelMin != infoPtr->nSelMax) 1026 1013 { … … 1029 1016 infoPtr->flags |= TB_SELECTIONCHANGED; 1030 1017 1031 if ((BOOL)wParam) TRACKBAR_Refresh(hwnd); 1032 } 1033 1034 return 0; 1035 } 1036 1037 1038 static LRESULT 1039 TRACKBAR_ClearTics (HWND hwnd, WPARAM wParam, LPARAM lParam) 1040 { 1041 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1042 1043 if (!(GetWindowLongA(hwnd, GWL_STYLE) & (TBS_AUTOTICKS | TBS_NOTICKS))) return 0; 1018 if ((BOOL)wParam) TRACKBAR_Refresh(infoPtr); 1019 } 1020 1021 return 0; 1022 } 1023 1024 static LRESULT 1025 TRACKBAR_ClearTics(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1026 { 1027 if (!(infoPtr->dwStyle & (TBS_AUTOTICKS | TBS_NOTICKS))) return 0; 1044 1028 1045 1029 if (infoPtr->tics) … … 1049 1033 infoPtr->uNumTics = 0; 1050 1034 1051 if (wParam) TRACKBAR_Refresh(hwnd); 1052 } 1053 1054 return 0; 1055 } 1056 1057 1058 static LRESULT 1059 TRACKBAR_GetBuddy (HWND hwnd, WPARAM wParam, LPARAM lParam) 1060 { 1061 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr(hwnd); 1062 1035 if (wParam) TRACKBAR_Refresh(infoPtr); 1036 } 1037 1038 return 0; 1039 } 1040 1041 1042 static LRESULT 1043 TRACKBAR_GetBuddy(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1044 { 1063 1045 if (wParam) 1064 1046 return (LRESULT)infoPtr->hwndBuddyLA; //left or above … … 1067 1049 } 1068 1050 1069 1070 static LRESULT 1071 TRACKBAR_GetChannelRect (HWND hwnd, WPARAM wParam, LPARAM lParam) 1072 { 1073 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1051 static LRESULT 1052 TRACKBAR_GetChannelRect(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1053 { 1074 1054 LPRECT lprc = (LPRECT)lParam; 1075 1055 … … 1081 1061 } 1082 1062 1083 1084 static LRESULT 1085 TRACKBAR_GetLineSize (HWND hwnd, WPARAM wParam, LPARAM lParam) 1086 { 1087 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1088 1063 static LRESULT 1064 TRACKBAR_GetLineSize(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1065 { 1089 1066 return infoPtr->nLineSize; 1090 1067 } … … 1092 1069 1093 1070 static LRESULT 1094 TRACKBAR_GetNumTics (HWND hwnd, WPARAM wParam, LPARAM lParam) 1095 { 1096 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1097 1098 if (GetWindowLongA(hwnd, GWL_STYLE) & TBS_NOTICKS) return 0; 1071 TRACKBAR_GetNumTics(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1072 { 1073 if (infoPtr->dwStyle & TBS_NOTICKS) return 0; 1099 1074 1100 1075 return infoPtr->uNumTics+2; //includes last and first tick 1101 1076 } 1102 1077 1103 1104 static LRESULT 1105 TRACKBAR_GetPageSize (HWND hwnd, WPARAM wParam, LPARAM lParam) 1106 { 1107 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1108 1078 static LRESULT 1079 TRACKBAR_GetPageSize(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1080 { 1109 1081 return infoPtr->nPageSize; 1110 1082 } … … 1112 1084 1113 1085 static LRESULT 1114 TRACKBAR_GetPos (HWND hwnd, WPARAM wParam, LPARAM lParam) 1115 { 1116 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1117 1086 TRACKBAR_GetPos(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1087 { 1118 1088 return infoPtr->nPos; 1119 1089 } … … 1121 1091 1122 1092 static LRESULT 1123 TRACKBAR_GetRangeMax (HWND hwnd, WPARAM wParam, LPARAM lParam) 1124 { 1125 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1126 1093 TRACKBAR_GetRangeMax(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1094 { 1127 1095 return infoPtr->nRangeMax; 1128 1096 } … … 1130 1098 1131 1099 static LRESULT 1132 TRACKBAR_GetRangeMin (HWND hwnd, WPARAM wParam, LPARAM lParam) 1133 { 1134 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1135 1100 TRACKBAR_GetRangeMin(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1101 { 1136 1102 return infoPtr->nRangeMin; 1137 1103 } … … 1139 1105 1140 1106 static LRESULT 1141 TRACKBAR_GetSelEnd (HWND hwnd, WPARAM wParam, LPARAM lParam) 1142 { 1143 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1144 1107 TRACKBAR_GetSelEnd(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1108 { 1145 1109 return infoPtr->nSelMax; 1146 1110 } … … 1148 1112 1149 1113 static LRESULT 1150 TRACKBAR_GetSelStart (HWND hwnd, WPARAM wParam, LPARAM lParam) 1151 { 1152 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1153 1114 TRACKBAR_GetSelStart(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1115 { 1154 1116 return infoPtr->nSelMin; 1155 1117 } … … 1157 1119 1158 1120 static LRESULT 1159 TRACKBAR_GetThumbLength (HWND hwnd, WPARAM wParam, LPARAM lParam) 1160 { 1161 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1162 1121 TRACKBAR_GetThumbLength(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1122 { 1163 1123 return infoPtr->uThumbLen; 1164 1124 } 1165 1125 1166 1126 static LRESULT 1167 TRACKBAR_GetPTics (HWND hwnd) 1168 { 1169 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1170 1127 TRACKBAR_GetPTics(TRACKBAR_INFO *infoPtr) 1128 { 1171 1129 return (LRESULT)infoPtr->tics; 1172 1130 } 1173 1131 1174 1132 static LRESULT 1175 TRACKBAR_GetThumbRect (HWND hwnd, WPARAM wParam, LPARAM lParam) 1176 { 1177 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1133 TRACKBAR_GetThumbRect(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1134 { 1178 1135 LPRECT lprc = (LPRECT)lParam; 1179 1136 … … 1187 1144 1188 1145 static LRESULT 1189 TRACKBAR_GetTic (HWND hwnd, WPARAM wParam, LPARAM lParam) 1190 { 1191 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1146 TRACKBAR_GetTic(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1147 { 1192 1148 INT iTic; 1193 1149 … … 1201 1157 1202 1158 static LRESULT 1203 TRACKBAR_GetTicPos (HWND hwnd, WPARAM wParam, LPARAM lParam) 1204 { 1205 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1159 TRACKBAR_GetTicPos(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1160 { 1206 1161 INT iTic, range, width, pos; 1207 1162 … … 1219 1174 1220 1175 static LRESULT 1221 TRACKBAR_GetToolTips (HWND hwnd, WPARAM wParam, LPARAM lParam) 1222 { 1223 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1224 1225 if (GetWindowLongA (hwnd, GWL_STYLE) & TBS_TOOLTIPS) 1176 TRACKBAR_GetToolTips(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1177 { 1178 if (infoPtr->dwStyle & TBS_TOOLTIPS) 1226 1179 return (LRESULT)infoPtr->hwndToolTip; 1227 1180 return 0; … … 1230 1183 1231 1184 static LRESULT 1232 TRACKBAR_SetBuddy (HWND hwnd, WPARAM wParam, LPARAM lParam) 1233 { 1234 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr(hwnd); 1185 TRACKBAR_SetBuddy(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1186 { 1235 1187 HWND hwndTemp; 1236 1188 1237 if (!(GetParent(lParam) == GetParent( hwnd))) return wParam ? infoPtr->hwndBuddyLA:infoPtr->hwndBuddyRB;1189 if (!(GetParent(lParam) == GetParent(infoPtr->hwnd))) return wParam ? infoPtr->hwndBuddyLA:infoPtr->hwndBuddyRB; 1238 1190 1239 1191 if (wParam) … … 1249 1201 } 1250 1202 1251 TRACKBAR_AlignBuddies( hwnd,infoPtr);1203 TRACKBAR_AlignBuddies(infoPtr); 1252 1204 1253 1205 return (LRESULT)hwndTemp; … … 1256 1208 1257 1209 static LRESULT 1258 TRACKBAR_SetLineSize (HWND hwnd, WPARAM wParam, LPARAM lParam) 1259 { 1260 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1210 TRACKBAR_SetLineSize(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1211 { 1261 1212 INT nTemp = infoPtr->nLineSize; 1262 1213 … … 1268 1219 1269 1220 static LRESULT 1270 TRACKBAR_SetPageSize (HWND hwnd, WPARAM wParam, LPARAM lParam) 1271 { 1272 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1221 TRACKBAR_SetPageSize(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1222 { 1273 1223 INT nTemp = infoPtr->nPageSize; 1274 1224 … … 1280 1230 1281 1231 static LRESULT 1282 TRACKBAR_SetPos (HWND hwnd, WPARAM wParam, LPARAM lParam) 1283 { 1284 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1232 TRACKBAR_SetPos(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1233 { 1285 1234 INT lastPos = infoPtr->nPos; 1286 1235 … … 1296 1245 infoPtr->flags |= TB_THUMBPOSCHANGED; 1297 1246 1298 if (wParam) TRACKBAR_UpdateThumbPosition(hwnd,lastPos,FALSE); 1299 1300 return 0; 1301 } 1302 1303 1304 static LRESULT 1305 TRACKBAR_SetRange (HWND hwnd, WPARAM wParam, LPARAM lParam) 1306 { 1307 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1247 if (wParam) TRACKBAR_UpdateThumbPosition(infoPtr,lastPos,FALSE); 1248 1249 return 0; 1250 } 1251 1252 1253 static LRESULT 1254 TRACKBAR_SetRange(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1255 { 1308 1256 int newMin,newMax; 1309 DWORD dwStyle = GetWindowLongA(hwnd,GWL_STYLE);1310 1257 1311 1258 newMin = (INT)LOWORD(lParam); … … 1360 1307 infoPtr->nPageSize = (infoPtr->nRangeMax-infoPtr->nRangeMin)/5; 1361 1308 if (infoPtr->nPageSize == 0) infoPtr->nPageSize = 1; 1362 TRACKBAR_RecalculateTics(hwnd,infoPtr,TRUE); 1363 1364 if (wParam) TRACKBAR_Refresh(hwnd); 1365 1366 return 0; 1367 } 1368 1369 1370 static LRESULT 1371 TRACKBAR_SetRangeMax (HWND hwnd, WPARAM wParam, LPARAM lParam) 1372 { 1373 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1374 1309 TRACKBAR_RecalculateTics(infoPtr,TRUE); 1310 1311 if (wParam) TRACKBAR_Refresh(infoPtr); 1312 1313 return 0; 1314 } 1315 1316 1317 static LRESULT 1318 TRACKBAR_SetRangeMax(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1319 { 1375 1320 if ((INT)lParam <= infoPtr->nRangeMin) return 0; 1376 1321 if (infoPtr->nRangeMax == (INT)lParam) return 0; … … 1385 1330 infoPtr->nPageSize = (infoPtr->nRangeMax-infoPtr->nRangeMin)/5; 1386 1331 if (infoPtr->nPageSize == 0) infoPtr->nPageSize = 1; 1387 TRACKBAR_RecalculateTics(hwnd,infoPtr,TRUE); 1388 1389 if (wParam) TRACKBAR_Refresh(hwnd); 1390 1391 return 0; 1392 } 1393 1394 1395 static LRESULT 1396 TRACKBAR_SetRangeMin (HWND hwnd, WPARAM wParam, LPARAM lParam) 1397 { 1398 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1399 1332 TRACKBAR_RecalculateTics(infoPtr,TRUE); 1333 1334 if (wParam) TRACKBAR_Refresh(infoPtr); 1335 1336 return 0; 1337 } 1338 1339 1340 static LRESULT 1341 TRACKBAR_SetRangeMin(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1342 { 1400 1343 if ((INT)lParam >= infoPtr->nRangeMax) return 0; 1401 1344 if (infoPtr->nRangeMin == (INT)lParam) return 0; … … 1410 1353 infoPtr->nPageSize = (infoPtr->nRangeMax-infoPtr->nRangeMin)/5; 1411 1354 if (infoPtr->nPageSize == 0) infoPtr->nPageSize = 1; 1412 TRACKBAR_RecalculateTics(hwnd,infoPtr,TRUE); 1413 1414 if (wParam) TRACKBAR_Refresh(hwnd); 1415 1416 return 0; 1417 } 1418 1419 1420 static LRESULT 1421 TRACKBAR_SetTicFreq (HWND hwnd, WPARAM wParam) 1422 { 1423 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1424 1355 TRACKBAR_RecalculateTics(infoPtr,TRUE); 1356 1357 if (wParam) TRACKBAR_Refresh(infoPtr); 1358 1359 return 0; 1360 } 1361 1362 1363 static LRESULT 1364 TRACKBAR_SetTicFreq(TRACKBAR_INFO *infoPtr,WPARAM wParam) 1365 { 1425 1366 if (infoPtr->uTicFreq == (UINT)wParam) return 0; 1426 1367 1427 if (!( GetWindowLongA(hwnd,GWL_STYLE)& TBS_AUTOTICKS)) return 0;1368 if (!(infoPtr->dwStyle & TBS_AUTOTICKS)) return 0; 1428 1369 1429 1370 infoPtr->uTicFreq = (UINT)wParam; 1430 1371 1431 TRACKBAR_RecalculateTics(hwnd,infoPtr,FALSE); 1432 1433 TRACKBAR_Refresh(hwnd); 1434 1435 return 0; 1436 } 1437 1438 1439 static LRESULT 1440 TRACKBAR_SetSel(HWND hwnd,WPARAM wParam,LPARAM lParam) 1441 { 1442 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1372 TRACKBAR_RecalculateTics(infoPtr,FALSE); 1373 1374 TRACKBAR_Refresh(infoPtr); 1375 1376 return 0; 1377 } 1378 1379 static LRESULT 1380 TRACKBAR_SetSel(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1381 { 1443 1382 INT newMin,newMax,oldMin,oldMax; 1444 1383 … … 1459 1398 if (infoPtr->nSelMin > infoPtr->nSelMax) infoPtr->nSelMin = infoPtr->nSelMax; 1460 1399 1461 if (! GetWindowLongA(hwnd, GWL_STYLE) & TBS_ENABLESELRANGE) return 0;1400 if (!(infoPtr->dwStyle & TBS_ENABLESELRANGE)) return 0; 1462 1401 1463 1402 if ((oldMin != newMin) || (oldMax != newMax)) 1464 1403 { 1465 1404 infoPtr->flags |= TB_SELECTIONCHANGED; 1466 if (wParam) TRACKBAR_Refresh(hwnd); 1467 } 1468 1469 return 0; 1470 } 1471 1472 1473 static LRESULT 1474 TRACKBAR_SetSelEnd (HWND hwnd, WPARAM wParam, LPARAM lParam) 1475 { 1476 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1405 if (wParam) TRACKBAR_Refresh(infoPtr); 1406 } 1407 1408 return 0; 1409 } 1410 1411 static LRESULT 1412 TRACKBAR_SetSelEnd(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1413 { 1477 1414 INT oldMax; 1478 1415 … … 1487 1424 if (infoPtr->nSelMin > infoPtr->nSelMax) infoPtr->nSelMin = infoPtr->nSelMax; 1488 1425 1489 if (! GetWindowLongA(hwnd,GWL_STYLE) & TBS_ENABLESELRANGE) return 0;1426 if (!(infoPtr->dwStyle & TBS_ENABLESELRANGE)) return 0; 1490 1427 1491 1428 if (oldMax != infoPtr->nSelMax) 1492 1429 { 1493 1430 infoPtr->flags |= TB_SELECTIONCHANGED; 1494 if (wParam) TRACKBAR_Refresh(hwnd); 1495 } 1496 1497 return 0; 1498 } 1499 1500 1501 static LRESULT 1502 TRACKBAR_SetSelStart (HWND hwnd, WPARAM wParam, LPARAM lParam) 1503 { 1504 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1431 if (wParam) TRACKBAR_Refresh(infoPtr); 1432 } 1433 1434 return 0; 1435 } 1436 1437 static LRESULT 1438 TRACKBAR_SetSelStart(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1439 { 1505 1440 INT oldMin; 1506 1441 … … 1515 1450 if (infoPtr->nSelMin > infoPtr->nSelMax) infoPtr->nSelMin = infoPtr->nSelMax; 1516 1451 1517 if (! GetWindowLongA(hwnd,GWL_STYLE) & TBS_ENABLESELRANGE) return 0;1452 if (!(infoPtr->dwStyle & TBS_ENABLESELRANGE)) return 0; 1518 1453 1519 1454 if (oldMin != infoPtr->nSelMin) 1520 1455 { 1521 1456 infoPtr->flags |= TB_SELECTIONCHANGED; 1522 if (wParam) TRACKBAR_Refresh(hwnd); 1523 } 1524 1525 return 0; 1526 } 1527 1528 1529 static LRESULT 1530 TRACKBAR_SetThumbLength (HWND hwnd, WPARAM wParam, LPARAM lParam) 1531 { 1532 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr(hwnd); 1533 1457 if (wParam) TRACKBAR_Refresh(infoPtr); 1458 } 1459 1460 return 0; 1461 } 1462 1463 static LRESULT 1464 TRACKBAR_SetThumbLength(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1465 { 1534 1466 if (infoPtr->uThumbLen == (UINT)wParam) return 0; 1535 1467 1536 if ( GetWindowLongA(hwnd,GWL_STYLE)& TBS_FIXEDLENGTH) return 0;1468 if (infoPtr->dwStyle & TBS_FIXEDLENGTH) return 0; 1537 1469 1538 1470 infoPtr->uThumbLen = MAX((UINT)wParam,THUMB_MINLEN); 1539 1471 infoPtr->flags |= TB_THUMBSIZECHANGED | TB_THUMBCHANGED; 1540 1472 1541 TRACKBAR_Refresh( hwnd);1473 TRACKBAR_Refresh(infoPtr); 1542 1474 1543 1475 return 0; … … 1569 1501 1570 1502 static LRESULT 1571 TRACKBAR_SetTic (HWND hwnd, WPARAM wParam, LPARAM lParam) 1572 { 1573 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1503 TRACKBAR_SetTic(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1504 { 1574 1505 INT nPos = (INT)lParam; 1575 1506 INT x; 1576 1507 1577 if (!( GetWindowLongA(hwnd, GWL_STYLE)& (TBS_AUTOTICKS | TBS_NOTICKS))) return 0;1508 if (!(infoPtr->dwStyle & (TBS_AUTOTICKS | TBS_NOTICKS))) return 0; 1578 1509 1579 1510 if ((nPos < infoPtr->nRangeMin) || (nPos > infoPtr->nRangeMax)) return FALSE; … … 1592 1523 TRACKBAR_QuickSort(infoPtr->tics,0,infoPtr->uNumTics-1); 1593 1524 1594 TRACKBAR_Refresh( hwnd);1525 TRACKBAR_Refresh(infoPtr); 1595 1526 1596 1527 return TRUE; 1597 1528 } 1598 1529 1599 1600 static LRESULT 1601 TRACKBAR_SetTipSide (HWND hwnd, WPARAM wParam, LPARAM lParam) 1602 { 1603 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr(hwnd); 1604 DWORD dwStyle = GetWindowLongA(hwnd,GWL_STYLE); 1530 static LRESULT 1531 TRACKBAR_SetTipSide(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1532 { 1605 1533 INT fTemp = infoPtr->fLocation; 1606 1534 1607 if ( dwStyle & TBS_VERT)1535 if (infoPtr->dwStyle & TBS_VERT) 1608 1536 { 1609 1537 if ((wParam == TBTS_LEFT) || (wParam == TBTS_RIGHT)) infoPtr->fLocation = (INT)wParam; … … 1616 1544 } 1617 1545 1618 1619 static LRESULT 1620 TRACKBAR_SetToolTips (HWND hwnd, WPARAM wParam, LPARAM lParam) 1621 { 1622 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1623 1546 static LRESULT 1547 TRACKBAR_SetToolTips(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1548 { 1624 1549 infoPtr->hwndToolTip = (HWND)wParam; 1625 1550 … … 1628 1553 1629 1554 static LRESULT 1630 TRACKBAR_InitializeThumb (HWND hwnd) 1631 { 1632 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1555 TRACKBAR_InitializeThumb(TRACKBAR_INFO *infoPtr) 1556 { 1633 1557 RECT clientRect; 1634 DWORD dwStyle = GetWindowLongA(hwnd,GWL_STYLE);1635 1558 INT scaleSize; 1636 1559 1637 GetClientRect( hwnd,&clientRect);1638 infoPtr->uThumbLen = THUMB_LEN; /* initial thumb length */1560 GetClientRect(infoPtr->hwnd,&clientRect); 1561 infoPtr->uThumbLen = (infoPtr->dwStyle & TBS_ENABLESELRANGE) ? THUMB_LEN_SEL:THUMB_LEN; /* initial thumb length */ 1639 1562 1640 1563 scaleSize = 2*BORDER_SIZE; 1641 if ( dwStyle & TBS_NOTICKS) scaleSize += 0;1642 else if ( dwStyle & TBS_BOTH) scaleSize += 2*(SCALE_SIZE+SCALE_SPACE);1564 if (infoPtr->dwStyle & TBS_NOTICKS) scaleSize += 0; 1565 else if (infoPtr->dwStyle & TBS_BOTH) scaleSize += 2*(SCALE_SIZE+SCALE_SPACE); 1643 1566 else scaleSize += SCALE_SIZE+SCALE_SPACE; 1644 1567 1645 if ( dwStyle & TBS_VERT)1568 if (infoPtr->dwStyle & TBS_VERT) 1646 1569 { 1647 1570 INT width = clientRect.right-clientRect.left; … … 1655 1578 } 1656 1579 1657 TRACKBAR_CalcChannel( hwnd,infoPtr);1658 TRACKBAR_CalcThumb( hwnd,infoPtr);1580 TRACKBAR_CalcChannel(infoPtr); 1581 TRACKBAR_CalcThumb(infoPtr); 1659 1582 1660 1583 infoPtr->flags &= ~TB_SELECTIONCHANGED; … … 1663 1586 } 1664 1587 1665 1666 static LRESULT 1667 TRACKBAR_Create (HWND hwnd, WPARAM wParam, LPARAM lParam) 1588 static LRESULT 1589 TRACKBAR_InitColors(TRACKBAR_INFO *infoPtr,BOOL redraw) 1590 { 1591 infoPtr->clrBk = GetSysColor(COLOR_3DFACE); 1592 infoPtr->clrHighlightedThumb = GetSysColor(COLOR_3DHILIGHT); 1593 1594 if (redraw) TRACKBAR_Refresh(infoPtr); 1595 1596 return 0; 1597 } 1598 1599 static LRESULT 1600 TRACKBAR_Create(HWND hwnd,WPARAM wParam,LPARAM lParam) 1668 1601 { 1669 1602 TRACKBAR_INFO *infoPtr; 1670 DWORD dwStyle = GetWindowLongA(hwnd,GWL_STYLE);1603 LOGBRUSH lb; 1671 1604 1672 1605 infoPtr = (TRACKBAR_INFO*)initControl(hwnd,sizeof(TRACKBAR_INFO)); 1673 1606 1674 1607 /* set default values */ 1608 infoPtr->hwnd = hwnd; 1609 infoPtr->dwStyle = GetWindowLongA(hwnd,GWL_STYLE);; 1610 1675 1611 infoPtr->nRangeMin = 0; 1676 1612 infoPtr->nRangeMax = 100; … … 1684 1620 infoPtr->uTicFreq = 1; 1685 1621 infoPtr->tics = NULL; 1686 infoPtr->clrBk = GetSysColor(COLOR_3DFACE); 1622 1623 /* Create dotted brush */ 1624 lb.lbStyle = BS_PATTERN; 1625 lb.lbHatch = (INT)CreateBitmap(8, 8, 1, 1, pattern); 1626 infoPtr->hbrThumb = CreateBrushIndirect(&lb); 1627 DeleteObject((HGDIOBJ)lb.lbHatch); 1628 1629 TRACKBAR_InitColors(infoPtr,FALSE); 1687 1630 1688 1631 infoPtr->hwndBuddyLA = 0; … … 1691 1634 infoPtr->bFocus = FALSE; 1692 1635 1693 if ( dwStyle & TBS_VERT)1694 { 1695 infoPtr->fLocation = ( dwStyle & TBS_LEFT) ? TBTS_RIGHT : TBTS_LEFT;1636 if (infoPtr->dwStyle & TBS_VERT) 1637 { 1638 infoPtr->fLocation = (infoPtr->dwStyle & TBS_LEFT) ? TBTS_RIGHT : TBTS_LEFT; 1696 1639 } else 1697 1640 { 1698 infoPtr->fLocation = ( dwStyle & TBS_TOP) ? TBTS_BOTTOM : TBTS_TOP;1699 } 1700 1701 TRACKBAR_InitializeThumb (hwnd);1641 infoPtr->fLocation = (infoPtr->dwStyle & TBS_TOP) ? TBTS_BOTTOM : TBTS_TOP; 1642 } 1643 1644 TRACKBAR_InitializeThumb(infoPtr); 1702 1645 1703 1646 /* Create tooltip control */ 1704 if ( dwStyle & TBS_TOOLTIPS)1647 if (infoPtr->dwStyle & TBS_TOOLTIPS) 1705 1648 { 1706 1649 UINT uFlags = TTF_TRACK | TTF_ABSOLUTE; 1707 1650 1708 if ( dwStyle & TBS_VERT)1651 if (infoPtr->dwStyle & TBS_VERT) 1709 1652 if (infoPtr->fLocation == TBTS_RIGHT) 1710 1653 uFlags |= TTF_ALIGNRIGHT | TTF_VCENTER; … … 1723 1666 } 1724 1667 1725 1726 static LRESULT 1727 TRACKBAR_Destroy (HWND hwnd, WPARAM wParam, LPARAM lParam) 1728 { 1729 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);1668 static LRESULT 1669 TRACKBAR_Destroy(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1670 { 1671 if (infoPtr->hbrThumb) 1672 DeleteObject((HGDIOBJ)infoPtr->hbrThumb); 1730 1673 1731 1674 /* delete tooltip control */ … … 1733 1676 1734 1677 COMCTL32_Free(infoPtr->tics); 1735 doneControl( hwnd);1736 1737 return 0; 1738 } 1739 1740 static VOID TRACKBAR_CalcToolTipPos( HWND hwnd,DWORD dwStyle,TRACKBAR_INFO *infoPtr,POINT *pt)1741 { 1742 if ( dwStyle & TBS_VERT)1678 doneControl(infoPtr->hwnd); 1679 1680 return 0; 1681 } 1682 1683 static VOID TRACKBAR_CalcToolTipPos(TRACKBAR_INFO *infoPtr,POINT *pt) 1684 { 1685 if (infoPtr->dwStyle & TBS_VERT) 1743 1686 { 1744 1687 if (infoPtr->fLocation == TBTS_RIGHT) … … 1764 1707 } 1765 1708 } 1766 ClientToScreen(hwnd,pt); 1767 } 1768 1769 static LRESULT 1770 TRACKBAR_LButtonDown (HWND hwnd, WPARAM wParam, LPARAM lParam) 1771 { 1772 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1773 DWORD dwStyle = GetWindowLongA (hwnd, GWL_STYLE); 1709 ClientToScreen(infoPtr->hwnd,pt); 1710 } 1711 1712 static LRESULT 1713 TRACKBAR_LButtonDown(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1714 { 1774 1715 int clickPlace,prevPos,vertical; 1775 1716 DOUBLE clickPos; … … 1777 1718 POINT clickPoint; 1778 1719 1779 SetFocus (hwnd);1780 1781 vertical = dwStyle & TBS_VERT;1720 SetFocus(infoPtr->hwnd); 1721 1722 vertical = infoPtr->dwStyle & TBS_VERT; 1782 1723 clickPoint.x = (INT)LOWORD(lParam); 1783 1724 clickPoint.y = (INT)HIWORD(lParam); … … 1793 1734 (clickPoint.y >= thumb.top) && 1794 1735 (clickPoint.y <= thumb.bottom) && 1795 ((( dwStyle & TBS_BOTH) &&1736 (((infoPtr->dwStyle & TBS_BOTH) && 1796 1737 (clickPoint.x >= thumb.left) && 1797 1738 (clickPoint.x <= thumb.right) 1798 1739 ) || 1799 (( dwStyle & TBS_LEFT) &&1740 ((infoPtr->dwStyle & TBS_LEFT) && 1800 1741 (clickPoint.x <= thumb.right) && 1801 1742 ((clickPoint.x >= thumb.left) || … … 1807 1748 ) 1808 1749 ) || 1809 (!( dwStyle & (TBS_BOTH | TBS_LEFT)) &&1750 (!(infoPtr->dwStyle & (TBS_BOTH | TBS_LEFT)) && 1810 1751 (clickPoint.x >= thumb.left) && 1811 1752 ((clickPoint.x <= thumb.right) || … … 1821 1762 (clickPoint.x >= thumb.left) && 1822 1763 (clickPoint.x <= thumb.right) && 1823 ((( dwStyle & TBS_BOTH) &&1764 (((infoPtr->dwStyle & TBS_BOTH) && 1824 1765 (clickPoint.y >= thumb.top) && 1825 1766 (clickPoint.y <= thumb.bottom) 1826 1767 ) || 1827 (( dwStyle & TBS_TOP) &&1768 ((infoPtr->dwStyle & TBS_TOP) && 1828 1769 (clickPoint.y <= thumb.bottom) && 1829 1770 ((clickPoint.y >= thumb.top) || … … 1835 1776 ) 1836 1777 ) || 1837 (!( dwStyle & (TBS_BOTH | TBS_TOP)) &&1778 (!(infoPtr->dwStyle & (TBS_BOTH | TBS_TOP)) && 1838 1779 (clickPoint.y >= thumb.top) && 1839 1780 ((clickPoint.y <= thumb.bottom) || … … 1848 1789 { 1849 1790 infoPtr->flags |= TB_DRAG_MODE; 1850 if ( dwStyle & TBS_TOOLTIPS)1791 if (infoPtr->dwStyle & TBS_TOOLTIPS) 1851 1792 { /* enable tooltip */ 1852 1793 TTTOOLINFOA ti; … … 1856 1797 ti.cbSize = sizeof(TTTOOLINFOA); 1857 1798 ti.uId = 0; 1858 ti.hwnd = (UINT) hwnd;1799 ti.hwnd = (UINT)infoPtr->hwnd; 1859 1800 ti.hinst = 0; 1860 sprintf (buf,"% d",infoPtr->nPos);1801 sprintf (buf,"%ld",infoPtr->nPos); 1861 1802 ti.lpszText = (LPSTR)buf; 1862 1803 1863 1804 infoPtr->flags |= TB_SHOW_TOOLTIP; 1864 SetCapture( hwnd);1805 SetCapture(infoPtr->hwnd); 1865 1806 1866 1807 SendMessageA(infoPtr->hwndToolTip,TTM_UPDATETIPTEXTA,0,(LPARAM)&ti); 1867 TRACKBAR_CalcToolTipPos( hwnd,dwStyle,infoPtr,&pt);1808 TRACKBAR_CalcToolTipPos(infoPtr,&pt); 1868 1809 SendMessageA(infoPtr->hwndToolTip,TTM_TRACKPOSITION,0,(LPARAM)MAKELPARAM(pt.x,pt.y)); 1869 1810 1870 1811 SendMessageA(infoPtr->hwndToolTip,TTM_TRACKACTIVATE,(WPARAM)TRUE,(LPARAM)&ti); 1871 1812 } 1872 SetCapture( hwnd);1873 TRACKBAR_UpdateThumbPosition( hwnd,infoPtr->nPos,TRUE); //change arrow color1813 SetCapture(infoPtr->hwnd); 1814 TRACKBAR_UpdateThumbPosition(infoPtr,infoPtr->nPos,TRUE); //change arrow color 1874 1815 return 0; 1875 1816 } … … 1883 1824 //ScrollMode 1884 1825 infoPtr->flags |= TB_SCROLL_MODE; 1885 SetCapture( hwnd);1886 SetTimer( hwnd,SCROLL_TIMER_ID,SCROLL_TIME,NULL);1826 SetCapture(infoPtr->hwnd); 1827 SetTimer(infoPtr->hwnd,SCROLL_TIMER_ID,SCROLL_TIME,NULL); 1887 1828 1888 1829 return 0; … … 1896 1837 infoPtr->nPos += infoPtr->nPageSize; 1897 1838 if (infoPtr->nPos > infoPtr->nRangeMax) infoPtr->nPos = infoPtr->nRangeMax; 1898 if (prevPos != infoPtr->nPos) TRACKBAR_SendNotify( hwnd,TB_PAGEUP);1839 if (prevPos != infoPtr->nPos) TRACKBAR_SendNotify(infoPtr,TB_PAGEUP); 1899 1840 } else 1900 1841 { /* similar to VK_PRIOR */ 1901 1842 infoPtr->nPos -= infoPtr->nPageSize; 1902 1843 if (infoPtr->nPos < infoPtr->nRangeMin) infoPtr->nPos = infoPtr->nRangeMin; 1903 if (prevPos != infoPtr->nPos) TRACKBAR_SendNotify( hwnd,TB_PAGEDOWN);1844 if (prevPos != infoPtr->nPos) TRACKBAR_SendNotify(infoPtr,TB_PAGEDOWN); 1904 1845 } 1905 1846 … … 1907 1848 { 1908 1849 infoPtr->flags |= TB_THUMBPOSCHANGED; 1909 TRACKBAR_UpdateThumbPosition( hwnd,prevPos,TRUE);1850 TRACKBAR_UpdateThumbPosition(infoPtr,prevPos,TRUE); 1910 1851 } 1911 1852 1912 1853 //ScrollMode 1913 1854 infoPtr->flags |= TB_SCROLL_MODE; 1914 SetCapture(hwnd); 1915 SetTimer(hwnd,SCROLL_TIMER_ID,SCROLL_TIME,NULL); 1916 1917 return 0; 1918 } 1919 1920 1921 static LRESULT 1922 TRACKBAR_LButtonUp (HWND hwnd, WPARAM wParam, LPARAM lParam) 1923 { 1924 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1925 1855 SetCapture(infoPtr->hwnd); 1856 SetTimer(infoPtr->hwnd,SCROLL_TIMER_ID,SCROLL_TIME,NULL); 1857 1858 return 0; 1859 } 1860 1861 1862 static LRESULT 1863 TRACKBAR_LButtonUp(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1864 { 1926 1865 if (infoPtr->flags & TB_DRAG_MODE) 1927 1866 { 1928 TRACKBAR_SendNotify( hwnd,TB_ENDTRACK);1867 TRACKBAR_SendNotify(infoPtr,TB_ENDTRACK); 1929 1868 1930 1869 infoPtr->flags &= ~TB_DRAG_MODE; 1931 1870 1932 if (GetCapture() == hwnd)1871 if (GetCapture() == infoPtr->hwnd) 1933 1872 { 1934 sendNotify( hwnd,NM_RELEASEDCAPTURE);1873 sendNotify(infoPtr->hwnd,NM_RELEASEDCAPTURE); 1935 1874 1936 1875 ReleaseCapture(); 1937 1876 } 1938 1877 1939 TRACKBAR_UpdateThumbPosition( hwnd,infoPtr->nPos,TRUE); //change arrow color1878 TRACKBAR_UpdateThumbPosition(infoPtr,infoPtr->nPos,TRUE); //change arrow color 1940 1879 } 1941 1880 … … 1944 1883 infoPtr->flags &= ~TB_SCROLL_MODE; 1945 1884 1946 if (GetCapture() == hwnd)1885 if (GetCapture() == infoPtr->hwnd) 1947 1886 { 1948 sendNotify( hwnd,NM_RELEASEDCAPTURE);1887 sendNotify(infoPtr->hwnd,NM_RELEASEDCAPTURE); 1949 1888 1950 1889 ReleaseCapture(); 1951 1890 } 1952 1891 1953 KillTimer( hwnd,SCROLL_TIMER_ID);1954 } 1955 1956 if ( GetWindowLongA (hwnd, GWL_STYLE)& TBS_TOOLTIPS)1892 KillTimer(infoPtr->hwnd,SCROLL_TIMER_ID); 1893 } 1894 1895 if (infoPtr->dwStyle & TBS_TOOLTIPS) 1957 1896 { /* disable tooltip */ 1958 1897 TTTOOLINFOA ti; … … 1960 1899 ti.cbSize = sizeof(TTTOOLINFOA); 1961 1900 ti.uId = 0; 1962 ti.hwnd = (UINT) hwnd;1901 ti.hwnd = (UINT)infoPtr->hwnd; 1963 1902 1964 1903 infoPtr->flags &= ~TB_SHOW_TOOLTIP; 1965 SendMessageA (infoPtr->hwndToolTip,TTM_TRACKACTIVATE,(WPARAM)FALSE,(LPARAM)&ti); 1966 } 1967 1968 return 0; 1969 } 1970 1971 1972 static LRESULT TRACKBAR_Timer(HWND hwnd,WPARAM wParam,LPARAM lParam) 1973 { 1974 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr(hwnd); 1975 DWORD dwStyle = GetWindowLongA(hwnd,GWL_STYLE); 1904 SendMessageA(infoPtr->hwndToolTip,TTM_TRACKACTIVATE,(WPARAM)FALSE,(LPARAM)&ti); 1905 } 1906 1907 return 0; 1908 } 1909 1910 static LRESULT TRACKBAR_Timer(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1911 { 1976 1912 POINT mousePoint; 1977 1913 INT mousePlace,prevPos,newPos,vertical; … … 1979 1915 1980 1916 GetCursorPos(&mousePoint); 1981 ScreenToClient( hwnd,&mousePoint);1982 1983 vertical = dwStyle & TBS_VERT;1917 ScreenToClient(infoPtr->hwnd,&mousePoint); 1918 1919 vertical = infoPtr->dwStyle & TBS_VERT; 1984 1920 if (vertical) mousePlace = mousePoint.y; 1985 1921 else mousePlace = mousePoint.x; … … 1996 1932 infoPtr->nPos += infoPtr->nPageSize; 1997 1933 if (infoPtr->nPos > infoPtr->nRangeMax) infoPtr->nPos = infoPtr->nRangeMax; 1998 if (prevPos != infoPtr->nPos) TRACKBAR_SendNotify( hwnd,TB_PAGEUP);1934 if (prevPos != infoPtr->nPos) TRACKBAR_SendNotify(infoPtr,TB_PAGEUP); 1999 1935 } else 2000 1936 { /* similar to VK_PRIOR */ 2001 1937 infoPtr->nPos -= infoPtr->nPageSize; 2002 1938 if (infoPtr->nPos < infoPtr->nRangeMin) infoPtr->nPos = infoPtr->nRangeMin; 2003 if (prevPos != infoPtr->nPos) TRACKBAR_SendNotify( hwnd,TB_PAGEDOWN);1939 if (prevPos != infoPtr->nPos) TRACKBAR_SendNotify(infoPtr,TB_PAGEDOWN); 2004 1940 } 2005 1941 … … 2007 1943 { 2008 1944 infoPtr->flags |= TB_THUMBPOSCHANGED; 2009 TRACKBAR_UpdateThumbPosition( hwnd,prevPos,FALSE);1945 TRACKBAR_UpdateThumbPosition(infoPtr,prevPos,FALSE); 2010 1946 } 2011 1947 … … 2014 1950 2015 1951 static LRESULT 2016 TRACKBAR_SetUnicodeFormat(HWND hwnd,WPARAM wParam,LPARAM lParam) 2017 { 2018 //wParam = new format 2019 2020 return FALSE; //previous was no Unicode 2021 } 2022 2023 static LRESULT 2024 TRACKBAR_CaptureChanged (HWND hwnd, WPARAM wParam, LPARAM lParam) 2025 { 2026 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1952 TRACKBAR_CaptureChanged(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1953 { 1954 sendNotify(infoPtr->hwnd,NM_RELEASEDCAPTURE); 2027 1955 2028 1956 if (infoPtr->flags & TB_DRAGPOSVALID) … … 2030 1958 int lastPos = infoPtr->nPos; 2031 1959 infoPtr->nPos = infoPtr->dragPos; 2032 if (lastPos != infoPtr->nPos) TRACKBAR_UpdateThumbPosition( hwnd,lastPos,TRUE);1960 if (lastPos != infoPtr->nPos) TRACKBAR_UpdateThumbPosition(infoPtr,lastPos,TRUE); 2033 1961 } 2034 1962 … … 2038 1966 { 2039 1967 infoPtr->flags &= ~TB_SCROLL_MODE; 2040 KillTimer( hwnd,SCROLL_TIMER_ID);2041 } 2042 2043 TRACKBAR_SendNotify( hwnd,TB_ENDTRACK);2044 return 0; 2045 } 2046 2047 2048 static LRESULT 2049 TRACKBAR_Paint (HWND hwnd,WPARAM wParam)1968 KillTimer(infoPtr->hwnd,SCROLL_TIMER_ID); 1969 } 1970 1971 TRACKBAR_SendNotify(infoPtr,TB_ENDTRACK); 1972 return 0; 1973 } 1974 1975 1976 static LRESULT 1977 TRACKBAR_Paint(TRACKBAR_INFO *infoPtr,WPARAM wParam) 2050 1978 { 2051 1979 HDC hdc; 2052 1980 PAINTSTRUCT ps; 2053 1981 2054 hdc = wParam == 0 ? BeginPaint(hwnd,&ps) : (HDC)wParam; 2055 TRACKBAR_Draw(hwnd,hdc); 2056 if (!wParam) EndPaint(hwnd,&ps); 2057 return 0; 2058 } 2059 2060 2061 static LRESULT 2062 TRACKBAR_SetFocus (HWND hwnd, WPARAM wParam, LPARAM lParam) 2063 { 2064 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1982 hdc = wParam == 0 ? BeginPaint(infoPtr->hwnd,&ps):(HDC)wParam; 1983 TRACKBAR_Draw(infoPtr,hdc); 1984 if (!wParam) EndPaint(infoPtr->hwnd,&ps); 1985 return 0; 1986 } 1987 1988 1989 static LRESULT 1990 TRACKBAR_SetFocus(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 1991 { 2065 1992 HDC hdc; 2066 1993 RECT rcClient; 2067 1994 2068 // TRACE (trackbar,"\n"); 2069 if (!infoPtr->bFocus && IsWindowEnabled(hwnd)) 1995 if (!infoPtr->bFocus && IsWindowEnabled(infoPtr->hwnd)) 2070 1996 { 2071 1997 infoPtr->bFocus = TRUE; 2072 1998 2073 GetClientRect (hwnd,&rcClient); 2074 hdc = GetDC (hwnd); 2075 DrawFocusRect (hdc,&rcClient); 2076 ReleaseDC(hwnd,hdc); 2077 2078 } 2079 return 0; 2080 } 2081 2082 static LRESULT 2083 TRACKBAR_KillFocus (HWND hwnd, WPARAM wParam, LPARAM lParam) 2084 { 2085 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 1999 GetClientRect(infoPtr->hwnd,&rcClient); 2000 hdc = GetDC (infoPtr->hwnd); 2001 DrawFocusRect(hdc,&rcClient); 2002 ReleaseDC(infoPtr->hwnd,hdc); 2003 } 2004 return 0; 2005 } 2006 2007 static LRESULT 2008 TRACKBAR_KillFocus(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 2009 { 2086 2010 HDC hdc; 2087 2011 RECT rcClient; 2088 2012 2089 // TRACE (trackbar,"\n");2090 2013 2091 2014 infoPtr->flags &= ~TB_DRAG_MODE; 2092 if (infoPtr->bFocus && IsWindowEnabled( hwnd))2015 if (infoPtr->bFocus && IsWindowEnabled(infoPtr->hwnd)) 2093 2016 { 2094 2017 infoPtr->bFocus = FALSE; 2095 2018 2096 GetClientRect( hwnd,&rcClient);2097 hdc = GetDC (hwnd);2019 GetClientRect(infoPtr->hwnd,&rcClient); 2020 hdc = GetDC(infoPtr->hwnd); 2098 2021 DrawFocusRect(hdc,&rcClient); //XOR removes 2099 ReleaseDC(hwnd,hdc); 2100 } 2101 2102 return 0; 2103 } 2104 2105 static LRESULT 2106 TRACKBAR_Size (HWND hwnd, WPARAM wParam, LPARAM lParam) 2107 { 2108 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 2109 2110 TRACKBAR_CalcChannel (hwnd, infoPtr); 2111 TRACKBAR_AlignBuddies (hwnd, infoPtr); 2112 2113 return 0; 2114 } 2115 2116 2117 static BOOL TRACKBAR_SendNotify (HWND hwnd, UINT code) 2118 { 2119 if (GetWindowLongA(hwnd, GWL_STYLE) & TBS_VERT) 2120 return sendVScroll(hwnd,code); 2022 ReleaseDC(infoPtr->hwnd,hdc); 2023 } 2024 2025 return 0; 2026 } 2027 2028 static LRESULT 2029 TRACKBAR_Size(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 2030 { 2031 if (!(infoPtr->dwStyle & TBS_FIXEDLENGTH)) 2032 { 2033 /* If trackbar doesn't have TBS_FIXEDLENGTH style 2034 * it sets thumb length according to new width / height. 2035 */ 2036 LONG h; 2037 LONG hmin = (infoPtr->dwStyle & TBS_ENABLESELRANGE) ? THUMB_LEN_SEL:THUMB_LEN; 2038 2039 if (infoPtr->dwStyle & TBS_VERT) 2040 h = (LONG)(INT16)LOWORD(lParam); /* width */ 2041 else 2042 h = (LONG)(INT16)HIWORD(lParam); /* height */ 2043 2044 if (h < hmin) 2045 { 2046 /* focus rect + tic size + thumb offset */ 2047 2048 h -= (BORDER_SIZE+SCALE_SPACE)*2; 2049 } 2050 2051 h = MAX(h,THUMB_MINLEN); 2052 h = MIN(h,hmin); 2053 2054 infoPtr->uThumbLen = h; 2055 } 2056 2057 TRACKBAR_CalcChannel(infoPtr); 2058 TRACKBAR_AlignBuddies(infoPtr); 2059 2060 return 0; 2061 } 2062 2063 static BOOL TRACKBAR_SendNotify(TRACKBAR_INFO *infoPtr,UINT code) 2064 { 2065 if (infoPtr->dwStyle & TBS_VERT) 2066 return sendVScroll(infoPtr->hwnd,code); 2121 2067 else 2122 return sendHScroll(hwnd,code); 2123 } 2124 2125 2126 static LRESULT 2127 TRACKBAR_MouseMove (HWND hwnd, WPARAM wParam, LPARAM lParam) 2128 { 2129 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd); 2130 DWORD dwStyle = GetWindowLongA(hwnd,GWL_STYLE); 2068 return sendHScroll(infoPtr->hwnd,code); 2069 } 2070 2071 static LRESULT 2072 TRACKBAR_MouseMove(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 2073 { 2131 2074 SHORT clickPlace; 2132 2075 DOUBLE dragPos; … … 2134 2077 if (!(infoPtr->flags & TB_DRAG_MODE)) return TRUE; 2135 2078 2136 if ( dwStyle & TBS_VERT) clickPlace = (SHORT)HIWORD(lParam);2079 if (infoPtr->dwStyle & TBS_VERT) clickPlace = (SHORT)HIWORD(lParam); 2137 2080 else clickPlace = (SHORT)LOWORD(lParam); 2138 2081 2139 dragPos = TRACKBAR_ConvertPlaceToPosition(infoPtr,clickPlace, dwStyle & TBS_VERT);2082 dragPos = TRACKBAR_ConvertPlaceToPosition(infoPtr,clickPlace,infoPtr->dwStyle & TBS_VERT); 2140 2083 if (dragPos > ((INT)dragPos)+0.5) infoPtr->dragPos = dragPos + 1; 2141 2084 else infoPtr->dragPos = dragPos; … … 2145 2088 infoPtr->flags |= TB_DRAGPOSVALID; 2146 2089 2147 TRACKBAR_UpdateThumbPosition( hwnd,infoPtr->nPos,FALSE); //infoPtr->nPos now set2148 2149 TRACKBAR_SendNotify( hwnd,TB_THUMBTRACK | (infoPtr->nPos << 16));2090 TRACKBAR_UpdateThumbPosition(infoPtr,infoPtr->nPos,FALSE); //infoPtr->nPos now set 2091 2092 TRACKBAR_SendNotify(infoPtr,TB_THUMBTRACK | (infoPtr->nPos << 16)); 2150 2093 2151 2094 if (infoPtr->flags & TB_SHOW_TOOLTIP) … … 2156 2099 2157 2100 ti.cbSize = sizeof(TTTOOLINFOA); 2158 ti.hwnd = hwnd;2101 ti.hwnd = infoPtr->hwnd; 2159 2102 ti.uId = 0; 2160 2103 ti.hinst = 0; … … 2163 2106 2164 2107 SendMessageA(infoPtr->hwndToolTip,TTM_UPDATETIPTEXTA,0,(LPARAM)&ti); 2165 TRACKBAR_CalcToolTipPos( hwnd,dwStyle,infoPtr,&pt);2108 TRACKBAR_CalcToolTipPos(infoPtr,&pt); 2166 2109 SendMessageA(infoPtr->hwndToolTip,TTM_TRACKPOSITION,0,(LPARAM)MAKELPARAM(pt.x,pt.y)); 2167 2110 } … … 2171 2114 2172 2115 static LRESULT 2173 TRACKBAR_Enable(HWND hwnd,WPARAM wParam,LPARAM lParam) 2174 { 2175 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr(hwnd); 2116 TRACKBAR_Enable(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 2117 { 2176 2118 BOOL oldFocus = infoPtr->bFocus; 2177 2119 2178 if (wParam) infoPtr->bFocus = (GetFocus() == hwnd);2120 if (wParam) infoPtr->bFocus = (GetFocus() == infoPtr->hwnd); 2179 2121 else infoPtr->bFocus = FALSE; 2180 2122 2181 if (oldFocus != infoPtr->bFocus) TRACKBAR_Refresh( hwnd);2182 else TRACKBAR_UpdateThumbPosition( hwnd,infoPtr->nPos,TRUE);2123 if (oldFocus != infoPtr->bFocus) TRACKBAR_Refresh(infoPtr); 2124 else TRACKBAR_UpdateThumbPosition(infoPtr,infoPtr->nPos,TRUE); 2183 2125 2184 2126 return 0; … … 2186 2128 2187 2129 static LRESULT 2188 TRACKBAR_KeyDown (HWND hwnd, WPARAM wParam, LPARAM lParam) 2189 { 2190 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr(hwnd); 2130 TRACKBAR_KeyDown(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam) 2131 { 2191 2132 INT pos; 2192 2193 // TRACE (trackbar, "%x\n",wParam);2194 2133 2195 2134 if (infoPtr->flags & TB_DRAG_MODE) return TRUE; … … 2203 2142 if (infoPtr->nPos < infoPtr->nRangeMin) 2204 2143 infoPtr->nPos = infoPtr->nRangeMin; 2205 TRACKBAR_SendNotify( hwnd,TB_LINEUP);2144 TRACKBAR_SendNotify(infoPtr,TB_LINEUP); 2206 2145 break; 2207 2146 case VK_RIGHT: … … 2211 2150 if (infoPtr->nPos > infoPtr->nRangeMax) 2212 2151 infoPtr->nPos = infoPtr->nRangeMax; 2213 TRACKBAR_SendNotify (hwnd,TB_LINEDOWN);2152 TRACKBAR_SendNotify(infoPtr,TB_LINEDOWN); 2214 2153 break; 2215 2154 case VK_NEXT: … … 2218 2157 if (infoPtr->nPos > infoPtr->nRangeMax) 2219 2158 infoPtr->nPos = infoPtr->nRangeMax; 2220 TRACKBAR_SendNotify (hwnd,TB_PAGEUP);2159 TRACKBAR_SendNotify(infoPtr,TB_PAGEUP); 2221 2160 break; 2222 2161 case VK_PRIOR: … … 2225 2164 if (infoPtr->nPos < infoPtr->nRangeMin) 2226 2165 infoPtr->nPos = infoPtr->nRangeMin; 2227 TRACKBAR_SendNotify (hwnd,TB_PAGEDOWN);2166 TRACKBAR_SendNotify(infoPtr,TB_PAGEDOWN); 2228 2167 break; 2229 2168 case VK_HOME: 2230 2169 if (infoPtr->nPos == infoPtr->nRangeMin) return FALSE; 2231 2170 infoPtr->nPos = infoPtr->nRangeMin; 2232 TRACKBAR_SendNotify (hwnd,TB_TOP);2171 TRACKBAR_SendNotify(infoPtr,TB_TOP); 2233 2172 break; 2234 2173 case VK_END: 2235 2174 if (infoPtr->nPos == infoPtr->nRangeMax) return FALSE; 2236 2175 infoPtr->nPos = infoPtr->nRangeMax; 2237 TRACKBAR_SendNotify (hwnd,TB_BOTTOM);2176 TRACKBAR_SendNotify(infoPtr,TB_BOTTOM); 2238 2177 break; 2178 2179 default: 2180 return FALSE; 2239 2181 } 2240 2182 … … 2242 2184 { 2243 2185 infoPtr->flags |= TB_THUMBPOSCHANGED; 2244 TRACKBAR_UpdateThumbPosition( hwnd,pos,FALSE);2186 TRACKBAR_UpdateThumbPosition(infoPtr,pos,FALSE); 2245 2187 } 2246 2188 … … 2250 2192 2251 2193 static LRESULT 2252 TRACKBAR_KeyUp (HWND hwnd, WPARAM wParam) 2253 { 2254 TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr(hwnd); 2255 2194 TRACKBAR_KeyUp(TRACKBAR_INFO *infoPtr,WPARAM wParam) 2195 { 2256 2196 if (infoPtr->flags & TB_DRAG_MODE) return TRUE; 2257 2197 … … 2265 2205 case VK_HOME: 2266 2206 case VK_END: 2267 TRACKBAR_SendNotify (hwnd,TB_ENDTRACK);2207 TRACKBAR_SendNotify(infoPtr,TB_ENDTRACK); 2268 2208 } 2269 2209 return TRUE; 2270 2210 } 2271 2211 2212 static LRESULT 2213 TRACKBAR_StyleChanged(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPSTYLESTRUCT lParam) 2214 { 2215 TRACKBAR_CalcChannel(infoPtr); 2216 2217 return 0; 2218 } 2272 2219 2273 2220 static LRESULT WINAPI 2274 TRACKBAR_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) 2275 { 2276 switch (uMsg) 2277 { 2221 TRACKBAR_WindowProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam) 2222 { 2223 TRACKBAR_INFO *infoPtr; 2224 2225 if (uMsg == WM_CREATE) 2226 return TRACKBAR_Create(hwnd,wParam,lParam); 2227 2228 infoPtr = TRACKBAR_GetInfoPtr(hwnd); 2229 2230 if (!infoPtr) 2231 goto defproc; 2232 2233 switch (uMsg) 2234 { 2278 2235 case TBM_CLEARSEL: 2279 return TRACKBAR_ClearSel (hwnd, wParam,lParam);2236 return TRACKBAR_ClearSel(infoPtr,wParam,lParam); 2280 2237 2281 2238 case TBM_CLEARTICS: 2282 return TRACKBAR_ClearTics (hwnd, wParam,lParam);2239 return TRACKBAR_ClearTics(infoPtr,wParam,lParam); 2283 2240 2284 2241 case TBM_GETBUDDY: 2285 return TRACKBAR_GetBuddy (hwnd, wParam,lParam);2242 return TRACKBAR_GetBuddy(infoPtr,wParam,lParam); 2286 2243 2287 2244 case TBM_GETCHANNELRECT: 2288 return TRACKBAR_GetChannelRect (hwnd, wParam,lParam);2245 return TRACKBAR_GetChannelRect(infoPtr,wParam,lParam); 2289 2246 2290 2247 case TBM_GETLINESIZE: 2291 return TRACKBAR_GetLineSize (hwnd, wParam,lParam);2248 return TRACKBAR_GetLineSize(infoPtr,wParam,lParam); 2292 2249 2293 2250 case TBM_GETNUMTICS: 2294 return TRACKBAR_GetNumTics (hwnd, wParam,lParam);2251 return TRACKBAR_GetNumTics(infoPtr,wParam,lParam); 2295 2252 2296 2253 case TBM_GETPAGESIZE: 2297 return TRACKBAR_GetPageSize (hwnd, wParam,lParam);2254 return TRACKBAR_GetPageSize(infoPtr,wParam,lParam); 2298 2255 2299 2256 case TBM_GETPOS: 2300 return TRACKBAR_GetPos (hwnd, wParam,lParam);2257 return TRACKBAR_GetPos(infoPtr,wParam,lParam); 2301 2258 2302 2259 case TBM_GETPTICS: 2303 return TRACKBAR_GetPTics (hwnd);2260 return TRACKBAR_GetPTics(infoPtr); 2304 2261 2305 2262 case TBM_GETRANGEMAX: 2306 return TRACKBAR_GetRangeMax (hwnd, wParam,lParam);2263 return TRACKBAR_GetRangeMax(infoPtr,wParam,lParam); 2307 2264 2308 2265 case TBM_GETRANGEMIN: 2309 return TRACKBAR_GetRangeMin (hwnd, wParam,lParam);2266 return TRACKBAR_GetRangeMin(infoPtr,wParam,lParam); 2310 2267 2311 2268 case TBM_GETSELEND: 2312 return TRACKBAR_GetSelEnd (hwnd, wParam,lParam);2269 return TRACKBAR_GetSelEnd(infoPtr,wParam,lParam); 2313 2270 2314 2271 case TBM_GETSELSTART: 2315 return TRACKBAR_GetSelStart (hwnd, wParam,lParam);2272 return TRACKBAR_GetSelStart(infoPtr,wParam,lParam); 2316 2273 2317 2274 case TBM_GETTHUMBLENGTH: 2318 return TRACKBAR_GetThumbLength (hwnd, wParam,lParam);2275 return TRACKBAR_GetThumbLength(infoPtr,wParam,lParam); 2319 2276 2320 2277 case TBM_GETTHUMBRECT: 2321 return TRACKBAR_GetThumbRect (hwnd, wParam,lParam);2278 return TRACKBAR_GetThumbRect(infoPtr,wParam,lParam); 2322 2279 2323 2280 case TBM_GETTIC: 2324 return TRACKBAR_GetTic (hwnd, wParam,lParam);2281 return TRACKBAR_GetTic(infoPtr,wParam,lParam); 2325 2282 2326 2283 case TBM_GETTICPOS: 2327 return TRACKBAR_GetTicPos (hwnd, wParam,lParam);2284 return TRACKBAR_GetTicPos(infoPtr,wParam,lParam); 2328 2285 2329 2286 case TBM_GETTOOLTIPS: 2330 return TRACKBAR_GetToolTips (hwnd, wParam,lParam);2287 return TRACKBAR_GetToolTips(infoPtr,wParam,lParam); 2331 2288 2332 2289 case TBM_SETBUDDY: 2333 return TRACKBAR_SetBuddy (hwnd, wParam,lParam);2290 return TRACKBAR_SetBuddy(infoPtr,wParam,lParam); 2334 2291 2335 2292 case TBM_SETLINESIZE: 2336 return TRACKBAR_SetLineSize (hwnd, wParam,lParam);2293 return TRACKBAR_SetLineSize(infoPtr,wParam,lParam); 2337 2294 2338 2295 case TBM_SETPAGESIZE: 2339 return TRACKBAR_SetPageSize (hwnd, wParam,lParam);2296 return TRACKBAR_SetPageSize(infoPtr,wParam,lParam); 2340 2297 2341 2298 case TBM_SETPOS: 2342 return TRACKBAR_SetPos (hwnd, wParam,lParam);2299 return TRACKBAR_SetPos(infoPtr,wParam,lParam); 2343 2300 2344 2301 case TBM_SETRANGE: 2345 return TRACKBAR_SetRange (hwnd, wParam,lParam);2302 return TRACKBAR_SetRange(infoPtr,wParam,lParam); 2346 2303 2347 2304 case TBM_SETRANGEMAX: 2348 return TRACKBAR_SetRangeMax (hwnd, wParam,lParam);2305 return TRACKBAR_SetRangeMax(infoPtr,wParam,lParam); 2349 2306 2350 2307 case TBM_SETRANGEMIN: 2351 return TRACKBAR_SetRangeMin (hwnd, wParam,lParam);2308 return TRACKBAR_SetRangeMin(infoPtr,wParam,lParam); 2352 2309 2353 2310 case TBM_SETSEL: 2354 return TRACKBAR_SetSel (hwnd, wParam,lParam);2311 return TRACKBAR_SetSel(infoPtr,wParam,lParam); 2355 2312 2356 2313 case TBM_SETSELEND: 2357 return TRACKBAR_SetSelEnd (hwnd, wParam,lParam);2314 return TRACKBAR_SetSelEnd(infoPtr,wParam,lParam); 2358 2315 2359 2316 case TBM_SETSELSTART: 2360 return TRACKBAR_SetSelStart (hwnd, wParam,lParam);2317 return TRACKBAR_SetSelStart(infoPtr,wParam,lParam); 2361 2318 2362 2319 case TBM_SETTHUMBLENGTH: 2363 return TRACKBAR_SetThumbLength (hwnd, wParam,lParam);2320 return TRACKBAR_SetThumbLength(infoPtr,wParam,lParam); 2364 2321 2365 2322 case TBM_SETTIC: 2366 return TRACKBAR_SetTic (hwnd, wParam,lParam);2323 return TRACKBAR_SetTic(infoPtr,wParam,lParam); 2367 2324 2368 2325 case TBM_SETTICFREQ: 2369 return TRACKBAR_SetTicFreq (hwnd,wParam);2326 return TRACKBAR_SetTicFreq(infoPtr,wParam); 2370 2327 2371 2328 case TBM_SETTIPSIDE: 2372 return TRACKBAR_SetTipSide (hwnd, wParam,lParam);2329 return TRACKBAR_SetTipSide(infoPtr,wParam,lParam); 2373 2330 2374 2331 case TBM_SETTOOLTIPS: 2375 return TRACKBAR_SetToolTips (hwnd, wParam, lParam); 2376 2377 case TBM_SETUNICODEFORMAT: 2378 return TRACKBAR_SetUnicodeFormat(hwnd,wParam,lParam); 2332 return TRACKBAR_SetToolTips(infoPtr,wParam,lParam); 2379 2333 2380 2334 case WM_CAPTURECHANGED: 2381 return TRACKBAR_CaptureChanged (hwnd, wParam, lParam); 2382 2383 case WM_CREATE: 2384 return TRACKBAR_Create (hwnd, wParam, lParam); 2335 return TRACKBAR_CaptureChanged(infoPtr,wParam,lParam); 2385 2336 2386 2337 case WM_DESTROY: 2387 return TRACKBAR_Destroy (hwnd, wParam,lParam);2338 return TRACKBAR_Destroy(infoPtr,wParam,lParam); 2388 2339 2389 2340 case WM_ENABLE: 2390 return TRACKBAR_Enable( hwnd,wParam,lParam);2341 return TRACKBAR_Enable(infoPtr,wParam,lParam); 2391 2342 2392 2343 case WM_ERASEBKGND: … … 2397 2348 2398 2349 case WM_KEYDOWN: 2399 return TRACKBAR_KeyDown (hwnd, wParam,lParam);2350 return TRACKBAR_KeyDown(infoPtr,wParam,lParam); 2400 2351 2401 2352 case WM_KEYUP: 2402 return TRACKBAR_KeyUp (hwnd,wParam);2353 return TRACKBAR_KeyUp(infoPtr,wParam); 2403 2354 2404 2355 case WM_LBUTTONDOWN: 2405 return TRACKBAR_LButtonDown (hwnd, wParam,lParam);2356 return TRACKBAR_LButtonDown(infoPtr,wParam,lParam); 2406 2357 2407 2358 case WM_LBUTTONUP: 2408 return TRACKBAR_LButtonUp (hwnd, wParam,lParam);2359 return TRACKBAR_LButtonUp(infoPtr,wParam,lParam); 2409 2360 2410 2361 case WM_TIMER: 2411 return TRACKBAR_Timer( hwnd,wParam,lParam);2362 return TRACKBAR_Timer(infoPtr,wParam,lParam); 2412 2363 2413 2364 case WM_MOUSEMOVE: 2414 return TRACKBAR_MouseMove (hwnd, wParam,lParam);2365 return TRACKBAR_MouseMove(infoPtr,wParam,lParam); 2415 2366 2416 2367 case WM_PAINT: 2417 return TRACKBAR_Paint (hwnd,wParam);2368 return TRACKBAR_Paint(infoPtr,wParam); 2418 2369 2419 2370 case WM_SETFOCUS: 2420 return TRACKBAR_SetFocus (hwnd, wParam,lParam);2371 return TRACKBAR_SetFocus(infoPtr,wParam,lParam); 2421 2372 2422 2373 case WM_KILLFOCUS: 2423 return TRACKBAR_KillFocus (hwnd, wParam, lParam); 2374 return TRACKBAR_KillFocus(infoPtr,wParam,lParam); 2375 2376 case WM_STYLECHANGED: 2377 return TRACKBAR_StyleChanged(infoPtr,wParam,(LPSTYLESTRUCT)lParam); 2424 2378 2425 2379 case WM_SIZE: 2426 return TRACKBAR_Size (hwnd, wParam,lParam);2380 return TRACKBAR_Size(infoPtr,wParam,lParam); 2427 2381 2428 2382 case WM_WININICHANGE: 2429 return TRACKBAR_InitializeThumb (hwnd); 2383 return TRACKBAR_InitializeThumb(infoPtr); 2384 2385 case WM_SYSCOLORCHANGE: 2386 return TRACKBAR_InitColors(infoPtr,TRUE); 2430 2387 2431 2388 default: 2432 // if (uMsg >= WM_USER) 2433 // ERR (trackbar, "unknown msg %04x wp=%08x lp=%08lx\n", 2434 // uMsg, wParam, lParam); 2435 return defComCtl32ProcA (hwnd, uMsg, wParam, lParam); 2389 //if (uMsg >= WM_USER) 2390 // ERR (trackbar, "unknown msg %04x wp=%08x lp=%08lx\n", 2391 // uMsg, wParam, lParam); 2392 defproc: 2393 return defComCtl32ProcA(hwnd,uMsg,wParam,lParam); 2436 2394 } 2437 2395 return 0; … … 2442 2400 TRACKBAR_Register (VOID) 2443 2401 { 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 RegisterClassA(&wndClass);2402 WNDCLASSA wndClass; 2403 2404 ZeroMemory (&wndClass, sizeof(WNDCLASSA)); 2405 wndClass.style = CS_GLOBALCLASS; 2406 wndClass.lpfnWndProc = (WNDPROC)TRACKBAR_WindowProc; 2407 wndClass.cbClsExtra = 0; 2408 wndClass.cbWndExtra = sizeof(TRACKBAR_INFO *); 2409 wndClass.hCursor = LoadCursorA (0, IDC_ARROWA); 2410 wndClass.hbrBackground = (HBRUSH)(COLOR_3DFACE + 1); 2411 wndClass.lpszClassName = TRACKBAR_CLASSA; 2412 2413 RegisterClassA(&wndClass); 2456 2414 } 2457 2415 … … 2460 2418 TRACKBAR_Unregister (VOID) 2461 2419 { 2462 2463 } 2464 2420 UnregisterClassA (TRACKBAR_CLASSA, (HINSTANCE)NULL); 2421 } 2422
Note:
See TracChangeset
for help on using the changeset viewer.