Commit dcaf1377 authored by Maxime Bellengé's avatar Maxime Bellengé Committed by Alexandre Julliard

Fix the computation of the trackbar's size.

parent 77fde137
/* /*
* Trackbar control * Trackbar control
* *
* Copyright 1998, 1999 Eric Kohl <ekohl@abo.rhein-zeitung.de> * Copyright 1998, 1999 Eric Kohl
* Copyright 1998, 1999 Alex Priem <alexp@sci.kun.nl> * Copyright 1998, 1999 Alex Priem
* Copyright 2002 Dimitrie O. Paun <dimi@bigfoot.com> * Copyright 2002 Dimitrie O. Paun
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
...@@ -231,13 +231,15 @@ TRACKBAR_CalcChannel (TRACKBAR_INFO *infoPtr) ...@@ -231,13 +231,15 @@ TRACKBAR_CalcChannel (TRACKBAR_INFO *infoPtr)
channel->top = lpRect.top + offsetedge; channel->top = lpRect.top + offsetedge;
channel->bottom = lpRect.bottom - offsetedge; channel->bottom = lpRect.bottom - offsetedge;
channel->left = lpRect.left + offsetthumb; channel->left = lpRect.left + offsetthumb;
if (dwStyle & (TBS_BOTH | TBS_LEFT)) channel->left += 8; if (dwStyle & (TBS_BOTH | TBS_LEFT))
channel->left += (lpRect.right-lpRect.left-offsetthumb-cyChannel)/2;
channel->right = channel->left + cyChannel; channel->right = channel->left + cyChannel;
} else { } else {
channel->left = lpRect.left + offsetedge; channel->left = lpRect.left + offsetedge;
channel->right = lpRect.right - offsetedge; channel->right = lpRect.right - offsetedge;
channel->top = lpRect.top + offsetthumb; channel->top = lpRect.top + offsetthumb;
if (dwStyle & (TBS_BOTH | TBS_TOP)) channel->top += 8; if (dwStyle & (TBS_BOTH | TBS_TOP))
channel->top += (lpRect.bottom-lpRect.top-offsetedge-cyChannel)/2;
channel->bottom = channel->top + cyChannel; channel->bottom = channel->top + cyChannel;
} }
} }
...@@ -247,18 +249,21 @@ TRACKBAR_CalcThumb (TRACKBAR_INFO *infoPtr, LONG lPos, RECT *thumb) ...@@ -247,18 +249,21 @@ TRACKBAR_CalcThumb (TRACKBAR_INFO *infoPtr, LONG lPos, RECT *thumb)
{ {
int range, width, thumbdepth; int range, width, thumbdepth;
DWORD dwStyle = GetWindowLongW (infoPtr->hwndSelf, GWL_STYLE); DWORD dwStyle = GetWindowLongW (infoPtr->hwndSelf, GWL_STYLE);
RECT lpRect;
range=infoPtr->lRangeMax - infoPtr->lRangeMin; range=infoPtr->lRangeMax - infoPtr->lRangeMin;
thumbdepth = ((int)(infoPtr->uThumbLen / 4.5) * 2) + 2; thumbdepth = ((int)(infoPtr->uThumbLen / 4.5) * 2) + 2;
if (!range) range = 1; if (!range) range = 1;
GetClientRect(infoPtr->hwndSelf, &lpRect);
if (dwStyle & TBS_VERT) if (dwStyle & TBS_VERT)
{ {
width=infoPtr->rcChannel.bottom - infoPtr->rcChannel.top; width=infoPtr->rcChannel.bottom - infoPtr->rcChannel.top;
if (dwStyle & (TBS_BOTH | TBS_LEFT)) if (dwStyle & (TBS_BOTH | TBS_LEFT))
thumb->left = 10; thumb->left = (lpRect.right - lpRect.bottom - infoPtr->uThumbLen)/2;
else else
thumb->left = 2; thumb->left = 2;
thumb->right = thumb -> left + infoPtr->uThumbLen; thumb->right = thumb -> left + infoPtr->uThumbLen;
...@@ -276,7 +281,7 @@ TRACKBAR_CalcThumb (TRACKBAR_INFO *infoPtr, LONG lPos, RECT *thumb) ...@@ -276,7 +281,7 @@ TRACKBAR_CalcThumb (TRACKBAR_INFO *infoPtr, LONG lPos, RECT *thumb)
thumbdepth/2; thumbdepth/2;
thumb->right = thumb->left + thumbdepth; thumb->right = thumb->left + thumbdepth;
if (dwStyle & (TBS_BOTH | TBS_TOP)) if (dwStyle & (TBS_BOTH | TBS_TOP))
thumb->top = 10; thumb->top = (lpRect.bottom - lpRect.top - infoPtr->uThumbLen)/2;
else else
thumb->top = 2; thumb->top = 2;
thumb->bottom = thumb->top + infoPtr->uThumbLen; thumb->bottom = thumb->top + infoPtr->uThumbLen;
...@@ -1208,7 +1213,10 @@ TRACKBAR_SetUnicodeFormat (TRACKBAR_INFO *infoPtr, BOOL fUnicode) ...@@ -1208,7 +1213,10 @@ TRACKBAR_SetUnicodeFormat (TRACKBAR_INFO *infoPtr, BOOL fUnicode)
static LRESULT static LRESULT
TRACKBAR_InitializeThumb (TRACKBAR_INFO *infoPtr) TRACKBAR_InitializeThumb (TRACKBAR_INFO *infoPtr)
{ {
infoPtr->uThumbLen = 23; /* initial thumb length */ /* initial thumb length */
RECT rect;
GetClientRect(infoPtr->hwndSelf,&rect);
infoPtr->uThumbLen = (rect.bottom - rect.top - 6);
TRACKBAR_CalcChannel (infoPtr); TRACKBAR_CalcChannel (infoPtr);
TRACKBAR_UpdateThumb (infoPtr); TRACKBAR_UpdateThumb (infoPtr);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment