blob: 52eb7493772e1d5196480db5412f6f0d01f2167d [file] [log] [blame]
/**************************************************************
*
* 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
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#ifndef __com_sun_star_i18n_XCalendar_idl__
#define __com_sun_star_i18n_XCalendar_idl__
#include <com/sun/star/lang/Locale.idl>
#include <com/sun/star/i18n/Calendar.idl>
#include <com/sun/star/i18n/CalendarItem.idl>
//============================================================================
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 <type>Calendar</type>.
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,
<b>"gregorian"</b>
*/
string getUniqueID();
//------------------------------------------------------------------------
/**
Set the 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 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 <type>CalendarFieldIndex</type> 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 <type>CalendarFieldIndex</type> values.
*/
short getValue( [in] short nCalendarFieldIndex );
//------------------------------------------------------------------------
/**
Verify if the date fields set by a combination of
<member>XCalendar::setValue()</member> 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 <type>CalendarFieldIndex</type> values.
@param nAmount
The amount to add.
*/
void addValue( [in] short nCalendarFieldIndex, [in] long nAmount );
//------------------------------------------------------------------------
/** returns the first day of a week, one of <type>Weekdays</type>
values.
*/
short getFirstDayOfWeek();
//------------------------------------------------------------------------
/** Set the first day of a week, one of <type>Weekdays</type>
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. <b>12</b>
short getNumberOfMonthsInYear();
//------------------------------------------------------------------------
/// returns the number of days in a week, e.g. <b>7</b>
short getNumberOfDaysInWeek();
//------------------------------------------------------------------------
/** returns a sequence of <type>CalendarItem</type> describing the
month names.
*/
sequence< CalendarItem > getMonths();
//------------------------------------------------------------------------
/** returns a sequence of <type>CalendarItem</type> describing the
day names.
*/
sequence< CalendarItem > getDays();
//------------------------------------------------------------------------
/**
Returns a string (name to display) matching the given parameters.
@param nCalendarDisplayIndex
One of <type>CalendarDisplayIndex</type> values
@param nIdx
A value matching the <em>nCalendarDisplayIndex</em> type:
<dl>
<dt><const>CalendarDisplayIndex::AM_PM</const></dt>
<dd>one of <type>AmPmValue</type></dd>
<dt><const>CalendarDisplayIndex::DAY</const></dt>
<dd>one of <type>Weekdays</type> or a number used as
an offset into the corresponding
<member>Calendar::Days</member> sequence</dd>
<dt><const>CalendarDisplayIndex::MONTH</const></dt>
<dd>one of <type>Months</type> or a number used as
an offset into the corresponding
<member>Calendar::Months</member> sequence</dd>
<dt><const>CalendarDisplayIndex::YEAR</const></dt>
<dd>not used, empty string returned</dd>
<dt><const>CalendarDisplayIndex::ERA</const></dt>
<dd>a number used as an offset into the
corresponding <member>Calendar:Eras</member>
sequence</dd>
</dl>
<p> The value should be obtained by a previous call to
<member>XCalendar::getValue()</member> with an appropriate
<type>CalendarFieldIndex</type> argument. </p>
@param nNameType
A value indicating whether to return the abbreviated or the
full name.
<dl>
<dt> 0 </dt>
<dd>abbreviated name, e.g. <b>"Jan"</b></dd>
<dt> 1 </dt>
<dd>full name, e.g. <b>"January"</b></dd>
<p> This parameter is not used if the
<em>nCalendarDisplayIndex</em> argument equals
<const>CalendarDisplayIndex::AM_PM</const> </p>
*/
string getDisplayName( [in] short nCalendarDisplayIndex,
[in] short nIdx,
[in] short nNameType );
};
//============================================================================
}; }; }; };
#endif