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 >
Wrap
C/C++ Source or Header
|
1992-09-01
|
9KB
|
230 lines
#ifndef LIBRARIES_LOCALE_H
#define LIBRARIES_LOCALE_H
/*
** $Id: locale.h,v 38.5 91/10/02 13:10:44 vertex Exp $
**
** locale.library interface structures and definitions
**
** (C) Copyright 1991 Commodore-Amiga, Inc.
** All Rights Reserved
*/
/*****************************************************************************/
#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif
#ifndef EXEC_NODES_H
#include <exec/nodes.h>
#endif
#ifndef EXEC_LISTS_H
#include <exec/lists.h>
#endif
#ifndef UTILITY_TAGITEM_H
#include <utility/tagitem.h>
#endif
/*****************************************************************************/
/* constants for GetLocaleStr() */
#define DAY_1 1 /* Sunday */
#define DAY_2 2 /* Monday */
#define DAY_3 3 /* Tuesday */
#define DAY_4 4 /* Wednesday */
#define DAY_5 5 /* Thursday */
#define DAY_6 6 /* Friday */
#define DAY_7 7 /* Saturday */
#define ABDAY_1 8 /* Sun */
#define ABDAY_2 9 /* Mon */
#define ABDAY_3 10 /* Tue */
#define ABDAY_4 11 /* Wed */
#define ABDAY_5 12 /* Thu */
#define ABDAY_6 13 /* Fri */
#define ABDAY_7 14 /* Sat */
#define MON_1 15 /* January */
#define MON_2 16 /* February */
#define MON_3 17 /* March */
#define MON_4 18 /* April */
#define MON_5 19 /* May */
#define MON_6 20 /* June */
#define MON_7 21 /* July */
#define MON_8 22 /* August */
#define MON_9 23 /* September */
#define MON_10 24 /* October */
#define MON_11 25 /* November */
#define MON_12 26 /* December */
#define ABMON_1 27 /* Jan */
#define ABMON_2 28 /* Feb */
#define ABMON_3 29 /* Mar */
#define ABMON_4 30 /* Apr */
#define ABMON_5 31 /* May */
#define ABMON_6 32 /* Jun */
#define ABMON_7 33 /* Jul */
#define ABMON_8 34 /* Aug */
#define ABMON_9 35 /* Sep */
#define ABMON_10 36 /* Oct */
#define ABMON_11 37 /* Nov */
#define ABMON_12 38 /* Dec */
#define YESSTR 39 /* affirmative response for yes/no queries */
#define NOSTR 40 /* negative response for yes/no queries */
#define AM_STR 41 /* AM */
#define PM_STR 42 /* PM */
#define SOFTHYPHEN 43 /* soft hyphenation */
#define HARDHYPHEN 44 /* hard hyphenation */
#define OPENQUOTE 45 /* start of quoted block */
#define CLOSEQUOTE 46 /* end of quoted block */
#define MAXSTRMSG 47 /* current number of defined strings */
/*****************************************************************************/
/* This structure must only be allocated by locale.library and is READ-ONLY! */
struct Locale
{
STRPTR loc_LocaleName; /* locale's name */
STRPTR loc_LanguageName; /* language of this locale */
STRPTR loc_PrefLanguages[10]; /* preferred languages */
ULONG loc_Flags; /* always 0 for now */
ULONG loc_CodeSet; /* for now, always 0 */
ULONG loc_CountryCode; /* user's country code */
ULONG loc_TelephoneCode; /* country's telephone code */
LONG loc_GMTOffset; /* minutes from GMT */
UBYTE loc_MeasuringSystem; /* what measuring system? */
UBYTE loc_Reserved0[3];
STRPTR loc_DateTimeFormat; /* regular date & time format */
STRPTR loc_DateFormat; /* date format by itself */
STRPTR loc_TimeFormat; /* time format by itself */
STRPTR loc_ShortDateTimeFormat; /* short date & time format */
STRPTR loc_ShortDateFormat; /* short date format by itself */
STRPTR loc_ShortTimeFormat; /* short time format by itself */
/* for numeric values */
STRPTR loc_DecimalPoint; /* character before the decimals */
STRPTR loc_GroupSeparator; /* separates groups of digits */
STRPTR loc_FracGroupSeparator; /* separates groups of digits */
UBYTE *loc_Grouping; /* size of each group */
UBYTE *loc_FracGrouping; /* size of each group */
/* for monetary values */
STRPTR loc_MonDecimalPoint;
STRPTR loc_MonGroupSeparator;
STRPTR loc_MonFracGroupSeparator;
UBYTE *loc_MonGrouping;
UBYTE *loc_MonFracGrouping;
UBYTE loc_MonFracDigits; /* digits after the decimal point */
UBYTE loc_MonIntFracDigits; /* for international representation*/
UBYTE loc_Reserved1[2];
/* for currency symbols */
STRPTR loc_MonCS; /* currency symbol */
STRPTR loc_MonSmallCS; /* symbol for small amounts */
STRPTR loc_MonIntCS; /* internationl (ISO 4217) code */
/* for positive monetary values */
STRPTR loc_MonPositiveSign; /* indicate positive money value */
UBYTE loc_MonPositiveSpaceSep; /* determine if separated by space */
UBYTE loc_MonPositiveSignPos; /* position of positive sign */
UBYTE loc_MonPositiveCSPos; /* position of currency symbol */
UBYTE loc_Reserved2;
/* for negative monetary values */
STRPTR loc_MonNegativeSign; /* indicate negative money value */
UBYTE loc_MonNegativeSpaceSep; /* determine if separated by space */
UBYTE loc_MonNegativeSignPos; /* position of negative sign */
UBYTE loc_MonNegativeCSPos; /* position of currency symbol */
UBYTE loc_Reserved3;
};
/* constants for Locale.loc_MeasuringSystem */
#define MS_ISO 0 /* international metric system */
#define MS_AMERICAN 1 /* american system */
#define MS_IMPERIAL 2 /* imperial system */
#define MS_BRITISH 3 /* british system */
/* constants for Locale.loc_MonPositiveSpaceSep and Locale.loc_MonNegativeSpaceSep */
#define SS_NOSPACE 0 /* cur. symbol is NOT separated from value with a space */
#define SS_SPACE 1 /* cur. symbol IS separated from value with a space */
/* constants for Locale.loc_MonPositiveSignPos and Locale.loc_MonNegativeSignPos */
#define SP_PARENS 0 /* () surround the quantity and currency_symbol */
#define SP_PREC_ALL 1 /* sign string comes before amount and symbol */
#define SP_SUCC_ALL 2 /* sign string comes after amount and symbol */
#define SP_PREC_CURR 3 /* sign string comes right before currency symbol */
#define SP_SUCC_CURR 4 /* sign string comes right after currency symbol */
/* constants for Locale.loc_MonPositiveCSPos and Locale.loc_MonNegativeCSPos */
#define CSP_PRECEDES 0 /* currency symbol comes before value */
#define CSP_SUCCEEDS 1 /* currency symbol comes after value */
/* elements of the byte arrays pointed to by:
* Locale.loc_Grouping
* Locale.loc_FracGrouping
* Locale.loc_MonGrouping
* Locale.loc_MonFracGrouping
* are interpreted as follows:
*
* 255 indicates that no further grouping is to be performed
* 0 indicates that the previous element is to be repeatedly used
* for the remainder of the digits
* <other> the number of digits that comprises the current group
*/
/*****************************************************************************/
/* Tags for OpenCatalog() */
#define OC_TagBase (TAG_USER + 0x90000)
#define OC_BuiltInLanguage OC_TagBase+1 /* language of built-in strings */
#define OC_BuiltInCodeSet OC_TagBase+2 /* code set of built-in strings */
#define OC_Version OC_TagBase+3 /* catalog version number required */
#define OC_Language OC_TagBase+4 /* preferred language of catalog */
/*****************************************************************************/
/* Comparison types for StrnCmp() */
#define SC_ASCII 0
#define SC_COLLATE1 1
#define SC_COLLATE2 2
/*****************************************************************************/
/* This structure must only be allocated by locale.library and is READ-ONLY! */
struct Catalog
{
struct Node cat_Link; /* for internal linkage */
UWORD cat_Pad; /* to longword align */
STRPTR cat_Language; /* language of the catalog */
ULONG cat_CodeSet; /* currently always 0 */
UWORD cat_Version; /* version of the catalog */
UWORD cat_Revision; /* revision of the catalog */
};
/*****************************************************************************/
#endif /* LIBRARIES_LOCALE_H */