diff -r f345bda72bc4 -r 43e37759235e Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/_simple_8cpp-source.html --- a/Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/_simple_8cpp-source.html Tue Mar 30 11:56:28 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,248 +0,0 @@ - -
-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 #include <w32std.h> -00017 #include "Base.h" -00018 #include "Simple.h" -00019 -00020 -00022 // Implementation for derived window classes -00024 -00026 // CMainWindow implementation // -00028 -00029 /****************************************************************************\ -00030 | Function: Constructor/Destructor for CMainWindow -00031 | Doesn't do much, as most initialisation is done by the -00032 | CWindow base class. -00033 | Input: aClient Client application that owns the window -00034 \****************************************************************************/ -00035 CMainWindow::CMainWindow (CWsClient* aClient) -00036 : CWindow (aClient) -00037 { -00038 } -00039 -00040 -00041 CMainWindow::~CMainWindow () -00042 { -00043 } -00044 -00045 -00046 /****************************************************************************\ -00047 | Function: CMainWindow::Draw -00048 | Purpose: Redraws the contents of CMainWindow within a given -00049 | rectangle. As CMainWindow has no contents, it simply -00050 | clears the redraw area. A blank window could be used here -00051 | instead. The Clear() is needed because a redraw should -00052 | always draw to every pixel in the redraw rectangle. -00053 | Input: aRect Rectangle that needs redrawing -00054 | Output: None -00055 \****************************************************************************/ -00056 void CMainWindow::Draw(const TRect& aRect) -00057 { -00058 CWindowGc* gc=SystemGc(); // get a gc -00059 gc->SetClippingRect(aRect); // clip outside this rect -00060 gc->Clear(aRect); // clear -00061 } -00062 -00063 /****************************************************************************\ -00064 | Function: CMainWindow::HandlePointerEvent -00065 | Purpose: Handles pointer events for CMainWindow. Doesn't do -00066 | anything here. -00067 | Input: aPointerEvent The pointer event -00068 | Output: None -00069 \****************************************************************************/ -00070 void CMainWindow::HandlePointerEvent (TPointerEvent& /*aPointerEvent*/) -00071 { -00072 } -00073 -00074 -00076 // CSmallWindow implementation -00078 -00079 -00080 /****************************************************************************\ -00081 | Function: Constructor/Destructor for CSmallWindow -00082 | Doesn't do much, as most initialisation is done by the -00083 | CWindow base class. -00084 | Input: aClient Client application that owns the window -00085 \****************************************************************************/ -00086 -00087 CSmallWindow::CSmallWindow (CWsClient* aClient) -00088 : CWindow (aClient) -00089 { -00090 } -00091 -00092 -00093 CSmallWindow::~CSmallWindow () -00094 { -00095 iWindow.Close(); -00096 } -00097 -00098 /****************************************************************************\ -00099 | Function: CSmallWindow::Draw -00100 | Purpose: Redraws the contents of CSmallWindow within a given -00101 | rectangle. CSmallWindow displays a square border around -00102 | the edges of the window, and two diagonal lines between the -00103 | corners. -00104 | Input: aRect Rectangle that needs redrawing -00105 | Output: None -00106 \****************************************************************************/ -00107 void CSmallWindow::Draw(const TRect& aRect) -00108 { -00109 // Drawing to a window is done using functions supplied by -00110 // the graphics context (CWindowGC), not the window. -00111 CWindowGc* gc=SystemGc(); // get a gc -00112 gc->SetClippingRect(aRect); // clip outside this rect -00113 gc->Clear(aRect); // clear -00114 TSize size=iWindow.Size(); -00115 TInt width=size.iWidth; -00116 TInt height=size.iHeight; -00117 // Draw a square border -00118 gc->DrawLine(TPoint(0,0),TPoint(0,height-1)); -00119 gc->DrawLine (TPoint (0, height-1), TPoint (width-1, height-1)); -00120 gc->DrawLine(TPoint(width-1,height-1),TPoint(width-1,0)); -00121 gc->DrawLine (TPoint (width-1, 0), TPoint (0, 0)); -00122 // Draw a line between the corners of the window -00123 gc->DrawLine(TPoint(0,0),TPoint(width, height)); -00124 gc->DrawLine (TPoint (0, height), TPoint (width, 0)); -00125 } -00126 -00127 /****************************************************************************\ -00128 | Function: CSmallWindow::HandlePointerEvent -00129 | Purpose: Handles pointer events for CSmallWindow. Doesn't do -00130 | anything here. -00131 | Input: aPointerEvent The pointer event -00132 | Output: None -00133 \****************************************************************************/ -00134 -00135 void CSmallWindow::HandlePointerEvent (TPointerEvent& /*aPointerEvent*/) -00136 { -00137 } -00138 -00140 // CExampleWsClient implementation // -00142 -00143 CExampleWsClient* CExampleWsClient::NewL(const TRect& aRect) -00144 { -00145 // make new client -00146 CExampleWsClient* client=new (ELeave) CExampleWsClient(aRect); -00147 CleanupStack::PushL(client); // push, just in case -00148 client->ConstructL(); // construct and run -00149 CleanupStack::Pop(); -00150 return client; -00151 } -00152 -00153 /****************************************************************************\ -00154 | Function: Constructor/Destructor for CExampleWsClient -00155 | Destructor deletes everything that was allocated by -00156 | ConstructMainWindowL() -00157 \****************************************************************************/ -00158 -00159 CExampleWsClient::CExampleWsClient(const TRect& aRect) -00160 :iRect(aRect) -00161 { -00162 } -00163 -00164 CExampleWsClient::~CExampleWsClient () -00165 { -00166 delete iMainWindow; -00167 delete iSmallWindow; -00168 } -00169 -00170 -00171 /****************************************************************************\ -00172 | Function: CExampleWsClient::ConstructMainWindowL() -00173 | Called by base class's ConstructL -00174 | Purpose: Allocates and creates all the windows owned by this client -00175 | (See list of windows in CExampleWsCLient declaration). -00176 \****************************************************************************/ -00177 -00178 void CExampleWsClient::ConstructMainWindowL() -00179 { -00180 iMainWindow=new (ELeave) CMainWindow(this); -00181 iMainWindow->ConstructL(iRect); -00182 iSmallWindow = new (ELeave) CSmallWindow (this); -00183 iSmallWindow->ConstructL (TRect (TPoint (100, 75), TSize (50, 50)), iMainWindow); -00184 } -00185 -00186 -00187 /****************************************************************************\ -00188 | Function: CExampleWsClient::RunL() -00189 | Called by active scheduler when an even occurs -00190 | Purpose: Processes events according to their type -00191 | For key events: calls HandleKeyEventL() (global to client) -00192 | For pointer event: calls HandlePointerEvent() for window -00193 | event occurred in. -00194 \****************************************************************************/ -00195 void CExampleWsClient::RunL() -00196 { -00197 // get the event -00198 iWs.GetEvent(iWsEvent); -00199 TInt eventType=iWsEvent.Type(); -00200 // take action on it -00201 switch (eventType) -00202 { -00203 // window-group related event types -00204 case EEventNull: -00205 break; -00206 case EEventKey: -00207 { -00208 TKeyEvent& keyEvent=*iWsEvent.Key(); // get key event -00209 HandleKeyEventL (keyEvent); -00210 break; -00211 } -00212 case EEventKeyUp: -00213 case EEventKeyDown: -00214 case EEventModifiersChanged: -00215 case EEventFocusLost: -00216 case EEventFocusGained: -00217 case EEventSwitchOn: -00218 case EEventPassword: -00219 case EEventWindowGroupsChanged: -00220 case EEventErrorMessage: -00221 break; -00222 // window related events -00223 case EEventPointer: -00224 { -00225 CWindow* window=(CWindow*)(iWsEvent.Handle()); // get window -00226 TPointerEvent& pointerEvent=*iWsEvent.Pointer(); -00227 window->HandlePointerEvent (pointerEvent); -00228 -00229 break; -00230 } -00231 case EEventPointerEnter: -00232 case EEventPointerExit: -00233 case EEventPointerBufferReady: -00234 case EEventDragDrop: -00235 break; -00236 default: -00237 break; -00238 } -00239 IssueRequest(); // maintain outstanding request -00240 } -00241 -00242 void CExampleWsClient::HandleKeyEventL(struct TKeyEvent& /*aKeyEvent*/) -00243 { -00244 } -