contentmgmt/contentaccessfwfordrm/engineering/dox/UI.dox
changeset 0 2c201484c85f
child 6 50f2ff6984be
child 8 35751d3474b7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/contentmgmt/contentaccessfwfordrm/engineering/dox/UI.dox	Wed Jul 08 11:25:26 2009 +0100
@@ -0,0 +1,81 @@
+// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Symbian Foundation License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// <hr>
+// It should be assumed that it is only possible for CAF agents to display 
+// dialogs on screen if the CAF function is called from a thread where
+// a static Uikon environment exists.
+// <hr>
+// CAF provides several APIs that allow a client application to request an agent to
+// display information on the screen. Some agents may not support these calls and leave 
+// with \c KErrCANotSupported.
+// Both the <code>ContentAccess::CContent::DisplayInfoL()</code> function and the 
+// <code>ContentAccess::CManager::DisplayInfoL()</code> function allow the application 
+// to display file information such as last modification date and/or DRM rights information
+// CManager *manager = CManager::NewL();
+// manager->DisplayInfoL(EFileProperties, avirtualPath);
+// Applications can also ask a particular agent to go into management mode, displaying configuration 
+// information on screen, allowing the user to view and set agent specific information.
+// // create manager
+// CManager *manager = CManager::NewL();
+// // Get a list of the agents
+// RPointerArray <CAgent> theAgents;
+// manager->ListAgentsL(theAgents);
+// // Display management info for the first agent
+// manager->DisplayManagementInfoL(*theAgents[0]);
+// <hr> 
+// The agents will display errors on screen when they occur. Once the error has been acknowledged by the user
+// the agent will return the error code to the client application.
+// If a client application does not want errors displayed on screen, it can request to disable the agent UI 
+// using the <code>SetProperty()</code> functions, e.g. <code>ContentAccess::CContent::SetProperty()</code>. 
+// The agent may ignore this request and still present dialogs on screen.
+// CContent *content = CContent::NewL(URI);
+// // Disable UI
+// content->SetProperty(EAgentPropertyAgentUI , 0);
+// // Open CData 
+// CData *data = content->OpenContentL(EPlay, uniqueId);
+// <hr> 
+// Some agents may present confirmation dialogs to the user before allowing them to perform certain operations. A 
+// good example would be when an application tries to delete a DRM protected file. The user may have been purchased the
+// content and may have inadvertently pressed delete. The agent can present a dialog asking "are you sure?"
+// The agent can then return the outcome of the delete to the application, i.e. \c KErrCancel, if the user presses cancel.
+// The application can use the same <code>SetProperty()</code> as above to disable these dialogs, but some agents may ignore that 
+// request and display the dialogs regardless.
+// <hr>
+// The default implementation of the <code>F32AgentUI.DLL</code> does not do anything. If licensees want the
+// \c F32Agent to display information on the screen they should replace the existing <code>F32AgentUI.DLL</code>
+// with one that does support display functions.
+// 
+//
+
+
+
+/**
+ @page CAFUI CAF and the User Interface
+ - @ref UikonEnv
+ - @ref AppDisplay
+ - @ref UIErr
+ - @ref UIConfirmation
+ - @ref F32AgentUi
+ @section UikonEnv Uikon Environment
+ @section AppDisplay Applications asking the agent to display information
+ @code
+ @endcode
+ @code
+ @endcode
+ @section UIErr Error Handling
+ @code
+ @endcode
+ @section UIConfirmation Confirmation Dialogs
+ @section F32AgentUi F32 Agent UI
+*/