diff -r 000000000000 -r 2f259fa3e83a uifw/AknGlobalUI/AknCapServer/inc/akncapserverdiscreetpopuphandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uifw/AknGlobalUI/AknCapServer/inc/akncapserverdiscreetpopuphandler.h Tue Feb 02 01:00:49 2010 +0200 @@ -0,0 +1,214 @@ +/* +* Copyright (c) 2002-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: Avkon cap server discreet popup handler +* +*/ + +#ifndef C_AKNCAPSERVERDISCREETPOPUPHANDLER_H +#define C_AKNCAPSERVERDISCREETPOPUPHANDLER_H + +#include +#include +#include + +class CAknDiscreetPopupControl; + +/** + * Data storage class for cap server discreet popup data. + */ +NONSHARABLE_CLASS( TAknCapServerDiscreetPopupData ) + { + +public: + + /** + * Cap server command id. + */ + TInt iCommandId; + + /** + * App uid to be launched. + */ + TUid iAppUid; + + /** + * View uid to be activated. + */ + TUid iViewUid; + + /** + * Discreet popup control. + */ + CAknDiscreetPopupControl* iPopupControl; + + /** + * Server message. + */ + RMessagePtr2 iMessage; + + }; + + +/** + * Avkon cap server discreet popup handler takes care of showing + * global discreet popups. + */ +NONSHARABLE_CLASS( CAknCapServerDiscreetPopupHandler ) + : + public CCoeStatic, + public MEikCommandObserver, + public MCoeControlObserver + { + +public: + + /** + * Destructor. + */ + ~CAknCapServerDiscreetPopupHandler(); + + /** + * Handles discreet popup message received by cap server. + * + * @param aMessage Server message. + */ + static void HandleDiscreetPopupMessageL( const RMessage2& aMessage ); + + /** + * Creates AknCapServerDiscreetPopupHandler. + * + */ + static void CreateDiscreetPopupHandlerL(); + +private: + + /** + * C++ constructor. + */ + CAknCapServerDiscreetPopupHandler(); + + /** + * Symbian second-phase constructor. + */ + void ConstructL(); + + /** + * Provides the discreet popup handler singleton. + * + * @return Discreet popup handler instance. + */ + static CAknCapServerDiscreetPopupHandler* InstanceL(); + + /** + * Handles discreet popup message received by cap server. + * + * @param aMessage Server message. + */ + void DoHandleDiscreetPopupMessageL( const RMessage2& aMessage ); + + /** + * Launches global discreet popup defined in resources. + * + * @param aMessage Server message. + */ + void LaunchFromResourceL( const RMessage2& aMessage ); + + /** + * Launches global discreet popup defined with parameters. + * + * @param aMessage Server message. + */ + void LaunchWithParamsL( const RMessage2& aMessage ); + + /** + * Handles request cancellation. + * + * @param aMessage Server message. + */ + void HandleRequestCancellationL( const RMessage2& aMessage ); + + /** + * Handles query in user global discreet popup rect + * + * @param aMessage Server message. + */ + void HandleQueryInUseRect( const RMessage2& aMessage ); + + /** + * Shows popup. + * + * @param aCommandId Popup command id. + * @param aPopup Popup control. + * @param aAppUid Application uid. + * @param aViewUid View uid. + * @param aMessage Server message. + */ + void ShowPopupL( + const TInt& aCommandId, + CAknDiscreetPopupControl* aPopup, + const TUid& aAppUid, + const TUid& aViewUid, + const RMessage2& aMessage ); + + /** + * Provides the next available command id. + * + * @return Next available command id. + */ + TInt NextAvailableCommandId(); + + /** + * Publish a RProperty indicates the running global discreet popup changed, + * either new global discreet popup being displayed, or existing global dis- + * creet popup quit + * + * @since v5.2 + */ + void NotifyRunningGlobalDiscreetPopupChanged(); + +// from base class MEikCommandObserver + + /** + * Processes user commands. + * + * @param aCommandId ID of the command to respond to. + */ + void ProcessCommandL( TInt aCommandId ); + +// from base class MCoeControlObserver + + /** + * Handles an event from an observed control. + * + * @param aControl The control that sent the event. + * @param aEventType The event type. + */ + void HandleControlEventL( CCoeControl* aControl, TCoeEvent aEventType ); + +private: // data + + /** + * Active popup's data. + */ + RArray iPopupDataArray; + + /** + * Cap server app ui. + */ + CCoeAppUi* iAppUi; + + }; + + +#endif // C_AKNCAPSERVERDISCREETPOPUPHANDLER_H