/****************************************************************************
**
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt PIM Module.
**
** $QT_BEGIN_LICENSE:FDL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Digia.  For licensing terms and
** conditions see http://qt.digia.com/licensing.  For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file.  Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: http://www.gnu.org/copyleft/fdl.html.
** $QT_END_LICENSE$
**
****************************************************************************/

/*!
    \example calendardemo
    \title CalendarDemo

    \tableofcontents

    \section1 Overview

    This example shows how to write a simple calendar application using
    the \l{Qt Organizer C++ API}.

    \section2 Use Case

    Mobile devices allow people to lead an "always connected" lifestyle, which
    makes the ability to organize and schedule events and activities vitally
    important.  A calendar application on a device can allow three different
    levels of organization:

    \list
    \li Allow the user to explicitly organize their life by manually entering and scheduling events
    \li Allow the user to explicitly organize their life by manually scheduling events which can be populated automatically from other sources (online calendars, "communal" calendars, published agendas, gig-guides, etc)
    \li Automatically suggest schedules based on the current context of the user (including their interests and previous or current scheduling requirements), and the available events which are populated from online calendars, "communal" calendars, published agendas, gig-guides, etc.
    \endlist

    This application is an example of the first type of application: it allows
    the user to specify some simple events with simple recurrence options,
    and to view those manually-specified events.

    \section2 Interface
    The application is designed to work on desktop and mobile platforms with
    minimal differences in code between the platforms.  The interface consists
    of an Organizer backend selection widget, a "month view" table (which also
    includes the week number of every given week in the month), and some
    buttons which allow the user to add an event for the currently selected
    day.

    The user may cycle to the next month by clicking on the "greyed-out days"
    in the last row of the table (which actually occur in the next month), and
    may cycle to the previous month by clicking on the "greyed-out days" in
    the first row of the table (which actually occur in the previous month).

    \section2 Known Issues
    The example is not intended to exercise the entire API.  Instead, it is a
    simple example which illustrates some simple uses of the API.
    Only simple events may be added with this example, and no event-centric
    view is provided.
*/

