Changeset 26
- Timestamp:
- Jan 18, 2001, 7:38:26 PM (25 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/helpers/winh.h
r25 r26 200 200 ULONG ulTickCount); 201 201 202 BOOL XWPENTRY winhSetSliderTicks(HWND hwndSlider, MPARAM mpEveryOther, ULONG ulPixels); 202 BOOL winhSetSliderTicks(HWND hwndSlider, 203 MPARAM mpEveryOther1, 204 ULONG ulPixels1, 205 MPARAM mpEveryOther2, 206 ULONG ulPixels2); 203 207 204 208 /* -
trunk/src/helpers/winh.c
r25 r26 591 591 * supported. 592 592 * 593 * If mpEveryOther is 0, this sets all ticks 594 * on the primary slider scale. 593 * This function goes sets the ticks twice, 594 * once with mpEveryOther1 and ulPixels1, 595 * and then a second time with mpEveryOther2 596 * and ulPixels2. This allows you to quickly 597 * give, say, every tenth item a taller tick. 598 * 599 * For every set, if mpEveryOther is 0, this sets 600 * all ticks on the primary slider scale. 595 601 * 596 602 * If mpEveryOther is != 0, SHORT1FROMMP … … 598 604 * SHORT2FROMMP specifies every other tick 599 605 * to set from there. For example: 606 * 600 607 + MPFROM2SHORT(9, 10) 608 * 601 609 * would set tick 9, 19, 29, and so forth. 602 610 * 611 * If both mpEveryOther and ulPixels are -1, 612 * that set is skipped. 613 * 614 * Example: Considering a slider with a 615 * primary scale from 0 to 30, using 616 * 617 + winhSetSliderTicks(hwndSlider, 618 + 0, // every tick 619 + 3, // to three pixels 620 + MPFROM2SHORT(9, 10) // then every tenth 621 + 6); // to six pixels. 622 * 603 623 * Returns FALSE upon errors. 604 624 * 605 625 *@@added V0.9.1 (99-12-04) [umoeller] 606 */ 607 608 BOOL winhSetSliderTicks(HWND hwndSlider, 609 MPARAM mpEveryOther, 610 ULONG ulPixels) 626 *@@changed V0.9.7 (2001-01-18) [umoeller]: added second set 627 */ 628 629 BOOL winhSetSliderTicks(HWND hwndSlider, // in: linear slider 630 MPARAM mpEveryOther1, // in: set 1 631 ULONG ulPixels1, 632 MPARAM mpEveryOther2, // in: set 2 633 ULONG ulPixels2) 611 634 { 612 635 BOOL brc = FALSE; 613 636 614 if (mpEveryOther == 0) 615 { 616 // set all ticks: 617 brc = (BOOL)WinSendMsg(hwndSlider, 618 SLM_SETTICKSIZE, 619 MPFROM2SHORT(SMA_SETALLTICKS, 620 ulPixels), 621 NULL); 622 } 623 else 624 { 625 SLDCDATA slcd; 626 WNDPARAMS wp; 627 memset(&wp, 0, sizeof(WNDPARAMS)); 628 wp.fsStatus = WPM_CTLDATA; 629 wp.cbCtlData = sizeof(slcd); 630 wp.pCtlData = &slcd; 631 // get primary scale data from the slider 632 if (WinSendMsg(hwndSlider, 633 WM_QUERYWINDOWPARAMS, 634 (MPARAM)&wp, 635 0)) 637 ULONG ulSet; 638 MPARAM mpEveryOther = mpEveryOther1; 639 ULONG ulPixels = ulPixels1; 640 641 // do this twice 642 for (ulSet = 0; 643 ulSet < 2; 644 ulSet++) 645 { 646 if (mpEveryOther == 0) 636 647 { 637 USHORT usStart = SHORT1FROMMP(mpEveryOther), 638 usEveryOther = SHORT2FROMMP(mpEveryOther); 639 640 USHORT usScale1Max = slcd.usScale1Increments, 641 us; 642 643 brc = TRUE; 644 645 for (us = usStart; us < usScale1Max; us += usEveryOther) 648 // set all ticks: 649 brc = (BOOL)WinSendMsg(hwndSlider, 650 SLM_SETTICKSIZE, 651 MPFROM2SHORT(SMA_SETALLTICKS, 652 ulPixels), 653 NULL); 654 } 655 else if ( (mpEveryOther != (MPARAM)-1) && (ulPixels != -1) ) 656 { 657 SLDCDATA slcd; 658 WNDPARAMS wp; 659 memset(&wp, 0, sizeof(WNDPARAMS)); 660 wp.fsStatus = WPM_CTLDATA; 661 wp.cbCtlData = sizeof(slcd); 662 wp.pCtlData = &slcd; 663 // get primary scale data from the slider 664 if (WinSendMsg(hwndSlider, 665 WM_QUERYWINDOWPARAMS, 666 (MPARAM)&wp, 667 0)) 646 668 { 647 if (!(BOOL)WinSendMsg(hwndSlider, 648 SLM_SETTICKSIZE, 649 MPFROM2SHORT(us, 650 ulPixels), 651 NULL)) 669 USHORT usStart = SHORT1FROMMP(mpEveryOther), 670 usEveryOther = SHORT2FROMMP(mpEveryOther); 671 672 USHORT usScale1Max = slcd.usScale1Increments, 673 us; 674 675 brc = TRUE; 676 677 for (us = usStart; us < usScale1Max; us += usEveryOther) 652 678 { 653 brc = FALSE; 654 break; 679 if (!(BOOL)WinSendMsg(hwndSlider, 680 SLM_SETTICKSIZE, 681 MPFROM2SHORT(us, 682 ulPixels), 683 NULL)) 684 { 685 brc = FALSE; 686 break; 687 } 655 688 } 656 689 } 657 690 } 658 } 691 692 // for the second loop, use second value set 693 mpEveryOther = mpEveryOther2; 694 ulPixels = ulPixels2; 695 // we only loop twice 696 } // end for (ulSet = 0; ulSet < 2; 659 697 660 698 return (brc);
Note:
See TracChangeset
for help on using the changeset viewer.