From 122fae4e2d8443de1545ab927d2035dc8263184c Mon Sep 17 00:00:00 2001 From: Eike Rathke Date: Thu, 17 Nov 2011 19:44:36 +0100 Subject: add possessive genitive case month names to i18n locale data API --- offapi/UnoApi_offapi.mk | 3 + offapi/com/sun/star/i18n/Calendar2.idl | 68 ++++++++++++++++++++++ offapi/com/sun/star/i18n/CalendarDisplayCode.idl | 42 +++++++++----- offapi/com/sun/star/i18n/CalendarDisplayIndex.idl | 15 +++-- offapi/com/sun/star/i18n/LocaleCalendar.idl | 2 + offapi/com/sun/star/i18n/LocaleData.idl | 2 + offapi/com/sun/star/i18n/XCalendar.idl | 4 ++ offapi/com/sun/star/i18n/XCalendar3.idl | 71 +++++++++++++++++++++++ offapi/com/sun/star/i18n/XLocaleData3.idl | 65 +++++++++++++++++++++ 9 files changed, 251 insertions(+), 21 deletions(-) create mode 100644 offapi/com/sun/star/i18n/Calendar2.idl create mode 100644 offapi/com/sun/star/i18n/XCalendar3.idl create mode 100644 offapi/com/sun/star/i18n/XLocaleData3.idl diff --git a/offapi/UnoApi_offapi.mk b/offapi/UnoApi_offapi.mk index 8cd2ecfa59ed..01d8eed8b26a 100644 --- a/offapi/UnoApi_offapi.mk +++ b/offapi/UnoApi_offapi.mk @@ -2556,6 +2556,7 @@ $(eval $(call gb_UnoApiTarget_add_idlfiles,offapi,offapi/com/sun/star/i18n,\ BreakType \ CTLScriptType \ Calendar \ + Calendar2 \ CalendarDisplayCode \ CalendarDisplayIndex \ CalendarFieldIndex \ @@ -2603,6 +2604,7 @@ $(eval $(call gb_UnoApiTarget_add_idlfiles,offapi,offapi/com/sun/star/i18n,\ WordType \ XBreakIterator \ XCalendar \ + XCalendar3 \ XCharacterClassification \ XCollator \ XExtendedCalendar \ @@ -2615,6 +2617,7 @@ $(eval $(call gb_UnoApiTarget_add_idlfiles,offapi,offapi/com/sun/star/i18n,\ XInputSequenceChecker \ XLocaleData \ XLocaleData2 \ + XLocaleData3 \ XNativeNumberSupplier \ XNumberFormatCode \ XOrdinalSuffix \ diff --git a/offapi/com/sun/star/i18n/Calendar2.idl b/offapi/com/sun/star/i18n/Calendar2.idl new file mode 100644 index 000000000000..0be7a22bae69 --- /dev/null +++ b/offapi/com/sun/star/i18n/Calendar2.idl @@ -0,0 +1,68 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * Version: MPL 1.1 / GPLv3+ / LGPLv3+ + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License or as specified alternatively below. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * Major Contributor(s): + * Copyright (C) 2011 Eike Rathke (initial developer) + * + * All Rights Reserved. + * + * For minor contributions see the git repository. + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 3 or later (the "GPLv3+"), or + * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), + * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable + * instead of those above. + */ + +#ifndef __com_sun_star_i18n_Calendar2_idl__ +#define __com_sun_star_i18n_Calendar2_idl__ + +#include + +//============================================================================= + +module com { module sun { module star { module i18n { + +//============================================================================= + +/** + Calendar items as returned in a sequence by + XLocaleData3::getAllCalendars2(). + +

Derived from + Calendar this provides + an additional member with a sequence of possessive (genitive case) + month names for locales that use them, for example Slavic locales. + If a locale does not provide the possessive form, the names are + identical to the nouns in Calendar::Months + + @see XLocaleData + for links to DTD of XML locale data files. + + @since LibreOffice 3.5 + */ + +published struct Calendar2 : com::sun::star::i18n::Calendar +{ + /** the months of the year in possessive genitive case, see also + CalendarItem. + */ + sequence< CalendarItem > GenitiveMonths; +}; + +//============================================================================= +}; }; }; }; + +#endif diff --git a/offapi/com/sun/star/i18n/CalendarDisplayCode.idl b/offapi/com/sun/star/i18n/CalendarDisplayCode.idl index 780a88eb8fa7..5f77985951e6 100644 --- a/offapi/com/sun/star/i18n/CalendarDisplayCode.idl +++ b/offapi/com/sun/star/i18n/CalendarDisplayCode.idl @@ -48,40 +48,50 @@ module com { module sun { module star { module i18n { published constants CalendarDisplayCode { /// Day of month, one or two digits, no leading zero. - const long SHORT_DAY = 1; + const long SHORT_DAY = 1; /// Day of month, two digits, with leading zero. - const long LONG_DAY = 2; + const long LONG_DAY = 2; /// Day of week, abbreviated name. - const long SHORT_DAY_NAME = 3; + const long SHORT_DAY_NAME = 3; /// Day of week, full name. - const long LONG_DAY_NAME = 4; + const long LONG_DAY_NAME = 4; /// Month of year, one or two digits, no leading zero. - const long SHORT_MONTH = 5; + const long SHORT_MONTH = 5; /// Month of year, with leading zero. - const long LONG_MONTH = 6; + const long LONG_MONTH = 6; /// Full month name. - const long SHORT_MONTH_NAME = 7; + const long SHORT_MONTH_NAME = 7; /// Abbreviated month name. - const long LONG_MONTH_NAME = 8; + const long LONG_MONTH_NAME = 8; /// Year, two digits. - const long SHORT_YEAR = 9; + const long SHORT_YEAR = 9; /// Year, four digits. - const long LONG_YEAR = 10; + const long LONG_YEAR = 10; /// Full era name, for example, "Before Christ" or "Anno Dominus". - const long SHORT_ERA = 11; + const long SHORT_ERA = 11; /// Abbreviated era name, for example, BC or AD. - const long LONG_ERA = 12; + const long LONG_ERA = 12; /// Combined short year and era, order depends on locale/calendar. - const long SHORT_YEAR_AND_ERA = 13; + const long SHORT_YEAR_AND_ERA = 13; /// Combined full year and era, order depends on locale/calendar. - const long LONG_YEAR_AND_ERA = 14; + const long LONG_YEAR_AND_ERA = 14; /// Short quarter, for example, "Q1" - const long SHORT_QUARTER = 15; + const long SHORT_QUARTER = 15; /// Long quarter, for example, "1st quarter" - const long LONG_QUARTER = 16; + const long LONG_QUARTER = 16; + + /** Abbreviated possessive genitive case month name. + @since LibreOffice 3.5 + */ + const long SHORT_GENITIVE_MONTH_NAME = 17; + + /** Full possessive genitive case month name. + @since LibreOffice 3.5 + */ + const long LONG_GENITIVE_MONTH_NAME = 18; }; //============================================================================= diff --git a/offapi/com/sun/star/i18n/CalendarDisplayIndex.idl b/offapi/com/sun/star/i18n/CalendarDisplayIndex.idl index 4338ad50742f..76f17e37c976 100644 --- a/offapi/com/sun/star/i18n/CalendarDisplayIndex.idl +++ b/offapi/com/sun/star/i18n/CalendarDisplayIndex.idl @@ -41,15 +41,20 @@ module com { module sun { module star { module i18n { published constants CalendarDisplayIndex { /// name of an AM/PM value - const short AM_PM = 0; + const short AM_PM = 0; /// name of a day of week - const short DAY = 1; + const short DAY = 1; /// name of a month - const short MONTH = 2; + const short MONTH = 2; /// name of a year (if used for a specific calendar) - const short YEAR = 3; + const short YEAR = 3; /// name of an era, like BC/AD - const short ERA = 4; + const short ERA = 4; + + /** name of a possessive genitive case month + @since LibreOffice 3.5 + */ + const short GENITIVE_MONTH = 5; }; //============================================================================= diff --git a/offapi/com/sun/star/i18n/LocaleCalendar.idl b/offapi/com/sun/star/i18n/LocaleCalendar.idl index e34d88731378..44a4211956cf 100644 --- a/offapi/com/sun/star/i18n/LocaleCalendar.idl +++ b/offapi/com/sun/star/i18n/LocaleCalendar.idl @@ -31,6 +31,7 @@ #include #include #include +#include //============================================================================ @@ -45,6 +46,7 @@ published service LocaleCalendar interface com::sun::star::lang::XServiceInfo; [optional] interface com::sun::star::i18n::XExtendedCalendar; + [optional] interface com::sun::star::i18n::XCalendar3; }; //============================================================================ diff --git a/offapi/com/sun/star/i18n/LocaleData.idl b/offapi/com/sun/star/i18n/LocaleData.idl index 69846c11948f..26f1a690c2a6 100644 --- a/offapi/com/sun/star/i18n/LocaleData.idl +++ b/offapi/com/sun/star/i18n/LocaleData.idl @@ -30,6 +30,7 @@ #include #include +#include //============================================================================ @@ -44,6 +45,7 @@ published service LocaleData interface com::sun::star::lang::XServiceInfo; [optional] interface com::sun::star::i18n::XLocaleData2; + [optional] interface com::sun::star::i18n::XLocaleData3; }; //============================================================================ diff --git a/offapi/com/sun/star/i18n/XCalendar.idl b/offapi/com/sun/star/i18n/XCalendar.idl index ec300cfe20ed..49ab4b690dd8 100644 --- a/offapi/com/sun/star/i18n/XCalendar.idl +++ b/offapi/com/sun/star/i18n/XCalendar.idl @@ -197,6 +197,10 @@ published interface XCalendar : com::sun::star::uno::XInterface

a number used as an offset into the corresponding Calendar:Eras sequence
+
CalendarDisplayIndex::GENITIVE_MONTH
+
a number used as an offset into the + corresponding Calendar2:GenitiveMonth + sequence

The value should be obtained by a previous call to diff --git a/offapi/com/sun/star/i18n/XCalendar3.idl b/offapi/com/sun/star/i18n/XCalendar3.idl new file mode 100644 index 000000000000..8de955031518 --- /dev/null +++ b/offapi/com/sun/star/i18n/XCalendar3.idl @@ -0,0 +1,71 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * Version: MPL 1.1 / GPLv3+ / LGPLv3+ + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License or as specified alternatively below. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * Major Contributor(s): + * Copyright (C) 2011 Eike Rathke (initial developer) + * + * All Rights Reserved. + * + * For minor contributions see the git repository. + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 3 or later (the "GPLv3+"), or + * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), + * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable + * instead of those above. + */ + +#ifndef __com_sun_star_i18n_XCalendar3_idl__ +#define __com_sun_star_i18n_XCalendar3_idl__ + +#include +#include + +//============================================================================= + +module com { module sun { module star { module i18n { + +//============================================================================= + + +/** + This interface provides access to locale specific calendar + systems. + +

It is derived from + XExtendedCalendar and + provides additional methods to obtain Calendar2 items + that include the possessive genitive case month names.

+ + @since LibreOffice 3.5 + */ +published interface XCalendar3 : com::sun::star::i18n::XExtendedCalendar +{ + //------------------------------------------------------------------------ + /// Get the currently loaded Calendar2. + Calendar2 getLoadedCalendar2(); + + //------------------------------------------------------------------------ + /** returns a sequence of CalendarItem describing the + genitive case month names. + */ + sequence< CalendarItem > getGenitiveMonths(); + +}; + +//============================================================================= +}; }; }; }; + +#endif +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/i18n/XLocaleData3.idl b/offapi/com/sun/star/i18n/XLocaleData3.idl new file mode 100644 index 000000000000..870f615afded --- /dev/null +++ b/offapi/com/sun/star/i18n/XLocaleData3.idl @@ -0,0 +1,65 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * Version: MPL 1.1 / GPLv3+ / LGPLv3+ + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License or as specified alternatively below. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * Major Contributor(s): + * Copyright (C) 2011 Eike Rathke (initial developer) + * + * All Rights Reserved. + * + * For minor contributions see the git repository. + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 3 or later (the "GPLv3+"), or + * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), + * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable + * instead of those above. + */ + +#ifndef __com_sun_star_i18n_XLocaleData3_idl__ +#define __com_sun_star_i18n_XLocaleData3_idl__ + +#include +#include + +//============================================================================ + +module com { module sun { module star { module i18n { + +//============================================================================ + +/** + Access locale specific data. + +

Derived from XLocaleData2 this provides an + additional method to return a sequence of all Calendar2 elements available + for that locale. + + @since LibreOffice 3.5 + */ + +published interface XLocaleData3 : com::sun::star::i18n::XLocaleData2 +{ + /** returns all LC_CALENDAR calendars for a locale. + */ + sequence< Calendar2 > getAllCalendars2( + [in] com::sun::star::lang::Locale aLocale ); +}; + +//============================================================================ +}; }; }; }; + +#endif +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit