/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ #ifndef __com_sun_star_i18n_XCalendar_idl__ #define __com_sun_star_i18n_XCalendar_idl__ #include #include #include module com { module sun { module star { module i18n { /** Access to locale specific calendar systems. */ published interface XCalendar : com::sun::star::uno::XInterface { /// Load the default calendar for the given locale. void loadDefaultCalendar( [in] ::com::sun::star::lang::Locale rLocale ); /// Load a specific calendar for the given locale. void loadCalendar( [in] string uniqueID, [in] ::com::sun::star::lang::Locale rLocale ); /// Get the currently loaded Calendar. Calendar getLoadedCalendar(); /// Returns all available calendars for the given locale. sequence< string > getAllCalendars( [in] ::com::sun::star::lang::Locale rLocale ); /** Returns the ID string of the loaded calendar, for example, "Gregorian" */ string getUniqueID(); /** Set the UTC date/time as an offset to the start of the calendar at 1-Jan-1970 00:00. The integer part represents the number of days passed since start date. The fractional part represents fractions of a day, thus 0.5 means 12 hours. */ void setDateTime( [in] double nTimeInDays ); /** Get the UTC date/time as an offset to the start of the calendar at 1-Jan-1970 00:00. The integer part represents the number of days passed since start date. The fractional part represents fractions of a day, thus 0.5 means 12 hours. */ double getDateTime(); /** Set the value of a field. @param nCalendarFieldIndex One of CalendarFieldIndex values. @param nValue A value of the allowed range for the field index. */ void setValue( [in] short nCalendarFieldIndex, [in] short nValue ); /** Get the value of a field. @param nCalendarFieldIndex One of CalendarFieldIndex values. */ short getValue( [in] short nCalendarFieldIndex ); /** Verify if the date fields set by a combination of XCalendar::setValue() calls is valid. It has a side-effect because it will internally calculate the final value for the date fields */ boolean isValid(); /** Add an amount to a field. @param nCalendarFieldIndex One of CalendarFieldIndex values. @param nAmount The amount to add. */ void addValue( [in] short nCalendarFieldIndex, [in] long nAmount ); /** returns the first day of a week, one of Weekdays values. */ short getFirstDayOfWeek(); /** Set the first day of a week, one of Weekdays values. */ void setFirstDayOfWeek( [in] short nDay ); /** Set how many days of a week must reside in the first week of a year. */ void setMinimumNumberOfDaysForFirstWeek( [in] short nDays ); /** returns how many days of a week must reside in the first week of a year. */ short getMinimumNumberOfDaysForFirstWeek(); /// returns the number of months in a year, e.g. 12 short getNumberOfMonthsInYear(); /// returns the number of days in a week, e.g. 7 short getNumberOfDaysInWeek(); /** returns a sequence of CalendarItem describing the month names. */ sequence< CalendarItem > getMonths(); /** returns a sequence of CalendarItem describing the day names. */ sequence< CalendarItem > getDays(); /** Returns a string (name to display) matching the given parameters. @param nCalendarDisplayIndex One of CalendarDisplayIndex values @param nIdx A value matching the nCalendarDisplayIndex type:
CalendarDisplayIndex::AM_PM
one of AmPmValue
CalendarDisplayIndex::DAY
one of Weekdays or a number used as an offset into the corresponding Calendar::Days sequence
CalendarDisplayIndex::MONTH
one of Months or a number used as an offset into the corresponding Calendar::Months sequence
CalendarDisplayIndex::YEAR
not used, empty string returned
CalendarDisplayIndex::ERA
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 XCalendar::getValue() with an appropriate CalendarFieldIndex argument.

@param nNameType A value indicating whether to return the abbreviated or the full name, or the narrow name for some CalendarDisplayIndex values.
0
abbreviated name, e.g. "Jan"
1
full name, e.g. "January"
2
narrow name, e.g. "J"
Valid only for CalendarDisplayIndex::DAY, CalendarDisplayIndex::MONTH and CalendarDisplayIndex::GENITIVE_MONTH
@since LibreOffice 3.5

This parameter is not used if the nCalendarDisplayIndex argument equals CalendarDisplayIndex::AM_PM

*/ string getDisplayName( [in] short nCalendarDisplayIndex, [in] short nIdx, [in] short nNameType ); }; }; }; }; }; #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */