MCPcopy Create free account
hub / github.com/SimHacker/micropolis / TrackInterval

Function TrackInterval

micropolis-activity/src/sim/w_inter.c:1465–1506  ·  view source on GitHub ↗
(intervalPtr, value)

Source from the content-addressed store, hash-verified

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
1479static void
1480TrackInterval(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 */

Callers 1

IntervalMouseProcFunction · 0.85

Calls 1

SetIntervalFunction · 0.85

Tested by

no test coverage detected