diff -r 89d6a7a84779 -r 25a17d01db0c Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/_fonts_shell_8cpp-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/_fonts_shell_8cpp-source.html Fri Jan 22 18:26:19 2010 +0000 @@ -0,0 +1,229 @@ + + +TB10.1 Example Applications: examples/Graphics/Fonts/FontsShell.cpp Source File + + + + +

examples/Graphics/Fonts/FontsShell.cpp

00001 // Copyright (c) 2000-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 <e32keys.h>
+00017 
+00018 #include <coemain.h>
+00019 
+00020 #include <eikenv.h>
+00021 #include <eikdef.h>
+00022 #include <eikon.hrh>
+00023 #include <eiklabel.h>
+00024 #include <eikstart.h>
+00025 
+00026 #include <fontsshell.rsg>
+00027 #include "FontsShell.hrh"
+00028 #include "FontsShell.h"
+00029 #include "FontsGraphicsControl.h"
+00030 
+00031 //
+00032 // TExampleShellModel
+00033 //
+00034 
+00035 TExampleShellModel::TExampleShellModel()
+00036         {
+00037         iLibrary=KNullDesC;
+00038         }
+00039 
+00040 TBool TExampleShellModel::Differs(const TExampleShellModel* aCompare) const
+00041         {
+00042         return((*(TInt32*)this)!=(*(TInt32*)aCompare));
+00043         }
+00044 
+00045 //
+00046 // class CExampleShellContainer
+00047 //
+00048 
+00049 void CExampleShellContainer::ConstructL(const TRect& aRect, TExampleShellModel* aModel)
+00050     {
+00051         iModel=aModel;
+00052     CreateWindowL();
+00053     Window().SetShadowDisabled(ETrue);
+00054     iContext=this;
+00055         iBrushStyle=CGraphicsContext::ESolidBrush;
+00056     iBrushColor=KRgbWhite;
+00057     SetRect(aRect);
+00058         CreateLabelL();
+00059     ActivateL();
+00060     }
+00061 
+00062 CExampleShellContainer::~CExampleShellContainer()
+00063     {
+00064         delete iExampleControl;
+00065         delete iLabel;
+00066     }
+00067     
+00068 TInt CExampleShellContainer::CountComponentControls() const
+00069         {
+00070         return 1 + (iExampleControl ? 1 : 0);
+00071         }
+00072 
+00073 CCoeControl* CExampleShellContainer::ComponentControl(TInt aIndex) const
+00074         {
+00075         switch (aIndex)
+00076                 {
+00077         case 0: return iLabel;
+00078         case 1: return iExampleControl;
+00079         default: return 0;
+00080                 };
+00081         }
+00082 
+00083 const TInt KLabelHeight=20;
+00084 
+00085 void CExampleShellContainer::CreateLabelL()
+00086         {
+00087         iLabel=new (ELeave) CEikLabel;
+00088         TRect rect=Rect();
+00089         rect.iTl.iY=rect.iBr.iY-KLabelHeight; // make it bottom 20 pixels
+00090         iLabel->SetContainerWindowL(*this);
+00091         iLabel->SetRect(rect);
+00092         iLabel->SetAlignment(EHCenterVCenter); // center text
+00093         iLabel->SetBufferReserveLengthL(200); // nice long buffer
+00094         iLabel->SetFont(iEikonEnv->AnnotationFont());
+00095         iLabel->ActivateL(); // now ready
+00096         }
+00097 
+00098 void CExampleShellContainer::ResetExampleL(CGraphicExampleControl* aExample)
+00099         {
+00100         // get rid of old control
+00101         delete iExampleControl;
+00102         // set up new one
+00103         iExampleControl=aExample;
+00104         // if non-zero, then carry on
+00105         if (!iExampleControl) return;
+00106         TRect rect=Rect(); // get our rect
+00107         rect.iBr.iY-=KLabelHeight; // make way for label
+00108         rect.Shrink(2,2); // shrink it a bit
+00109         iExampleControl->ConstructL(rect,this,*this); // construct, giving rect and observer
+00110         }
+00111 
+00112 _LIT(KTxtFinished,"example finished");
+00113 void CExampleShellContainer::NotifyGraphicExampleFinished()
+00114         {
+00115         NotifyStatus(KTxtFinished);
+00116         }
+00117 
+00118 void CExampleShellContainer::NotifyStatus(const TDesC& aMessage)
+00119         {
+00120         TRAPD(err,iLabel->SetTextL(aMessage));
+00121         if(err)
+00122                 {
+00123                 return;
+00124                 }       
+00125         if (IsActivated()) iLabel->DrawNow();
+00126         }
+00127 
+00128 TKeyResponse CExampleShellContainer::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType)
+00129     {
+00130         if      (iExampleControl)
+00131                 return iExampleControl->OfferKeyEventL(aKeyEvent,aType);
+00132         else
+00133                 return EKeyWasNotConsumed;
+00134     }
+00135 
+00136 void CExampleShellContainer::Draw(const TRect& /*aRect*/) const
+00137         {
+00138         CWindowGc& gc = SystemGc();
+00139         gc.SetPenStyle(CGraphicsContext::ENullPen);
+00140         gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
+00141         gc.DrawRect(Rect());
+00142         }
+00143 
+00144 //
+00145 // CExampleShellAppUi
+00146 //
+00147 
+00148 _LIT(KTxtInitialized,"initialized");
+00149 void CExampleShellAppUi::ConstructL()
+00150     {
+00151     BaseConstructL();
+00152         iModel=((CExampleShellDocument*)iDocument)->Model();
+00153     iContainer=new(ELeave) CExampleShellContainer;
+00154     iContainer->ConstructL(ClientRect(),iModel);
+00155         iContainer->NotifyStatus(KTxtInitialized);
+00156         // add container to stack; enables key event handling.
+00157         AddToStackL(iContainer);
+00158     }
+00159 
+00160 void CExampleShellAppUi::HandleCommandL(TInt aCommand)
+00161         {
+00162         switch (aCommand)
+00163                 {
+00164         case EExampleShellSelectHello:
+00165                 iContainer->ResetExampleL(new (ELeave) CHelloControl);
+00166                 return;
+00167         case EExampleShellSelectFont:
+00168                 iContainer->ResetExampleL(new (ELeave) CFontControl);
+00169                 return;
+00170         case EEikCmdExit:
+00171                 Exit();
+00172                 return;
+00173                 }
+00174         }
+00175 
+00176 CExampleShellAppUi::~CExampleShellAppUi()
+00177         {
+00178         RemoveFromStack(iContainer);
+00179     delete iContainer;
+00180         }
+00181 
+00182 //
+00183 // CExampleShellDocument
+00184 //
+00185 
+00186 CEikAppUi* CExampleShellDocument::CreateAppUiL()
+00187         {
+00188     return(new(ELeave) CExampleShellAppUi);
+00189         }
+00190 
+00191 //
+00192 // CExampleShellApplication
+00193 //
+00194 
+00195 TUid CExampleShellApplication::AppDllUid() const
+00196         {
+00197         return KUidExampleShellApp;
+00198         }
+00199 
+00200 CApaDocument* CExampleShellApplication::CreateDocumentL()
+00201         {
+00202         return new(ELeave) CExampleShellDocument(*this);
+00203         }
+00204 
+00205 //
+00206 // EXPORTed functions
+00207 //
+00208 
+00209 EXPORT_C CApaApplication* NewApplication()
+00210         {
+00211         return new CExampleShellApplication;
+00212         }
+00213 
+00214 GLDEF_C TInt E32Main()
+00215         {
+00216         return EikStart::RunApplication(NewApplication);
+00217         }
+

Generated on Thu Jan 21 10:32:58 2010 for TB10.1 Example Applications by  + +doxygen 1.5.3
+ +