home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume9 / xterm / part01 / scrollbar.h < prev    next >
Encoding:
C/C++ Source or Header  |  1987-04-19  |  2.9 KB  |  85 lines

  1. /*
  2.  *    $Source: /u1/X/xterm/RCS/scrollbar.h,v $
  3.  *    $Header: scrollbar.h,v 10.100 86/12/01 14:40:30 jg Rel $
  4.  */
  5.  
  6. /* @(#)scrollbar.h       X10/6.6B 12/26/86 */
  7. #define    BARSTART        (2 * BUTTONHEIGHT)
  8. #define    BUTTONHEIGHT        SCROLLBARWIDTH
  9. #define    HILITED            1
  10. #define    MINSCROLLBARHEIGHT    (BARSTART + 32)
  11. #define    NBUTTONBITMAPS        (BUTTON_NORMAL / 2 + 1)
  12. #define    NSAVESTATES        2
  13. #define    PAUSETIME        (1000000L / 5)
  14. #define    SAVELINES        64
  15. #define    SCROLLBARWIDTH        20
  16. #define    STEPTIME        (1000000L / 10)
  17.  
  18. /*
  19.  * the first four must be consecutive and at the bottom
  20.  */
  21. #define    BUTTON_UPLINE        0
  22. #define    BUTTON_UPLINEHI        (BUTTON_UPLINE | HILITED)
  23. #define    BUTTON_DOWNLINE        (BUTTON_UPLINE + 2)
  24. #define    BUTTON_DOWNLINEHI    (BUTTON_DOWNLINE | HILITED)
  25. #define    BUTTON_UPPAGE        (BUTTON_DOWNLINE + 2)
  26. #define    BUTTON_UPPAGEHI        (BUTTON_UPPAGE | HILITED)
  27. #define    BUTTON_DOWNPAGE        (BUTTON_UPPAGE + 2)
  28. #define    BUTTON_DOWNPAGEHI    (BUTTON_DOWNPAGE | HILITED)
  29. #define    BUTTON_TOP        (BUTTON_DOWNPAGE + 2)
  30. #define    BUTTON_TOPHI        (BUTTON_TOP | HILITED)
  31. #define    BUTTON_BOTTOM        (BUTTON_TOP + 2)
  32. #define    BUTTON_BOTTOMHI        (BUTTON_BOTTOM | HILITED)
  33. #define    BUTTON_NORMAL        (BUTTON_BOTTOM + 2)
  34.  
  35. #define    SAVE_OFF        0
  36. #define    SAVE_ON            1
  37.  
  38. #define    HIDE            1
  39. #define    NONE            0
  40. #define    SHOW            2
  41.  
  42. #define    GetButtonState(sb)        (sb->buttonset)
  43. #define    GetSaveState(sb)        (sb->saveset)
  44. #define    GetScrollBarBottom(sb)        (sb->set.bottomvalue)
  45. #define    GetScrollBarRegion(sb)        (sb->set.regionheight)
  46. #define    GetScrollBarTop(sb)        (sb->set.topvalue)
  47. #define    GetScrollBarValue(sb)        (sb->set.value)
  48. #define    SetScrollBarBottom(sb,bot)    sb->set.bottomvalue = (bot)
  49. #define    SetScrollBarRegion(sb,reg)    sb->set.regionheight = (reg)
  50. #define    SetScrollBarTop(sb,top)        sb->set.topvalue = (top)
  51. #define    SetScrollBarValue(sb,val)    sb->set.value = (val)
  52.  
  53. struct scroll_region {
  54.     int value;            /* value at top of region */
  55.     int regionheight;        /* region height below value */
  56.     int topvalue;            /* of scroll area */
  57.     int bottomvalue;        /* of scroll area */
  58.     int height;            /* of scroll area */
  59.     int y;                /* y position of region */
  60.     int pixelheight;        /* height in pixel of region */
  61. };
  62.  
  63. typedef struct scroll_bar {
  64.     int visible;                /* scrollbar visible */
  65.     int buttonstate;            /* current button state */
  66.     int buttonset;                /* requested button state */
  67.     int savestate;                /* current save state */
  68.     int saveset;                /* requested save state */
  69.     int regionvisible;            /* region visible */
  70.     int action;                /* state is changing */
  71.     Window bar;                /* main scrollbar window */
  72.     Window button;                /* button window */
  73.     Window save;                /* save state window */
  74.     Window region;                /* region window */
  75.     Cursor cursor;                /* scrollbar cursor */
  76.     short *buttonbits[NBUTTONBITMAPS];    /* button state bitmaps */
  77.     short *savebits[NSAVESTATES];        /* save state bitmaps */
  78.     int fg;                    /* foreground color */
  79.     int bg;                    /* background color */
  80.     struct scroll_region state;        /* current region state */
  81.     struct scroll_region set;        /* requested region state */
  82. } ScrollBar;
  83.  
  84. ScrollBar *CreateScrollBar();
  85.