organizer_plat/calendar_launcher_api/inc/CalenLauncher.h
author Simon Howkins <simonh@symbian.org>
Mon, 22 Nov 2010 16:01:09 +0000
branchRCL_3
changeset 93 d216ae5a8733
parent 66 bd7edf625bdd
permissions -rw-r--r--
Adjusted to avoid exports, etc, from a top-level bld.inf

/*
* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description:   Wrapper class for launching S60 Calendar application
*
*/



#ifndef CALENLAUNCHER_H
#define CALENLAUNCHER_H

/**
* Include files
*/
#include <calentry.h>   // CCalEntry::TType

/**
* S60 Month view uid
*/
const TUid KCalMonthViewUid    = { 0x10283360 };

/**
* S60 Week view uid
*/
const TUid KCalWeekViewUid     = { 0x10283361 };

/**
* S60 Day view uid
*/
const TUid KCalDayViewUid      = { 0x10283362 };

/**
* S60 Todo view uid
*/
const TUid KCalTodoViewUid     = { 0x10283363 };

/**
* S60 Default view uid
* This is the default view as set by the user in the Calendar settings
*/
const TUid KCalDefaultViewUid   = { 0x10283364 };

/**
* CalenLauncher allows external applications to start the S60 Calendar
* application in any of its views.
*
* Available launch options are:
* - Launch the Calendar and edit a new entry
* - Launch the Calendar and view an existing entry
* - Launch the Calendar and view an instance of a repeating entry
* - Launch the Calendar and edit an existing entry
* - Launch the Calendar and edit an instance of a repeating entry
* - Launch the Calendar to the default view
* - Launch the Calendar to the specified view
* - Launch the Calendar to the specified view at a given time and date
*
* @code
* // To create a new meeting
* CalenLauncher::NewEntryL( CCalEntry::EAppt );
*
* // To create a new todo
* CalenLauncher::NewEntryL( CCalEntry::ETodo );
*
* // To launch Calendar in the month view
* CalenLauncher::LaunchL( KCalMonthViewUid );
* @endcode
*/
NONSHARABLE_CLASS( CalenLauncher )
    {
    public:
        // internal viewer flags - do not use
        enum
            {
            EAlarmViewer         = 0x01,
            EAlarmViewerNoSnooze = 0x02
            };

    public:
        /**
        * Opens Calendar directly to the new entry editor.
        * Calendar will be closed when the editor is closed, even if it was
        * already open.
        * Any open dialogs (eg entry viewer or editor) will be closed.
        * @param aEntryType Type of entry editor to open
        * @param aFlags Reserved for future use
        */
        IMPORT_C static void NewEntryL( const CCalEntry::TType& aEntryType,
                                        TInt aFlags = 0 );

        /**
        * Opens a Calendar entry directly in the entry viewer.  If the
        * entry is a repeating entry then entire series will be opened.
        * The entry editor may be launched from the entry viewer.
        * Calendar will be closed when the editor is closed, even if it was
        * already open.
        * Any open dialogs (eg entry viewer or editor) will be closed.
        * @param aUid LocalUid of the entry to view
        * @param aFlags Reserved for future use
        */
        IMPORT_C static void ViewEntryL( const TCalLocalUid& aUid,
                                         TInt aFlags = 0 );

        /**
        * Opens an instance of a repeating Calendar entry directly in the
        * entry viewer.
        * The entry editor may be launched from the entry viewer.
        * Calendar will be closed when the editor is closed, even if it was
        * already open.
        * Any open dialogs (eg entry viewer or editor) will be closed.
        * @param aUid LocalUid of the entry to view
        * @param aInstanceTime Instance time of the repeated entry
        * @param aFlags Reserved for future use
        */
        IMPORT_C static void ViewEntryL( const TCalLocalUid& aUid,
                                         const TCalTime& aInstanceTime,
                                         TInt aFlags = 0 );

		/**
        * Opens an instance of a repeating Calendar entry directly in the
        * entry viewer.
        * The entry editor may be launched from the entry viewer.
        * Calendar will be closed when the editor is closed, even if it was
        * already open.
        * Any open dialogs (eg entry viewer or editor) will be closed.
        * @param aUid LocalUid of the entry to view
        * @param aInstanceTime Instance time of the repeated entry
        * @param aCalFileName Calendar DB name of the repeated entry.
        * @param aFlags Reserved for future use
        */
        IMPORT_C static void ViewEntryL( const TCalLocalUid& aUid,
                                         const TCalTime& aInstanceTime,
                                         const TDesC& aCalFileName,
                                         TInt aFlags = 0 );



        /**
        * Opens a Calendar entry directly in the entry editor.  If the
        * entry is a repeating entry then entire series will be opened.
        * Calendar will be closed when the editor is closed, even if it was
        * already open.
        * Any open dialogs (eg entry viewer or editor) will be closed.
        * @param aUid LocalUid of the entry to view
        * @param aFlags Reserved for future use
        */
        IMPORT_C static void EditEntryL( const TCalLocalUid& aUid,
                                         TInt aFlags = 0 );

        /**
        * Opens an instance of a repeating Calendar entry directly in the
        * entry editor.
        * Calendar will be closed when the editor is closed, even if it was
        * already open.
        * Any open dialogs (eg entry viewer or editor) will be closed.
        * @param aUid LocalUid of the entry to view
        * @param aInstanceTime Instance time of the repeated entry
        * @param aFlags Reserved for future use
        */
        IMPORT_C static void EditEntryL( const TCalLocalUid& aUid,
                                         const TCalTime& aInstanceTime,
                                         TInt aFlags = 0 );

        /**
        * Launches Calendar in the specified view.
        * If Calendar is already running it will be brought to the foreground
        * in the specified view.
        * Any open dialogs (eg entry viewer or editor) will be closed.
        * @param aViewUid UID of the Calendar view to use.
        * @param aFlags Reserved for future use
        */
        IMPORT_C static void LaunchL( const TUid& aViewUid, TInt aFlags = 0 );

        /**
        * Launches Calendar in the specified view, focused to the specified time
        * If Calendar is already running it will be brought to the foreground
        * in the specified view.
        * Any open dialogs (eg entry viewer or editor) will be closed.
        * @param aViewUid UID of the Calendar view to use.
        * @param aFocusTime Initial focus time
        * @param aFlags Reserved for future use
        */
        IMPORT_C static void LaunchL( const TUid& aViewUid,
                                      const TCalTime& aFocusTime,
                                      TInt aFlags = 0 );
    };

#endif // CALENLAUNCHER_H

// End of File