(intervalPtr, value)
| 1463 | ^ (intervalPtr->toValue < intervalPtr->fromValue)) { |
| 1464 | value = intervalPtr->toValue; |
| 1465 | } |
| 1466 | intervalPtr->trackValue = value; |
| 1467 | intervalPtr->trackWidth = intervalPtr->maxValue - intervalPtr->minValue; |
| 1468 | if (value <= intervalPtr->minValue) { |
| 1469 | intervalPtr->trackState = -1; |
| 1470 | } else if (value >= intervalPtr->maxValue) { |
| 1471 | intervalPtr->trackState = 1; |
| 1472 | } else { |
| 1473 | intervalPtr->trackState = 0; |
| 1474 | } |
| 1475 | SetInterval(intervalPtr, intervalPtr->minValue, intervalPtr->maxValue, 1); |
| 1476 | } |
| 1477 | |
| 1478 | |
| 1479 | static void |
| 1480 | TrackInterval(intervalPtr, value) |
| 1481 | register Interval *intervalPtr; /* Info about widget. */ |
| 1482 | int value; |
| 1483 | { |
| 1484 | int result; |
| 1485 | char string[20]; |
| 1486 | int min, max, delta, lastmin, lastmax; |
| 1487 | |
| 1488 | |
| 1489 | delta = value - intervalPtr->trackValue; |
| 1490 | if (delta == 0) return; |
| 1491 | |
| 1492 | intervalPtr->trackValue = value; |
| 1493 | |
| 1494 | min = intervalPtr->minValue; |
| 1495 | max = intervalPtr->maxValue; |
| 1496 | |
| 1497 | switch (intervalPtr->trackState) { |
| 1498 | case -1: /* left trench */ |
| 1499 | min += delta; |
| 1500 | if (min > max) max = min; |
| 1501 | break; |
| 1502 | case 1: /* right trench */ |
| 1503 | max += delta; |
| 1504 | if (min > max) min = max; |
| 1505 | break; |
| 1506 | case 0: /* center slider */ |
| 1507 | lastmin = min; lastmax = max; |
| 1508 | min += delta; max += delta; |
| 1509 | if ((max - min) != intervalPtr->trackWidth) { /* squished */ |
no test coverage detected