home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / programming / oslib / oslib_1 / OSLib / Toolbox / h / numberrang < prev    next >
Encoding:
Text File  |  1995-09-05  |  7.6 KB  |  244 lines

  1. #ifndef numberrange_H
  2. #define numberrange_H
  3.  
  4. /* C header file for NumberRange
  5.  * written by DefMod (Aug 30 1995) on Tue Sep  5 16:29:13 1995
  6.  * Jonathan Coxhead, Acorn Computers Ltd
  7.  */
  8.  
  9. #ifndef types_H
  10. #include "types.h"
  11. #endif
  12.  
  13. #ifndef toolbox_H
  14. #include "toolbox.h"
  15. #endif
  16.  
  17. #ifndef gadget_H
  18. #include "gadget.h"
  19. #endif
  20.  
  21. /**********************************
  22.  * SWI names and SWI reason codes *
  23.  **********************************/
  24. #undef  NumberRange_SetValue
  25. #define NumberRange_SetValue                    0x340
  26. #undef  NumberRange_GetValue
  27. #define NumberRange_GetValue                    0x341
  28. #undef  NumberRange_SetBounds
  29. #define NumberRange_SetBounds                   0x342
  30. #undef  NumberRange_GetBounds
  31. #define NumberRange_GetBounds                   0x343
  32. #undef  NumberRange_GetComponents
  33. #define NumberRange_GetComponents               0x344
  34.  
  35. /************************************
  36.  * Structure and union declarations *
  37.  ************************************/
  38. typedef struct numberrange_gadget               numberrange_gadget;
  39. typedef struct numberrange_action_value_changed numberrange_action_value_changed;
  40.  
  41. /********************
  42.  * Type definitions *
  43.  ********************/
  44. struct numberrange_gadget
  45.    {  int lower_bound;
  46.       int upper_bound;
  47.       int step_size;
  48.       int initial_value;
  49.       int precision;
  50.       toolbox_c prev;
  51.       toolbox_c next;
  52.       int display_length;
  53.    };
  54.  
  55. typedef bits numberrange_bounds_flags;
  56.  
  57. struct numberrange_action_value_changed
  58.    {  int new_value;
  59.    };
  60.  
  61. /************************
  62.  * Constant definitions *
  63.  ************************/
  64. #define class_NUMBER_RANGE                      ((toolbox_class) 0x340u)
  65. #define numberrange_GENERATE_VALUE_CHANGED      ((gadget_flags) 0x1u)
  66. #define numberrange_WRITABLE                    ((gadget_flags) 0x4u)
  67. #define numberrange_HAS_NUMERICAL_DISPLAY       ((gadget_flags) 0x8u)
  68. #define numberrange_ADJUSTERS                   ((gadget_flags) 0x10u)
  69. #define numberrange_SLIDER_TYPE                 ((gadget_flags) 0xE0u)
  70. #define numberrange_SLIDER_TYPE_SHIFT           5
  71. #define numberrange_SLIDER_TYPE_NONE            0
  72. #define numberrange_SLIDER_TYPE_RIGHT           1
  73. #define numberrange_SLIDER_TYPE_LEFT            2
  74. #define numberrange_RJUSTIFIED                  ((gadget_flags) 0x100u)
  75. #define numberrange_HCENTRED                    ((gadget_flags) 0x200u)
  76. #define numberrange_KNOB_COLOUR                 ((gadget_flags) 0xF000u)
  77. #define numberrange_KNOB_COLOUR_SHIFT           12
  78. #define numberrange_WELL_COLOUR                 ((gadget_flags) 0xF0000u)
  79. #define numberrange_WELL_COLOUR_SHIFT           16
  80. #define numberrange_GET_NUMERICAL_FIELD         0x1u
  81. #define numberrange_GET_LEFT_ADJUSTER           0x2u
  82. #define numberrange_GET_RIGHT_ADJUSTER          0x4u
  83. #define numberrange_GET_SLIDER                  0x8u
  84. #define numberrange_BOUND_LOWER                 ((numberrange_bounds_flags) 0x1u)
  85. #define numberrange_BOUND_UPPER                 ((numberrange_bounds_flags) 0x2u)
  86. #define numberrange_BOUND_STEP                  ((numberrange_bounds_flags) 0x4u)
  87. #define numberrange_BOUND_PRECISION             ((numberrange_bounds_flags) 0x8u)
  88. #define action_NUMBER_RANGE_VALUE_CHANGED       0x8288Du
  89.  
  90. /*************************
  91.  * Function declarations *
  92.  *************************/
  93.  
  94. #ifdef __cplusplus
  95.    extern "C" {
  96. #endif
  97.  
  98. /* ------------------------------------------------------------------------
  99.  * Function:      numberrange_set_value()
  100.  *
  101.  * Description:   Calls reason code 832 of SWI 0x44EC6
  102.  *
  103.  * Input:         flags - value of R0 on entry
  104.  *                window - value of R1 on entry
  105.  *                number_range - value of R3 on entry
  106.  *                value - value of R4 on entry
  107.  *
  108.  * Other notes:   Before entry, R2 = 0x340.
  109.  */
  110.  
  111. extern os_error *xnumberrange_set_value (bits flags,
  112.       toolbox_o window,
  113.       toolbox_c number_range,
  114.       int value);
  115. extern void numberrange_set_value (bits flags,
  116.       toolbox_o window,
  117.       toolbox_c number_range,
  118.       int value);
  119.  
  120. /* ------------------------------------------------------------------------
  121.  * Function:      numberrange_get_value()
  122.  *
  123.  * Description:   Calls reason code 833 of SWI 0x44EC6
  124.  *
  125.  * Input:         flags - value of R0 on entry
  126.  *                window - value of R1 on entry
  127.  *                number_range - value of R3 on entry
  128.  *
  129.  * Output:        value - value of R0 on exit (X version only)
  130.  *
  131.  * Returns:       R0 (non-X version only)
  132.  *
  133.  * Other notes:   Before entry, R2 = 0x341.
  134.  */
  135.  
  136. extern os_error *xnumberrange_get_value (bits flags,
  137.       toolbox_o window,
  138.       toolbox_c number_range,
  139.       int *value);
  140. extern int numberrange_get_value (bits flags,
  141.       toolbox_o window,
  142.       toolbox_c number_range);
  143.  
  144. /* ------------------------------------------------------------------------
  145.  * Function:      numberrange_set_bounds()
  146.  *
  147.  * Description:   Calls reason code 834 of SWI 0x44EC6
  148.  *
  149.  * Input:         flags - value of R0 on entry
  150.  *                window - value of R1 on entry
  151.  *                number_range - value of R3 on entry
  152.  *                lower_bound - value of R4 on entry
  153.  *                upper_bound - value of R5 on entry
  154.  *                step_size - value of R6 on entry
  155.  *                precision - value of R7 on entry
  156.  *
  157.  * Other notes:   Before entry, R2 = 0x342.
  158.  */
  159.  
  160. extern os_error *xnumberrange_set_bounds (numberrange_bounds_flags flags,
  161.       toolbox_o window,
  162.       toolbox_c number_range,
  163.       int lower_bound,
  164.       int upper_bound,
  165.       int step_size,
  166.       int precision);
  167. extern void numberrange_set_bounds (numberrange_bounds_flags flags,
  168.       toolbox_o window,
  169.       toolbox_c number_range,
  170.       int lower_bound,
  171.       int upper_bound,
  172.       int step_size,
  173.       int precision);
  174.  
  175. /* ------------------------------------------------------------------------
  176.  * Function:      numberrange_get_bounds()
  177.  *
  178.  * Description:   Calls reason code 835 of SWI 0x44EC6
  179.  *
  180.  * Input:         flags - value of R0 on entry
  181.  *                window - value of R1 on entry
  182.  *                number_range - value of R3 on entry
  183.  *
  184.  * Output:        lower_bound - value of R0 on exit
  185.  *                upper_bound - value of R1 on exit
  186.  *                step_size - value of R2 on exit
  187.  *                precision - value of R3 on exit
  188.  *
  189.  * Other notes:   Before entry, R2 = 0x343.
  190.  */
  191.  
  192. extern os_error *xnumberrange_get_bounds (numberrange_bounds_flags flags,
  193.       toolbox_o window,
  194.       toolbox_c number_range,
  195.       int *lower_bound,
  196.       int *upper_bound,
  197.       int *step_size,
  198.       int *precision);
  199. extern void numberrange_get_bounds (numberrange_bounds_flags flags,
  200.       toolbox_o window,
  201.       toolbox_c number_range,
  202.       int *lower_bound,
  203.       int *upper_bound,
  204.       int *step_size,
  205.       int *precision);
  206.  
  207. /* ------------------------------------------------------------------------
  208.  * Function:      numberrange_get_components()
  209.  *
  210.  * Description:   Calls reason code 836 of SWI 0x44EC6
  211.  *
  212.  * Input:         flags - value of R0 on entry
  213.  *                window - value of R1 on entry
  214.  *                number_range - value of R3 on entry
  215.  *
  216.  * Output:        numeric_field - value of R0 on exit
  217.  *                down - value of R1 on exit
  218.  *                up - value of R2 on exit
  219.  *                slider - value of R3 on exit
  220.  *
  221.  * Other notes:   Before entry, R2 = 0x344.
  222.  */
  223.  
  224. extern os_error *xnumberrange_get_components (bits flags,
  225.       toolbox_o window,
  226.       toolbox_c number_range,
  227.       toolbox_c *numeric_field,
  228.       toolbox_c *down,
  229.       toolbox_c *up,
  230.       toolbox_c *slider);
  231. extern void numberrange_get_components (bits flags,
  232.       toolbox_o window,
  233.       toolbox_c number_range,
  234.       toolbox_c *numeric_field,
  235.       toolbox_c *down,
  236.       toolbox_c *up,
  237.       toolbox_c *slider);
  238.  
  239. #ifdef __cplusplus
  240.    }
  241. #endif
  242.  
  243. #endif
  244.