1*b1cdbd2cSJim Jagielski/************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_i18n_NumberFormatIndex_idl__ 25*b1cdbd2cSJim Jagielski#define __com_sun_star_i18n_NumberFormatIndex_idl__ 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski//============================================================================= 28*b1cdbd2cSJim Jagielski 29*b1cdbd2cSJim Jagielskimodule com { module sun { module star { module i18n { 30*b1cdbd2cSJim Jagielski 31*b1cdbd2cSJim Jagielski//============================================================================= 32*b1cdbd2cSJim Jagielski 33*b1cdbd2cSJim Jagielski//! Do NOT insert any new values! 34*b1cdbd2cSJim Jagielski//! Locale data number format creation must match these values! 35*b1cdbd2cSJim Jagielski//! Number formatter internals must match these values! 36*b1cdbd2cSJim Jagielski 37*b1cdbd2cSJim Jagielski/** 38*b1cdbd2cSJim Jagielski Number format indices to be passed as the index argument to 39*b1cdbd2cSJim Jagielski <member>XNumberFormatCode::getFormatCode()</member> 40*b1cdbd2cSJim Jagielski or 41*b1cdbd2cSJim Jagielski <member scope="::com::sun::star::util">XNumberFormatTypes::getFormatIndex()</member>. 42*b1cdbd2cSJim Jagielski 43*b1cdbd2cSJim Jagielski <p> Each locale can support up to about 5000 arbitrary format 44*b1cdbd2cSJim Jagielski codes. But for backward compatiblity reasons, each locale 45*b1cdbd2cSJim Jagielski <b>MUST</b> support some predefined format codes. These predefined 46*b1cdbd2cSJim Jagielski format codes are accessed through indices as the following, and 47*b1cdbd2cSJim Jagielski the locale data format code definitions in 48*b1cdbd2cSJim Jagielski i18npool\source\localedata\data\*.xml <b>MUST</b> have matching 49*b1cdbd2cSJim Jagielski entries in the form <br/> 50*b1cdbd2cSJim Jagielski 51*b1cdbd2cSJim Jagielski <code><FormatElement formatindex="0"></code> <br/> 52*b1cdbd2cSJim Jagielski 53*b1cdbd2cSJim Jagielski (see also <member>FormatElement::formatIndex</member>). 54*b1cdbd2cSJim Jagielski 55*b1cdbd2cSJim Jagielski The index values are also used to define the <code>enum 56*b1cdbd2cSJim Jagielski NfIndexTableOffset</code> in file svtools/inc/zforlist.hxx </p> 57*b1cdbd2cSJim Jagielski 58*b1cdbd2cSJim Jagielski <p> Note: This index has <b>nothing</b> to do with the index key 59*b1cdbd2cSJim Jagielski used internally by the number formatter. </p> <br/> 60*b1cdbd2cSJim Jagielski 61*b1cdbd2cSJim Jagielski <p> Date formats may have a comment of DIN/EN/ISO, meaning 62*b1cdbd2cSJim Jagielski <ul> 63*b1cdbd2cSJim Jagielski <li> DIN 5008 (Deutsche Industrie Norm) </li> 64*b1cdbd2cSJim Jagielski <li> EN 28601 (European Norm) </li> 65*b1cdbd2cSJim Jagielski <li> ISO 8601 (International Standards Organisation) </li> 66*b1cdbd2cSJim Jagielski </ul> 67*b1cdbd2cSJim Jagielski </p> 68*b1cdbd2cSJim Jagielski 69*b1cdbd2cSJim Jagielski <p> Some names of date format constants indicate a special 70*b1cdbd2cSJim Jagielski behavior of those formats in StarOffice 5.2 or older. Those are: 71*b1cdbd2cSJim Jagielski 72*b1cdbd2cSJim Jagielski <dl> 73*b1cdbd2cSJim Jagielski <dt> <a name="SYSTEM"> DATE_SYSTEM_... </a> </dt> 74*b1cdbd2cSJim Jagielski <dd> On Windows platforms these formats were entirely 75*b1cdbd2cSJim Jagielski retrieved from the system's Regional Settings. OpenOffice.org 76*b1cdbd2cSJim Jagielski / StarOffice 6 don't use those Windows settings anymore in 77*b1cdbd2cSJim Jagielski order to provide the same functionality and document layout on 78*b1cdbd2cSJim Jagielski every platform. Like all other formats these formats are now 79*b1cdbd2cSJim Jagielski defined in the i18n framework locale data files under 80*b1cdbd2cSJim Jagielski i18npool\source\localedata\data\*.xml </dd> 81*b1cdbd2cSJim Jagielski 82*b1cdbd2cSJim Jagielski <dt> <a name="SYS"> DATE_SYS_... </a> </dt> 83*b1cdbd2cSJim Jagielski <dd> On Windows platforms these formats used separators and 84*b1cdbd2cSJim Jagielski YMD order retrieved from the Regional Settings, but appearance 85*b1cdbd2cSJim Jagielski of short/long days/months/years was defined by the 86*b1cdbd2cSJim Jagielski application. </dd> 87*b1cdbd2cSJim Jagielski 88*b1cdbd2cSJim Jagielski <dt> <a name="DEF"> DATE_DEF_... </a> </dt> 89*b1cdbd2cSJim Jagielski <dd> The format code was hard defined, only the date separator 90*b1cdbd2cSJim Jagielski was taken from the Windows Regional Settings, but not the YMD 91*b1cdbd2cSJim Jagielski order. </dd> 92*b1cdbd2cSJim Jagielski 93*b1cdbd2cSJim Jagielski </dl> 94*b1cdbd2cSJim Jagielski </p> 95*b1cdbd2cSJim Jagielski */ 96*b1cdbd2cSJim Jagielskipublished constants NumberFormatIndex 97*b1cdbd2cSJim Jagielski{ 98*b1cdbd2cSJim Jagielski /// Start of simple numerical formats (first format) 99*b1cdbd2cSJim Jagielski const short NUMBER_START = 0; 100*b1cdbd2cSJim Jagielski /// The "General" standard format 101*b1cdbd2cSJim Jagielski const short NUMBER_STANDARD = NUMBER_START; 102*b1cdbd2cSJim Jagielski /// 0 <br/>Integer number 103*b1cdbd2cSJim Jagielski const short NUMBER_INT = NUMBER_START+1; 104*b1cdbd2cSJim Jagielski /// 0.00 <br/>Decimal number with 2 decimals 105*b1cdbd2cSJim Jagielski const short NUMBER_DEC2 = NUMBER_START+2; 106*b1cdbd2cSJim Jagielski /// #,##0 <br/>Integer number with group separator 107*b1cdbd2cSJim Jagielski const short NUMBER_1000INT = NUMBER_START+3; 108*b1cdbd2cSJim Jagielski /// #,##0.00 <br/>Decimal number with group separator 109*b1cdbd2cSJim Jagielski const short NUMBER_1000DEC2 = NUMBER_START+4; 110*b1cdbd2cSJim Jagielski /// #,##0.00 <br/> In SO5/Win this format was retrieved from the Regional Settings 111*b1cdbd2cSJim Jagielski const short NUMBER_SYSTEM = NUMBER_START+5; 112*b1cdbd2cSJim Jagielski /// End of simple numerical formats (last format) 113*b1cdbd2cSJim Jagielski const short NUMBER_END = NUMBER_SYSTEM ; 114*b1cdbd2cSJim Jagielski 115*b1cdbd2cSJim Jagielski 116*b1cdbd2cSJim Jagielski /// Start of Scientific formats (first format) 117*b1cdbd2cSJim Jagielski const short SCIENTIFIC_START = NUMBER_END+1; 118*b1cdbd2cSJim Jagielski /// 0.00E+000 <br/>Number in scientific notation with exponent in 3 digit placeholders 119*b1cdbd2cSJim Jagielski const short SCIENTIFIC_000E000 = SCIENTIFIC_START; 120*b1cdbd2cSJim Jagielski /// 0.00E+00 <br/>Number in scientific notation with exponent in 2 digit placeholders 121*b1cdbd2cSJim Jagielski const short SCIENTIFIC_000E00 = SCIENTIFIC_START+1; 122*b1cdbd2cSJim Jagielski /// End of Scientific formats (last format) 123*b1cdbd2cSJim Jagielski const short SCIENTIFIC_END = SCIENTIFIC_000E00; 124*b1cdbd2cSJim Jagielski 125*b1cdbd2cSJim Jagielski 126*b1cdbd2cSJim Jagielski /// Start of Percent formats (first format) 127*b1cdbd2cSJim Jagielski const short PERCENT_START = SCIENTIFIC_END+1; 128*b1cdbd2cSJim Jagielski /// 0% <br/>Percentage format, rounded to integer 129*b1cdbd2cSJim Jagielski const short PERCENT_INT = PERCENT_START; 130*b1cdbd2cSJim Jagielski /// 0.00% <br/>Percentage format, rounded to 2 decimals 131*b1cdbd2cSJim Jagielski const short PERCENT_DEC2 = PERCENT_START+1; 132*b1cdbd2cSJim Jagielski /// End of Percent formats (last format) 133*b1cdbd2cSJim Jagielski const short PERCENT_END = PERCENT_DEC2; 134*b1cdbd2cSJim Jagielski 135*b1cdbd2cSJim Jagielski 136*b1cdbd2cSJim Jagielski /// Start of Fraction formats (first format) 137*b1cdbd2cSJim Jagielski const short FRACTION_START = PERCENT_END+1; 138*b1cdbd2cSJim Jagielski /// # ?/? <br/>Number with decimal in fraction in 1 digit placeholder 139*b1cdbd2cSJim Jagielski const short FRACTION_1 = FRACTION_START; 140*b1cdbd2cSJim Jagielski /// # ??/?? <br/>Number with decimal in fraction in 2 digit placeholders 141*b1cdbd2cSJim Jagielski const short FRACTION_2 = FRACTION_START+1; 142*b1cdbd2cSJim Jagielski /// End of Fraction formats (last format) 143*b1cdbd2cSJim Jagielski const short FRACTION_END = FRACTION_2; 144*b1cdbd2cSJim Jagielski 145*b1cdbd2cSJim Jagielski 146*b1cdbd2cSJim Jagielski /// Start of Currency formats (first format) 147*b1cdbd2cSJim Jagielski const short CURRENCY_START = FRACTION_END+1; 148*b1cdbd2cSJim Jagielski /// #,##0 DM <br/>Integer currency format with group separator 149*b1cdbd2cSJim Jagielski const short CURRENCY_1000INT = CURRENCY_START; 150*b1cdbd2cSJim Jagielski /// #,##0.00 DM <br/>Decimal currency format with group separator 151*b1cdbd2cSJim Jagielski const short CURRENCY_1000DEC2 = CURRENCY_START+1; 152*b1cdbd2cSJim Jagielski /// #,##0 DM <br/>Integer currency format with negative in red 153*b1cdbd2cSJim Jagielski const short CURRENCY_1000INT_RED = CURRENCY_START+2; 154*b1cdbd2cSJim Jagielski /// #,##0.00 DM <br/>Decimal currency format with negative in red 155*b1cdbd2cSJim Jagielski const short CURRENCY_1000DEC2_RED = CURRENCY_START+3; 156*b1cdbd2cSJim Jagielski /// #,##0.00 DEM <br/>Currency in ISO-4217 abbreviation format 157*b1cdbd2cSJim Jagielski const short CURRENCY_1000DEC2_CCC = CURRENCY_START+4; 158*b1cdbd2cSJim Jagielski /// #,##0.-- DM <br/>Currency format with dash representing 0 in decimals 159*b1cdbd2cSJim Jagielski const short CURRENCY_1000DEC2_DASHED = CURRENCY_START+5; 160*b1cdbd2cSJim Jagielski /// End of Currency formats (last format) 161*b1cdbd2cSJim Jagielski const short CURRENCY_END = CURRENCY_1000DEC2_DASHED; 162*b1cdbd2cSJim Jagielski 163*b1cdbd2cSJim Jagielski 164*b1cdbd2cSJim Jagielski /// Start of Date formats (first format) 165*b1cdbd2cSJim Jagielski const short DATE_START = CURRENCY_END+1; 166*b1cdbd2cSJim Jagielski /// 08.10.97 <br/> see also DATE_SYSTEM_... <a href="#SYSTEM">explanation</a> 167*b1cdbd2cSJim Jagielski const short DATE_SYSTEM_SHORT = DATE_START; 168*b1cdbd2cSJim Jagielski /// Wednesday, 8. October 1997 <br/> see also DATE_SYSTEM_... <a href="#SYSTEM">explanation</a> 169*b1cdbd2cSJim Jagielski const short DATE_SYSTEM_LONG = DATE_START+1; 170*b1cdbd2cSJim Jagielski /// 08.10.97 <br/> see also DATE_SYS_... <a href="#SYS">explanation</a> 171*b1cdbd2cSJim Jagielski const short DATE_SYS_DDMMYY = DATE_START+2; 172*b1cdbd2cSJim Jagielski /** 08.10.1997 <br/> see also DATE_SYS_... <a href="#SYS">explanation</a> 173*b1cdbd2cSJim Jagielski <br/><b>Note:</b> When editing already existing date data this 174*b1cdbd2cSJim Jagielski format is forced in order to always edit the full century. */ 175*b1cdbd2cSJim Jagielski const short DATE_SYS_DDMMYYYY = DATE_START+3; 176*b1cdbd2cSJim Jagielski /// 8. Oct 97 <br/> see also DATE_SYS_... <a href="#SYS">explanation</a> 177*b1cdbd2cSJim Jagielski const short DATE_SYS_DMMMYY = DATE_START+4; 178*b1cdbd2cSJim Jagielski /// 8. Oct 1997 <br/> see also DATE_SYS_... <a href="#SYS">explanation</a> 179*b1cdbd2cSJim Jagielski const short DATE_SYS_DMMMYYYY = DATE_START+5; 180*b1cdbd2cSJim Jagielski /// 8. Oct. 1997 <br/> DIN/EN 181*b1cdbd2cSJim Jagielski const short DATE_DIN_DMMMYYYY = DATE_START+6; 182*b1cdbd2cSJim Jagielski /// 8. October 1997 <br/> see also DATE_SYS_... <a href="#SYS">explanation</a> 183*b1cdbd2cSJim Jagielski const short DATE_SYS_DMMMMYYYY = DATE_START+7; 184*b1cdbd2cSJim Jagielski /// 8. October 1997 <br/> DIN/EN 185*b1cdbd2cSJim Jagielski const short DATE_DIN_DMMMMYYYY = DATE_START+8; 186*b1cdbd2cSJim Jagielski /// Wed, 8. Oct 97 <br/> see also DATE_SYS_... <a href="#SYS">explanation</a> 187*b1cdbd2cSJim Jagielski const short DATE_SYS_NNDMMMYY = DATE_START+9; 188*b1cdbd2cSJim Jagielski /// Wed 08.Oct 97 <br/> see also DATE_DEF_... <a href="#DEF">explanation</a> 189*b1cdbd2cSJim Jagielski const short DATE_DEF_NNDDMMMYY = DATE_START+10; 190*b1cdbd2cSJim Jagielski /// Wed, 8. October 1997 <br/> see also DATE_SYS_... <a href="#SYS">explanation</a> 191*b1cdbd2cSJim Jagielski const short DATE_SYS_NNDMMMMYYYY = DATE_START+11; 192*b1cdbd2cSJim Jagielski /// Wednesday, 8. October 1997 193*b1cdbd2cSJim Jagielski const short DATE_SYS_NNNNDMMMMYYYY = DATE_START+12; 194*b1cdbd2cSJim Jagielski /// 10-08 <br/> DIN/EN 195*b1cdbd2cSJim Jagielski const short DATE_DIN_MMDD = DATE_START+13; 196*b1cdbd2cSJim Jagielski /// 97-10-08 <br/> DIN/EN/ISO 197*b1cdbd2cSJim Jagielski const short DATE_DIN_YYMMDD = DATE_START+14; 198*b1cdbd2cSJim Jagielski /// 1997-10-08 <br/> DIN/EN/ISO 199*b1cdbd2cSJim Jagielski const short DATE_DIN_YYYYMMDD = DATE_START+15; 200*b1cdbd2cSJim Jagielski /// 10.97 <br/> see also DATE_SYS_... <a href="#SYS">explanation</a> 201*b1cdbd2cSJim Jagielski const short DATE_SYS_MMYY = DATE_START+16; 202*b1cdbd2cSJim Jagielski /// 08.Oct <br/> see also DATE_SYS_... <a href="#SYS">explanation</a> 203*b1cdbd2cSJim Jagielski const short DATE_SYS_DDMMM = DATE_START+17; 204*b1cdbd2cSJim Jagielski /// October 205*b1cdbd2cSJim Jagielski const short DATE_MMMM = DATE_START+18; 206*b1cdbd2cSJim Jagielski /// 4th quarter 97 207*b1cdbd2cSJim Jagielski const short DATE_QQJJ = DATE_START+19; 208*b1cdbd2cSJim Jagielski /// week of year 209*b1cdbd2cSJim Jagielski const short DATE_WW = DATE_START+20; 210*b1cdbd2cSJim Jagielski /// End of Date formats (last format) 211*b1cdbd2cSJim Jagielski const short DATE_END = DATE_WW; 212*b1cdbd2cSJim Jagielski 213*b1cdbd2cSJim Jagielski 214*b1cdbd2cSJim Jagielski /// Start of Time formats (first format) 215*b1cdbd2cSJim Jagielski const short TIME_START = DATE_END+1; 216*b1cdbd2cSJim Jagielski /// HH:MM <br/>Time format with hour and minute 217*b1cdbd2cSJim Jagielski const short TIME_HHMM = TIME_START; 218*b1cdbd2cSJim Jagielski /// HH:MM:SS <br/>Time format with hour, minute and second 219*b1cdbd2cSJim Jagielski const short TIME_HHMMSS = TIME_START+1; 220*b1cdbd2cSJim Jagielski /// HH:MM AM/PM <br/>Time format with hour, minute and morning/afternoon notation 221*b1cdbd2cSJim Jagielski const short TIME_HHMMAMPM = TIME_START+2; 222*b1cdbd2cSJim Jagielski /// HH:MM:SS AM/PM <br/>Time format with hour, minute, second and morning/afternoon notation 223*b1cdbd2cSJim Jagielski const short TIME_HHMMSSAMPM = TIME_START+3; 224*b1cdbd2cSJim Jagielski /// [HH]:MM:SS <br/>Time format with amount of hours 225*b1cdbd2cSJim Jagielski const short TIME_HH_MMSS = TIME_START+4; 226*b1cdbd2cSJim Jagielski /// MM:SS,00 <br/>Time format with second in fraction 227*b1cdbd2cSJim Jagielski const short TIME_MMSS00 = TIME_START+5; 228*b1cdbd2cSJim Jagielski /// [HH]:MM:SS,00 <br/>Time format with amount of hours and seconds with fraction 229*b1cdbd2cSJim Jagielski const short TIME_HH_MMSS00 = TIME_START+6; 230*b1cdbd2cSJim Jagielski /// End of Time formats (last format) 231*b1cdbd2cSJim Jagielski const short TIME_END = TIME_HH_MMSS00; 232*b1cdbd2cSJim Jagielski 233*b1cdbd2cSJim Jagielski 234*b1cdbd2cSJim Jagielski /// Start of DateTime formats (first format) 235*b1cdbd2cSJim Jagielski const short DATETIME_START = TIME_END + 1; 236*b1cdbd2cSJim Jagielski /// 08.10.97 01:23 Date/time format 237*b1cdbd2cSJim Jagielski const short DATETIME_SYSTEM_SHORT_HHMM = DATETIME_START; 238*b1cdbd2cSJim Jagielski /** 08.10.1997 01:23:45 Date/time format with second 239*b1cdbd2cSJim Jagielski <br/><b>Note:</b> When editing already existing date/time data this 240*b1cdbd2cSJim Jagielski format is forced in order to always edit the full century. */ 241*b1cdbd2cSJim Jagielski const short DATETIME_SYS_DDMMYYYY_HHMMSS= DATETIME_START+1; 242*b1cdbd2cSJim Jagielski /// End of DateTime formats (last format) 243*b1cdbd2cSJim Jagielski const short DATETIME_END = DATETIME_SYS_DDMMYYYY_HHMMSS; 244*b1cdbd2cSJim Jagielski 245*b1cdbd2cSJim Jagielski 246*b1cdbd2cSJim Jagielski /** 247*b1cdbd2cSJim Jagielski BOOLEAN format 248*b1cdbd2cSJim Jagielski 249*b1cdbd2cSJim Jagielski @ATTENTION 250*b1cdbd2cSJim Jagielski <b>Not</b> defined in locale data, but generated by the number 251*b1cdbd2cSJim Jagielski formatter. If you want to access this format you <b>MUST</b> 252*b1cdbd2cSJim Jagielski do it via <member scope="com::sun::star::util">XNumberFormatTypes::getFormatIndex()</member> 253*b1cdbd2cSJim Jagielski instead of <member>XNumberFormatCode::getFormatCode()</member>. 254*b1cdbd2cSJim Jagielski */ 255*b1cdbd2cSJim Jagielski const short BOOLEAN = DATETIME_END+1; 256*b1cdbd2cSJim Jagielski 257*b1cdbd2cSJim Jagielski /** 258*b1cdbd2cSJim Jagielski Text format 259*b1cdbd2cSJim Jagielski 260*b1cdbd2cSJim Jagielski @ATTENTION 261*b1cdbd2cSJim Jagielski <b>Not</b> defined in locale data, but generated by the number 262*b1cdbd2cSJim Jagielski formatter. If you want to access this format you <b>MUST</b> 263*b1cdbd2cSJim Jagielski do it via <member scope="com::sun::star::util">XNumberFormatTypes::getFormatIndex()</member> 264*b1cdbd2cSJim Jagielski instead of <member>XNumberFormatCode::getFormatCode()</member> 265*b1cdbd2cSJim Jagielski */ 266*b1cdbd2cSJim Jagielski const short TEXT = BOOLEAN+1; 267*b1cdbd2cSJim Jagielski 268*b1cdbd2cSJim Jagielski /// count of built-in format codes. 269*b1cdbd2cSJim Jagielski const short INDEX_TABLE_ENTRIES = TEXT+1; 270*b1cdbd2cSJim Jagielski}; 271*b1cdbd2cSJim Jagielski 272*b1cdbd2cSJim Jagielski 273*b1cdbd2cSJim Jagielski//============================================================================= 274*b1cdbd2cSJim Jagielski}; }; }; }; 275*b1cdbd2cSJim Jagielski#endif 276*b1cdbd2cSJim Jagielski 277