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

  1. #ifndef colourmenu_H
  2. #define colourmenu_H
  3.  
  4. /* C header file for ColourMenu
  5.  * written by DefMod (Aug 30 1995) on Tue Sep  5 15:14:34 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 menu_H
  18. #include "menu.h"
  19. #endif
  20.  
  21. /**********************************
  22.  * SWI names and SWI reason codes *
  23.  **********************************/
  24. #undef  ColourMenu_ClassSWI
  25. #define ColourMenu_ClassSWI                     0x82980
  26. #undef  XColourMenu_ClassSWI
  27. #define XColourMenu_ClassSWI                    0xA2980
  28. #undef  ColourMenu_PostFilter
  29. #define ColourMenu_PostFilter                   0x82981
  30. #undef  XColourMenu_PostFilter
  31. #define XColourMenu_PostFilter                  0xA2981
  32. #undef  ColourMenu_PreFilter
  33. #define ColourMenu_PreFilter                    0x82982
  34. #undef  XColourMenu_PreFilter
  35. #define XColourMenu_PreFilter                   0xA2982
  36. #undef  ColourMenu_SetColour
  37. #define ColourMenu_SetColour                    0x0
  38. #undef  ColourMenu_GetColour
  39. #define ColourMenu_GetColour                    0x1
  40. #undef  ColourMenu_SetNoneAvailable
  41. #define ColourMenu_SetNoneAvailable             0x2
  42. #undef  ColourMenu_GetNoneAvailable
  43. #define ColourMenu_GetNoneAvailable             0x3
  44. #undef  ColourMenu_SetTitle
  45. #define ColourMenu_SetTitle                     0x4
  46. #undef  ColourMenu_GetTitle
  47. #define ColourMenu_GetTitle                     0x5
  48.  
  49. /************************************
  50.  * Structure and union declarations *
  51.  ************************************/
  52. typedef struct colourmenu_object                colourmenu_object;
  53. typedef struct colourmenu_action_about_to_be_shown colourmenu_action_about_to_be_shown;
  54. typedef struct colourmenu_action_selection      colourmenu_action_selection;
  55.  
  56. /********************
  57.  * Type definitions *
  58.  ********************/
  59. typedef bits colourmenu_flags;
  60.  
  61. typedef int colourmenu_colour;
  62.       /*A Wimp colour number, or a special value*/
  63.  
  64. struct colourmenu_object
  65.    {  colourmenu_flags flags;
  66.       toolbox_msg_reference title;
  67.       int title_limit;
  68.       colourmenu_colour colour;
  69.    };
  70.  
  71. typedef os_coord colourmenu_full;
  72.  
  73. struct colourmenu_action_about_to_be_shown
  74.    {  toolbox_position_tag tag;
  75.       union
  76.       {  os_coord top_left;
  77.          colourmenu_full full;
  78.       }
  79.       position;
  80.    };
  81.  
  82. struct colourmenu_action_selection
  83.    {  colourmenu_colour colour;
  84.    };
  85.  
  86. /************************
  87.  * Constant definitions *
  88.  ************************/
  89. #define class_COLOUR_MENU                       ((toolbox_class) 0x82980u)
  90. #define colourmenu_GENERATE_ABOUT_TO_BE_SHOWN   ((colourmenu_flags) 0x1u)
  91. #define colourmenu_GENERATE_DIALOGUE_COMPLETED  ((colourmenu_flags) 0x2u)
  92. #define colourmenu_NONE_ENTRY                   ((colourmenu_flags) 0x4u)
  93. #define colourmenu_TRANSPARENT                  ((colourmenu_colour) 0x10u)
  94. #define colourmenu_NONE                         ((colourmenu_colour) 0xFFFFFFFFu)
  95. #define action_COLOUR_MENU_ABOUT_TO_BE_SHOWN    0x82980u
  96. #define action_COLOUR_MENU_DIALOGUE_COMPLETED   0x82981u
  97. #define action_COLOUR_MENU_SELECTION            0x82982u
  98. #define error_COLOUR_MENU_TASKS_ACTIVE          0x80B000u
  99. #define error_COLOUR_MENU_ALLOC_FAILED          0x80B001u
  100. #define error_COLOUR_MENU_SHORT_BUFFER          0x80B002u
  101. #define error_COLOUR_MENU_NO_SUCH_TASK          0x80B011u
  102. #define error_COLOUR_MENU_NO_SUCH_METHOD        0x80B012u
  103. #define error_COLOUR_MENU_NO_SUCH_MISC_OP_METHOD 0x80B013u
  104.  
  105. /*************************
  106.  * Function declarations *
  107.  *************************/
  108.  
  109. #ifdef __cplusplus
  110.    extern "C" {
  111. #endif
  112.  
  113. /* ------------------------------------------------------------------------
  114.  * Function:      colourmenu_set_colour()
  115.  *
  116.  * Description:   Calls reason code 0 of SWI 0x44EC6
  117.  *
  118.  * Input:         flags - value of R0 on entry
  119.  *                colour_menu - value of R1 on entry
  120.  *                colour - value of R3 on entry
  121.  *
  122.  * Other notes:   Before entry, R2 = 0x0.
  123.  */
  124.  
  125. extern os_error *xcolourmenu_set_colour (bits flags,
  126.       toolbox_o colour_menu,
  127.       colourmenu_colour colour);
  128. extern void colourmenu_set_colour (bits flags,
  129.       toolbox_o colour_menu,
  130.       colourmenu_colour colour);
  131.  
  132. /* ------------------------------------------------------------------------
  133.  * Function:      colourmenu_get_colour()
  134.  *
  135.  * Description:   Calls reason code 1 of SWI 0x44EC6
  136.  *
  137.  * Input:         flags - value of R0 on entry
  138.  *                colour_menu - value of R1 on entry
  139.  *
  140.  * Output:        colour - value of R0 on exit (X version only)
  141.  *
  142.  * Returns:       R0 (non-X version only)
  143.  *
  144.  * Other notes:   Before entry, R2 = 0x1.
  145.  */
  146.  
  147. extern os_error *xcolourmenu_get_colour (bits flags,
  148.       toolbox_o colour_menu,
  149.       colourmenu_colour *colour);
  150. extern colourmenu_colour colourmenu_get_colour (bits flags,
  151.       toolbox_o colour_menu);
  152.  
  153. /* ------------------------------------------------------------------------
  154.  * Function:      colourmenu_set_none_available()
  155.  *
  156.  * Description:   Calls reason code 2 of SWI 0x44EC6
  157.  *
  158.  * Input:         flags - value of R0 on entry
  159.  *                colour_menu - value of R1 on entry
  160.  *                none_available - value of R3 on entry
  161.  *
  162.  * Other notes:   Before entry, R2 = 0x2.
  163.  */
  164.  
  165. extern os_error *xcolourmenu_set_none_available (bits flags,
  166.       toolbox_o colour_menu,
  167.       bool none_available);
  168. extern void colourmenu_set_none_available (bits flags,
  169.       toolbox_o colour_menu,
  170.       bool none_available);
  171.  
  172. /* ------------------------------------------------------------------------
  173.  * Function:      colourmenu_get_none_available()
  174.  *
  175.  * Description:   Calls reason code 3 of SWI 0x44EC6
  176.  *
  177.  * Input:         flags - value of R0 on entry
  178.  *                colour_menu - value of R1 on entry
  179.  *
  180.  * Output:        none_available - value of R0 on exit (X version only)
  181.  *
  182.  * Returns:       R0 (non-X version only)
  183.  *
  184.  * Other notes:   Before entry, R2 = 0x3.
  185.  */
  186.  
  187. extern os_error *xcolourmenu_get_none_available (bits flags,
  188.       toolbox_o colour_menu,
  189.       bool *none_available);
  190. extern bool colourmenu_get_none_available (bits flags,
  191.       toolbox_o colour_menu);
  192.  
  193. /* ------------------------------------------------------------------------
  194.  * Function:      colourmenu_set_title()
  195.  *
  196.  * Description:   Calls reason code 4 of SWI 0x44EC6
  197.  *
  198.  * Input:         flags - value of R0 on entry
  199.  *                colour_menu - value of R1 on entry
  200.  *                title - value of R3 on entry
  201.  *
  202.  * Other notes:   Before entry, R2 = 0x4.
  203.  */
  204.  
  205. extern os_error *xcolourmenu_set_title (bits flags,
  206.       toolbox_o colour_menu,
  207.       char const *title);
  208. extern void colourmenu_set_title (bits flags,
  209.       toolbox_o colour_menu,
  210.       char const *title);
  211.  
  212. /* ------------------------------------------------------------------------
  213.  * Function:      colourmenu_get_title()
  214.  *
  215.  * Description:   Calls reason code 5 of SWI 0x44EC6
  216.  *
  217.  * Input:         flags - value of R0 on entry
  218.  *                colour_menu - value of R1 on entry
  219.  *                buffer - value of R3 on entry
  220.  *                size - value of R4 on entry
  221.  *
  222.  * Output:        used - value of R4 on exit (X version only)
  223.  *
  224.  * Returns:       R4 (non-X version only)
  225.  *
  226.  * Other notes:   Before entry, R2 = 0x5.
  227.  */
  228.  
  229. extern os_error *xcolourmenu_get_title (bits flags,
  230.       toolbox_o colour_menu,
  231.       char *buffer,
  232.       int size,
  233.       int *used);
  234. extern int colourmenu_get_title (bits flags,
  235.       toolbox_o colour_menu,
  236.       char *buffer,
  237.       int size);
  238.  
  239. #ifdef __cplusplus
  240.    }
  241. #endif
  242.  
  243. #endif
  244.