--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/nga/SERVER/renderorientationtracker.h Tue Aug 31 16:31:06 2010 +0300
@@ -0,0 +1,71 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This material, including documentation and any related
+// computer programs, is protected by copyright controlled by
+// Nokia. All rights are reserved. Copying, including
+// reproducing, storing, adapting or translating, any
+// or all of this material requires the prior written consent of
+// Nokia. This material also contains confidential
+// information which may not be disclosed to others without the
+// prior written consent of Nokia.
+//
+// Description:
+// Render Orientation Tracking and Publication
+//
+
+#ifndef renderorientationtracker_h
+#define renderorientationtracker_h
+
+#include <e32std.h>
+#include <e32base.h>
+#include <e32property.h>
+#include <w32std.h>
+#include <wspublishandsubscribedata.h>
+
+// Values for the device orientation that we receive via P&S from the Theme Server
+// Todo FIX THIS Category UID!!!
+const TUid KThemeOrientationCategory = {0x20022E82}; // == KHbPsHardwareCoarseOrientationCategoryUid
+const TUint KThemeOrientationKey = 0x4F726965; // == KHbPsHardwareCoarseOrientationKey
+
+typedef TRenderOrientation TRenderOrientationTrackingType;
+
+class CWsWindowGroup;
+
+class CWsRenderOrienationTracker : public CActive
+ {
+public:
+ static CWsRenderOrienationTracker* NewL();
+ ~CWsRenderOrienationTracker();
+
+ void CheckRenderOrientation();
+
+private:
+ CWsRenderOrienationTracker();
+ void ConstructL();
+
+ void RequestDeviceOrientationNotification();
+ void CancelDeviceOrientationNotification();
+
+ // CActive
+ void RunL();
+ void DoCancel();
+
+ TInt DoOrientationTracking();
+ TInt GetThemeOrientation(TRenderOrientation& aThemeOrientation);
+ TInt PublishOrientation(const TRenderOrientation aRenderOrientation);
+ TInt DoPublishOrientation(const TRenderOrientation aRenderOrientation);
+ TInt GetIndicatedOrientation(TRenderOrientationTrackingType& aOrientationTrackingType);
+ TInt CheckWindowGroupOrientation(const CWsWindowGroup& aWinGroup, TRenderOrientationTrackingType& aOrientationTrackingType);
+ TBool UseableGroupWindow(const CWsWindowGroup& aWinGroup) const;
+ TInt GetFocusWindowOrientation(TRenderOrientationTrackingType& aOrientationTrackingType);
+ TInt FindOrientationFromWindowTree(TRenderOrientationTrackingType& aOrientationTrackingType);
+ void SetHALOrientation(const TRenderOrientation aRenderOrientation);
+
+private:
+ TRenderOrientationTrackingType iRenderOrientationTrackingType;
+ TRenderOrientation iPublishedRenderOrientation;
+ RProperty iThemeOrientationProperty;
+ RProperty iRenderOrientationPublisher;
+ };
+
+#endif