--- /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 <graphics/displayconfiguration.h>
+#include <graphics/wsgraphicdrawerinterface.h>
+
+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_*/