annotate dwtx/dwtxhelper/mangoicu/UMessageFormat.d @ 92:f05207c07a98

changed filetype to unix
author Frank Benoit <benoit@tionex.de>
date Mon, 07 Jul 2008 15:54:03 +0200
parents 11e8159caf7a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
92
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
1 /*******************************************************************************
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
2
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
3 @file UMessageFormat.d
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
4
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
5 Copyright (c) 2004 Kris Bell
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
6
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
7 This software is provided 'as-is', without any express or implied
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
8 warranty. In no event will the authors be held liable for damages
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
9 of any kind arising from the use of this software.
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
10
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
11 Permission is hereby granted to anyone to use this software for any
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
12 purpose, including commercial applications, and to alter it and/or
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
13 redistribute it freely, subject to the following restrictions:
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
14
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
15 1. The origin of this software must not be misrepresented; you must
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
16 not claim that you wrote the original software. If you use this
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
17 software in a product, an acknowledgment within documentation of
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
18 said product would be appreciated but is not required.
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
19
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
20 2. Altered source versions must be plainly marked as such, and must
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
21 not be misrepresented as being the original software.
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
22
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
23 3. This notice may not be removed or altered from any distribution
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
24 of the source.
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
25
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
26 4. Derivative works are permitted, but they must carry this notice
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
27 in full and credit the original source.
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
28
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
29
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
30 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
31
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
32
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
33 @version Initial version, November 2004
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
34 @author Kris
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
35
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
36 Note that this package and documentation is built around the ICU
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
37 project (http://oss.software.ibm.com/icu/). Below is the license
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
38 statement as specified by that software:
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
39
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
40
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
41 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
42
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
43
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
44 ICU License - ICU 1.8.1 and later
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
45
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
46 COPYRIGHT AND PERMISSION NOTICE
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
47
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
48 Copyright (c) 1995-2003 International Business Machines Corporation and
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
49 others.
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
50
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
51 All rights reserved.
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
52
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
53 Permission is hereby granted, free of charge, to any person obtaining a
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
54 copy of this software and associated documentation files (the
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
55 "Software"), to deal in the Software without restriction, including
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
56 without limitation the rights to use, copy, modify, merge, publish,
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
57 distribute, and/or sell copies of the Software, and to permit persons
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
58 to whom the Software is furnished to do so, provided that the above
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
59 copyright notice(s) and this permission notice appear in all copies of
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
60 the Software and that both the above copyright notice(s) and this
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
61 permission notice appear in supporting documentation.
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
62
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
63 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
64 OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
65 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
66 OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
67 HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
68 INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
69 FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
70 NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
71 WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
72
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
73 Except as contained in this notice, the name of a copyright holder
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
74 shall not be used in advertising or otherwise to promote the sale, use
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
75 or other dealings in this Software without prior written authorization
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
76 of the copyright holder.
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
77
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
78 ----------------------------------------------------------------------
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
79
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
80 All trademarks and registered trademarks mentioned herein are the
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
81 property of their respective owners.
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
82
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
83 *******************************************************************************/
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
84
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
85 module dwtx.dwtxhelper.mangoicu.UMessageFormat;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
86
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
87 private import dwtx.dwtxhelper.mangoicu.ICU,
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
88 dwtx.dwtxhelper.mangoicu.UString;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
89
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
90 public import dwtx.dwtxhelper.mangoicu.ULocale;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
91
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
92 /*******************************************************************************
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
93
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
94 Provides means to produce concatenated messages in language-neutral
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
95 way. Use this for all concatenations that show up to end users. Takes
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
96 a set of objects, formats them, then inserts the formatted strings into
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
97 the pattern at the appropriate places.
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
98
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
99 See <A HREF="http://oss.software.ibm.com/icu/apiref/umsg_8h.html">
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
100 this page</A> for full details.
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
101
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
102 *******************************************************************************/
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
103
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
104 class UMessageFormat : ICU
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
105 {
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
106 private Handle handle;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
107
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
108 /***********************************************************************
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
109
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
110 Open a message formatter with given wchar[] and for the
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
111 given locale.
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
112
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
113 ***********************************************************************/
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
114
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
115 this (wchar[] pattern, inout ULocale locale = ULocale.Default)
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
116 {
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
117 UErrorCode e;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
118
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
119 handle = umsg_open (pattern.ptr, pattern.length, toString(locale.name), null, e);
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
120 testError (e, "failed to open message formatter");
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
121 }
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
122
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
123 /***********************************************************************
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
124
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
125 Open a message formatter with given pattern and for the
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
126 given locale.
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
127
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
128 ***********************************************************************/
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
129
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
130 this (UStringView pattern, inout ULocale locale = ULocale.Default)
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
131 {
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
132 this (pattern.get, locale);
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
133 }
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
134
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
135 /***********************************************************************
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
136
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
137 Release message formatter
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
138
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
139 ***********************************************************************/
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
140
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
141 ~this ()
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
142 {
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
143 umsg_close (handle);
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
144 }
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
145
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
146 /***********************************************************************
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
147
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
148 This locale is used for fetching default number or date
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
149 format information
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
150
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
151 ***********************************************************************/
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
152
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
153 UMessageFormat setLocale (inout ULocale locale)
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
154 {
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
155 umsg_setLocale (handle, toString(locale.name));
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
156 return this;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
157 }
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
158
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
159 /***********************************************************************
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
160
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
161 This locale is used for fetching default number or date
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
162 format information
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
163
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
164 ***********************************************************************/
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
165
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
166 UMessageFormat getLocale (inout ULocale locale)
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
167 {
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
168 locale.name = toArray (umsg_getLocale (handle));
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
169 return this;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
170 }
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
171
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
172 /***********************************************************************
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
173
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
174 Sets the pattern
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
175
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
176 ***********************************************************************/
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
177
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
178 UMessageFormat setPattern (UStringView pattern)
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
179 {
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
180 UErrorCode e;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
181
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
182 umsg_applyPattern (handle, pattern.get.ptr, pattern.len, null, e);
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
183 testError (e, "failed to set formatter pattern");
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
184 return this;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
185 }
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
186
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
187 /***********************************************************************
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
188
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
189 Gets the pattern
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
190
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
191 ***********************************************************************/
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
192
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
193 UMessageFormat getPattern (UString s)
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
194 {
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
195 uint fmt (wchar* dst, uint length, inout UErrorCode e)
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
196 {
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
197 return umsg_toPattern (handle, dst, length, e);
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
198 }
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
199
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
200 s.format (&fmt, "failed to get formatter pattern");
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
201 return this;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
202 }
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
203
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
204 /***********************************************************************
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
205
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
206 This function may perform re-ordering of the arguments
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
207 depending on the locale. For all numeric arguments, double
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
208 is assumed unless the type is explicitly integer. All choice
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
209 format arguments must be of type double.
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
210
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
211 ***********************************************************************/
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
212
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
213 UMessageFormat format (UString s, Args* list)
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
214 {
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
215 uint fmt (wchar* dst, uint length, inout UErrorCode e)
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
216 {
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
217 return umsg_vformat (handle, dst, length, list.args.ptr, e);
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
218 }
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
219
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
220 s.format (&fmt, "failed to format pattern");
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
221 return this;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
222 }
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
223
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
224
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
225 /***********************************************************************
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
226
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
227 A typesafe list of arguments for the UMessageFormat.format()
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
228 method. This should be used in the following manner:
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
229
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
230 @code
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
231 wchar[] format = "{0} {1, number, currency} {2, number, integer}";
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
232 UMessageFormat msg = new UMessageFormat (format);
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
233
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
234 msg.Args args;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
235 msg.format (output, args.add("abc").add(152.0).add(456));
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
236 @endcode
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
237
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
238 Note that the argument order must follow that of the format
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
239 string, although the format string may dictate the ultimate
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
240 position of each argument.
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
241
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
242 See http://oss.software.ibm.com/icu/apiref/umsg_8h.html for
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
243 details on the format string.
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
244
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
245 @todo this will likely fail on certain CPU architectures.
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
246
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
247 ***********************************************************************/
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
248
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
249 struct Args
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
250 {
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
251 private uint[32] args;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
252 private uint index;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
253
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
254 /***************************************************************
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
255
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
256 ***************************************************************/
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
257
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
258 invariant
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
259 {
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
260 assert (index < args.length);
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
261 }
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
262
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
263 /***************************************************************
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
264
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
265 ***************************************************************/
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
266
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
267 Args* reset ()
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
268 {
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
269 index = 0;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
270 return this;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
271 }
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
272
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
273 /***************************************************************
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
274
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
275 ***************************************************************/
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
276
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
277 Args* add (UStringView x)
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
278 {
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
279 args[index] = cast(uint) cast(wchar*) x.get();
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
280 ++index;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
281 return this;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
282 }
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
283
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
284 /***************************************************************
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
285
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
286 ***************************************************************/
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
287
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
288 Args* add (wchar[] x)
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
289 {
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
290 args[index] = cast(uint) cast(wchar*) x;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
291 ++index;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
292 return this;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
293 }
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
294
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
295 /***************************************************************
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
296
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
297 ***************************************************************/
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
298
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
299 Args* add (int x)
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
300 {
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
301 args[index] = x;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
302 ++index;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
303 return this;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
304 }
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
305
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
306 /***************************************************************
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
307
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
308 ***************************************************************/
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
309
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
310 Args* add (double x)
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
311 {
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
312 *(cast(double*) &args[index]) = x;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
313 index += 2;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
314 return this;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
315 }
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
316 }
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
317
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
318
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
319 /***********************************************************************
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
320
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
321 Bind the ICU functions from a shared library. This is
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
322 complicated by the issues regarding D and DLLs on the
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
323 Windows platform
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
324
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
325 ***********************************************************************/
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
326
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
327 private static void* library;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
328
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
329 /***********************************************************************
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
330
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
331 ***********************************************************************/
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
332
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
333 private static extern (C)
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
334 {
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
335 Handle function (wchar*, uint, char*, void*, inout UErrorCode) umsg_open;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
336 void function (Handle) umsg_close;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
337 void function (Handle, char*) umsg_setLocale;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
338 char* function (Handle) umsg_getLocale;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
339 uint function (Handle, wchar*, uint, inout UErrorCode) umsg_toPattern;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
340 void function (Handle, wchar*, uint, void*, inout UErrorCode) umsg_applyPattern;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
341 uint function (Handle, wchar*, uint, void*, inout UErrorCode) umsg_vformat;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
342 }
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
343
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
344 /***********************************************************************
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
345
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
346 ***********************************************************************/
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
347
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
348 static FunctionLoader.Bind[] targets =
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
349 [
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
350 {cast(void**) &umsg_open, "umsg_open"},
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
351 {cast(void**) &umsg_close, "umsg_close"},
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
352 {cast(void**) &umsg_setLocale, "umsg_setLocale"},
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
353 {cast(void**) &umsg_getLocale, "umsg_getLocale"},
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
354 {cast(void**) &umsg_toPattern, "umsg_toPattern"},
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
355 {cast(void**) &umsg_applyPattern, "umsg_applyPattern"},
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
356 {cast(void**) &umsg_vformat, "umsg_vformat"},
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
357 ];
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
358
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
359 /***********************************************************************
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
360
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
361 ***********************************************************************/
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
362
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
363 static this ()
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
364 {
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
365 library = FunctionLoader.bind (icuin, targets);
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
366 //test ();
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
367 }
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
368
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
369 /***********************************************************************
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
370
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
371 ***********************************************************************/
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
372
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
373 static ~this ()
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
374 {
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
375 FunctionLoader.unbind (library);
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
376 }
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
377
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
378 /***********************************************************************
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
379
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
380 ***********************************************************************/
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
381
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
382 static void test()
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
383 {
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
384 UString output = new UString(100);
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
385 wchar[] format = "{0} {1, number, currency} {2, number, integer}";
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
386
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
387 UMessageFormat msg = new UMessageFormat (format);
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
388
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
389 msg.Args args;
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
390 msg.format (output, args.add("abc").add(152.0).add(456));
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
391 }
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
392 }
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
393
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
394
f05207c07a98 changed filetype to unix
Frank Benoit <benoit@tionex.de>
parents: 91
diff changeset
395