--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uifw/AknGlobalUI/AknCapServer/inc/AknCapServerEntry.h Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,274 @@
+/*
+* Copyright (c) 2005-2008 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:
+*
+*/
+
+#ifndef __AKNCAPSERVERENTRY__
+#define __AKNCAPSERVERENTRY__
+
+#include <AknNotiferAppServerApplication.h> // link against AknNotifierWrapper.lib
+#include <AknNotifierAppServer.h>
+#include <AknSgcc.h>
+#include <AknNotifierControllerPlugin.h>
+#include <akneiksrvc.h>
+#include <akndialogcontroller.h>
+#include <e32property.h>
+#ifdef RD_INTELLIGENT_TEXT_INPUT
+#include <centralrepository.h>
+#include <PtiDefs.h>
+#endif
+
+#include "AknEikSgcs.h"
+#include "AknNotiferAppServerApplicationInterface.h"
+#include "AknCapServerDefs.h"
+#include "aknblankwin.h"
+#include "AknFastswapWindowControl.h"
+#include "aknphonekeyforwarder.h"
+
+const TInt KAknInternalFSWClose(0);
+
+class CPtiEngine;
+class CAknCapServer;
+
+struct SSuppressInfo
+ {
+ SSuppressInfo(TInt aUid):iUid(aUid),iReferenceCount(0){}
+ TInt iUid;
+ TInt iReferenceCount;
+ };
+
+class CAknServKeyFilter;
+class CAknFastSwapWindowControl;
+class CAknMMCPasswordRequester;
+class CWindowChangeMonitor;
+class MAknMessageReaderLongPressDetector;
+class CAknCapAppServerAlternateFs;
+
+//----------------------------------
+// PubSub key listener.
+//----------------------------------
+NONSHARABLE_CLASS(CPropertySubscriber) : public CActive
+ {
+public:
+ CPropertySubscriber(TCallBack aCallBack, RProperty& aProperty);
+ virtual ~CPropertySubscriber();
+
+public: // New functions
+ void Subscribe();
+ void StopSubscribe();
+
+private: // from CActive
+ void RunL();
+ void DoCancel();
+
+private:
+ TCallBack iCallBack;
+ RProperty& iProperty;
+ };
+
+//----------------------------------
+// Application
+//----------------------------------
+class CAknCapServerApplication : public CAknNotifierAppServerApplication
+ {
+public:
+ CAknCapServerApplication();
+ void NewAppServerL(CApaAppServer*& aAppServer);
+ CApaDocument* CreateDocumentL();
+ TUid AppDllUid() const
+ {
+ return KAknCapServerUid;
+ }
+ TFileName ResourceFileName() const
+ {
+ return KNullDesC();
+ }
+ CAknCapServer* CapServer() const
+ {
+ return iCapServer;
+ }
+private:
+ CAknCapServer* iCapServer;
+ };
+
+//----------------------------------
+// Document
+//----------------------------------
+class CAknCapAppServerDocument : public CAknDocument
+ {
+public:
+ CAknCapAppServerDocument(CEikApplication& aApp):CAknDocument(aApp), iApp(&aApp){};
+private: // from CAknDocument
+ CEikAppUi* CreateAppUiL();
+ CEikApplication* iApp;
+ };
+
+//----------------------------------
+// AppUi
+//----------------------------------
+class CAknCapAppServerAppUi :
+ public CAknNotifierAppServerAppUi,
+ public MAknCapServerInterface,
+ MAknAliasKeyCodeResolver,
+ MAknPhoneKeyForwarder
+ {
+public:
+ CAknCapAppServerAppUi( CAknCapServer* aCapServer );
+ ~CAknCapAppServerAppUi();
+
+public: //from CAknNotifierAppServerAppUi
+ void ConstructL();
+ TKeyResponse HandleKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);
+
+public: // from CCoeAppUi
+ void HandleResourceChangeL(TInt aType);
+
+private: // from CCoeAppUi
+ void HandleWsEventL(const TWsEvent& aEvent,CCoeControl* aDestination);
+
+public: // new methods
+#ifdef RD_INTELLIGENT_TEXT_INPUT
+ TBool IsCharacterCategoryNumber(TUint aChar) const;
+#endif
+ void SuppressAppSwitchingL(TInt aAddCount, TInt aClientId);
+ void KillAppL(const RMessage2& aMessage);
+ void DoTaskListCommandL(const RMessage2& aMessage);
+ void HideApplicationFromFswL(TInt aUid, TBool aHide);
+ TBool HiddenFromFSW( TInt aUid );
+ TInt EnableTaskList(TBool aEnable);
+ TBool HandleShortAppsKeyPressL(); // return true if event used
+ TBool HandleLongAppsKeyPressL(); // "
+ TBool IsAppsKeySuppressed();
+
+ CAknMMCPasswordRequester* MMCUnlock()
+ {
+ return iMMCUnlock;
+ }
+
+ CEikSgcServer* SgcServer()
+ {
+ return iSgcs;
+ }
+
+ void SetStatusPaneFlags(TInt aFlags);
+ void SetStatusPaneLayoutL(TInt aLayoutResId);
+ virtual void BlankScreenL(TBool aBlank, TBool aToForeground = EFalse);
+ void SwapLayoutSwitchBlankScreenL();
+ void SetCurrentAppStatuspaneResourceIdL(TInt aResourceId);
+ TInt CurrentAppStatuspaneResourceIdL();
+ virtual TBool IsDisplayingForegroundBlankScreen() const;
+ void RotateScreenL();
+ TInt UpdateTaskListL( TBool aTaskListRefreshNeeded );
+ void SetFgSpDataSubscriberIdL(TInt aId);
+
+ void CloseFSW();
+ // set/get whether idle is active
+ virtual void SetIdleActive( TBool bActive );
+ virtual TBool IsIdelActive( );
+
+ void SetIsShortTimeGlobalNoteDisplaying(TBool aShortTimeGlobalNoteDisplaying)
+ {
+ iShortTimeGlobalNoteDisplaying = aShortTimeGlobalNoteDisplaying;
+ }
+
+ TBool IsShortTimeGlobalNoteDisplaying()
+ {
+ return iShortTimeGlobalNoteDisplaying;
+ }
+
+private:
+ void PublishHiddenList();
+ void PublishInstalledLanguagesL();
+ static TInt GlobalNotesAllowedCallBack(TAny* aPtr);
+ static TInt TelephonyIdleUidCallBack(TAny* aPtr);
+ void HandlePropertyChange(const TInt aProperty);
+ void ProcessInitFlipStatus();
+ void InitiateOFNStatus();
+ void LoadAlternateFsPlugin();
+ void ShowOrDismissAlternateFs();
+
+public:
+ /**
+ * From MAknAliasKeyCodeResolver.
+ * Resolves keyboard layout dependent keycode for the given event.
+ *
+ * @since Series 60 3.1
+ * @param aCode Reference to variable to contain new keycode.
+ * @param aKeyEvent Reference to original, complete, event.
+ * @param aType Indicating original event type.
+ * @return KErrNone on success, otherwise system wide error codes.
+ */
+ TInt GetAliasKeyCode(TUint& aCode, const TKeyEvent& aKeyEvent,TEventCode aType);
+
+private:
+ RArray<SSuppressInfo> iAppsKeyArray;
+ CArrayFixFlat<TInt>* iHiddenList;
+ CAknServKeyFilter* iKeyCaptureControl;
+ TBool iTaskListEnabled;
+ CAknFastSwapWindowControl* iFSControl;
+ TInt iResourceFileOffset; // for eiksrvui.rsc
+ CAknMMCPasswordRequester* iMMCUnlock;
+ CEikSgcServer* iSgcs;
+ TInt iBlankWinRefCount;
+ CAknServBlankWin* iBlankWin;
+ RWindowGroup iBackdropWindowGroup;
+ CEikServStatusPane* iStatusPane;
+ TBool iForegroundBlankScreen;
+ CAknCapServer* iCapServer;
+
+ TBool iShortTimeGlobalNoteDisplaying;
+ CAknCapAppServerAlternateFs* iAlternateFS;
+
+public: // startup scheduling
+ CIdle* iIdler;
+ TBool iHasRunOnce;
+ CPtiEngine* iPtiEngine;
+ TBool iQwertyStatus;
+
+public:
+ MAknKeyLockObserver* iGlobalNotesController;
+ RAknEikAppUiSession iEikSrv;
+
+public:
+ MAknMessageReaderLongPressDetector* iMessageReaderLongPressDetector;
+
+public: // phone key event forwarding
+ MAknPhoneKeyForwarder* AsKeyForwarder()
+ {
+ return this;
+ }
+
+ void ForwardKeyToPhoneAppL(const TKeyEvent& aKeyEvent);
+ void PhoneKeyUpReceived();
+
+ TKeyEvent iPhoneKey;
+ TInt iScanCodeCaptureHandle;
+ TBool iUpReceived;
+
+ /** Id of the client thread for global note cancelling. */
+ TThreadId iClientId;
+
+private:
+ RProperty iGlobalNotesAllowedProperty;
+ CPropertySubscriber* iGlobalNotesAllowedSubscriber;
+
+ RProperty iTelephonyIdleUidProperty;
+ CPropertySubscriber* iTelephonyIdleUidSubscriber;
+ TBool iIdleActive;
+ };
+
+#endif // __AKNCAPSERVERENTRY__
+
+// End of file