/* -*- 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 Red Hat, Inc., Eike Rathke <erack@redhat.com>
 *  (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 <com/sun/star/i18n/CalendarItem2.idl>

//=============================================================================

module com { module sun { module star { module i18n {

//=============================================================================

/**
    Calendar items as returned in a sequence by
    <member>XLocaleData3::getAllCalendars2()</member>.

    <p> Similar to
    <type scope="::com::sun::star::i18n">Calendar</type> this provides 
    additional members with a sequence of possessive (genitive case) and 
    partitive case month names for locales that use them, for example 
    Slavic locales. If a locale does not provide the possessive form in 
    <member>GenitiveMonths</member>, the names are identical to the 
    nominative case nouns in <member>Calendar::Months</member>. If a 
    locale does not provide the partitive case in 
    <member>PartitiveMonths</member>, the names are identical to 
    <member>GenititiveMonths</member>. </p>

    <p> The sequences are of type
    <type scope="com::sun::star::i18n">CalendarItem2</type> instead of
    <type scope="com::sun::star::i18n">CalendarItem</type>, with the 
    additional <member>NarrowName</member> member.

    @see XLocaleData
        for links to DTD of XML locale data files.

    @since LibreOffice 3.5
 */

published struct Calendar2
{
    /// The days of the week.
    sequence< CalendarItem2 >   Days;

    /// The months of the year.
    sequence< CalendarItem2 >   Months;

    /// The months of the year in possessive genitive case.
    sequence< CalendarItem2 >   GenitiveMonths;

    /// The months of the year in partitive case.
    sequence< CalendarItem2 >   PartitiveMonths;

    /// The possible eras.
    sequence< CalendarItem2 >   Eras;

    /// The ID of the day with which the week begins.
    string                      StartOfWeek;

    /// How many days must reside in the first week of a year.
    short                       MinimumNumberOfDaysForFirstWeek;

    /// If this is the default calendar for a given locale.
    boolean                     Default;

    /// The name of the calendar, for example, <b>Gregorian</b>.
    string                      Name;
};

//=============================================================================
}; }; }; };

#endif
