This commit was manufactured by cvs2svn to create branch 'mono-1-0'.
[mono.git] / mono / metadata / culture-info.h
1
2 #ifndef _MONO_METADATA_CULTURE_INFO_H_
3 #define _MONO_METADATA_CULTURE_INFO_H_ 1
4
5 #include <glib.h>
6
7 #define NUM_DAYS 7
8 #define NUM_MONTHS 13
9 #define GROUP_SIZE 5
10 #define NUM_OPT_CALS 5
11
12 #define NUM_SHORT_DATE_PATTERNS 14
13 #define NUM_LONG_DATE_PATTERNS 8
14 #define NUM_SHORT_TIME_PATTERNS 5
15 #define NUM_LONG_TIME_PATTERNS 6
16
17 typedef struct {
18         const gchar *full_date_time_pattern;
19         const gchar *long_date_pattern;
20         const gchar *short_date_pattern;
21         const gchar *long_time_pattern;
22         const gchar *short_time_pattern;
23         const gchar *year_month_pattern;
24         const gchar *month_day_pattern;
25
26         const gchar *am_designator;
27         const gchar *pm_designator;
28
29         const gchar *day_names [NUM_DAYS]; 
30         const gchar *abbreviated_day_names [NUM_DAYS];
31         const gchar *month_names [NUM_MONTHS];
32         const gchar *abbreviated_month_names [NUM_MONTHS];
33
34         gint calendar_week_rule;
35         gint first_day_of_week;
36
37         const gchar *date_separator;
38         const gchar *time_separator;    
39
40         const gchar *short_date_patterns [NUM_SHORT_DATE_PATTERNS];
41         const gchar *long_date_patterns [NUM_LONG_DATE_PATTERNS];
42         const gchar *short_time_patterns [NUM_SHORT_TIME_PATTERNS];
43         const gchar *long_time_patterns [NUM_LONG_TIME_PATTERNS];
44 } DateTimeFormatEntry;
45
46 typedef struct {
47         const gchar *currency_decimal_separator;
48         const gchar *currency_group_separator;
49         const gchar *percent_decimal_separator;
50         const gchar *percent_group_separator;
51         const gchar *number_decimal_separator;
52         const gchar *number_group_separator;
53
54         const gchar *currency_symbol;
55         const gchar *percent_symbol;
56         const gchar *nan_symbol;
57         const gchar *per_mille_symbol;
58         const gchar *negative_infinity_symbol;
59         const gchar *positive_infinity_symbol;
60
61         const gchar *negative_sign;
62         const gchar *positive_sign;
63
64         gint currency_negative_pattern;
65         gint currency_positive_pattern;
66         gint percent_negative_pattern;
67         gint percent_positive_pattern;
68         gint number_negative_pattern;
69
70         gint currency_decimal_digits;
71         gint percent_decimal_digits;
72         gint number_decimal_digits;
73
74         const gint currency_group_sizes [GROUP_SIZE];
75         const gint percent_group_sizes [GROUP_SIZE];
76         const gint number_group_sizes [GROUP_SIZE];     
77 } NumberFormatEntry;
78
79 typedef struct {
80         gint lcid;
81         gint parent_lcid;
82         gint specific_lcid;
83         const gchar *name;
84         const gchar *icu_name;
85         const gchar *englishname;
86         const gchar *displayname;
87         const gchar *nativename;
88         const gchar *win3lang;
89         const gchar *iso3lang;
90         const gchar *iso2lang;
91
92         gint calendar_data [NUM_OPT_CALS];
93
94         gint datetime_format_index;
95         gint number_format_index;
96 } CultureInfoEntry;
97
98 typedef struct {
99         const gchar *name;
100         gint culture_entry_index;
101 } CultureInfoNameEntry;
102
103 #endif
104