First public contribution.
1 // Copyright (c) 2006-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 "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
15 // It should be assumed that it is only possible for CAF agents to display
16 // dialogs on screen if the CAF function is called from a thread where
17 // a static Uikon environment exists.
19 // CAF provides several APIs that allow a client application to request an agent to
20 // display information on the screen. Some agents may not support these calls and leave
21 // with \c KErrCANotSupported.
22 // Both the <code>ContentAccess::CContent::DisplayInfoL()</code> function and the
23 // <code>ContentAccess::CManager::DisplayInfoL()</code> function allow the application
24 // to display file information such as last modification date and/or DRM rights information
25 // CManager *manager = CManager::NewL();
26 // manager->DisplayInfoL(EFileProperties, avirtualPath);
27 // Applications can also ask a particular agent to go into management mode, displaying configuration
28 // information on screen, allowing the user to view and set agent specific information.
30 // CManager *manager = CManager::NewL();
31 // // Get a list of the agents
32 // RPointerArray <CAgent> theAgents;
33 // manager->ListAgentsL(theAgents);
34 // // Display management info for the first agent
35 // manager->DisplayManagementInfoL(*theAgents[0]);
37 // The agents will display errors on screen when they occur. Once the error has been acknowledged by the user
38 // the agent will return the error code to the client application.
39 // If a client application does not want errors displayed on screen, it can request to disable the agent UI
40 // using the <code>SetProperty()</code> functions, e.g. <code>ContentAccess::CContent::SetProperty()</code>.
41 // The agent may ignore this request and still present dialogs on screen.
42 // CContent *content = CContent::NewL(URI);
44 // content->SetProperty(EAgentPropertyAgentUI , 0);
46 // CData *data = content->OpenContentL(EPlay, uniqueId);
48 // Some agents may present confirmation dialogs to the user before allowing them to perform certain operations. A
49 // good example would be when an application tries to delete a DRM protected file. The user may have been purchased the
50 // content and may have inadvertently pressed delete. The agent can present a dialog asking "are you sure?"
51 // The agent can then return the outcome of the delete to the application, i.e. \c KErrCancel, if the user presses cancel.
52 // The application can use the same <code>SetProperty()</code> as above to disable these dialogs, but some agents may ignore that
53 // request and display the dialogs regardless.
55 // The default implementation of the <code>F32AgentUI.DLL</code> does not do anything. If licensees want the
56 // \c F32Agent to display information on the screen they should replace the existing <code>F32AgentUI.DLL</code>
57 // with one that does support display functions.
62 @page CAFUI CAF and the User Interface
68 @section UikonEnv Uikon Environment
69 @section AppDisplay Applications asking the agent to display information
74 @section UIErr Error Handling
77 @section UIConfirmation Confirmation Dialogs
78 @section F32AgentUi F32 Agent UI