4 The conversion is made by converting the "from" unit
5 into the I.S. unit and then the I.S. unit is converted
8 The base units for all categories are:
10 ANGLE..........degrees
11 AREA...........square meters
12 CONSUMPTION....kilometers per liter
19 TIME...........seconds
20 VELOCITY.......meters per second
24 The '$' character is used as "what you read into the display".
28 const char *formula_from
;
29 const char *formula_to
;
37 #define DECLARE_CONV_CAT(_category) \
38 { IDS_CONV_##_category, conv_##_category },
40 #define DECLARE_CONV_UNIT(_category, _unit, _from, _to ) \
41 { IDS_##_category##_##_unit, _from, _to },
43 #define DECLARE_CONV_END \
48 1 radian = 57.29577951308233 deg
50 static const conv_t conv_ANGLE
[] = {
51 DECLARE_CONV_UNIT(ANGLE
, DEGREES
, "$", "$")
52 DECLARE_CONV_UNIT(ANGLE
, GRADIANS
, "$*0.9", "$/0.9")
53 DECLARE_CONV_UNIT(ANGLE
, RADIANS
, "$/P*180", "$*P/180")
58 1 acre ................ = 4840 square yd = 4046,8564224 mq
59 1 acre brazil ......... =
60 1 acre france ......... =
61 1 acre scots .......... = 5000 mq
62 1 acre us ............. = 4840*(36/39.37)^2 m = 6272640/1549.9969 m
63 1 are ................. = 100 mq
64 1 chou ................ = 108000*(10/33)^2 mq
65 1 danbo ............... =
66 1 ha .................. = 10000 mq
67 1 jeongbo ............. =
68 1 morgen hungary ...... =
69 1 mu .................. = 2000/3 mq
70 1 ping ................ =
71 1 pyeong .............. =
72 1 pyeongbangja ........ =
73 1 rai ................. = 1600 mq
74 1 se .................. = 1080*(10/33)^2 mq
75 1 square cm ........... = 0.0001 mq
76 1 square chr .......... =
77 1 square fathom ....... = 1.8288^2 = 3.34450944 mq
78 1 square fathom hungary = 1.8964838^2 = 3.59665080366244 mq
79 1 square ft ........... = 0,09290304 mq
80 1 square in ........... = 0,00064516 mq
81 1 square km ........... = 1000000 mq
82 1 square lar .......... =
83 1 square mile ......... = 1609.344^2 = 2589988.110336 mq
84 1 square mm ........... = 0,000001 mq
85 1 square shaku ........ = (10/33)^2 mq
86 1 square tsuen ........ =
87 1 square va ........... =
88 1 square yard ......... = 0,83612736 mq
89 1 tan ................. = 10800*(10/33)^2 mq
90 1 tsubo ............... = 36*(10/33)^2 mq
92 static const conv_t conv_AREA
[] = {
93 DECLARE_CONV_UNIT(AREA
, ACRES
, "$*4046,8564224", "$/4046,8564224")
94 // DECLARE_CONV_UNIT(AREA, ACRES_BRAZIL, "$", "$")
95 // DECLARE_CONV_UNIT(AREA, ACRES_FRANCE, "$", "$")
96 DECLARE_CONV_UNIT(AREA
, ACRES_US
, "$*627264/154.99969", "$/627264*154.99969")
97 DECLARE_CONV_UNIT(AREA
, ACRES_SCOTS
, "$*5000", "$/5000")
98 DECLARE_CONV_UNIT(AREA
, ARES
, "$*100", "$/100")
99 DECLARE_CONV_UNIT(AREA
, CHOU
, "$*10800000/1089", "$*1089/10800000")
100 // DECLARE_CONV_UNIT(AREA, DANBO, "$", "$")
101 DECLARE_CONV_UNIT(AREA
, HECTARES
, "$*10000", "$/10000")
102 // DECLARE_CONV_UNIT(AREA, JEONGBO, "$", "$")
103 // DECLARE_CONV_UNIT(AREA, MORGEN_HUNGARY, "$", "$")
104 DECLARE_CONV_UNIT(AREA
, MU
, "$*(2000/3)", "$/(2000/3)")
105 // DECLARE_CONV_UNIT(AREA, PING, "$", "$")
106 // DECLARE_CONV_UNIT(AREA, PYEONG, "$", "$")
107 // DECLARE_CONV_UNIT(AREA, PYEONGBANGJA, "$", "$")
108 DECLARE_CONV_UNIT(AREA
, RAI
, "$*1600", "$/1600")
109 DECLARE_CONV_UNIT(AREA
, SE
, "$*108000/1089", "$*1089/108000")
110 DECLARE_CONV_UNIT(AREA
, SQUARE_CENTIMETERS
, "$*0,0001", "$/0,0001")
111 // DECLARE_CONV_UNIT(AREA, SQUARE_CHR, "$", "$")
112 DECLARE_CONV_UNIT(AREA
, SQUARE_FATHOMS
, "$*3.34450944", "$/3.34450944")
113 DECLARE_CONV_UNIT(AREA
, SQUARE_FATHOMS_HUNGARY
, "$*3.59665080366244", "$/3.59665080366244")
114 DECLARE_CONV_UNIT(AREA
, SQUARE_FEET
, "$*0,09290304", "$/0,09290304")
115 DECLARE_CONV_UNIT(AREA
, SQUARE_INCHES
, "$*0,00064516", "$/0.00064516")
116 DECLARE_CONV_UNIT(AREA
, SQUARE_KILOMETERS
, "$*1000000", "$/1000000")
117 // DECLARE_CONV_UNIT(AREA, SQUARE_LAR, "$", "$")
118 DECLARE_CONV_UNIT(AREA
, SQUARE_METER
, "$", "$")
119 DECLARE_CONV_UNIT(AREA
, SQUARE_MILES
, "$*2589988.110336", "$/2589988.110336")
120 DECLARE_CONV_UNIT(AREA
, SQUARE_MILLIMETERS
, "$*1000000", "$/1000000")
121 DECLARE_CONV_UNIT(AREA
, SQUARE_SHAKU
, "$*100/1089", "$/1089*100")
122 // DECLARE_CONV_UNIT(AREA, SQUARE_TSUEN, "$", "$")
123 // DECLARE_CONV_UNIT(AREA, SQUARE_VA, "$", "$")
124 DECLARE_CONV_UNIT(AREA
, SQUARE_YARD
, "$*0,83612736", "$/0,83612736")
125 DECLARE_CONV_UNIT(AREA
, TAN
, "$*1080000/1089", "$*1089/1080000")
126 DECLARE_CONV_UNIT(AREA
, TSUBO
, "$*1188/1089", "$*1089/1188")
131 1 l/100Km = 100 km/l -> y = 100/x
132 1 miles/gal uk = 1.609344/4.54609 km/l
133 1 miles/gal us = 1.609344/3.785411784 km/l
135 static const conv_t conv_CONSUMPTION
[] = {
136 DECLARE_CONV_UNIT(CONSUMPTION
, KM_PER_L
, "$", "$")
137 DECLARE_CONV_UNIT(CONSUMPTION
, L_PER_100_KM
, "100/$", "100/$")
138 DECLARE_CONV_UNIT(CONSUMPTION
, MILES_GALLON_UK
, "$*1.609344/4.54609", "$/1.609344*4.54609")
139 DECLARE_CONV_UNIT(CONSUMPTION
, MILES_GALLON_US
, "$*1.609344/3.785411784", "$/1.609344*3.785411784")
143 static const conv_t conv_CURRENCY
[] = {
144 DECLARE_CONV_UNIT(CURRENCY
, AUSTRIAN_SCHILLING
, "$/13,7603", "$*13,7603")
145 DECLARE_CONV_UNIT(CURRENCY
, BELGIAN_FRANC
, "$/40,3399", "$*40,3399")
146 DECLARE_CONV_UNIT(CURRENCY
, CYPRIOT_POUND
, "$/0,585274","$*0,585274")
147 DECLARE_CONV_UNIT(CURRENCY
, DEUTSCHE_MARK
, "$/1,95583", "$*1,95583")
148 DECLARE_CONV_UNIT(CURRENCY
, DUTCH_GUILDER
, "$/2,20371", "$*2,20371")
149 DECLARE_CONV_UNIT(CURRENCY
, ESTONIAN_KROON
, "$/15,6466", "$*15,6466")
150 DECLARE_CONV_UNIT(CURRENCY
, EURO
, "$", "$")
151 DECLARE_CONV_UNIT(CURRENCY
, FINNISH_MARKKA
, "$/5,94573", "$*5,94573")
152 DECLARE_CONV_UNIT(CURRENCY
, FRENCH_FRANC
, "$/6,55957", "$*6,55957")
153 DECLARE_CONV_UNIT(CURRENCY
, GREEK_DRACHMA
, "$/340,751", "$*340,751")
154 DECLARE_CONV_UNIT(CURRENCY
, IRISH_POUND
, "$/0,787564","$*0,787564")
155 DECLARE_CONV_UNIT(CURRENCY
, ITALIAN_LIRA
, "$/1936.27", "$*1936.27")
156 DECLARE_CONV_UNIT(CURRENCY
, LATVIAN_LATS
, "$/0,7028", "$*0,7028")
157 DECLARE_CONV_UNIT(CURRENCY
, LITHUANIAN_LITAS
, "$/3,45280", "$*3,45280")
158 DECLARE_CONV_UNIT(CURRENCY
, LUXEMBOURG_FRANC
, "$/40,3399", "$*40,3399")
159 DECLARE_CONV_UNIT(CURRENCY
, MALTESE_LIRA
, "$/0.42930", "$*0.42930")
160 DECLARE_CONV_UNIT(CURRENCY
, PORTOGUESE_ESCUDO
, "$/200,482", "$*200,482")
161 DECLARE_CONV_UNIT(CURRENCY
, SLOVAK_KORUNA
, "$/30,126", "$*30,126")
162 DECLARE_CONV_UNIT(CURRENCY
, SLOVENIAN_TOLAR
, "$/239,640", "$*239,640")
163 DECLARE_CONV_UNIT(CURRENCY
, SPANISH_PESETA
, "$/166,386", "$*166,386")
168 1 cal15 .... = 4.1855 J
169 1 BTU ...... = 1055.056 J
170 1 ERG ...... = 0.0000001 J
171 1 EV ....... = 0.000000000000000000160217653 J
172 1 Foot-Pound = 1.3558179483314004 J
173 1 IT calorie = 4.1868 J
174 1 KCa ...... = 4186.8 J
175 1 KJ ....... = 1000 J
176 1 KWh ...... = 3600 J
177 1 IUNS ..... = 4.182 J
178 1 calth .... = 4.184 J
180 static const conv_t conv_ENERGY
[] = {
181 DECLARE_CONV_UNIT(ENERGY
, 15_C_CALORIES
, "$*4.1855", "$/4.1855")
182 DECLARE_CONV_UNIT(ENERGY
, BTUS
, "$*1055.056", "$/1055.056")
183 DECLARE_CONV_UNIT(ENERGY
, ERGS
, "$*.0000001", "$/.0000001")
184 DECLARE_CONV_UNIT(ENERGY
, EVS
, "$*.000000000000000000160217653", "$/.000000000000000000160217653")
185 DECLARE_CONV_UNIT(ENERGY
, FOOT_POUNDS
, "$*1.3558179483314004", "$/1.3558179483314004")
186 DECLARE_CONV_UNIT(ENERGY
, IT_CALORIES
, "$*4.1868", "$/4.1868")
187 DECLARE_CONV_UNIT(ENERGY
, IT_KILOCALORIES
, "$*4186.8", "$/4186.8")
188 DECLARE_CONV_UNIT(ENERGY
, JOULES
, "$", "$")
189 DECLARE_CONV_UNIT(ENERGY
, KILOJOULES
, "$*1000", "$/1000")
190 DECLARE_CONV_UNIT(ENERGY
, KILOWATT_HOURS
, "$*3600", "$/3600")
191 DECLARE_CONV_UNIT(ENERGY
, NUTRITION_CALORIES
, "$*4.182", "$/4.182")
192 DECLARE_CONV_UNIT(ENERGY
, TH_CALORIES
, "$*4.184", "$/4.184")
197 1 angstrom ....... = 0.0000000001 m
198 1 astronomical unit= 149598000000 m
199 1 barleycorn ..... = 1/3 inch = 0.9144/108 m
200 1 cm ............. = 1/100 m
201 1 chain uk ....... = 22 yards = 22*0.9144 m
202 1 chi ............ = 1/3 m
203 1 chou ........... = 3600/33 m
205 1 cun ............ = 1/10 chi = 1/30 m
206 1 fathom ......... = 2 yard = 2*0.9144 m
207 1 fathom ungary .. = 1.8964838 m (fixed)
208 1 feet ........... = 12 inch = 0.9144/3 m
209 1 furlong ........ = 10 chains = 220*0.9144 m
211 1 hand ........... = 4 inches = 0.9144/9 m
213 1 inch ........... = yard/36 = 0.9144/36 m
217 1 ken ............ = 60/33 m
219 1 km ............. = 1000 m
221 1 light year ..... = 9460730472580800 m
222 1 link uk ........ = 0.01 chains = 0.22*0.9144 m
223 1 micron ......... = 0.000001 m
224 1 mile ........... = 1760 yards = 1609.344 m
225 1 millimeter ..... = 1/1000 m
226 1 nautical mile .. = 1852 m
228 1 parsec ......... = 30856800000000000 m
229 1 pica ........... = yard/216 = 0.9144/216 m
232 1 rod ............ = 5.0292 m
235 1 shaku .......... = 10/33 m
236 1 span ........... = 9 inches = 0.9144/4 m
237 1 sun ............ = 1/33 m
240 1 yard ........... = 0.9144 m
244 static const conv_t conv_LENGTH
[] = {
245 DECLARE_CONV_UNIT(LENGTH
, ANGSTROMS
, "$*0.0000000001", "$/0.0000000001")
246 DECLARE_CONV_UNIT(LENGTH
, ASTRONOMICAL_UNITS
, "$*149598000000", "$/149598000000")
247 DECLARE_CONV_UNIT(LENGTH
, BARLEYCORNS
, "$*0.9144/108", "$/0.9144*108")
248 DECLARE_CONV_UNIT(LENGTH
, CENTIMETERS
, "$/100", "$*100")
249 DECLARE_CONV_UNIT(LENGTH
, CHAINS_UK
, "$*20.1168", "$/20.1168")
250 DECLARE_CONV_UNIT(LENGTH
, CHI
, "$/3", "$*3")
251 DECLARE_CONV_UNIT(LENGTH
, CHOU
, "$*3600/33", "$*33/3600")
252 // DECLARE_CONV_UNIT(LENGTH, CHR, "$", "$")
253 DECLARE_CONV_UNIT(LENGTH
, CUN
, "$/30", "$*30")
254 DECLARE_CONV_UNIT(LENGTH
, FATHOMS
, "$*1.8288", "$/1.8288")
255 DECLARE_CONV_UNIT(LENGTH
, FATHOMS_HUNGARY
, "$*1.8964838", "$/1.8964838")
256 DECLARE_CONV_UNIT(LENGTH
, FEET
, "$*0.3048", "$/0.3048")
257 DECLARE_CONV_UNIT(LENGTH
, FURLONGS
, "$*201.168", "$/201.168")
258 // DECLARE_CONV_UNIT(LENGTH, GAN, "$", "$")
259 DECLARE_CONV_UNIT(LENGTH
, HANDS
, "$*0,1016", "$/0,1016")
260 // DECLARE_CONV_UNIT(LENGTH, HUNH, "$", "$")
261 DECLARE_CONV_UNIT(LENGTH
, INCHES
, "$*0.0254", "$/0.0254")
262 // DECLARE_CONV_UNIT(LENGTH, JA, "$", "$")
263 // DECLARE_CONV_UNIT(LENGTH, JEONG, "$", "$")
264 // DECLARE_CONV_UNIT(LENGTH, KABIET, "$", "$")
265 DECLARE_CONV_UNIT(LENGTH
, KEN
, "$*60/33", "$*33/60")
266 // DECLARE_CONV_UNIT(LENGTH, KEUB, "$", "$")
267 DECLARE_CONV_UNIT(LENGTH
, KILOMETERS
, "$*1000", "$/1000")
268 // DECLARE_CONV_UNIT(LENGTH, LAR, "$", "$")
269 DECLARE_CONV_UNIT(LENGTH
, LIGHT_YEARS
, "$*9460730472580800", "$/9460730472580800")
270 DECLARE_CONV_UNIT(LENGTH
, LINKS_UK
, "$*0.201168", "$/0.201168")
271 DECLARE_CONV_UNIT(LENGTH
, METERS
, "$", "$")
272 DECLARE_CONV_UNIT(LENGTH
, MICRONS
, "$*0.000001", "$/0.000001")
273 DECLARE_CONV_UNIT(LENGTH
, MILES
, "$*1609.344", "$/1609.344")
274 DECLARE_CONV_UNIT(LENGTH
, MILLIMETERS
, "$/1000", "$*1000")
275 DECLARE_CONV_UNIT(LENGTH
, NAUTICAL_MILES
, "$*1852", "$/1852")
276 // DECLARE_CONV_UNIT(LENGTH, NIEU, "$", "$")
277 DECLARE_CONV_UNIT(LENGTH
, PARSECS
, "$*30856800000000000", "$/30856800000000000")
278 DECLARE_CONV_UNIT(LENGTH
, PICAS
, "$*0.9144/216", "$/0.9144*216")
279 DECLARE_CONV_UNIT(LENGTH
, RODS
, "$*5.0292", "$/5.0292")
280 // DECLARE_CONV_UNIT(LENGTH, RI_JAPAN, "$", "$")
281 // DECLARE_CONV_UNIT(LENGTH, RI_KOREA, "$", "$")
282 // DECLARE_CONV_UNIT(LENGTH, SAWK, "$", "$")
283 // DECLARE_CONV_UNIT(LENGTH, SEN, "$", "$")
284 DECLARE_CONV_UNIT(LENGTH
, SHAKU
, "$*10/33", "$*33/10")
285 DECLARE_CONV_UNIT(LENGTH
, SPAN
, "$*0.9144/4", "$*4/0.9144")
286 DECLARE_CONV_UNIT(LENGTH
, SUN
, "$*1/33", "$*33")
287 // DECLARE_CONV_UNIT(LENGTH, TSUEN, "$", "$")
288 // DECLARE_CONV_UNIT(LENGTH, VA, "$", "$")
289 DECLARE_CONV_UNIT(LENGTH
, YARDS
, "$*0.9144", "$/0.9144")
290 // DECLARE_CONV_UNIT(LENGTH, YOTE, "$", "$")
291 // DECLARE_CONV_UNIT(LENGTH, ZHANG, "$", "$")
296 1 BTU/min = 17.5842642 W
297 1 Foot-pound/minute = 0.02259696580552333 W
298 1 hp = 745.69987158227022 W
302 static const conv_t conv_POWER
[] = {
303 DECLARE_CONV_UNIT(POWER
, BTUS_PER_MINUTE
, "$*17.5842642", "$/17.5842642")
304 DECLARE_CONV_UNIT(POWER
, FPS_PER_MINUTE
, "$*0.02259696580552333", "$/0.02259696580552333")
305 DECLARE_CONV_UNIT(POWER
, HORSEPOWER
, "$*745.69987158227022", "$/745.69987158227022")
306 DECLARE_CONV_UNIT(POWER
, KILOWATTS
, "$*1000", "$/1000")
307 DECLARE_CONV_UNIT(POWER
, MEGAWATTS
, "$*1000000", "$/1000000")
308 DECLARE_CONV_UNIT(POWER
, WATTS
, "$", "$")
320 static const conv_t conv_PRESSURE
[] = {
321 DECLARE_CONV_UNIT(PRESSURE
, ATMOSPHERES
, "$*101325", "$/101325")
322 DECLARE_CONV_UNIT(PRESSURE
, BARS
, "$*100000", "$/100000")
323 DECLARE_CONV_UNIT(PRESSURE
, HECTOPASCALS
, "$*100", "$/100")
324 DECLARE_CONV_UNIT(PRESSURE
, KILOPASCALS
, "$*1000", "$/1000")
325 DECLARE_CONV_UNIT(PRESSURE
, MM_OF_MERCURY
, "$*133.322", "$/133.322")
326 DECLARE_CONV_UNIT(PRESSURE
, PASCALS
, "$", "$")
327 DECLARE_CONV_UNIT(PRESSURE
, PSI
, "$*6894.757", "$/6894.757")
332 1 day ....... = 86400 s
333 1 hour ...... = 3600 s
334 1 microsecond = 0.000001 s
335 1 millisecond = 0.001 s
336 1 nanosecond. = 0.000000001 s
338 1 week ...... = 669600 s
340 static const conv_t conv_TIME
[] = {
341 DECLARE_CONV_UNIT(TIME
, MINUTES
, "$*60", "$/60")
342 DECLARE_CONV_UNIT(TIME
, DAYS
, "$*86400", "$/86400")
343 DECLARE_CONV_UNIT(TIME
, HOURS
, "$*3600", "$/3600")
344 DECLARE_CONV_UNIT(TIME
, MILLISECONDS
, "$*0.001", "$/0.001")
345 DECLARE_CONV_UNIT(TIME
, MICROSECONDS
, "$*0.000001", "$/0.000001")
346 DECLARE_CONV_UNIT(TIME
, NANOSECONDS
, "$*0.000000001", "$/0.000000001")
347 DECLARE_CONV_UNIT(TIME
, SECONDS
, "$", "$")
348 DECLARE_CONV_UNIT(TIME
, WEEKS
, "$*604800", "$/604800")
349 DECLARE_CONV_UNIT(TIME
, YEARS
, "$*31556952", "$/31556952")
358 static const conv_t conv_TEMPERATURE
[] = {
359 DECLARE_CONV_UNIT(TEMPERATURE
, CELSIUS
, "$+273.15", "$-273.15")
360 DECLARE_CONV_UNIT(TEMPERATURE
, FAHRENHEIT
, "($+459.67)*5/9", "$*9/5-459.67")
361 DECLARE_CONV_UNIT(TEMPERATURE
, KELVIN
, "$", "$")
362 DECLARE_CONV_UNIT(TEMPERATURE
, RANKINE
, "$*5/9", "$*9/5")
368 1 f/h = 0.0000846666667 m/s
370 1 Km/h = 10/36 m/s -> 0.27778 m/s
371 1 knot = 18.52/36 m/s -> 0.51444444 m/s
375 static const conv_t conv_VELOCITY
[] = {
376 DECLARE_CONV_UNIT(VELOCITY
, CMS_SECOND
, "$*.01", "$/.01")
377 DECLARE_CONV_UNIT(VELOCITY
, FEET_SECOND
, "$*.3048", "$/.3048")
378 DECLARE_CONV_UNIT(VELOCITY
, FEET_HOUR
, "$*.0000846666667", "$/.0000846666667")
379 DECLARE_CONV_UNIT(VELOCITY
, KILOMETERS_HOUR
, "$*10/36", "$*36/10")
380 DECLARE_CONV_UNIT(VELOCITY
, KNOTS
, "$*18.52/36", "$*36/18.52")
381 DECLARE_CONV_UNIT(VELOCITY
, MACH
, "$*340.3", "$/340.3")
382 DECLARE_CONV_UNIT(VELOCITY
, METERS_SECOND
, "$", "$")
383 DECLARE_CONV_UNIT(VELOCITY
, MILES_HOUR
, "$*.44704", "$/.44704")
388 1 barrel uk ...... = 163.65924 l
389 1 barrel oil ..... = 158.987295 l
391 1 bushel uk ...... = 36.36872 l
392 1 bushel us ...... = 35.23907017 l
393 1 cubic cm ...... = 0.001 l
394 1 cubic feet ..... = 28.316846 l
395 1 cubic inch ..... = 0.016387064 l
396 1 cubic meter .... = 1000 l
397 1 cubic yard ..... = 764.554857 l
399 1 fluid ounce uk = 0.0284130625 l
400 1 fluid ounce us = 0.0295735295625 l
401 1 gallon uk ...... = 4.54609 l
402 1 gallon dry us .. = 4.40488377086 l
403 1 gallon liquid us = 3.785411784 l
404 1 gou ............ = 0.1809 l
409 1 milliliter ..... = 0.001 l
410 1 pint uk ........ = 0.56826125 l
411 1 pint dry us .... = 0.5506104713575 l
412 1 pint liquid us = 0.473176473 l
413 1 quart uk ....... = 1.1365225 l
414 1 quart dry us ... = 1.101220942715 l
415 1 quart liquid us = 0.946352946 l
420 1 to ............. = 18040 l
422 static const conv_t conv_VOLUME
[] = {
423 DECLARE_CONV_UNIT(VOLUME
, BARRELS_UK
, "$*163.65924", "$/163.65924")
424 DECLARE_CONV_UNIT(VOLUME
, BARRELS_OIL
, "$*158.987295", "$/158.987295")
425 // DECLARE_CONV_UNIT(VOLUME, BUN, "$", "$")
426 DECLARE_CONV_UNIT(VOLUME
, BUSHELS_UK
, "$*36.36872", "$/36.36872")
427 DECLARE_CONV_UNIT(VOLUME
, BUSHELS_US
, "$*35.23907017", "$/35.23907017")
428 DECLARE_CONV_UNIT(VOLUME
, CUBIC_CENTIMETERS
, "$*0.001", "$/0.001")
429 DECLARE_CONV_UNIT(VOLUME
, CUBIC_FEET
, "$*28.316846", "$/28.316846")
430 DECLARE_CONV_UNIT(VOLUME
, CUBIC_INCHES
, "$*0.016387064", "$/0.016387064")
431 DECLARE_CONV_UNIT(VOLUME
, CUBIC_METERS
, "$*1000", "$/1000")
432 DECLARE_CONV_UNIT(VOLUME
, CUBIC_YARDS
, "$*764.554857", "$/764.554857")
433 // DECLARE_CONV_UNIT(VOLUME, DOE, "$", "$")
434 DECLARE_CONV_UNIT(VOLUME
, FLUID_OUNCES_UK
, "$*0.0284130625", "$/0.0284130625")
435 DECLARE_CONV_UNIT(VOLUME
, FLUID_OUNCES_US
, "$*0.0295735295625", "$/0.0295735295625")
436 DECLARE_CONV_UNIT(VOLUME
, GALLONS_UK
, "$*4.54609", "$/4.54609")
437 DECLARE_CONV_UNIT(VOLUME
, GALLONS_DRY_US
, "$*4.40488377086", "$/4.40488377086")
438 DECLARE_CONV_UNIT(VOLUME
, GALLONS_LIQUID_US
, "$*3.785411784", "$/3.785411784")
439 DECLARE_CONV_UNIT(VOLUME
, GOU
, "$*0.1809", "$/0.1809")
440 // DECLARE_CONV_UNIT(VOLUME, HOP, "$", "$")
441 // DECLARE_CONV_UNIT(VOLUME, ICCE, "$", "$")
442 // DECLARE_CONV_UNIT(VOLUME, KWIAN, "$", "$")
443 DECLARE_CONV_UNIT(VOLUME
, LITERS
, "$", "$")
444 // DECLARE_CONV_UNIT(VOLUME, MAL, "$", "$")
445 DECLARE_CONV_UNIT(VOLUME
, MILLILITERS
, "$*0.001", "$/0.001")
446 DECLARE_CONV_UNIT(VOLUME
, PINTS_UK
, "$*0.56826125", "$/0.56826125")
447 DECLARE_CONV_UNIT(VOLUME
, PINTS_DRY_US
, "$*0.5506104713575", "$/0.5506104713575")
448 DECLARE_CONV_UNIT(VOLUME
, PINTS_LIQUID_US
, "$*0.473176473", "$/0.473176473")
449 DECLARE_CONV_UNIT(VOLUME
, QUARTS_UK
, "$*1.1365225", "$/1.1365225")
450 DECLARE_CONV_UNIT(VOLUME
, QUARTS_DRY_US
, "$*1.101220942715", "$/1.101220942715")
451 DECLARE_CONV_UNIT(VOLUME
, QUARTS_LIQUID_US
, "$*0.946352946", "$/0.946352946")
452 // DECLARE_CONV_UNIT(VOLUME, SEKI, "$", "$")
453 // DECLARE_CONV_UNIT(VOLUME, SYOU, "$", "$")
454 // DECLARE_CONV_UNIT(VOLUME, TANANLOUNG, "$", "$")
455 // DECLARE_CONV_UNIT(VOLUME, TANG, "$", "$")
456 DECLARE_CONV_UNIT(VOLUME
, TO
, "$*18040", "$/18040")
461 1 baht ............ = 12.244 g
462 1 carat ........... = 0.2 g
463 1 chung ........... =
464 1 don ............. =
465 1 geun ............ =
466 1 gwan ............ =
467 1 harb ............ =
468 1 jin china ....... =
469 1 jin taiwan ...... =
470 1 Kan ............. = 3750 g
471 1 Kilograms ....... = 1000 g
472 1 Kin ............. = 600 g
473 1 Liang China ..... =
474 1 Liang Taiwan .... =
475 1 monme ........... = 3.75 g
476 1 ounce avoirdupois = 28.349523125 g
477 1 ounce troy ...... = 31.1034768 g
478 1 pound ........... = 453.59237 g
479 1 quintal metric .. = 100000 g
480 1 saloung ......... =
481 1 stone ........... = 6350.29318 g
482 1 tamlung ......... =
483 1 ton ............. = 1000000 g
484 1 ton uk .......... = 1016046.9088 g // long ton
485 1 ton us .......... = 907184.74 g // short ton
487 static const conv_t conv_WEIGHT
[] = {
488 DECLARE_CONV_UNIT(WEIGHT
, BAHT
, "$*12.244", "$/12.244")
489 DECLARE_CONV_UNIT(WEIGHT
, CARATS
, "$*0.2", "$/0.2")
490 // DECLARE_CONV_UNIT(WEIGHT, CHUNG, "$", "$")
491 // DECLARE_CONV_UNIT(WEIGHT, DON, "$", "$")
492 // DECLARE_CONV_UNIT(WEIGHT, GEUN, "$", "$")
493 DECLARE_CONV_UNIT(WEIGHT
, GRAMS
, "$", "$")
494 // DECLARE_CONV_UNIT(WEIGHT, GWAN, "$", "$")
495 // DECLARE_CONV_UNIT(WEIGHT, HARB, "$", "$")
496 // DECLARE_CONV_UNIT(WEIGHT, JIN_CHINA, "$", "$")
497 // DECLARE_CONV_UNIT(WEIGHT, JIN_TAIWAN, "$", "$")
498 DECLARE_CONV_UNIT(WEIGHT
, KAN
, "$*3750", "$/3750")
499 DECLARE_CONV_UNIT(WEIGHT
, KILOGRAMS
, "$*1000", "$/1000")
500 DECLARE_CONV_UNIT(WEIGHT
, KIN
, "$*600", "$/600")
501 // DECLARE_CONV_UNIT(WEIGHT, LIANG_CHINA, "$", "$")
502 // DECLARE_CONV_UNIT(WEIGHT, LIANG_TAIWAN, "$", "$")
503 DECLARE_CONV_UNIT(WEIGHT
, MONME
, "$*3.75", "$/3.75")
504 DECLARE_CONV_UNIT(WEIGHT
, OUNCES_AVOIRDUPOIS
, "$*28.349523125", "$/28.349523125")
505 DECLARE_CONV_UNIT(WEIGHT
, OUNCES_TROY
, "$*31.1034768", "$/31.1034768")
506 DECLARE_CONV_UNIT(WEIGHT
, POUNDS
, "$*453.59237", "$/453.59237")
507 DECLARE_CONV_UNIT(WEIGHT
, QUINTAL_METRIC
, "$*100000", "$/100000")
508 // DECLARE_CONV_UNIT(WEIGHT, SALOUNG, "$", "$")
509 DECLARE_CONV_UNIT(WEIGHT
, STONES
, "$*6350.29318", "$/6350.29318")
510 // DECLARE_CONV_UNIT(WEIGHT, TAMLUNG, "$", "$")
511 DECLARE_CONV_UNIT(WEIGHT
, TONNES
, "$*1000000", "$/1000000")
512 DECLARE_CONV_UNIT(WEIGHT
, TONS_UK
, "$*1016046.9088", "$/1016046.9088")
513 DECLARE_CONV_UNIT(WEIGHT
, TONS_US
, "$*907184.74", "$/907184.74")
517 static const conv_category_t conv_table
[] = {
518 DECLARE_CONV_CAT(ANGLE
)
519 DECLARE_CONV_CAT(AREA
)
520 DECLARE_CONV_CAT(CONSUMPTION
)
521 DECLARE_CONV_CAT(CURRENCY
)
522 DECLARE_CONV_CAT(ENERGY
)
523 DECLARE_CONV_CAT(LENGTH
)
524 DECLARE_CONV_CAT(POWER
)
525 DECLARE_CONV_CAT(PRESSURE
)
526 DECLARE_CONV_CAT(TIME
)
527 DECLARE_CONV_CAT(TEMPERATURE
)
528 DECLARE_CONV_CAT(VELOCITY
)
529 DECLARE_CONV_CAT(VOLUME
)
530 DECLARE_CONV_CAT(WEIGHT
)
533 void ConvExecute(HWND hWnd
)
535 DWORD c_cat
= (DWORD
)SendDlgItemMessage(hWnd
, IDC_COMBO_CATEGORY
, CB_GETCURSEL
, 0, 0);
536 const conv_t
*items
= NULL
;
537 DWORD from
= SendDlgItemMessage(hWnd
, IDC_COMBO_FROM
, CB_GETCURSEL
, 0, 0);
538 DWORD to
= SendDlgItemMessage(hWnd
, IDC_COMBO_TO
, CB_GETCURSEL
, 0, 0);
543 /* do nothing if the indexes point to the same unit */
547 /* Search correct category, since it can be sorted too */
548 SendDlgItemMessage(hWnd
, IDC_COMBO_CATEGORY
, CB_GETLBTEXT
, c_cat
, (LPARAM
)txt_cb
);
549 for (c_cat
=0; c_cat
< SIZEOF(conv_table
); c_cat
++) {
550 LoadString(calc
.hInstance
, conv_table
[c_cat
].category
, txt
, SIZEOF(txt
));
551 if (!_tcscmp(txt_cb
, txt
)) {
552 items
= conv_table
[c_cat
].items
;
557 /* The units can be sorted, so I must search the exact match */
559 SendDlgItemMessage(hWnd
, IDC_COMBO_FROM
, CB_GETLBTEXT
, from
, (LPARAM
)txt_cb
);
561 LoadString(calc
.hInstance
, item
->unit
, txt
, SIZEOF(txt
));
562 if (!_tcscmp(txt_cb
, txt
)) {
568 SendDlgItemMessage(hWnd
, IDC_COMBO_TO
, CB_GETLBTEXT
, to
, (LPARAM
)txt_cb
);
571 LoadString(calc
.hInstance
, item
->unit
, txt
, SIZEOF(txt
));
572 if (!_tcscmp(txt_cb
, txt
)) {
579 calc
.Convert
[0].data
= (char *)items
[from
].formula_from
;
580 calc
.Convert
[1].data
= (char *)items
[to
].formula_to
;
581 calc
.Convert
[0].wm_msg
= WM_HANDLE_FROM
;
582 calc
.Convert
[1].wm_msg
= WM_HANDLE_TO
;
583 PostMessage(hWnd
, WM_START_CONV
, 0, MAKELPARAM(0, WM_HANDLE_FROM
));
586 void ConvAdjust(HWND hWnd
, int n_cat
)
590 HWND hFromWnd
= GetDlgItem(hWnd
, IDC_COMBO_FROM
);
591 HWND hToWnd
= GetDlgItem(hWnd
, IDC_COMBO_TO
);
595 SendDlgItemMessage(hWnd
, IDC_COMBO_CATEGORY
, CB_GETLBTEXT
, n_cat
, (LPARAM
)txt_cat
);
596 for (n
=0; n
<SIZEOF(conv_table
); n
++) {
597 item
= conv_table
[n
].items
;
598 LoadString(calc
.hInstance
, conv_table
[n
].category
, txt
, SIZEOF(txt
));
599 if (!_tcscmp(txt_cat
, txt
))
603 SendMessage(hFromWnd
, CB_RESETCONTENT
, 0, 0);
604 SendMessage(hToWnd
, CB_RESETCONTENT
, 0, 0);
606 LoadString(calc
.hInstance
, item
->unit
, txt
, SIZEOF(txt
));
607 SendMessage(hFromWnd
, CB_ADDSTRING
, 0, (LPARAM
)txt
);
608 SendMessage(hToWnd
, CB_ADDSTRING
, 0, (LPARAM
)txt
);
611 SendMessage(hFromWnd
, CB_SETCURSEL
, 0, 0);
612 SendMessage(hToWnd
, CB_SETCURSEL
, 0, 0);
615 void ConvInit(HWND hWnd
)
617 HWND hCatWnd
= GetDlgItem(hWnd
, IDC_COMBO_CATEGORY
);
621 /* Fill category combo */
622 for (n
=0; n
<SIZEOF(conv_table
); n
++) {
623 LoadString(calc
.hInstance
, conv_table
[n
].category
, txt
, SIZEOF(txt
));
624 SendMessage(hCatWnd
, CB_ADDSTRING
, 0, (LPARAM
)txt
);
626 SendMessage(hCatWnd
, CB_SETCURSEL
, 0, 0);