dependencies/transition_effect_utility/akntransitionutils.h
author kashif.sayed
Fri, 26 Mar 2010 04:17:01 +0530
branchv5backport
changeset 31 a3e98f9c292b
parent 26 bef183758dfa
permissions -rw-r--r--
added missing files user: kashif.sayed added dependencies/AknTaskList.h added dependencies/DRMEvent.h added dependencies/DRMEventObserver.h added dependencies/DRMNotifier.h added dependencies/SchemeDefs.hrh added dependencies/SchemeHandler.h added dependencies/SchemeHandler.inl added dependencies/aiwcommon.hrh added dependencies/aiwdialdata.h added dependencies/drmrightsinfo.h added dependencies/drmutilitytypes.h added dependencies/javaattribute.h added dependencies/javadomainpskeys.h added dependencies/javaregistry.h added dependencies/javaregistryapplicationentry.h added dependencies/javaregistryentry.h added dependencies/javaregistryentrytype.h added dependencies/javaregistrypackageentry.h added dependencies/mjavaattribute.h added dependencies/swi/bld.inf added dependencies/swi/sispackagetrust.h added dependencies/swi/sisregistryentry.h added dependencies/swi/sisregistrylog.h added dependencies/swi/sisregistrysession.h changed .cproject changed dependencies/S3libs/bld.inf changed dependencies/bld.inf
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
     1
