00001 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). 00002 // All rights reserved. 00003 // This component and the accompanying materials are made available 00004 // under the terms of "Eclipse Public License v1.0" 00005 // which accompanies this distribution, and is available 00006 // at the URL "http://www.eclipse.org/legal/epl-v10.html". 00007 // 00008 // Initial Contributors: 00009 // Nokia Corporation - initial contribution. 00010 // 00011 // Contributors: 00012 // 00013 // Description: 00014 // 00015 00016 #if !defined(__WSBACKD1_H__) 00017 #define __WSBACKD1_H__ 00018 00019 #include "Base.h" 00020 00022 // Derived window classes 00024 // CNumberedWindow displays a number in its center and supports drag and drop 00025 class CNumberedWindow : public CWindow 00026 { 00027 public: 00028 CNumberedWindow (CWsClient* aClient); 00029 ~CNumberedWindow (); 00030 void Draw (const TRect& aRect); 00031 void HandlePointerEvent (TPointerEvent& aPointerEvent); 00032 void HandlePointerMoveBufferReady () {} 00033 private: 00034 TInt iCount; 00035 TInt iNumber; // Number displayed in window 00036 TPoint iOldPos; // Position is required for drag and drop 00037 }; 00038 00039 class CMainWindow : public CBackedUpWindow 00040 { 00041 public: 00042 CMainWindow (CWsClient* aClient); 00043 ~CMainWindow (); 00044 void Draw (const TRect& aRect); 00045 void HandlePointerEvent (TPointerEvent& aPointerEvent); 00046 void HandlePointerMoveBufferReady (); 00047 }; 00048 00050 // Derived client class 00052 00053 class CExampleWsClient : public CWsClient 00054 { 00055 public: 00056 static CExampleWsClient* NewL(const TRect& aRect); 00057 private: 00058 CExampleWsClient (const TRect& aRect); 00059 void ConstructMainWindowL(); 00060 ~CExampleWsClient (); 00061 void RunL (); 00062 void HandleKeyEventL (TKeyEvent& aKeyEvent); 00063 private: 00064 CMainWindow* iMainWindow; 00065 CNumberedWindow* iWindow1; 00066 const TRect& iRect; 00067 }; 00068 00069 00070 #endif