Ignore:
Timestamp:
May 22, 2000, 7:25:13 PM (25 years ago)
Author:
cbratschi
Message:

merged with Corel WINE 20000513, added new DPA_* functions

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 $ */
    22/*
    33 * Trackbar control
     
    5252#define SCALE_SPACE 1
    5353
    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
    5657
    5758#define CHANNEL_NOSEL_HEIGHT 4 //min no sel height
     
    7475#define TOOLTIP_YSPACE 5
    7576
    76 static BOOL TRACKBAR_SendNotify (HWND hwnd, UINT code);
    77 
    78 static void TRACKBAR_RecalculateTics (HWND hwnd,TRACKBAR_INFO *infoPtr,BOOL restoreOld)
     77static const WORD pattern[8] =
     78     {0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA};
     79
     80static BOOL TRACKBAR_SendNotify(TRACKBAR_INFO *infoPtr,UINT code);
     81
     82static void TRACKBAR_RecalculateTics(TRACKBAR_INFO *infoPtr,BOOL restoreOld)
    7983{
    8084    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
    8487    {
    8588      COMCTL32_Free(infoPtr->tics);
     
    9093    }
    9194
    92     if (restoreOld && !(dwStyle & TBS_AUTOTICKS) && infoPtr->tics != NULL)
     95    if (restoreOld && !(infoPtr->dwStyle & TBS_AUTOTICKS) && infoPtr->tics)
    9396    { //check old ticks
    9497      LPLONG oldTics = (LONG*)COMCTL32_Alloc(infoPtr->uNumTics*sizeof(DWORD));
     
    111114    }
    112115
    113     if (infoPtr->uTicFreq && (infoPtr->nRangeMax > infoPtr->nRangeMin) && (dwStyle & TBS_AUTOTICKS))
     116    if (infoPtr->uTicFreq && (infoPtr->nRangeMax > infoPtr->nRangeMin) && (infoPtr->dwStyle & TBS_AUTOTICKS))
    114117    {
    115118      //Tics without start and end tic
     
    168171    else if (pos < infoPtr->nRangeMin) pos = infoPtr->nRangeMin;
    169172
    170 //    TRACE (trackbar,"%.2f\n",pos);
    171173    return pos;
    172174}
     
    174176
    175177static VOID
    176 TRACKBAR_CalcChannel (HWND hwnd,TRACKBAR_INFO *infoPtr)
    177 {
    178     DWORD dwStyle = GetWindowLongA(hwnd,GWL_STYLE);
     178TRACKBAR_CalcChannel(TRACKBAR_INFO *infoPtr)
     179{
    179180    INT channelSize;
    180181    RECT lpRect,*channel = &infoPtr->rcChannel;
    181182    INT thumbDiff;
    182183
    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);
    186187    else channelSize = CHANNEL_NOSEL_HEIGHT;
    187188
    188189    thumbDiff = (infoPtr->uThumbLen-channelSize)/2;
    189190
    190     if (dwStyle & TBS_VERT)
     191    if (infoPtr->dwStyle & TBS_VERT)
    191192    {
    192193      channel->top    = lpRect.top+CHANNEL_SPACE;
    193194      channel->bottom = lpRect.bottom-CHANNEL_SPACE;
    194195
    195       if ((dwStyle & TBS_BOTH) || (dwStyle & TBS_NOTICKS))
     196      if ((infoPtr->dwStyle & TBS_BOTH) || (infoPtr->dwStyle & TBS_NOTICKS))
    196197      { //center
    197198        channel->left  = (lpRect.right-channelSize)/2;
    198199        channel->right = (lpRect.right+channelSize)/2;
    199       } else if (dwStyle & TBS_LEFT)
     200      } else if (infoPtr->dwStyle & TBS_LEFT)
    200201      {
    201202        channel->left  = lpRect.left+thumbDiff+CHANNEL_SCALE_SPACE;
     
    210211      channel->left = lpRect.left+CHANNEL_SPACE;
    211212      channel->right = lpRect.right-CHANNEL_SPACE;
    212       if ((dwStyle & TBS_BOTH) || (dwStyle & TBS_NOTICKS))
     213      if ((infoPtr->dwStyle & TBS_BOTH) || (infoPtr->dwStyle & TBS_NOTICKS))
    213214      { //center
    214215        channel->top    = (lpRect.bottom-channelSize)/2;
    215216        channel->bottom = (lpRect.bottom+channelSize)/2;
    216       } else if (dwStyle & TBS_TOP)
     217      } else if (infoPtr->dwStyle & TBS_TOP)
    217218      {
    218219        channel->top    = lpRect.top+thumbDiff+CHANNEL_SCALE_SPACE;
     
    226227}
    227228
    228 //Calculate thumb size
    229 
    230229static VOID
    231 TRACKBAR_CalcThumb(HWND hwnd,TRACKBAR_INFO *infoPtr)
     230TRACKBAR_CalcThumb(TRACKBAR_INFO *infoPtr)
    232231{
    233232    RECT *thumb;
     
    235234    int range, width;
    236235    int x,y;
    237     DWORD dwStyle = GetWindowLongA(hwnd,GWL_STYLE);
    238236    int thumbFactor = 2;
    239237
     
    241239    fullThumb = &infoPtr->rcFullThumb;
    242240    range = infoPtr->nRangeMax-infoPtr->nRangeMin;
    243     if (dwStyle & TBS_VERT)
     241    if (infoPtr->dwStyle & TBS_VERT)
    244242    {
    245243      width = infoPtr->rcChannel.bottom-infoPtr->rcChannel.top;
     
    252250      thumb->right = thumb->left+infoPtr->uThumbLen;
    253251      CopyRect(fullThumb,thumb);
    254       if (dwStyle & TBS_BOTH) return;
     252      if (infoPtr->dwStyle & TBS_BOTH) return;
    255253      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;
    257255    } else
    258256    {
     
    266264      thumb->bottom = thumb->top+infoPtr->uThumbLen;
    267265      CopyRect(fullThumb,thumb);
    268       if (dwStyle & TBS_BOTH) return;
     266      if (infoPtr->dwStyle & TBS_BOTH) return;
    269267      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;
    271269    }
    272270}
    273271
    274272static VOID
    275 TRACKBAR_CalcSelection (HWND hwnd, TRACKBAR_INFO *infoPtr)
     273TRACKBAR_CalcSelection(TRACKBAR_INFO *infoPtr)
    276274{
    277275    RECT *selection;
     
    285283    if ((range <= 0) || (selMin == selMax)) SetRectEmpty(selection);
    286284    else
    287         if (!(GetWindowLongA(hwnd, GWL_STYLE) & TBS_VERT))
     285        if (!(infoPtr->dwStyle & TBS_VERT))
    288286        {   //Horizontal
    289287            width = infoPtr->rcChannel.right-infoPtr->rcChannel.left;
     
    307305
    308306static VOID
    309 TRACKBAR_DrawHorizTic (TRACKBAR_INFO *infoPtr, HDC hdc, LONG ticPos,
    310                        int flags, COLORREF clrTic)
     307TRACKBAR_DrawHorizTic(TRACKBAR_INFO *infoPtr,HDC hdc,LONG ticPos,int flags,COLORREF clrTic)
    311308{
    312309    RECT rcChannel = infoPtr->rcChannel;
     
    386383
    387384static VOID
    388 TRACKBAR_DrawVertTic (TRACKBAR_INFO *infoPtr, HDC hdc, LONG ticPos,
    389                       int flags, COLORREF clrTic)
     385TRACKBAR_DrawVertTic(TRACKBAR_INFO *infoPtr,HDC hdc,LONG ticPos,int flags,COLORREF clrTic)
    390386{
    391387    RECT rcChannel = infoPtr->rcChannel;
     
    467463
    468464static VOID
    469 TRACKBAR_DrawTics (TRACKBAR_INFO *infoPtr, HDC hdc, LONG ticPos,
    470                    int flags, COLORREF clrTic)
     465TRACKBAR_DrawTics(TRACKBAR_INFO *infoPtr,HDC hdc,LONG ticPos,int flags,COLORREF clrTic)
    471466{
    472467    if (flags & TBS_VERT)
     
    489484//draw thumb, call only from draw!
    490485
    491 static VOID TRACKBAR_DrawThumb(TRACKBAR_INFO *infoPtr,HWND hwnd,HDC hdc,DWORD dwStyle)
    492 {
    493     if (!(dwStyle & TBS_NOTHUMB))
     486static VOID TRACKBAR_DrawThumb(TRACKBAR_INFO *infoPtr,HDC hdc)
     487{
     488    if (!(infoPtr->dwStyle & TBS_NOTHUMB))
    494489    {
    495490      HBRUSH hbr,hbrOld;
    496491      RECT thumb = infoPtr->rcThumb;
    497492
    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;
    500495      hbrOld = SelectObject(hdc,hbr);
    501496
    502       if (dwStyle & TBS_BOTH)
     497      if (infoPtr->dwStyle & TBS_BOTH)
    503498      {
    504499        DrawEdge(hdc,&thumb,EDGE_RAISED,BF_RECT | BF_ADJUST);
     
    509504        RECT triangle;  /* for correct shadows of thumb */
    510505
    511         if (dwStyle & TBS_VERT)
     506        if (infoPtr->dwStyle & TBS_VERT)
    512507        { //Vertical
    513508
    514           if (dwStyle & TBS_LEFT)
     509          if (infoPtr->dwStyle & TBS_LEFT)
    515510          {
    516511            HPEN oldPen,pen;
     
    606601        { //Horizontal
    607602
    608           if (dwStyle & TBS_TOP)
     603          if (infoPtr->dwStyle & TBS_TOP)
    609604          {
    610605            //Outline
     
    689684      }
    690685      SelectObject(hdc,hbrOld);
    691       DeleteObject(hbr);
     686      if (hbr != infoPtr->hbrThumb) DeleteObject(hbr);
    692687    }
    693688}
     
    695690//draw the trackbar
    696691
    697 static VOID TRACKBAR_Draw(HWND hwnd,HDC hdc)
    698 {
    699     TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
    700     DWORD dwStyle = GetWindowLongA(hwnd, GWL_STYLE);
     692static VOID TRACKBAR_Draw(TRACKBAR_INFO *infoPtr,HDC hdc)
     693{
    701694    RECT rcClient,rcChannel,rcSelection;
    702695    HBRUSH hBrush;
     
    705698    LRESULT cdctlres,cdres;
    706699
    707     GetClientRect(hwnd,&rcClient);
     700    GetClientRect(infoPtr->hwnd,&rcClient);
    708701
    709702    //Custom draw
     
    711704    cdraw.hdc          = hdc;
    712705    cdraw.dwItemSpec   = 0;
    713     cdraw.uItemState   = CDIS_DEFAULT;
     706    cdraw.uItemState   = infoPtr->bFocus ? CDIS_FOCUS:CDIS_DEFAULT;
    714707    cdraw.rc           = rcClient;
    715708    cdraw.lItemlParam  = 0;
    716709
    717     cdctlres = sendNotify(hwnd,NM_CUSTOMDRAW,&cdraw.hdr);
     710    cdctlres = sendNotify(infoPtr->hwnd,NM_CUSTOMDRAW,&cdraw.hdr);
    718711
    719712    if (cdctlres & CDRF_SKIPDEFAULT) return;
     
    734727      if (infoPtr->flags & TB_THUMBSIZECHANGED)
    735728      {
    736         TRACKBAR_CalcChannel(hwnd,infoPtr);
    737         TRACKBAR_CalcSelection(hwnd,infoPtr);
     729        TRACKBAR_CalcChannel(infoPtr);
     730        TRACKBAR_CalcSelection(infoPtr);
    738731      }
    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);
    742735    infoPtr->flags &= ~ (TB_THUMBCHANGED | TB_SELECTIONCHANGED | TB_DRAGPOSVALID);
    743736
     
    750743      cdraw.rc             = infoPtr->rcChannel;
    751744
    752       cdres = sendNotify(hwnd,NM_CUSTOMDRAW,&cdraw.hdr);
     745      cdres = sendNotify(infoPtr->hwnd,NM_CUSTOMDRAW,&cdraw.hdr);
    753746    } else cdres = 0;
    754747
     
    759752      DrawEdge(hdc,&rcChannel,EDGE_SUNKEN,BF_RECT | BF_ADJUST);
    760753
    761       if (dwStyle & TBS_ENABLESELRANGE)           /* fill the channel */
     754      if (infoPtr->dwStyle & TBS_ENABLESELRANGE)           /* fill the channel */
    762755      {
    763756        HBRUSH hbr = CreateSolidBrush(RGB(255,255,255));
    764757        FillRect(hdc,&rcChannel,hbr);
    765758        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)))
    768761           {
    769762             hbr = CreateSolidBrush (COLOR_HIGHLIGHT);
     
    777770        cdraw.dwDrawStage    = CDDS_ITEMPOSTPAINT;
    778771
    779         sendNotify(hwnd,NM_CUSTOMDRAW,&cdraw.hdr);
     772        sendNotify(infoPtr->hwnd,NM_CUSTOMDRAW,&cdraw.hdr);
    780773      }
    781774    }
     
    789782      SetRectEmpty(&cdraw.rc);
    790783
    791       cdres = sendNotify(hwnd,NM_CUSTOMDRAW,&cdraw.hdr);
     784      cdres = sendNotify(infoPtr->hwnd,NM_CUSTOMDRAW,&cdraw.hdr);
    792785    } else cdres = 0;
    793786
    794787    if (!(cdres & CDRF_SKIPDEFAULT))
    795788    {
    796       if (!(dwStyle & TBS_NOTICKS))
     789      if (!(infoPtr->dwStyle & TBS_NOTICKS))
    797790      {
    798         int ticFlags = dwStyle & 0x0f;
     791        int ticFlags = infoPtr->dwStyle & 0x0f;
    799792        COLORREF clrTic = GetSysColor(COLOR_3DDKSHADOW);
    800793        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;
    802795
    803796        //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)))
    805798        {
    806799          //draw all pixels at once -> much faster
    807           if (dwStyle & TBS_VERT)
     800          if (infoPtr->dwStyle & TBS_VERT)
    808801          {
    809802            if ((ticFlags & TBS_LEFT) || (ticFlags & TBS_BOTH))
     
    827820        TRACKBAR_DrawTics(infoPtr,hdc,0,ticFlags | TIC_RIGHTEDGE,clrTic);
    828821
    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)))
    832825              {
    833826                TRACKBAR_DrawTics(infoPtr,hdc,infoPtr->nSelMin,ticFlags | TIC_SELECTIONMARKMIN,clrTic);
     
    840833        cdraw.dwDrawStage    = CDDS_ITEMPOSTPAINT;
    841834
    842         sendNotify(hwnd,NM_CUSTOMDRAW,&cdraw.hdr);
     835        sendNotify(infoPtr->hwnd,NM_CUSTOMDRAW,&cdraw.hdr);
    843836      }
    844837    }
     
    852845      cdraw.rc             = infoPtr->rcFullThumb;
    853846
    854       cdres = sendNotify(hwnd,NM_CUSTOMDRAW,&cdraw.hdr);
     847      cdres = sendNotify(infoPtr->hwnd,NM_CUSTOMDRAW,&cdraw.hdr);
    855848    } else cdres = 0;
    856849
    857850    if (!(cdres & CDRF_SKIPDEFAULT))
    858851    {
    859       TRACKBAR_DrawThumb(infoPtr,hwnd,hdc,dwStyle);
     852      TRACKBAR_DrawThumb(infoPtr,hdc);
    860853
    861854      if (cdctlres & CDRF_NOTIFYITEMDRAW)
     
    863856        cdraw.dwDrawStage    = CDDS_ITEMPOSTPAINT;
    864857
    865         sendNotify(hwnd,NM_CUSTOMDRAW,&cdraw.hdr);
     858        sendNotify(infoPtr->hwnd,NM_CUSTOMDRAW,&cdraw.hdr);
    866859      }
    867860
    868861    }
    869862
    870     if (infoPtr->bFocus && IsWindowEnabled(hwnd)) DrawFocusRect(hdc,&rcClient);
     863    if (infoPtr->bFocus && IsWindowEnabled(infoPtr->hwnd)) DrawFocusRect(hdc,&rcClient);
    871864
    872865    if (cdctlres & CDRF_NOTIFYPOSTPAINT)
     
    874867      cdraw.dwDrawStage    = CDDS_POSTPAINT;
    875868      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);
    879872    }
    880873
     
    883876//update thumb position
    884877
    885 static VOID TRACKBAR_UpdateThumbPosition(HWND hwnd,INT lastPos,BOOL mustRedraw)
     878static VOID TRACKBAR_UpdateThumbPosition(TRACKBAR_INFO *infoPtr,INT lastPos,BOOL mustRedraw)
    886879{
    887880   HDC hdc;
    888    TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr(hwnd);
    889    DWORD dwStyle = GetWindowLongA(hwnd,GWL_STYLE);
    890881   RECT lastRect,newRect,updateRect;
    891882   HDC hdcCompatible;
     
    903894   if (!mustRedraw && (infoPtr->nPos == lastPos)) return;
    904895
    905    if (dwStyle & TBS_NOTHUMB) return;
    906 
    907    TRACKBAR_CalcThumb(hwnd,infoPtr);
     896   if (infoPtr->dwStyle & TBS_NOTHUMB) return;
     897
     898   TRACKBAR_CalcThumb(infoPtr);
    908899   infoPtr->flags &= ~TB_THUMBCHANGED;
    909900   newRect = infoPtr->rcFullThumb;
     
    923914   updateRect.top = MIN(lastRect.top,newRect.top);
    924915   updateRect.bottom = MAX(lastRect.bottom,newRect.bottom);
    925    hdc = GetDC(hwnd);
     916   hdc = GetDC(infoPtr->hwnd);
    926917   hdcCompatible = CreateCompatibleDC(hdc);
    927918   bitmap = CreateCompatibleBitmap(hdc,updateRect.right,updateRect.bottom);
    928919   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)
    931922   {
    932923     if ((lastRect.top > newRect.top) && (lastRect.top < newRect.bottom))
     
    954945   DeleteObject(bitmap);
    955946   DeleteDC(hdcCompatible);
    956    ReleaseDC(hwnd,hdc);
     947   ReleaseDC(infoPtr->hwnd,hdc);
    957948}
    958949
    959950//redraw everything
    960951
    961 static VOID TRACKBAR_Refresh (HWND hwnd)
     952static VOID TRACKBAR_Refresh(TRACKBAR_INFO *infoPtr)
    962953{
    963954   HDC hdc;
    964955
    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);
    968959}
    969960
    970961static VOID
    971 TRACKBAR_AlignBuddies (HWND hwnd, TRACKBAR_INFO *infoPtr)
    972 {
    973     DWORD dwStyle = GetWindowLongA(hwnd,GWL_STYLE);
    974     HWND hwndParent = GetParent(hwnd);
     962TRACKBAR_AlignBuddies(TRACKBAR_INFO *infoPtr)
     963{
     964    HWND hwndParent = GetParent(infoPtr->hwnd);
    975965    RECT rcSelf,rcBuddy;
    976966    INT x, y;
    977967
    978     GetWindowRect(hwnd,&rcSelf);
     968    GetWindowRect(infoPtr->hwnd,&rcSelf);
    979969    MapWindowPoints(HWND_DESKTOP,hwndParent,(LPPOINT)&rcSelf,2);
    980970
     
    984974      GetWindowRect(infoPtr->hwndBuddyLA,&rcBuddy);
    985975
    986       if (dwStyle & TBS_VERT)
     976      if (infoPtr->dwStyle & TBS_VERT)
    987977      { //above
    988978        x = (infoPtr->rcChannel.right+infoPtr->rcChannel.left)/2-(rcBuddy.right-rcBuddy.left)/2+rcSelf.left;
     
    1003993      GetWindowRect(infoPtr->hwndBuddyRB,&rcBuddy);
    1004994
    1005       if (dwStyle & TBS_VERT)
     995      if (infoPtr->dwStyle & TBS_VERT)
    1006996      { //below
    1007997        x = (infoPtr->rcChannel.right+infoPtr->rcChannel.left)/2-(rcBuddy.right-rcBuddy.left)/2+rcSelf.left;
     
    10171007}
    10181008
    1019 
    1020 static LRESULT
    1021 TRACKBAR_ClearSel (HWND hwnd, WPARAM wParam, LPARAM lParam)
    1022 {
    1023     TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
    1024 
     1009static LRESULT
     1010TRACKBAR_ClearSel(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1011{
    10251012    if (infoPtr->nSelMin != infoPtr->nSelMax)
    10261013    {
     
    10291016      infoPtr->flags |= TB_SELECTIONCHANGED;
    10301017
    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
     1024static LRESULT
     1025TRACKBAR_ClearTics(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1026{
     1027    if (!(infoPtr->dwStyle & (TBS_AUTOTICKS | TBS_NOTICKS))) return 0;
    10441028
    10451029    if (infoPtr->tics)
     
    10491033      infoPtr->uNumTics = 0;
    10501034
    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
     1042static LRESULT
     1043TRACKBAR_GetBuddy(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1044{
    10631045    if (wParam)
    10641046      return (LRESULT)infoPtr->hwndBuddyLA; //left or above
     
    10671049}
    10681050
    1069 
    1070 static LRESULT
    1071 TRACKBAR_GetChannelRect (HWND hwnd, WPARAM wParam, LPARAM lParam)
    1072 {
    1073     TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
     1051static LRESULT
     1052TRACKBAR_GetChannelRect(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1053{
    10741054    LPRECT lprc = (LPRECT)lParam;
    10751055
     
    10811061}
    10821062
    1083 
    1084 static LRESULT
    1085 TRACKBAR_GetLineSize (HWND hwnd, WPARAM wParam, LPARAM lParam)
    1086 {
    1087     TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
    1088 
     1063static LRESULT
     1064TRACKBAR_GetLineSize(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1065{
    10891066    return infoPtr->nLineSize;
    10901067}
     
    10921069
    10931070static 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;
     1071TRACKBAR_GetNumTics(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1072{
     1073    if (infoPtr->dwStyle & TBS_NOTICKS) return 0;
    10991074
    11001075    return infoPtr->uNumTics+2; //includes last and first tick
    11011076}
    11021077
    1103 
    1104 static LRESULT
    1105 TRACKBAR_GetPageSize (HWND hwnd, WPARAM wParam, LPARAM lParam)
    1106 {
    1107     TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
    1108 
     1078static LRESULT
     1079TRACKBAR_GetPageSize(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1080{
    11091081    return infoPtr->nPageSize;
    11101082}
     
    11121084
    11131085static LRESULT
    1114 TRACKBAR_GetPos (HWND hwnd, WPARAM wParam, LPARAM lParam)
    1115 {
    1116     TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
    1117 
     1086TRACKBAR_GetPos(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1087{
    11181088    return infoPtr->nPos;
    11191089}
     
    11211091
    11221092static LRESULT
    1123 TRACKBAR_GetRangeMax (HWND hwnd, WPARAM wParam, LPARAM lParam)
    1124 {
    1125     TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
    1126 
     1093TRACKBAR_GetRangeMax(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1094{
    11271095    return infoPtr->nRangeMax;
    11281096}
     
    11301098
    11311099static LRESULT
    1132 TRACKBAR_GetRangeMin (HWND hwnd, WPARAM wParam, LPARAM lParam)
    1133 {
    1134     TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
    1135 
     1100TRACKBAR_GetRangeMin(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1101{
    11361102    return infoPtr->nRangeMin;
    11371103}
     
    11391105
    11401106static LRESULT
    1141 TRACKBAR_GetSelEnd (HWND hwnd, WPARAM wParam, LPARAM lParam)
    1142 {
    1143     TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
    1144 
     1107TRACKBAR_GetSelEnd(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1108{
    11451109    return infoPtr->nSelMax;
    11461110}
     
    11481112
    11491113static LRESULT
    1150 TRACKBAR_GetSelStart (HWND hwnd, WPARAM wParam, LPARAM lParam)
    1151 {
    1152     TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
    1153 
     1114TRACKBAR_GetSelStart(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1115{
    11541116    return infoPtr->nSelMin;
    11551117}
     
    11571119
    11581120static LRESULT
    1159 TRACKBAR_GetThumbLength (HWND hwnd, WPARAM wParam, LPARAM lParam)
    1160 {
    1161     TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
    1162 
     1121TRACKBAR_GetThumbLength(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1122{
    11631123    return infoPtr->uThumbLen;
    11641124}
    11651125
    11661126static LRESULT
    1167 TRACKBAR_GetPTics (HWND hwnd)
    1168 {
    1169     TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
    1170 
     1127TRACKBAR_GetPTics(TRACKBAR_INFO *infoPtr)
     1128{
    11711129    return (LRESULT)infoPtr->tics;
    11721130}
    11731131
    11741132static LRESULT
    1175 TRACKBAR_GetThumbRect (HWND hwnd, WPARAM wParam, LPARAM lParam)
    1176 {
    1177     TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
     1133TRACKBAR_GetThumbRect(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1134{
    11781135    LPRECT lprc = (LPRECT)lParam;
    11791136
     
    11871144
    11881145static LRESULT
    1189 TRACKBAR_GetTic (HWND hwnd, WPARAM wParam, LPARAM lParam)
    1190 {
    1191     TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
     1146TRACKBAR_GetTic(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1147{
    11921148    INT iTic;
    11931149
     
    12011157
    12021158static LRESULT
    1203 TRACKBAR_GetTicPos (HWND hwnd, WPARAM wParam, LPARAM lParam)
    1204 {
    1205     TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
     1159TRACKBAR_GetTicPos(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1160{
    12061161    INT iTic, range, width, pos;
    12071162
     
    12191174
    12201175static 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)
     1176TRACKBAR_GetToolTips(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1177{
     1178    if (infoPtr->dwStyle & TBS_TOOLTIPS)
    12261179        return (LRESULT)infoPtr->hwndToolTip;
    12271180    return 0;
     
    12301183
    12311184static LRESULT
    1232 TRACKBAR_SetBuddy (HWND hwnd, WPARAM wParam, LPARAM lParam)
    1233 {
    1234     TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr(hwnd);
     1185TRACKBAR_SetBuddy(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1186{
    12351187    HWND hwndTemp;
    12361188
    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;
    12381190
    12391191    if (wParam)
     
    12491201    }
    12501202
    1251     TRACKBAR_AlignBuddies(hwnd,infoPtr);
     1203    TRACKBAR_AlignBuddies(infoPtr);
    12521204
    12531205    return (LRESULT)hwndTemp;
     
    12561208
    12571209static LRESULT
    1258 TRACKBAR_SetLineSize (HWND hwnd, WPARAM wParam, LPARAM lParam)
    1259 {
    1260     TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
     1210TRACKBAR_SetLineSize(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1211{
    12611212    INT nTemp = infoPtr->nLineSize;
    12621213
     
    12681219
    12691220static LRESULT
    1270 TRACKBAR_SetPageSize (HWND hwnd, WPARAM wParam, LPARAM lParam)
    1271 {
    1272     TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
     1221TRACKBAR_SetPageSize(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1222{
    12731223    INT nTemp = infoPtr->nPageSize;
    12741224
     
    12801230
    12811231static LRESULT
    1282 TRACKBAR_SetPos (HWND hwnd, WPARAM wParam, LPARAM lParam)
    1283 {
    1284     TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
     1232TRACKBAR_SetPos(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1233{
    12851234    INT lastPos = infoPtr->nPos;
    12861235
     
    12961245    infoPtr->flags |= TB_THUMBPOSCHANGED;
    12971246
    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
     1253static LRESULT
     1254TRACKBAR_SetRange(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1255{
    13081256    int newMin,newMax;
    1309     DWORD dwStyle = GetWindowLongA(hwnd,GWL_STYLE);
    13101257
    13111258    newMin = (INT)LOWORD(lParam);
     
    13601307    infoPtr->nPageSize = (infoPtr->nRangeMax-infoPtr->nRangeMin)/5;
    13611308    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
     1317static LRESULT
     1318TRACKBAR_SetRangeMax(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1319{
    13751320    if ((INT)lParam <= infoPtr->nRangeMin) return 0;
    13761321    if (infoPtr->nRangeMax == (INT)lParam) return 0;
     
    13851330    infoPtr->nPageSize = (infoPtr->nRangeMax-infoPtr->nRangeMin)/5;
    13861331    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
     1340static LRESULT
     1341TRACKBAR_SetRangeMin(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1342{
    14001343    if ((INT)lParam >= infoPtr->nRangeMax) return 0;
    14011344    if (infoPtr->nRangeMin == (INT)lParam) return 0;
     
    14101353    infoPtr->nPageSize = (infoPtr->nRangeMax-infoPtr->nRangeMin)/5;
    14111354    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
     1363static LRESULT
     1364TRACKBAR_SetTicFreq(TRACKBAR_INFO *infoPtr,WPARAM wParam)
     1365{
    14251366    if (infoPtr->uTicFreq == (UINT)wParam) return 0;
    14261367
    1427     if (!(GetWindowLongA(hwnd,GWL_STYLE) & TBS_AUTOTICKS)) return 0;
     1368    if (!(infoPtr->dwStyle & TBS_AUTOTICKS)) return 0;
    14281369
    14291370    infoPtr->uTicFreq = (UINT)wParam;
    14301371
    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
     1379static LRESULT
     1380TRACKBAR_SetSel(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1381{
    14431382    INT newMin,newMax,oldMin,oldMax;
    14441383
     
    14591398    if (infoPtr->nSelMin > infoPtr->nSelMax) infoPtr->nSelMin = infoPtr->nSelMax;
    14601399
    1461     if (!GetWindowLongA(hwnd, GWL_STYLE) & TBS_ENABLESELRANGE) return 0;
     1400    if (!(infoPtr->dwStyle & TBS_ENABLESELRANGE)) return 0;
    14621401
    14631402    if ((oldMin != newMin) || (oldMax != newMax))
    14641403    {
    14651404      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
     1411static LRESULT
     1412TRACKBAR_SetSelEnd(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1413{
    14771414    INT oldMax;
    14781415
     
    14871424    if (infoPtr->nSelMin > infoPtr->nSelMax) infoPtr->nSelMin = infoPtr->nSelMax;
    14881425
    1489     if (!GetWindowLongA(hwnd,GWL_STYLE) & TBS_ENABLESELRANGE) return 0;
     1426    if (!(infoPtr->dwStyle & TBS_ENABLESELRANGE)) return 0;
    14901427
    14911428    if (oldMax != infoPtr->nSelMax)
    14921429    {
    14931430      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
     1437static LRESULT
     1438TRACKBAR_SetSelStart(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1439{
    15051440    INT oldMin;
    15061441
     
    15151450    if (infoPtr->nSelMin > infoPtr->nSelMax) infoPtr->nSelMin = infoPtr->nSelMax;
    15161451
    1517     if (!GetWindowLongA(hwnd,GWL_STYLE) & TBS_ENABLESELRANGE) return 0;
     1452    if (!(infoPtr->dwStyle & TBS_ENABLESELRANGE)) return 0;
    15181453
    15191454    if (oldMin != infoPtr->nSelMin)
    15201455    {
    15211456      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
     1463static LRESULT
     1464TRACKBAR_SetThumbLength(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1465{
    15341466    if (infoPtr->uThumbLen == (UINT)wParam) return 0;
    15351467
    1536     if (GetWindowLongA(hwnd,GWL_STYLE) & TBS_FIXEDLENGTH) return 0;
     1468    if (infoPtr->dwStyle & TBS_FIXEDLENGTH) return 0;
    15371469
    15381470    infoPtr->uThumbLen = MAX((UINT)wParam,THUMB_MINLEN);
    15391471    infoPtr->flags |= TB_THUMBSIZECHANGED | TB_THUMBCHANGED;
    15401472
    1541     TRACKBAR_Refresh(hwnd);
     1473    TRACKBAR_Refresh(infoPtr);
    15421474
    15431475    return 0;
     
    15691501
    15701502static LRESULT
    1571 TRACKBAR_SetTic (HWND hwnd, WPARAM wParam, LPARAM lParam)
    1572 {
    1573     TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
     1503TRACKBAR_SetTic(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1504{
    15741505    INT nPos = (INT)lParam;
    15751506    INT x;
    15761507
    1577     if (!(GetWindowLongA(hwnd, GWL_STYLE) & (TBS_AUTOTICKS | TBS_NOTICKS))) return 0;
     1508    if (!(infoPtr->dwStyle & (TBS_AUTOTICKS | TBS_NOTICKS))) return 0;
    15781509
    15791510    if ((nPos < infoPtr->nRangeMin) || (nPos > infoPtr->nRangeMax)) return FALSE;
     
    15921523    TRACKBAR_QuickSort(infoPtr->tics,0,infoPtr->uNumTics-1);
    15931524
    1594     TRACKBAR_Refresh(hwnd);
     1525    TRACKBAR_Refresh(infoPtr);
    15951526
    15961527    return TRUE;
    15971528}
    15981529
    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);
     1530static LRESULT
     1531TRACKBAR_SetTipSide(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1532{
    16051533    INT fTemp = infoPtr->fLocation;
    16061534
    1607     if (dwStyle & TBS_VERT)
     1535    if (infoPtr->dwStyle & TBS_VERT)
    16081536    {
    16091537      if ((wParam == TBTS_LEFT) || (wParam == TBTS_RIGHT)) infoPtr->fLocation = (INT)wParam;
     
    16161544}
    16171545
    1618 
    1619 static LRESULT
    1620 TRACKBAR_SetToolTips (HWND hwnd, WPARAM wParam, LPARAM lParam)
    1621 {
    1622     TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
    1623 
     1546static LRESULT
     1547TRACKBAR_SetToolTips(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1548{
    16241549    infoPtr->hwndToolTip = (HWND)wParam;
    16251550
     
    16281553
    16291554static LRESULT
    1630 TRACKBAR_InitializeThumb (HWND hwnd)
    1631 {
    1632     TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
     1555TRACKBAR_InitializeThumb(TRACKBAR_INFO *infoPtr)
     1556{
    16331557    RECT clientRect;
    1634     DWORD dwStyle = GetWindowLongA(hwnd,GWL_STYLE);
    16351558    INT scaleSize;
    16361559
    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 */
    16391562
    16401563    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);
    16431566    else scaleSize += SCALE_SIZE+SCALE_SPACE;
    16441567
    1645     if (dwStyle & TBS_VERT)
     1568    if (infoPtr->dwStyle & TBS_VERT)
    16461569    {
    16471570      INT width = clientRect.right-clientRect.left;
     
    16551578    }
    16561579
    1657     TRACKBAR_CalcChannel(hwnd,infoPtr);
    1658     TRACKBAR_CalcThumb(hwnd,infoPtr);
     1580    TRACKBAR_CalcChannel(infoPtr);
     1581    TRACKBAR_CalcThumb(infoPtr);
    16591582
    16601583    infoPtr->flags &= ~TB_SELECTIONCHANGED;
     
    16631586}
    16641587
    1665 
    1666 static LRESULT
    1667 TRACKBAR_Create (HWND hwnd, WPARAM wParam, LPARAM lParam)
     1588static LRESULT
     1589TRACKBAR_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
     1599static LRESULT
     1600TRACKBAR_Create(HWND hwnd,WPARAM wParam,LPARAM lParam)
    16681601{
    16691602    TRACKBAR_INFO *infoPtr;
    1670     DWORD dwStyle = GetWindowLongA(hwnd,GWL_STYLE);
     1603    LOGBRUSH lb;
    16711604
    16721605    infoPtr = (TRACKBAR_INFO*)initControl(hwnd,sizeof(TRACKBAR_INFO));
    16731606
    16741607    /* set default values */
     1608    infoPtr->hwnd    = hwnd;
     1609    infoPtr->dwStyle = GetWindowLongA(hwnd,GWL_STYLE);;
     1610
    16751611    infoPtr->nRangeMin  = 0;
    16761612    infoPtr->nRangeMax  = 100;
     
    16841620    infoPtr->uTicFreq   = 1;
    16851621    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);
    16871630
    16881631    infoPtr->hwndBuddyLA = 0;
     
    16911634    infoPtr->bFocus      = FALSE;
    16921635
    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;
    16961639    } else
    16971640    {
    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);
    17021645
    17031646    /* Create tooltip control */
    1704     if (dwStyle & TBS_TOOLTIPS)
     1647    if (infoPtr->dwStyle & TBS_TOOLTIPS)
    17051648    {
    17061649      UINT uFlags = TTF_TRACK | TTF_ABSOLUTE;
    17071650
    1708       if (dwStyle & TBS_VERT)
     1651      if (infoPtr->dwStyle & TBS_VERT)
    17091652        if (infoPtr->fLocation == TBTS_RIGHT)
    17101653          uFlags |= TTF_ALIGNRIGHT | TTF_VCENTER;
     
    17231666}
    17241667
    1725 
    1726 static LRESULT
    1727 TRACKBAR_Destroy (HWND hwnd, WPARAM wParam, LPARAM lParam)
    1728 {
    1729     TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
     1668static LRESULT
     1669TRACKBAR_Destroy(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1670{
     1671    if (infoPtr->hbrThumb)
     1672      DeleteObject((HGDIOBJ)infoPtr->hbrThumb);
    17301673
    17311674    /* delete tooltip control */
     
    17331676
    17341677    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
     1683static VOID TRACKBAR_CalcToolTipPos(TRACKBAR_INFO *infoPtr,POINT *pt)
     1684{
     1685  if (infoPtr->dwStyle & TBS_VERT)
    17431686  {
    17441687    if (infoPtr->fLocation == TBTS_RIGHT)
     
    17641707    }
    17651708  }
    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
     1712static LRESULT
     1713TRACKBAR_LButtonDown(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1714{
    17741715    int clickPlace,prevPos,vertical;
    17751716    DOUBLE clickPos;
     
    17771718    POINT clickPoint;
    17781719
    1779     SetFocus (hwnd);
    1780 
    1781     vertical = dwStyle & TBS_VERT;
     1720    SetFocus(infoPtr->hwnd);
     1721
     1722    vertical = infoPtr->dwStyle & TBS_VERT;
    17821723    clickPoint.x = (INT)LOWORD(lParam);
    17831724    clickPoint.y = (INT)HIWORD(lParam);
     
    17931734         (clickPoint.y >= thumb.top) &&
    17941735         (clickPoint.y <= thumb.bottom) &&
    1795          (((dwStyle & TBS_BOTH) &&
     1736         (((infoPtr->dwStyle & TBS_BOTH) &&
    17961737           (clickPoint.x >= thumb.left) &&
    17971738           (clickPoint.x <= thumb.right)
    17981739          ) ||
    1799           ((dwStyle & TBS_LEFT) &&
     1740          ((infoPtr->dwStyle & TBS_LEFT) &&
    18001741           (clickPoint.x <= thumb.right) &&
    18011742           ((clickPoint.x >= thumb.left) ||
     
    18071748           )
    18081749          ) ||
    1809           (!(dwStyle & (TBS_BOTH | TBS_LEFT)) &&
     1750          (!(infoPtr->dwStyle & (TBS_BOTH | TBS_LEFT)) &&
    18101751           (clickPoint.x >= thumb.left) &&
    18111752           ((clickPoint.x <= thumb.right) ||
     
    18211762         (clickPoint.x >= thumb.left) &&
    18221763         (clickPoint.x <= thumb.right) &&
    1823          (((dwStyle & TBS_BOTH) &&
     1764         (((infoPtr->dwStyle & TBS_BOTH) &&
    18241765           (clickPoint.y >= thumb.top) &&
    18251766           (clickPoint.y <= thumb.bottom)
    18261767          ) ||
    1827           ((dwStyle & TBS_TOP) &&
     1768          ((infoPtr->dwStyle & TBS_TOP) &&
    18281769           (clickPoint.y <= thumb.bottom) &&
    18291770           ((clickPoint.y >= thumb.top) ||
     
    18351776           )
    18361777          ) ||
    1837           (!(dwStyle & (TBS_BOTH | TBS_TOP)) &&
     1778          (!(infoPtr->dwStyle & (TBS_BOTH | TBS_TOP)) &&
    18381779           (clickPoint.y >= thumb.top) &&
    18391780           ((clickPoint.y <= thumb.bottom) ||
     
    18481789       {
    18491790         infoPtr->flags |= TB_DRAG_MODE;
    1850          if (dwStyle & TBS_TOOLTIPS)
     1791         if (infoPtr->dwStyle & TBS_TOOLTIPS)
    18511792         {  /* enable tooltip */
    18521793           TTTOOLINFOA ti;
     
    18561797           ti.cbSize   = sizeof(TTTOOLINFOA);
    18571798           ti.uId      = 0;
    1858            ti.hwnd     = (UINT)hwnd;
     1799           ti.hwnd     = (UINT)infoPtr->hwnd;
    18591800           ti.hinst    = 0;
    1860            sprintf (buf,"%d",infoPtr->nPos);
     1801           sprintf (buf,"%ld",infoPtr->nPos);
    18611802           ti.lpszText = (LPSTR)buf;
    18621803
    18631804           infoPtr->flags |= TB_SHOW_TOOLTIP;
    1864            SetCapture(hwnd);
     1805           SetCapture(infoPtr->hwnd);
    18651806
    18661807           SendMessageA(infoPtr->hwndToolTip,TTM_UPDATETIPTEXTA,0,(LPARAM)&ti);
    1867            TRACKBAR_CalcToolTipPos(hwnd,dwStyle,infoPtr,&pt);
     1808           TRACKBAR_CalcToolTipPos(infoPtr,&pt);
    18681809           SendMessageA(infoPtr->hwndToolTip,TTM_TRACKPOSITION,0,(LPARAM)MAKELPARAM(pt.x,pt.y));
    18691810
    18701811           SendMessageA(infoPtr->hwndToolTip,TTM_TRACKACTIVATE,(WPARAM)TRUE,(LPARAM)&ti);
    18711812         }
    1872          SetCapture(hwnd);
    1873          TRACKBAR_UpdateThumbPosition(hwnd,infoPtr->nPos,TRUE); //change arrow color
     1813         SetCapture(infoPtr->hwnd);
     1814         TRACKBAR_UpdateThumbPosition(infoPtr,infoPtr->nPos,TRUE); //change arrow color
    18741815         return 0;
    18751816       }
     
    18831824              //ScrollMode
    18841825              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);
    18871828
    18881829              return 0;
     
    18961837      infoPtr->nPos += infoPtr->nPageSize;
    18971838      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);
    18991840    } else
    19001841    {  /* similar to VK_PRIOR */
    19011842      infoPtr->nPos -= infoPtr->nPageSize;
    19021843      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);
    19041845    }
    19051846
     
    19071848    {
    19081849      infoPtr->flags |= TB_THUMBPOSCHANGED;
    1909       TRACKBAR_UpdateThumbPosition(hwnd,prevPos,TRUE);
     1850      TRACKBAR_UpdateThumbPosition(infoPtr,prevPos,TRUE);
    19101851    }
    19111852
    19121853    //ScrollMode
    19131854    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
     1862static LRESULT
     1863TRACKBAR_LButtonUp(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1864{
    19261865    if (infoPtr->flags & TB_DRAG_MODE)
    19271866    {
    1928       TRACKBAR_SendNotify(hwnd,TB_ENDTRACK);
     1867      TRACKBAR_SendNotify(infoPtr,TB_ENDTRACK);
    19291868
    19301869      infoPtr->flags &= ~TB_DRAG_MODE;
    19311870
    1932       if (GetCapture() == hwnd)
     1871      if (GetCapture() == infoPtr->hwnd)
    19331872      {
    1934         sendNotify(hwnd,NM_RELEASEDCAPTURE);
     1873        sendNotify(infoPtr->hwnd,NM_RELEASEDCAPTURE);
    19351874
    19361875        ReleaseCapture();
    19371876      }
    19381877
    1939       TRACKBAR_UpdateThumbPosition(hwnd,infoPtr->nPos,TRUE); //change arrow color
     1878      TRACKBAR_UpdateThumbPosition(infoPtr,infoPtr->nPos,TRUE); //change arrow color
    19401879    }
    19411880
     
    19441883      infoPtr->flags &= ~TB_SCROLL_MODE;
    19451884
    1946       if (GetCapture() == hwnd)
     1885      if (GetCapture() == infoPtr->hwnd)
    19471886      {
    1948         sendNotify(hwnd,NM_RELEASEDCAPTURE);
     1887        sendNotify(infoPtr->hwnd,NM_RELEASEDCAPTURE);
    19491888
    19501889        ReleaseCapture();
    19511890      }
    19521891
    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)
    19571896    { /* disable tooltip */
    19581897      TTTOOLINFOA ti;
     
    19601899      ti.cbSize   = sizeof(TTTOOLINFOA);
    19611900      ti.uId      = 0;
    1962       ti.hwnd     = (UINT)hwnd;
     1901      ti.hwnd     = (UINT)infoPtr->hwnd;
    19631902
    19641903      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
     1910static LRESULT TRACKBAR_Timer(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1911{
    19761912  POINT mousePoint;
    19771913  INT mousePlace,prevPos,newPos,vertical;
     
    19791915
    19801916  GetCursorPos(&mousePoint);
    1981   ScreenToClient(hwnd,&mousePoint);
    1982 
    1983   vertical = dwStyle & TBS_VERT;
     1917  ScreenToClient(infoPtr->hwnd,&mousePoint);
     1918
     1919  vertical = infoPtr->dwStyle & TBS_VERT;
    19841920  if (vertical) mousePlace = mousePoint.y;
    19851921  else mousePlace = mousePoint.x;
     
    19961932      infoPtr->nPos += infoPtr->nPageSize;
    19971933      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);
    19991935    } else
    20001936    {  /* similar to VK_PRIOR */
    20011937      infoPtr->nPos -= infoPtr->nPageSize;
    20021938      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);
    20041940    }
    20051941
     
    20071943    {
    20081944      infoPtr->flags |= TB_THUMBPOSCHANGED;
    2009       TRACKBAR_UpdateThumbPosition(hwnd,prevPos,FALSE);
     1945      TRACKBAR_UpdateThumbPosition(infoPtr,prevPos,FALSE);
    20101946    }
    20111947
     
    20141950
    20151951static 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);
     1952TRACKBAR_CaptureChanged(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1953{
     1954    sendNotify(infoPtr->hwnd,NM_RELEASEDCAPTURE);
    20271955
    20281956    if (infoPtr->flags & TB_DRAGPOSVALID)
     
    20301958      int lastPos = infoPtr->nPos;
    20311959      infoPtr->nPos = infoPtr->dragPos;
    2032       if (lastPos != infoPtr->nPos) TRACKBAR_UpdateThumbPosition(hwnd,lastPos,TRUE);
     1960      if (lastPos != infoPtr->nPos) TRACKBAR_UpdateThumbPosition(infoPtr,lastPos,TRUE);
    20331961    }
    20341962
     
    20381966    {
    20391967      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
     1976static LRESULT
     1977TRACKBAR_Paint(TRACKBAR_INFO *infoPtr,WPARAM wParam)
    20501978{
    20511979    HDC hdc;
    20521980    PAINTSTRUCT ps;
    20531981
    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
     1989static LRESULT
     1990TRACKBAR_SetFocus(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     1991{
    20651992    HDC hdc;
    20661993    RECT rcClient;
    20671994
    2068 //    TRACE (trackbar,"\n");
    2069     if (!infoPtr->bFocus && IsWindowEnabled(hwnd))
     1995    if (!infoPtr->bFocus && IsWindowEnabled(infoPtr->hwnd))
    20701996    {
    20711997      infoPtr->bFocus = TRUE;
    20721998
    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
     2007static LRESULT
     2008TRACKBAR_KillFocus(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     2009{
    20862010    HDC hdc;
    20872011    RECT rcClient;
    20882012
    2089 //    TRACE (trackbar,"\n");
    20902013
    20912014    infoPtr->flags &= ~TB_DRAG_MODE;
    2092     if (infoPtr->bFocus && IsWindowEnabled(hwnd))
     2015    if (infoPtr->bFocus && IsWindowEnabled(infoPtr->hwnd))
    20932016    {
    20942017      infoPtr->bFocus = FALSE;
    20952018
    2096       GetClientRect(hwnd,&rcClient);
    2097       hdc = GetDC (hwnd);
     2019      GetClientRect(infoPtr->hwnd,&rcClient);
     2020      hdc = GetDC(infoPtr->hwnd);
    20982021      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
     2028static LRESULT
     2029TRACKBAR_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
     2063static BOOL TRACKBAR_SendNotify(TRACKBAR_INFO *infoPtr,UINT code)
     2064{
     2065  if (infoPtr->dwStyle & TBS_VERT)
     2066    return sendVScroll(infoPtr->hwnd,code);
    21212067  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
     2071static LRESULT
     2072TRACKBAR_MouseMove(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     2073{
    21312074    SHORT clickPlace;
    21322075    DOUBLE dragPos;
     
    21342077    if (!(infoPtr->flags & TB_DRAG_MODE)) return TRUE;
    21352078
    2136     if (dwStyle & TBS_VERT) clickPlace = (SHORT)HIWORD(lParam);
     2079    if (infoPtr->dwStyle & TBS_VERT) clickPlace = (SHORT)HIWORD(lParam);
    21372080    else clickPlace = (SHORT)LOWORD(lParam);
    21382081
    2139     dragPos = TRACKBAR_ConvertPlaceToPosition(infoPtr,clickPlace,dwStyle & TBS_VERT);
     2082    dragPos = TRACKBAR_ConvertPlaceToPosition(infoPtr,clickPlace,infoPtr->dwStyle & TBS_VERT);
    21402083    if (dragPos > ((INT)dragPos)+0.5) infoPtr->dragPos = dragPos + 1;
    21412084    else infoPtr->dragPos = dragPos;
     
    21452088    infoPtr->flags |= TB_DRAGPOSVALID;
    21462089
    2147     TRACKBAR_UpdateThumbPosition(hwnd,infoPtr->nPos,FALSE); //infoPtr->nPos now set
    2148 
    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));
    21502093
    21512094    if (infoPtr->flags & TB_SHOW_TOOLTIP)
     
    21562099
    21572100      ti.cbSize = sizeof(TTTOOLINFOA);
    2158       ti.hwnd = hwnd;
     2101      ti.hwnd = infoPtr->hwnd;
    21592102      ti.uId = 0;
    21602103      ti.hinst = 0;
     
    21632106
    21642107      SendMessageA(infoPtr->hwndToolTip,TTM_UPDATETIPTEXTA,0,(LPARAM)&ti);
    2165       TRACKBAR_CalcToolTipPos(hwnd,dwStyle,infoPtr,&pt);
     2108      TRACKBAR_CalcToolTipPos(infoPtr,&pt);
    21662109      SendMessageA(infoPtr->hwndToolTip,TTM_TRACKPOSITION,0,(LPARAM)MAKELPARAM(pt.x,pt.y));
    21672110    }
     
    21712114
    21722115static LRESULT
    2173 TRACKBAR_Enable(HWND hwnd,WPARAM wParam,LPARAM lParam)
    2174 {
    2175   TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr(hwnd);
     2116TRACKBAR_Enable(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     2117{
    21762118  BOOL oldFocus = infoPtr->bFocus;
    21772119
    2178   if (wParam) infoPtr->bFocus = (GetFocus() == hwnd);
     2120  if (wParam) infoPtr->bFocus = (GetFocus() == infoPtr->hwnd);
    21792121  else infoPtr->bFocus = FALSE;
    21802122
    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);
    21832125
    21842126  return 0;
     
    21862128
    21872129static LRESULT
    2188 TRACKBAR_KeyDown (HWND hwnd, WPARAM wParam, LPARAM lParam)
    2189 {
    2190     TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr(hwnd);
     2130TRACKBAR_KeyDown(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPARAM lParam)
     2131{
    21912132    INT pos;
    2192 
    2193 //    TRACE (trackbar, "%x\n",wParam);
    21942133
    21952134    if (infoPtr->flags & TB_DRAG_MODE) return TRUE;
     
    22032142        if (infoPtr->nPos < infoPtr->nRangeMin)
    22042143            infoPtr->nPos = infoPtr->nRangeMin;
    2205         TRACKBAR_SendNotify(hwnd,TB_LINEUP);
     2144        TRACKBAR_SendNotify(infoPtr,TB_LINEUP);
    22062145        break;
    22072146    case VK_RIGHT:
     
    22112150        if (infoPtr->nPos > infoPtr->nRangeMax)
    22122151            infoPtr->nPos = infoPtr->nRangeMax;
    2213         TRACKBAR_SendNotify (hwnd, TB_LINEDOWN);
     2152        TRACKBAR_SendNotify(infoPtr,TB_LINEDOWN);
    22142153        break;
    22152154    case VK_NEXT:
     
    22182157        if (infoPtr->nPos > infoPtr->nRangeMax)
    22192158            infoPtr->nPos = infoPtr->nRangeMax;
    2220         TRACKBAR_SendNotify (hwnd, TB_PAGEUP);
     2159        TRACKBAR_SendNotify(infoPtr,TB_PAGEUP);
    22212160        break;
    22222161    case VK_PRIOR:
     
    22252164        if (infoPtr->nPos < infoPtr->nRangeMin)
    22262165            infoPtr->nPos = infoPtr->nRangeMin;
    2227         TRACKBAR_SendNotify (hwnd, TB_PAGEDOWN);
     2166        TRACKBAR_SendNotify(infoPtr,TB_PAGEDOWN);
    22282167        break;
    22292168    case VK_HOME:
    22302169        if (infoPtr->nPos == infoPtr->nRangeMin) return FALSE;
    22312170        infoPtr->nPos = infoPtr->nRangeMin;
    2232         TRACKBAR_SendNotify (hwnd, TB_TOP);
     2171        TRACKBAR_SendNotify(infoPtr,TB_TOP);
    22332172        break;
    22342173    case VK_END:
    22352174        if (infoPtr->nPos == infoPtr->nRangeMax) return FALSE;
    22362175        infoPtr->nPos = infoPtr->nRangeMax;
    2237         TRACKBAR_SendNotify (hwnd, TB_BOTTOM);
     2176        TRACKBAR_SendNotify(infoPtr,TB_BOTTOM);
    22382177        break;
     2178
     2179      default:
     2180        return FALSE;
    22392181    }
    22402182
     
    22422184    {
    22432185      infoPtr->flags |= TB_THUMBPOSCHANGED;
    2244       TRACKBAR_UpdateThumbPosition(hwnd,pos,FALSE);
     2186      TRACKBAR_UpdateThumbPosition(infoPtr,pos,FALSE);
    22452187    }
    22462188
     
    22502192
    22512193static LRESULT
    2252 TRACKBAR_KeyUp (HWND hwnd, WPARAM wParam)
    2253 {
    2254     TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr(hwnd);
    2255 
     2194TRACKBAR_KeyUp(TRACKBAR_INFO *infoPtr,WPARAM wParam)
     2195{
    22562196    if (infoPtr->flags & TB_DRAG_MODE) return TRUE;
    22572197
     
    22652205    case VK_HOME:
    22662206    case VK_END:
    2267         TRACKBAR_SendNotify (hwnd, TB_ENDTRACK);
     2207        TRACKBAR_SendNotify(infoPtr,TB_ENDTRACK);
    22682208    }
    22692209    return TRUE;
    22702210}
    22712211
     2212static LRESULT
     2213TRACKBAR_StyleChanged(TRACKBAR_INFO *infoPtr,WPARAM wParam,LPSTYLESTRUCT lParam)
     2214{
     2215  TRACKBAR_CalcChannel(infoPtr);
     2216
     2217  return 0;
     2218}
    22722219
    22732220static LRESULT WINAPI
    2274 TRACKBAR_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
    2275 {
    2276     switch (uMsg)
    2277     {
     2221TRACKBAR_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  {
    22782235    case TBM_CLEARSEL:
    2279         return TRACKBAR_ClearSel (hwnd, wParam, lParam);
     2236        return TRACKBAR_ClearSel(infoPtr,wParam,lParam);
    22802237
    22812238    case TBM_CLEARTICS:
    2282         return TRACKBAR_ClearTics (hwnd, wParam, lParam);
     2239        return TRACKBAR_ClearTics(infoPtr,wParam,lParam);
    22832240
    22842241    case TBM_GETBUDDY:
    2285         return TRACKBAR_GetBuddy (hwnd, wParam, lParam);
     2242        return TRACKBAR_GetBuddy(infoPtr,wParam,lParam);
    22862243
    22872244    case TBM_GETCHANNELRECT:
    2288         return TRACKBAR_GetChannelRect (hwnd, wParam, lParam);
     2245        return TRACKBAR_GetChannelRect(infoPtr,wParam,lParam);
    22892246
    22902247    case TBM_GETLINESIZE:
    2291         return TRACKBAR_GetLineSize (hwnd, wParam, lParam);
     2248        return TRACKBAR_GetLineSize(infoPtr,wParam,lParam);
    22922249
    22932250    case TBM_GETNUMTICS:
    2294         return TRACKBAR_GetNumTics (hwnd, wParam, lParam);
     2251        return TRACKBAR_GetNumTics(infoPtr,wParam,lParam);
    22952252
    22962253    case TBM_GETPAGESIZE:
    2297         return TRACKBAR_GetPageSize (hwnd, wParam, lParam);
     2254        return TRACKBAR_GetPageSize(infoPtr,wParam,lParam);
    22982255
    22992256    case TBM_GETPOS:
    2300         return TRACKBAR_GetPos (hwnd, wParam, lParam);
     2257        return TRACKBAR_GetPos(infoPtr,wParam,lParam);
    23012258
    23022259    case TBM_GETPTICS:
    2303         return TRACKBAR_GetPTics (hwnd);
     2260        return TRACKBAR_GetPTics(infoPtr);
    23042261
    23052262    case TBM_GETRANGEMAX:
    2306         return TRACKBAR_GetRangeMax (hwnd, wParam, lParam);
     2263        return TRACKBAR_GetRangeMax(infoPtr,wParam,lParam);
    23072264
    23082265    case TBM_GETRANGEMIN:
    2309         return TRACKBAR_GetRangeMin (hwnd, wParam, lParam);
     2266        return TRACKBAR_GetRangeMin(infoPtr,wParam,lParam);
    23102267
    23112268    case TBM_GETSELEND:
    2312         return TRACKBAR_GetSelEnd (hwnd, wParam, lParam);
     2269        return TRACKBAR_GetSelEnd(infoPtr,wParam,lParam);
    23132270
    23142271    case TBM_GETSELSTART:
    2315         return TRACKBAR_GetSelStart (hwnd, wParam, lParam);
     2272        return TRACKBAR_GetSelStart(infoPtr,wParam,lParam);
    23162273
    23172274    case TBM_GETTHUMBLENGTH:
    2318         return TRACKBAR_GetThumbLength (hwnd, wParam, lParam);
     2275        return TRACKBAR_GetThumbLength(infoPtr,wParam,lParam);
    23192276
    23202277    case TBM_GETTHUMBRECT:
    2321         return TRACKBAR_GetThumbRect (hwnd, wParam, lParam);
     2278        return TRACKBAR_GetThumbRect(infoPtr,wParam,lParam);
    23222279
    23232280    case TBM_GETTIC:
    2324         return TRACKBAR_GetTic (hwnd, wParam, lParam);
     2281        return TRACKBAR_GetTic(infoPtr,wParam,lParam);
    23252282
    23262283    case TBM_GETTICPOS:
    2327         return TRACKBAR_GetTicPos (hwnd, wParam, lParam);
     2284        return TRACKBAR_GetTicPos(infoPtr,wParam,lParam);
    23282285
    23292286    case TBM_GETTOOLTIPS:
    2330         return TRACKBAR_GetToolTips (hwnd, wParam, lParam);
     2287        return TRACKBAR_GetToolTips(infoPtr,wParam,lParam);
    23312288
    23322289    case TBM_SETBUDDY:
    2333         return TRACKBAR_SetBuddy (hwnd, wParam, lParam);
     2290        return TRACKBAR_SetBuddy(infoPtr,wParam,lParam);
    23342291
    23352292    case TBM_SETLINESIZE:
    2336         return TRACKBAR_SetLineSize (hwnd, wParam, lParam);
     2293        return TRACKBAR_SetLineSize(infoPtr,wParam,lParam);
    23372294
    23382295    case TBM_SETPAGESIZE:
    2339         return TRACKBAR_SetPageSize (hwnd, wParam, lParam);
     2296        return TRACKBAR_SetPageSize(infoPtr,wParam,lParam);
    23402297
    23412298    case TBM_SETPOS:
    2342         return TRACKBAR_SetPos (hwnd, wParam, lParam);
     2299        return TRACKBAR_SetPos(infoPtr,wParam,lParam);
    23432300
    23442301    case TBM_SETRANGE:
    2345         return TRACKBAR_SetRange (hwnd, wParam, lParam);
     2302        return TRACKBAR_SetRange(infoPtr,wParam,lParam);
    23462303
    23472304    case TBM_SETRANGEMAX:
    2348         return TRACKBAR_SetRangeMax (hwnd, wParam, lParam);
     2305        return TRACKBAR_SetRangeMax(infoPtr,wParam,lParam);
    23492306
    23502307    case TBM_SETRANGEMIN:
    2351         return TRACKBAR_SetRangeMin (hwnd, wParam, lParam);
     2308        return TRACKBAR_SetRangeMin(infoPtr,wParam,lParam);
    23522309
    23532310    case TBM_SETSEL:
    2354         return TRACKBAR_SetSel (hwnd, wParam, lParam);
     2311        return TRACKBAR_SetSel(infoPtr,wParam,lParam);
    23552312
    23562313    case TBM_SETSELEND:
    2357         return TRACKBAR_SetSelEnd (hwnd, wParam, lParam);
     2314        return TRACKBAR_SetSelEnd(infoPtr,wParam,lParam);
    23582315
    23592316    case TBM_SETSELSTART:
    2360         return TRACKBAR_SetSelStart (hwnd, wParam, lParam);
     2317        return TRACKBAR_SetSelStart(infoPtr,wParam,lParam);
    23612318
    23622319    case TBM_SETTHUMBLENGTH:
    2363         return TRACKBAR_SetThumbLength (hwnd, wParam, lParam);
     2320        return TRACKBAR_SetThumbLength(infoPtr,wParam,lParam);
    23642321
    23652322    case TBM_SETTIC:
    2366         return TRACKBAR_SetTic (hwnd, wParam, lParam);
     2323        return TRACKBAR_SetTic(infoPtr,wParam,lParam);
    23672324
    23682325    case TBM_SETTICFREQ:
    2369         return TRACKBAR_SetTicFreq (hwnd, wParam);
     2326        return TRACKBAR_SetTicFreq(infoPtr,wParam);
    23702327
    23712328    case TBM_SETTIPSIDE:
    2372         return TRACKBAR_SetTipSide (hwnd, wParam, lParam);
     2329        return TRACKBAR_SetTipSide(infoPtr,wParam,lParam);
    23732330
    23742331    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);
    23792333
    23802334    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);
    23852336
    23862337    case WM_DESTROY:
    2387         return TRACKBAR_Destroy (hwnd, wParam, lParam);
     2338        return TRACKBAR_Destroy(infoPtr,wParam,lParam);
    23882339
    23892340    case WM_ENABLE:
    2390         return TRACKBAR_Enable(hwnd,wParam,lParam);
     2341        return TRACKBAR_Enable(infoPtr,wParam,lParam);
    23912342
    23922343    case WM_ERASEBKGND:
     
    23972348
    23982349    case WM_KEYDOWN:
    2399         return TRACKBAR_KeyDown (hwnd, wParam, lParam);
     2350        return TRACKBAR_KeyDown(infoPtr,wParam,lParam);
    24002351
    24012352    case WM_KEYUP:
    2402         return TRACKBAR_KeyUp (hwnd, wParam);
     2353        return TRACKBAR_KeyUp(infoPtr,wParam);
    24032354
    24042355    case WM_LBUTTONDOWN:
    2405         return TRACKBAR_LButtonDown (hwnd, wParam, lParam);
     2356        return TRACKBAR_LButtonDown(infoPtr,wParam,lParam);
    24062357
    24072358    case WM_LBUTTONUP:
    2408         return TRACKBAR_LButtonUp (hwnd, wParam, lParam);
     2359        return TRACKBAR_LButtonUp(infoPtr,wParam,lParam);
    24092360
    24102361    case WM_TIMER:
    2411         return TRACKBAR_Timer(hwnd,wParam,lParam);
     2362        return TRACKBAR_Timer(infoPtr,wParam,lParam);
    24122363
    24132364    case WM_MOUSEMOVE:
    2414         return TRACKBAR_MouseMove (hwnd, wParam, lParam);
     2365        return TRACKBAR_MouseMove(infoPtr,wParam,lParam);
    24152366
    24162367    case WM_PAINT:
    2417         return TRACKBAR_Paint (hwnd, wParam);
     2368        return TRACKBAR_Paint(infoPtr,wParam);
    24182369
    24192370    case WM_SETFOCUS:
    2420         return TRACKBAR_SetFocus (hwnd, wParam, lParam);
     2371        return TRACKBAR_SetFocus(infoPtr,wParam,lParam);
    24212372
    24222373    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);
    24242378
    24252379    case WM_SIZE:
    2426         return TRACKBAR_Size (hwnd, wParam, lParam);
     2380        return TRACKBAR_Size(infoPtr,wParam,lParam);
    24272381
    24282382    case WM_WININICHANGE:
    2429         return TRACKBAR_InitializeThumb (hwnd);
     2383        return TRACKBAR_InitializeThumb(infoPtr);
     2384
     2385    case WM_SYSCOLORCHANGE:
     2386        return TRACKBAR_InitColors(infoPtr,TRUE);
    24302387
    24312388    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);
    24362394    }
    24372395    return 0;
     
    24422400TRACKBAR_Register (VOID)
    24432401{
    2444     WNDCLASSA wndClass;
    2445 
    2446     ZeroMemory (&wndClass, sizeof(WNDCLASSA));
    2447     wndClass.style         = CS_GLOBALCLASS;
    2448     wndClass.lpfnWndProc   = (WNDPROC)TRACKBAR_WindowProc;
    2449     wndClass.cbClsExtra    = 0;
    2450     wndClass.cbWndExtra    = sizeof(TRACKBAR_INFO *);
    2451     wndClass.hCursor       = LoadCursorA (0, IDC_ARROWA);
    2452     wndClass.hbrBackground = (HBRUSH)(COLOR_3DFACE + 1);
    2453     wndClass.lpszClassName = TRACKBAR_CLASSA;
    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);
    24562414}
    24572415
     
    24602418TRACKBAR_Unregister (VOID)
    24612419{
    2462     UnregisterClassA (TRACKBAR_CLASSA, (HINSTANCE)NULL);
    2463 }
    2464 
     2420  UnregisterClassA (TRACKBAR_CLASSA, (HINSTANCE)NULL);
     2421}
     2422
Note: See TracChangeset for help on using the changeset viewer.