Commit abde0c21 authored by Nikolay Sivov's avatar Nikolay Sivov Committed by Alexandre Julliard

comctl32: Update ticks on TBM_SETRANGEMAX.

parent 668e44ab
...@@ -982,6 +982,43 @@ static void test_initial_state(void) ...@@ -982,6 +982,43 @@ static void test_initial_state(void)
expect(-1, ret); expect(-1, ret);
ret = SendMessage(hWnd, TBM_GETTICPOS, 0, 0); ret = SendMessage(hWnd, TBM_GETTICPOS, 0, 0);
expect(-1, ret); expect(-1, ret);
ret = SendMessage(hWnd, TBM_GETRANGEMIN, 0, 0);
expect(0, ret);
ret = SendMessage(hWnd, TBM_GETRANGEMAX, 0, 0);
expect(100, ret);
ret = SendMessage(hWnd, TBM_SETRANGEMAX, TRUE, 200);
expect(0, ret);
ret = SendMessage(hWnd, TBM_GETNUMTICS, 0, 0);
expect(2, ret);
DestroyWindow(hWnd);
}
static void test_TBS_AUTOTICKS(void)
{
HWND hWnd;
int ret;
hWnd = create_trackbar(TBS_AUTOTICKS, hWndParent);
ret = SendMessage(hWnd, TBM_GETNUMTICS, 0, 0);
expect(2, ret);
ret = SendMessage(hWnd, TBM_GETTIC, 0, 0);
expect(-1, ret);
ret = SendMessage(hWnd, TBM_GETTICPOS, 0, 0);
expect(-1, ret);
ret = SendMessage(hWnd, TBM_GETRANGEMIN, 0, 0);
expect(0, ret);
ret = SendMessage(hWnd, TBM_GETRANGEMAX, 0, 0);
expect(100, ret);
ret = SendMessage(hWnd, TBM_SETRANGEMAX, TRUE, 200);
expect(0, ret);
ret = SendMessage(hWnd, TBM_GETNUMTICS, 0, 0);
expect(201, ret);
DestroyWindow(hWnd); DestroyWindow(hWnd);
} }
...@@ -1031,6 +1068,7 @@ START_TEST(trackbar) ...@@ -1031,6 +1068,7 @@ START_TEST(trackbar)
test_tic_placement(hWndTrackbar); test_tic_placement(hWndTrackbar);
test_tool_tips(hWndTrackbar); test_tool_tips(hWndTrackbar);
test_unicode(hWndTrackbar); test_unicode(hWndTrackbar);
test_TBS_AUTOTICKS();
flush_sequences(sequences, NUM_MSG_SEQUENCE); flush_sequences(sequences, NUM_MSG_SEQUENCE);
DestroyWindow(hWndTrackbar); DestroyWindow(hWndTrackbar);
......
...@@ -1176,8 +1176,10 @@ TRACKBAR_SetRange (TRACKBAR_INFO *infoPtr, BOOL fRedraw, LONG lRange) ...@@ -1176,8 +1176,10 @@ TRACKBAR_SetRange (TRACKBAR_INFO *infoPtr, BOOL fRedraw, LONG lRange)
static inline LRESULT static inline LRESULT
TRACKBAR_SetRangeMax (TRACKBAR_INFO *infoPtr, BOOL fRedraw, LONG lMax) TRACKBAR_SetRangeMax (TRACKBAR_INFO *infoPtr, BOOL redraw, LONG lMax)
{ {
BOOL changed = infoPtr->lRangeMax != lMax;
infoPtr->lRangeMax = lMax; infoPtr->lRangeMax = lMax;
if (infoPtr->lPos > infoPtr->lRangeMax) { if (infoPtr->lPos > infoPtr->lRangeMax) {
infoPtr->lPos = infoPtr->lRangeMax; infoPtr->lPos = infoPtr->lRangeMax;
...@@ -1187,7 +1189,10 @@ TRACKBAR_SetRangeMax (TRACKBAR_INFO *infoPtr, BOOL fRedraw, LONG lMax) ...@@ -1187,7 +1189,10 @@ TRACKBAR_SetRangeMax (TRACKBAR_INFO *infoPtr, BOOL fRedraw, LONG lMax)
infoPtr->lPageSize = (infoPtr->lRangeMax - infoPtr->lRangeMin) / 5; infoPtr->lPageSize = (infoPtr->lRangeMax - infoPtr->lRangeMin) / 5;
if (infoPtr->lPageSize == 0) infoPtr->lPageSize = 1; if (infoPtr->lPageSize == 0) infoPtr->lPageSize = 1;
if (fRedraw) TRACKBAR_InvalidateAll(infoPtr); if (changed && (infoPtr->dwStyle & TBS_AUTOTICKS))
TRACKBAR_RecalculateTics (infoPtr);
if (redraw) TRACKBAR_InvalidateAll(infoPtr);
return 0; return 0;
} }
......
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