home *** CD-ROM | disk | FTP | other *** search
/ Amiga Developer CD v1.2 / amidev_cd_12.iso / devcon / milan_1991 / devcon91.2 / locale / development / include / libraries / locale.h next >
C/C++ Source or Header  |  1992-09-01  |  9KB  |  230 lines

  1. #ifndef LIBRARIES_LOCALE_H
  2. #define LIBRARIES_LOCALE_H
  3. /*
  4. **      $Id: locale.h,v 38.5 91/10/02 13:10:44 vertex Exp $
  5. **
  6. **      locale.library interface structures and definitions
  7. **
  8. **      (C) Copyright 1991 Commodore-Amiga, Inc.
  9. **      All Rights Reserved
  10. */
  11.  
  12. /*****************************************************************************/
  13.  
  14.  
  15. #ifndef EXEC_TYPES_H
  16. #include <exec/types.h>
  17. #endif
  18.  
  19. #ifndef EXEC_NODES_H
  20. #include <exec/nodes.h>
  21. #endif
  22.  
  23. #ifndef EXEC_LISTS_H
  24. #include <exec/lists.h>
  25. #endif
  26.  
  27. #ifndef UTILITY_TAGITEM_H
  28. #include <utility/tagitem.h>
  29. #endif
  30.  
  31.  
  32. /*****************************************************************************/
  33.  
  34.  
  35. /* constants for GetLocaleStr() */
  36. #define DAY_1           1       /* Sunday    */
  37. #define DAY_2           2       /* Monday    */
  38. #define DAY_3           3       /* Tuesday   */
  39. #define DAY_4           4       /* Wednesday */
  40. #define DAY_5           5       /* Thursday  */
  41. #define DAY_6           6       /* Friday    */
  42. #define DAY_7           7       /* Saturday  */
  43.  
  44. #define ABDAY_1         8       /* Sun */
  45. #define ABDAY_2         9       /* Mon */
  46. #define ABDAY_3         10      /* Tue */
  47. #define ABDAY_4         11      /* Wed */
  48. #define ABDAY_5         12      /* Thu */
  49. #define ABDAY_6         13      /* Fri */
  50. #define ABDAY_7         14      /* Sat */
  51.  
  52. #define MON_1           15      /* January   */
  53. #define MON_2           16      /* February  */
  54. #define MON_3           17      /* March     */
  55. #define MON_4           18      /* April     */
  56. #define MON_5           19      /* May       */
  57. #define MON_6           20      /* June      */
  58. #define MON_7           21      /* July      */
  59. #define MON_8           22      /* August    */
  60. #define MON_9           23      /* September */
  61. #define MON_10          24      /* October   */
  62. #define MON_11          25      /* November  */
  63. #define MON_12          26      /* December  */
  64.  
  65. #define ABMON_1         27      /* Jan    */
  66. #define ABMON_2         28      /* Feb    */
  67. #define ABMON_3         29      /* Mar    */
  68. #define ABMON_4         30      /* Apr    */
  69. #define ABMON_5         31      /* May    */
  70. #define ABMON_6         32      /* Jun    */
  71. #define ABMON_7         33      /* Jul    */
  72. #define ABMON_8         34      /* Aug    */
  73. #define ABMON_9         35      /* Sep    */
  74. #define ABMON_10        36      /* Oct    */
  75. #define ABMON_11        37      /* Nov    */
  76. #define ABMON_12        38      /* Dec    */
  77.  
  78. #define YESSTR          39      /* affirmative response for yes/no queries */
  79. #define NOSTR           40      /* negative response for yes/no queries    */
  80.  
  81. #define AM_STR          41      /* AM                                      */
  82. #define PM_STR          42      /* PM                                      */
  83.  
  84. #define SOFTHYPHEN      43      /* soft hyphenation                        */
  85. #define HARDHYPHEN      44      /* hard hyphenation                        */
  86.  
  87. #define OPENQUOTE       45      /* start of quoted block                   */
  88. #define CLOSEQUOTE      46      /* end of quoted block                     */
  89.  
  90. #define MAXSTRMSG       47      /* current number of defined strings       */
  91.  
  92.  
  93. /*****************************************************************************/
  94.  
  95.  
  96. /* This structure must only be allocated by locale.library and is READ-ONLY! */
  97. struct Locale
  98. {
  99.     STRPTR      loc_LocaleName;           /* locale's name               */
  100.     STRPTR      loc_LanguageName;         /* language of this locale     */
  101.     STRPTR      loc_PrefLanguages[10];    /* preferred languages         */
  102.     ULONG       loc_Flags;                /* always 0 for now            */
  103.  
  104.     ULONG       loc_CodeSet;              /* for now, always 0           */
  105.     ULONG       loc_CountryCode;          /* user's country code         */
  106.     ULONG       loc_TelephoneCode;        /* country's telephone code    */
  107.     LONG        loc_GMTOffset;            /* minutes from GMT            */
  108.     UBYTE       loc_MeasuringSystem;      /* what measuring system?      */
  109.     UBYTE       loc_Reserved0[3];
  110.  
  111.     STRPTR      loc_DateTimeFormat;       /* regular date & time format  */
  112.     STRPTR      loc_DateFormat;           /* date format by itself       */
  113.     STRPTR      loc_TimeFormat;           /* time format by itself       */
  114.  
  115.     STRPTR      loc_ShortDateTimeFormat;  /* short date & time format    */
  116.     STRPTR      loc_ShortDateFormat;      /* short date format by itself */
  117.     STRPTR      loc_ShortTimeFormat;      /* short time format by itself */
  118.  
  119.     /* for numeric values */
  120.     STRPTR      loc_DecimalPoint;         /* character before the decimals   */
  121.     STRPTR      loc_GroupSeparator;       /* separates groups of digits      */
  122.     STRPTR      loc_FracGroupSeparator;   /* separates groups of digits      */
  123.     UBYTE      *loc_Grouping;             /* size of each group              */
  124.     UBYTE      *loc_FracGrouping;         /* size of each group              */
  125.  
  126.     /* for monetary values */
  127.     STRPTR      loc_MonDecimalPoint;
  128.     STRPTR      loc_MonGroupSeparator;
  129.     STRPTR      loc_MonFracGroupSeparator;
  130.     UBYTE      *loc_MonGrouping;
  131.     UBYTE      *loc_MonFracGrouping;
  132.     UBYTE       loc_MonFracDigits;        /* digits after the decimal point  */
  133.     UBYTE       loc_MonIntFracDigits;     /* for international representation*/
  134.     UBYTE       loc_Reserved1[2];
  135.  
  136.     /* for currency symbols */
  137.     STRPTR      loc_MonCS;                /* currency symbol                 */
  138.     STRPTR      loc_MonSmallCS;           /* symbol for small amounts        */
  139.     STRPTR      loc_MonIntCS;             /* internationl (ISO 4217) code    */
  140.  
  141.     /* for positive monetary values */
  142.     STRPTR      loc_MonPositiveSign;      /* indicate positive money value   */
  143.     UBYTE       loc_MonPositiveSpaceSep;  /* determine if separated by space */
  144.     UBYTE       loc_MonPositiveSignPos;   /* position of positive sign       */
  145.     UBYTE       loc_MonPositiveCSPos;     /* position of currency symbol     */
  146.     UBYTE       loc_Reserved2;
  147.  
  148.     /* for negative monetary values */
  149.     STRPTR      loc_MonNegativeSign;      /* indicate negative money value   */
  150.     UBYTE       loc_MonNegativeSpaceSep;  /* determine if separated by space */
  151.     UBYTE       loc_MonNegativeSignPos;   /* position of negative sign       */
  152.     UBYTE       loc_MonNegativeCSPos;     /* position of currency symbol     */
  153.     UBYTE       loc_Reserved3;
  154. };
  155.  
  156. /* constants for Locale.loc_MeasuringSystem */
  157. #define MS_ISO          0       /* international metric system */
  158. #define MS_AMERICAN     1       /* american system             */
  159. #define MS_IMPERIAL     2       /* imperial system             */
  160. #define MS_BRITISH      3       /* british system              */
  161.  
  162. /* constants for Locale.loc_MonPositiveSpaceSep and Locale.loc_MonNegativeSpaceSep */
  163. #define SS_NOSPACE 0  /* cur. symbol is NOT separated from value with a space */
  164. #define SS_SPACE   1  /* cur. symbol IS separated from value with a space     */
  165.  
  166. /* constants for Locale.loc_MonPositiveSignPos and Locale.loc_MonNegativeSignPos */
  167. #define SP_PARENS    0  /* () surround the quantity and currency_symbol   */
  168. #define SP_PREC_ALL  1  /* sign string comes before amount and symbol     */
  169. #define SP_SUCC_ALL  2  /* sign string comes after amount and symbol      */
  170. #define SP_PREC_CURR 3  /* sign string comes right before currency symbol */
  171. #define SP_SUCC_CURR 4  /* sign string comes right after currency symbol  */
  172.  
  173. /* constants for Locale.loc_MonPositiveCSPos and Locale.loc_MonNegativeCSPos */
  174. #define CSP_PRECEDES 0  /* currency symbol comes before value */
  175. #define CSP_SUCCEEDS 1  /* currency symbol comes after value  */
  176.  
  177. /* elements of the byte arrays pointed to by:
  178.  *   Locale.loc_Grouping
  179.  *   Locale.loc_FracGrouping
  180.  *   Locale.loc_MonGrouping
  181.  *   Locale.loc_MonFracGrouping
  182.  * are interpreted as follows:
  183.  *
  184.  *    255     indicates that no further grouping is to be performed
  185.  *    0       indicates that the previous element is to be repeatedly used
  186.  *            for the remainder of the digits
  187.  *    <other> the number of digits that comprises the current group
  188.  */
  189.  
  190.  
  191. /*****************************************************************************/
  192.  
  193.  
  194. /* Tags for OpenCatalog() */
  195. #define OC_TagBase         (TAG_USER + 0x90000)
  196. #define OC_BuiltInLanguage OC_TagBase+1   /* language of built-in strings    */
  197. #define OC_BuiltInCodeSet  OC_TagBase+2   /* code set of built-in strings    */
  198. #define OC_Version         OC_TagBase+3   /* catalog version number required */
  199. #define OC_Language        OC_TagBase+4   /* preferred language of catalog   */
  200.  
  201.  
  202. /*****************************************************************************/
  203.  
  204.  
  205. /* Comparison types for StrnCmp() */
  206. #define SC_ASCII    0
  207. #define SC_COLLATE1 1
  208. #define SC_COLLATE2 2
  209.  
  210.  
  211. /*****************************************************************************/
  212.  
  213.  
  214. /* This structure must only be allocated by locale.library and is READ-ONLY! */
  215. struct Catalog
  216. {
  217.     struct Node cat_Link;       /* for internal linkage    */
  218.     UWORD       cat_Pad;        /* to longword align       */
  219.     STRPTR      cat_Language;   /* language of the catalog */
  220.     ULONG       cat_CodeSet;    /* currently always 0      */
  221.     UWORD       cat_Version;    /* version of the catalog  */
  222.     UWORD       cat_Revision;   /* revision of the catalog */
  223. };
  224.  
  225.  
  226. /*****************************************************************************/
  227.  
  228.  
  229. #endif  /* LIBRARIES_LOCALE_H */
  230.