/*
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
     2
* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
     3
* All rights reserved.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
     4
* This component and the accompanying materials are made available
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
     6
* which accompanies this distribution, and is available
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
     8
*
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
     9
* Initial Contributors:
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    11
*
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    12
* Contributors:
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    13
*
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    14
* Description:  Transition utilities.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    15
*
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    16
*/
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    17
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    18
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    19
#ifndef __AKN_TRANSITION_UTILS_H__
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    20
#define __AKN_TRANSITION_UTILS_H__
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    21
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    22
#include <coemain.h>
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    23
#include <gfxtranseffect/gfxtranseffect.h>
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    24
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    25
class CRepository;
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    26
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    27
// Constants for component appear/disappear actions
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    28
const TInt KGfxControlAppearAction = 3;
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    29
const TInt KGfxControlDisappearAction = 4;
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    30
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    31
// Constants for the types of component effects
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    32
#define KGfxOptionsMenuControlUid TUid::Uid(0x10281F88)
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    33
#define KGfxOptionsMenuCascadeControlUid TUid::Uid(0x10281F89)
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    34
#define KGfxTouchToolbarControlUid TUid::Uid(0x10282E49)
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    35
#define KGfxToolbarControlUid TUid::Uid(0x10282E4A)
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    36
#define KGfxContextMenuControlUid TUid::Uid(0x10282E4C)
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    37
#define KGfxTaskSwapperControlUid TUid::Uid(0x10281F90)
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    38
#define KGfxNumberEntryPopupUid TUid::Uid( 0x10282E4D )
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    39
#define KGfxMediaBarControlUid TUid::Uid( 0x20007B17 )
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    40
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    41
#define KGfxErrorNoteControlUid TUid::Uid( 0x10282E50 )
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    42
#define KGfxWarningNoteControlUid TUid::Uid( 0x10282E51 )
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    43
#define KGfxInformationNoteControlUid TUid::Uid( 0x10282E52 )
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    44
#define KGfxConfirmationNoteControlUid TUid::Uid( 0x10282E53 )
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    45
#define KGfxWaitNoteControlUid TUid::Uid( 0x10282E54 )
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    46
#define KGfxQueryControlUid TUid::Uid( 0x10282E56 )
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    47
#define KGfxPopupDefaultControlUid TUid::Uid( 0x10282E57 )
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    48
#define KGfxSystemNotificationControlUid TUid::Uid( 0x2000B472 )
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    49
#define KGfxSystemNotifBatteryControlUid TUid::Uid( 0x2000B473 )
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    50
#define KGfxDiscreetPopupControlUid TUid::Uid( 0x2000B478 )
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    51
#define KGfxPreviewPopupControlUid TUid::Uid( 0x2000B479 )
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    52
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    53
#define KGfxSequenceFirstControlUid TUid::Uid( 0x2000B474 )
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    54
#define KGfxSequenceMiddleControlUid TUid::Uid( 0x2000B475 )
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    55
#define KGfxSequenceLastControlUid TUid::Uid( 0x2000B476 )
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    56
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    57
// Enumerations for notifying tfx server (used via 
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    58
// GfxTransEffect::NotifyExternalState)
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    59
enum TGfxTransNotification 
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    60
    {
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    61
    ENotifyGlobalAbort,
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    62
    ENotifySetExtent
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    63
    ,ECaptureComponentsBegin
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    64
    ,ECaptureComponentsEnd
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    65
    ,EBeginPopupSequence
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    66
    ,ELastPopupInSequence
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    67
    ,EEndPopupSequence
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    68
    ,EInternalHandleSequence
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    69
    // Get the type of the current transition.  Must be called during
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    70
    // a transition, ie. between Begin() and End().
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    71
    ,EGetRegistrationType
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    72
    ,ECaptureComponentsAbort
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    73
    ,EAddIgnoreWOChildComponent
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    74
    ,ERemoveIgnoreWOChildComponent
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    75
    };
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    76
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    77
// Enumeration for data that should be accessible globally. (cross-class)
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    78
// For local data, use this pointer or key > EUserDefinedKey
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    79
enum TAknTransitionUtilsDataKey
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    80
	{
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    81
	EDontAnimateBitmaps,
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    82
	EUserDefinedKey = 0xFFFF,
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    83
	};
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    84
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    85
// Constants for unique ID's to store values with SetData().
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    86
// These must not collide with pointers to controls, which are used as keys
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    87
// in some places, so starting from 1 is safe.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    88
const TInt KScreensaverCallStateChange = 1;
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    89
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    90
const TUid KAknTransitionUtilsUid = { 0x10282E4B };
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    91
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    92
class CAknPsObserver;
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    93
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    94
NONSHARABLE_CLASS( MAknPsObserver )
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    95
    {
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    96
public:
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    97
    virtual void PsValueUpdated( const TUid aCategory, const TUint aKey,
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    98
                                 const TInt aVal ) = 0;
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
    99
    };
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   100
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   101
/**
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   102
 * Transition callback interface.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   103
 */
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   104
class MAknTransitionUtilsObserver
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   105
    {
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   106
public:
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   107
    virtual TInt AknTransitionCallback(TInt aEvent, TInt aState = 0, 
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   108
                                       const TDesC8* aParams = NULL) = 0;
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   109
	};
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   110
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   111
/**
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   112
 * Utility class for transition effects.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   113
 *
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   114
 * There are three different kinds of utilities here:
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   115
 * 1. Callbacks for different transition related events.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   116
 * 2. Temporary storage of arbitrary data, associated with a key.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   117
 * 3. General transition related functions.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   118
 *
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   119
 * The data storage functionality is useful when you need to pass data
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   120
 * between different parts of the code, and there is no natural way to
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   121
 * do it, eg. when doing control transitions with integration in 
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   122
 * components that aren't explicitly connected.  In this case a fitting
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   123
 * key would be a pointer to the CCoeControl.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   124
 */
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   125
NONSHARABLE_CLASS( CAknTransitionUtils ) : public CCoeStatic, 
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   126
                                           public MGfxTransEffectObserver,
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   127
                                           public MAknPsObserver
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   128
    {
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   129
    public:
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   130
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   131
    /**
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   132
     * Types of events for which callbacks can be registered.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   133
     */
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   134
    enum TEvents
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   135
        { 
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   136
        ENone = 0x0,
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   137
        
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   138
        /**
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   139
         * Changes in screen redirection.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   140
         */
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   141
        EEventWsBufferRedirection = 0x1,
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   142
        
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   143
        /**
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   144
         * Component effect completion.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   145
         */
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   146
        EEventControlTransitionFinished = 0x2
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   147
		};
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   148
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   149
    /**
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   150
     * Control type specification for CAknTransitionUtils::GetDemarcation().
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   151
     */
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   152
    enum TGfxControlType
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   153
        {
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   154
        EOptionsMenu,
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   155
        EPopup
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   156
        };
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   157
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   158
    enum TMakeVisibleSubComponentsInfo
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   159
        {
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   160
        EForceInvisible,
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   161
        EForceVisible,
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   162
        EDisappearInvisible,
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   163
        EAppearInvisible,
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   164
        EAppearVisible,
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   165
        EClearIgnored
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   166
        };
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   167
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   168
    ~CAknTransitionUtils();
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   169
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   170
    /**
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   171
     * Add an observer for transition events.  If the observer has already
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   172
     * been added, the events for which it is listening will be updated to
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   173
     * the new set of events passed in.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   174
     *
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   175
     * @param aObserver The observer object.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   176
     * @param aEvent The event(s) to listen to.  To register an observer
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   177
     *        for multiple events, the event flags should be OR-ed together.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   178
     * @param aParams Extra parameters.  Not used with
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   179
     *        EEventWsBufferRedirection.  With EEventControlTransitionFinished,
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   180
     *        a pointer to the CCoeControl of the transition should be passed
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   181
     *        in, as this will be passed back to the observer in the callback.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   182
     *        Send this pointer directly as the argument, cast to a 
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   183
     *        const TDesC8*.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   184
     *
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   185
     * @return KErrNone on success, otherwise one of the other system-wide 
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   186
     *         error codes.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   187
     */
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   188
    IMPORT_C static TInt AddObserver( MAknTransitionUtilsObserver* aObserver,
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   189
                                      TInt aEvents,
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   190
                                      const TDesC8* aParams = NULL );
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   191
                                      
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   192
    /**
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   193
     * Remove an observer for transition events.  The events specified are
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   194
     * significant: only the specified events will be removed.  If there are
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   195
     * no remaining events, the observer will be removed and the
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   196
     * actual observer object can be safely deleted.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   197
     *
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   198
     * @param aObserver The observer to remove.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   199
     * @param aEvent The event(s) that should be removed.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   200
     *
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   201
     * @return KErrNone on success, otherwise one of the other system-wide
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   202
     *         error codes.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   203
     */
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   204
    IMPORT_C static TInt RemoveObserver( MAknTransitionUtilsObserver* aObserver,
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   205
                                         TInt aEvents );
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   206
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   207
    /**
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   208
     * Get the state of the observed event.  This currently only applies to
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   209
     * window redirection, not to component transition completion.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   210
     *
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   211
     * @param aEvent The event to check the state of.  Currently
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   212
     *        EEventWsBufferRedirection is the only valid alternative.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   213
     * @param aState On return, the state is set.  For window redirection,
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   214
     *        this is 0 (false) if it's not redirected, and non-zero (true)
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   215
     *        if it is.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   216
     * @param aParams Additional parameters.  Not currently used.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   217
     *
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   218
     * @return KErrNone on success, otherwise one of the other system-wide
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   219
     *         error codes.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   220
     */
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   221
    IMPORT_C static TInt GetState( TInt aEvent, TInt* aState, 
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   222
                                   TDes8* aParams = NULL);
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   223
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   224
    /**
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   225
     * Store arbitrary data, associated with a key.  Only one data pointer
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   226
     * can be stored per key, so if data has already been stored using aKey,
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   227
     * aData will be stored instead of the old data.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   228
     *
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   229
     * @param aKey The key, which can be used to retrieve the data.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   230
     * @param aData The data to store.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   231
     *
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   232
     * @return KErrNone on success, otherwise one of the other
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   233
     *         system-wide error codes.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   234
     */
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   235
    IMPORT_C static TInt SetData( const TInt aKey, TAny* aData );
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   236
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   237
    /**
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   238
     * Retrieve stored data, using its associated key.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   239
     * 
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   240
     * @param aKey The key to which the data is associated.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   241
     *
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   242
     * @return The data, or NULL on error.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   243
     */
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   244
    IMPORT_C static TAny* GetData( const TInt aKey );
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   245
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   246
    /**
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   247
     * Remove stored data.  This does not free the stored data, just removes
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   248
     * it from storage, so that it can no longer be retrieved.  This should
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   249
     * be done when the data no longer needs to be retrieved, to free up
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   250
     * data internal to this class.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   251
     *
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   252
     * @param aKey The key to which the data is associated.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   253
     */
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   254
    IMPORT_C static void RemoveData( const TInt aKey );
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   255
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   256
    /**
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   257
     * Recursively sets all parents to the control tree.  Used by control
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   258
     * transition integration points to ensure that all controls will be
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   259
     * included in the transition.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   260
     *
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   261
     * @param aControl The base (key) control of a control transition.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   262
     */
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   263
    IMPORT_C static void SetAllParents( const CCoeControl* aControl );
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   264
    
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   265
    /**
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   266
     * Check if transition effects are enabled.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   267
     *
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   268
     * @param aEffectCategory Specify which category of effects to inquire
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   269
     *        about.  The categories are specified in akntranseffect.h,
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   270
     *        (EFullScreenTransitionsOff etc.).
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   271
     *
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   272
     * @return ETrue if effects in the specified category are enabled, 
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   273
     *         EFalse if not.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   274
     */
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   275
    IMPORT_C static TBool TransitionsEnabled( TInt aEffectCategory );
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   276
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   277
    /**
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   278
     * Set the visibility for all the subcomponents of a control.  NB: does
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   279
     * NOT set the visibility for the control itself (aControl).
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   280
     *
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   281
     * @param aControl The main control, whose subcomponents will have their
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   282
     *        visibility set.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   283
     * @param aInfo EForceInvisible = Makes all window owning sub controls
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   284
     *                  invisible
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   285
     *             EForceVisible: Makes all window owning sub controls visible
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   286
     *             EDisappearInvisible: Makes all window owning sub controls
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   287
     *                  invisible
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   288
     *             EAppearInvisible: Makes all visible subcontrols invisible
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   289
     *                  (must be followed by a call using EAppearVisible or
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   290
     *                  EClearIgnored)
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   291
     *             EAppearVisible: Makes all controls visible that was made
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   292
     *                  invisible using argument EAppearInvisible
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   293
     *             EClearIgnored: Reset the list of controls that was added
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   294
     *                  to ignore list
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   295
     *
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   296
     * @return KErrNone on success, otherwise one of the system-wide error 
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   297
     *         codes.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   298
     */
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   299
    IMPORT_C static TInt MakeVisibleSubComponents( CCoeControl* aControl, 
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   300
                                        TMakeVisibleSubComponentsInfo aInfo );
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   301
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   302
    /**
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   303
     * Get the demarcation rect for a specified component.  The demarcation
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   304
     * rect is the area where an appear transition should start, and a
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   305
     * disappear transition should end.  For example, for the options menu,
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   306
     * this would probably be the left softkey.  With the proper KML, this
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   307
     * could be used to give the impression that the options menu grows 
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   308
     * out from the left softkey.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   309
     *
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   310
     * This function handles portrait and landscape mode transparently, so
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   311
     * the integration code should always get the appropriate demarcation
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   312
     * rect.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   313
     *
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   314
     * @param aControlType The control type to get the demarcation for.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   315
     * @param aRect On return, contains the resulting rect.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   316
     *
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   317
     * @return KErrNone on success, otherwise one of the system-wide error
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   318
     *         codes.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   319
     */
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   320
    IMPORT_C static TInt GetDemarcation( TGfxControlType aControlType, 
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   321
                                         TRect& aRect );
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   322
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   323
    private:
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   324
    CAknTransitionUtils();
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   325
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   326
    /**
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   327
     * Returns the AknTransitionUtils singleton.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   328
     *
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   329
     * The AknTransitionUtils singleton, or NULL or error.
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   330
     */    
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   331
    static CAknTransitionUtils* Static();
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   332
    
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   333
    // From MGfxTransEffectObserver
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   334
    void TransitionFinished( const CCoeControl* aControl, 
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   335
                                      TUint aAction );
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   336
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   337
    // From MAknPsObserver
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   338
    void PsValueUpdated( const TUid aCategory, const TUint aKey,
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   339
                         const TInt aVal );
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   340
    
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   341
    void RemoveControlTransitionObserver( const TInt aKey );
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   342
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   343
    TInt MakeVisibleSubComponentsR( CCoeControl* aControl, 
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   344
                                    TMakeVisibleSubComponentsInfo aInfo );
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   345
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   346
private:
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   347
    struct TDataEntry;
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   348
    struct TTransitionObserver;
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   349
  
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   350
    RPointerArray<TDataEntry> iUserData;
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   351
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   352
    RPointerArray<TTransitionObserver> iObservers;
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   353
    TInt iNumControlTransitionObservers;
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   354
    
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   355
    CAknPsObserver* iPsObserver;
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   356
    TInt iNumPsObservers;
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   357
    TBool iScreenRedirected;
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   358
    
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   359
    CRepository* iRepository;
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   360
    RPointerArray<const CCoeControl> iIgnoredChildControls;
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   361
    };
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   362
bef183758dfa Dependencies for idlefw
kashif.sayed
parents:
diff changeset
   363
#endif // __AKN_TRANSITION_UTILS_H__