1 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
24 #include <eikcycledef.h>
26 class CDictionaryFileStore;
27 class CVwsSessionWrapper;
28 class CEikDebugPreferences;
30 const TInt KBufferExpansionRequired = 10; // Random number chosen to indicate buffer expansion on the client side.
35 enum TEikAppUiServPanic
38 EEikSrvSvrCreateServer, // no longer used
39 EEikSrvSvrStartServer,
43 EEikSrvBadRequestSequence
46 class CEikServAppUiSession;
48 NONSHARABLE_CLASS(CEikServAppUiServer) : public CPolicyServer
53 friend class CEikServAppUiSession;
55 enum {EPriority=EPriorityAbsoluteHigh};
56 IMPORT_C static CEikServAppUiServer* NewL();
57 virtual CSession2* NewSessionL(const TVersion &aVersion,const RMessage2& aMessage) const;
58 static TInt ThreadFunction(TAny* aStarted);
59 CEikAppUi& AppUi(); // non-inline (and non-exported) so that it cannot be accessed outside of the DLL
60 ~CEikServAppUiServer();
62 CEikServAppUiServer(TInt aPriority=EPriority);
64 CEikServAppUiSession* NewSessionL();
67 CEikDebugPreferences* iDebugPreferences;
70 class MEikServAppUiSessionHandler
77 virtual void NotifyAlarmServerOfTaskChangeL() = 0;
78 virtual void LaunchTaskListL() = 0;
79 virtual void CycleTasksL(enum TTaskCycleDirection aDirection) = 0;
80 virtual void SetStatusPaneFlags(TInt aFlags) = 0;
81 virtual void SetStatusPaneLayoutL(TInt aLayoutResId) = 0;
82 virtual void BlankScreenL() = 0;
83 virtual void UnblankScreen() = 0;
84 virtual void EnableTaskListL() = 0;
85 virtual void Extension(TUid aExtensionUid,const TDesC8& aBuffer,RMessagePtr2 aMessage) = 0;
87 IMPORT_C MEikServAppUiSessionHandler();
89 IMPORT_C virtual void MEikServAppUiSessionHandler_Reserved1();
90 IMPORT_C virtual void MEikServAppUiSessionHandler_Reserved2();
92 TInt iMEikServAppUiSessionHandler_Reserved1;
95 class CEikServAppUiSession : public CSession2
102 IMPORT_C CEikServAppUiSession(MEikServAppUiSessionHandler* aHandler);
103 IMPORT_C ~CEikServAppUiSession();
104 IMPORT_C virtual void ConstructL();
105 IMPORT_C virtual void ServiceL(const RMessage2& aMessage);
106 IMPORT_C virtual void ServiceError(const RMessage2& aMessage,TInt aError);
108 void PanicClient(const RMessage2& aMessage, TEikAppUiServPanic aCode);
109 inline CEikServAppUiServer& Server() {return *STATIC_CAST(CEikServAppUiServer*,CONST_CAST(CServer2*,CSession2::Server()));}
111 IMPORT_C MEikServAppUiSessionHandler* SessionHandler() const;
113 CEikServAppUiServer* iAppUiServer;
114 TBool iScreenBlanked;
115 MEikServAppUiSessionHandler* iSessionHandler;
116 private: // below are old obsolete member variables, kept for binary compatibility
122 NONSHARABLE_CLASS(CEikPasswordModeCategory) : public CBase
123 /** Gives access to the system's password mode.
125 The password mode can be passed to a password window, see RWindowBase::PasswordWindow().
126 This is a window that requires the user to enter a password before any further actions can
129 The possible password modes are enumerated in TPasswordMode.
135 IMPORT_C static CEikPasswordModeCategory* NewLC(RFs& aFs);
136 IMPORT_C ~CEikPasswordModeCategory();
137 IMPORT_C void GetPasswordModeL(TPasswordMode& aMode) const;
138 IMPORT_C void SetPasswordModeL(TPasswordMode aMode);
140 CEikPasswordModeCategory();
141 void ConstructL(RFs& aFs);
143 CDictionaryFileStore* iStore;
146 class CEikServNotifyServer;
147 class CNotifierServerExtended;
148 class CEikServBackupServer;
149 class CEikServAlarmAlertServer;
151 class CEikUndertaker;
152 class CEikPasswordControl;
153 class CEikTaskListDialog;
154 class MEikServNotifyAlert;
155 class MEikServAlarmFactory;
156 class CEikServDllClose;
158 NONSHARABLE_CLASS(TEikServCtrlFactories)
165 inline TEikServCtrlFactories();
166 inline TEikServCtrlFactories(MEikServNotifyAlert* aAlert,MEikServAlarmFactory* aAlarmAlert);
168 MEikServNotifyAlert* iAlert;
169 MEikServAlarmFactory* iAlarmAlert; // does not own anything
171 TInt iTEikServCtrlFactories_Reserved1;
174 class MEikServAppUiSessionFactory
181 virtual CEikServAppUiSession* CreateSessionL() = 0;
183 IMPORT_C MEikServAppUiSessionFactory();
185 IMPORT_C virtual void MEikServAppUiSessionFactory_Reserved1();
186 IMPORT_C virtual void MEikServAppUiSessionFactory_Reserved2();
188 TInt iMEikServAppUiSessionFactory_Reserved1;
191 NONSHARABLE_CLASS(CEikServEnv) : public CEikonEnv
198 IMPORT_C CEikServEnv();
199 IMPORT_C ~CEikServEnv();
200 IMPORT_C void DestroyEnvironment();
202 IMPORT_C void SetEikServAppUiSessionFactory(MEikServAppUiSessionFactory* aSessionFactory);
203 IMPORT_C MEikServAppUiSessionFactory* EikServAppUiSessionFactory() const;
204 IMPORT_C TBool IsTaskListEnabled() const;
205 IMPORT_C void EnableTaskList();
207 void SetEikServer(CEikServAppUiServer* aServer);
208 IMPORT_C void SetUiDll(RLibrary& aDll);
209 private: // reserved virtuals. do not override!
210 IMPORT_C virtual void CEikServEnv_Reserved1();
211 IMPORT_C virtual void CEikServEnv_Reserved2();
212 IMPORT_C virtual void CEikServEnv_Reserved3();
213 IMPORT_C virtual void CEikServEnv_Reserved4();
214 IMPORT_C virtual void CEikServEnv_Reserved5();
215 IMPORT_C virtual void CEikServEnv_Reserved6();
216 private: // from CCoeEnv. do not override!
217 IMPORT_C void Reserved_1();
218 IMPORT_C void Reserved_2();
221 CEikServAppUiServer* iServer;
222 MEikServAppUiSessionFactory* iSessionFactory;
223 TBool iIsTaskListEnabled;
224 TInt iCEikServEnv_Reserved1;
227 inline TEikServCtrlFactories::TEikServCtrlFactories()
228 : iAlert(NULL), iAlarmAlert(NULL)
231 inline TEikServCtrlFactories::TEikServCtrlFactories(MEikServNotifyAlert* aAlert,MEikServAlarmFactory* aAlarmAlert)
232 : iAlert(aAlert), iAlarmAlert(aAlarmAlert)
235 NONSHARABLE_CLASS(CEikServSecureData) : public CBase
242 IMPORT_C static void GetInstalledFepNameL(TDes& aName);
243 IMPORT_C static void SetInstalledFepNameL(const TDesC& aName, TBool aRaiseFileError);
244 IMPORT_C static void OpenFepAttributesL();
245 IMPORT_C static void GetFepAttributeL(TUid aAttribUid, TDes8& aAttribData);
246 IMPORT_C static void SetFepAttributeL(TUid aAttribUid, const TDesC8& aAttribData);
247 IMPORT_C static void CommitFepAttributesL();
248 IMPORT_C static void CloseFepAttributes();
249 IMPORT_C static CBufBase* GetBufferedSystemColorListL();
250 IMPORT_C static void SetBufferedSystemColorListL(const TDesC8& aBuffer);
252 CEikServSecureData();
255 class TErrorFlagAndId
260 TBool iIsMemoryAllocatedByErrResolver;
263 #endif // __EIKSRV_H__