examples/ForumNokia/Localisation/src/localizationappview.cpp

00001 /*
00002  * Copyright © 2008 Nokia Corporation.
00003  */
00004 
00005 
00006 
00007 // INCLUDE FILES
00008 #include <coemain.h>
00009 #include "LocalizationAppView.h"
00010 
00011 // ============================ MEMBER FUNCTIONS ===============================
00012 
00013 // -----------------------------------------------------------------------------
00014 // CLocalizationAppView::NewL()
00015 // Two-phased constructor.
00016 // -----------------------------------------------------------------------------
00017 //
00018 CLocalizationAppView* CLocalizationAppView::NewL( const TRect& aRect )
00019     {
00020     CLocalizationAppView* self = CLocalizationAppView::NewLC( aRect );
00021     CleanupStack::Pop( self );
00022     return self;
00023     }
00024 
00025 // -----------------------------------------------------------------------------
00026 // CLocalizationAppView::NewLC()
00027 // Two-phased constructor.
00028 // -----------------------------------------------------------------------------
00029 //
00030 CLocalizationAppView* CLocalizationAppView::NewLC( const TRect& aRect )
00031     {
00032     CLocalizationAppView* self = new ( ELeave ) CLocalizationAppView;
00033     CleanupStack::PushL( self );
00034     self->ConstructL( aRect );
00035     return self;
00036     }
00037 
00038 // -----------------------------------------------------------------------------
00039 // CLocalizationAppView::ConstructL()
00040 // Symbian 2nd phase constructor can leave.
00041 // -----------------------------------------------------------------------------
00042 //
00043 void CLocalizationAppView::ConstructL( const TRect& aRect )
00044     {
00045     // Create a window for this application view
00046     CreateWindowL();
00047 
00048     // Set the windows size
00049     SetRect( aRect );
00050 
00051     // Activate the window, which makes it ready to be drawn
00052     ActivateL();
00053     }
00054 
00055 // -----------------------------------------------------------------------------
00056 // CLocalizationAppView::CLocalizationAppView()
00057 // C++ default constructor can NOT contain any code, that might leave.
00058 // -----------------------------------------------------------------------------
00059 //
00060 CLocalizationAppView::CLocalizationAppView()
00061 : iImage(0)
00062     {
00063     // No implementation required
00064     }
00065 
00066 
00067 // -----------------------------------------------------------------------------
00068 // CLocalizationAppView::~CLocalizationAppView()
00069 // Destructor.
00070 // -----------------------------------------------------------------------------
00071 //
00072 CLocalizationAppView::~CLocalizationAppView()
00073     {
00074     // No implementation required
00075     delete iImage;
00076     }
00077 
00078 
00079 // ---------------------------------------------------------------------------
00080 // CLocalizationAppView::DrawImage()
00081 // Draw the image on the display.
00082 // ---------------------------------------------------------------------------
00083 //
00084 void CLocalizationAppView::DrawImage(CFbsBitmap* aImage)
00085     {
00086     delete iImage;
00087     iImage = aImage;
00088     DrawNow();
00089     }
00090 
00091 // -----------------------------------------------------------------------------
00092 // CLocalizationAppView::Draw()
00093 // Draws the display.
00094 // -----------------------------------------------------------------------------
00095 //
00096 void CLocalizationAppView::Draw( const TRect& /*aRect*/ ) const
00097     {
00098     // Get the standard graphics context
00099     CWindowGc& gc = SystemGc();
00100 
00101     // Gets the control's extent
00102     TRect drawRect( Rect());
00103     
00104     // Clears the screen
00105     gc.Clear( drawRect );
00106     
00107     if(iImage)
00108         {
00109         // Show the bitmap double size and centered to screen
00110         TInt scrWidth = Rect().Width();
00111         TInt scrHeight = Rect().Height();
00112         TInt bmpWidth = iImage->SizeInPixels().iWidth;
00113         TInt bmpHeight = iImage->SizeInPixels().iHeight;
00114         TInt aX = ( scrWidth - bmpWidth * 2 ) / 2;
00115         TInt aY = ( scrHeight - bmpHeight * 2 ) / 2;
00116         TInt bX = aX + bmpWidth * 2;
00117         TInt bY = aY + bmpHeight * 2;
00118         
00119         drawRect.SetRect( aX, aY, bX, bY );
00120         gc.DrawBitmap ( drawRect, iImage );
00121         }
00122     }
00123 
00124 // -----------------------------------------------------------------------------
00125 // CLocalizationAppView::SizeChanged()
00126 // Called by framework when the view size is changed.
00127 // -----------------------------------------------------------------------------
00128 //
00129 void CLocalizationAppView::SizeChanged()
00130     {  
00131     DrawNow();
00132     }
00133 // End of File

Generated by  doxygen 1.6.2