diff -r 000000000000 -r 5d03bc08d59c windowing/windowserver/inc/Graphics/wsdisplaypolicy.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/windowing/windowserver/inc/Graphics/wsdisplaypolicy.h Tue Feb 02 01:47:50 2010 +0200 @@ -0,0 +1,89 @@ +// Copyright (c) 2008-2009 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: +// Interface for Render Stage Display Policy +// +// + +#ifndef WSDISPLAYPOLICY_H_ +#define WSDISPLAYPOLICY_H_ + +/** +@file +@publishedpartner +@released +*/ + +#include +#include + +class MWsDisplayPolicy: public MWsObjectProvider + { +public: + enum + { + KUidWsDisplayPolicy = 0x102869FA, + ETypeId= KUidWsDisplayPolicy, + EWsObjectInterfaceId= KUidWsDisplayPolicy + }; + + enum TDisplayStatus + { + EDetach = 0, + EAttach, + EConnecting, + }; +public: + /** + * Notification from the Window Server that the application size mode list has been updated. + */ + virtual void NewAppModesAvailable()=0; + /** + * Determine the display configuration and application rendering extent to use for a given screen size mode. + * + * The Window Server uses this function when a request to change to a new screen size mode or new display + * configuration is made by a client. The display configuration passed in may be partially filled, and the + * combination of the defined entries in it and the requested screen size mode values shall be used to define + * the rest of the configuration and new application extent to be used. + * + * Only undefined entries in the configuration may be set by this function. Entries already defined must retain + * the same values. If the combination of defined entries and size mode values is not acceptable to the implementer, + * the function shall return KErrArgument. + * + * If the function returns KErrNone, the Window Server shall set the returned display configuration, notify render + * stages of the new application extent and change to use the screen size mode. If either this function returns + * EFalse or the call to set the display configuration fails for any reason (such as KErrNoMemory, for example), + * then no further changes are made. + * + * @see MWsScreenConfigList + * @see MWsDisplayMapping + * + * @param aScreenSizeMode The requested screen size mode. If static, the size in pixels, size in twips, and + * the rotation must be respected. If dynamic, only the rotation must be respected. + * @param aConfig The requested display configuration on input, the required configuration on return. Only + * undefined entries may be set. + * @param aExtent The screen size mode offset and size on input, the required application offset and size on return. + * If the screen driver buffer is used as the UI surface, this must be left unchanged. + * @return KErrNone if no error, otherwise a system wide error code + */ + virtual TInt GetSizeModeConfiguration(TInt aScreenSizeMode, TDisplayConfiguration& aConfig, TRect& aSizeModePosition) const =0; + virtual TInt SuitableAppMode(TDisplayStatus aSituation)=0; + /** + * Sets the application mode resumed to after a display is connected again after a disconnect. + * + * @param aMode The application mode. + */ + virtual void SetLastAppMode(TInt aMode)=0; + }; + +#endif /*WSDISPLAYPOLICY_H_*/