Namespaces

Variants
Actions

Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.

Draw an icon on the screen from a MIF file

From Wiki
Jump to: navigation, search
Article Metadata
Article
Created: vin2ktalks (23 Apr 2007)
Last edited: hamishwillee (20 Jul 2012)
Reviewer Approved    Thumbs up icon sm.jpg

Contents

In the MMP file

// Put what ever is necessary for an applicaion.
// ..
LIBRARY aknicon.lib // AknIconUtils
// ..


In the header file of the view (container)

#ifndef __MYAPPVIEW_H__
#define __MYAPPVIEW_H__
 
// INCLUDES
#include <coecntrl.h>
 
// FORWARD DECLARATION
class CFbsBitmap;
 
// CLASS DECLARATION
class CMyAppView : public CCoeControl
{
public: // New methods
 
/**
* NewL.
* Two-phased constructor.
* Create a CMyAppView object, which will draw itself to aRect.
* @param aRect The rectangle this view will be drawn to.
* @return a pointer to the created instance of CMyAppView.
*/

static CMyAppView* NewL( const TRect& aRect );
 
/**
* NewLC.
* Two-phased constructor.
* Create a CMyAppView object, which will draw itself
* to aRect.
* @param aRect Rectangle this view will be drawn to.
* @return A pointer to the created instance of CMyAppView.
*/

static CMyAppView* NewLC( const TRect& aRect );
 
/**
* ~CMyAppView
* Virtual Destructor.
*/

virtual ~CMyAppView();
 
private: // Constructors
 
/**
* ConstructL
* 2nd phase constructor.
* Perform the second phase construction of a
* CMyAppView object.
* @param aRect The rectangle this view will be drawn to.
*/

void ConstructL(const TRect& aRect);
 
/**
* CMyAppView.
* C++ default constructor.
*/

CMyAppView();
 
public: // Functions from base classes
 
/**
* From CCoeControl, Draw
* Draw this CMyAppView to the screen.
* @param aRect the rectangle of this view that needs updating
*/

void Draw( const TRect& aRect ) const;
 
/**
* From CoeControl, SizeChanged.
* Called by framework when the view size is changed.
*/

void SizeChanged();
 
private: // Member data
 
/**
* The bitmap object.
* Owned by CMyAppView
*/

CFbsBitmap* iMyIcon;
 
/**
* The bitmap mask object.
* Owned by CMyAppView
*/

CFbsBitmap* iMyIconMask;
}
 
#endif // __MYAPPVIEW_H__
 
// End of File


In the cpp file of the view (container)

// INCLUDES
#include <coemain.h>
#include <eikenv.h>
#include <akniconutils.h> // for AknIconUtils
#include <My_Icon.mbg>
#include "MyAppView.h"
 
// IMPLEMENTATION SPECIFIC CONSTANTS
// The mif file from where you would like to show the
// icon on the screen.
_LIT(KMyIconMif, "c:\\resource\\apps\\My_Icon.mif");
 
// If your image is created from an SVG then image would be
// of a scalable one. In that case even if you change the
// width and height the look of the image would be smooth.
const TInt KMyIconMaxWidth(100);
const TInt KMyIconMaxHeight(100);
 
// ============================ MEMBER FUNCTIONS ===============================
 
// -----------------------------------------------------------------------------
// CMyAppView::NewL()
// Two-phased constructor.
// -----------------------------------------------------------------------------
//
CMyAppView* CMyAppView::NewL( const TRect& aRect )
{
CMyAppView* self = CMyAppView::NewLC( aRect );
CleanupStack::Pop( self );
return self;
}
 
// -----------------------------------------------------------------------------
// CMyAppView::NewLC()
// Two-phased constructor.
// -----------------------------------------------------------------------------
//
CMyAppView* CMyAppView::NewLC( const TRect& aRect )
{
CMyAppView* self = new ( ELeave ) CMyAppView;
CleanupStack::PushL( self );
self->ConstructL( aRect );
return self;
}
 
// -----------------------------------------------------------------------------
// CMyAppView::~CMyAppView()
// Destructor.
// -----------------------------------------------------------------------------
//
CMyAppView::~CMyAppView()
{
if(iMyIconMask)
{
delete iMyIconMask;
iMyIconMask = NULL;
}
 
if(iMyIcon)
{
delete iMyIcon;
iMyIcon = NULL;
}
}
 
// -----------------------------------------------------------------------------
// CMyAppView::ConstructL()
// Symbian 2nd phase constructor can leave.
// -----------------------------------------------------------------------------
//
void CMyAppView::ConstructL( const TRect& aRect )
{
// Create a window for this application view
CreateWindowL();
 
// Set the windows size
SetRect( aRect );
 
// This view is a full-screen view.
SetExtentToWholeScreen();
 
// Create the bitmap and mask to draw.
AknIconUtils::CreateIconL(iMyIcon, iMyIconMask, KMyIconMif,
EMbmMy_iconMy_icon, EMbmMy_iconMy_icon_mask);
 
// Set size for the bitmap and mask
AknIconUtils::SetSize(iMyIcon, TSize(KMyIconMaxWidth, KMyIconMaxHeight));
AknIconUtils::SetSize(iMyIconMask, TSize(KMyIconMaxWidth, KMyIconMaxHeight));
 
// Activate the window, which makes it ready to be drawn
ActivateL();
}
 
// -----------------------------------------------------------------------------
// CMyAppView::CMyAppView()
// C++ default constructor can NOT contain any code, that might leave.
// -----------------------------------------------------------------------------
//
CMyAppView::CMyAppView()
{
// No implementation required
}
 
// -----------------------------------------------------------------------------
// CMyAppView::Draw()
// Draws the display.
// -----------------------------------------------------------------------------
//
void CMyAppView::Draw( const TRect& aRect ) const
{
// Get the standard graphics context
CWindowGc& gc = SystemGc();
 
// Clears the screen
gc.SetBrushColor(KRgbBlack);
gc.Clear( aRect );
 
TPoint point = TPoint(aRect.Center().iX - (KMyIconMaxWidth/2),
aRect.Center().iY - (KMyIconMaxHeight/2));
 
// Draw the bitmap
gc.BitBltMasked(point, iMyIcon, aRect, iMyIconMask, EFalse);
}
 
// -----------------------------------------------------------------------------
// CMyAppView::SizeChanged()
// Called by framework when the view size is changed.
// -----------------------------------------------------------------------------
//
void CMyAppView::SizeChanged()
{
DrawNow();
}
 
// End of File


In the PKG file

; Normal lines for a package file
; and other files for the application
"\epoc32\data\z\resource\apps\My_Icon.mif"-"c:\resource\apps\My_Icon.mif"


Related Links


This page was last modified on 20 July 2012, at 05:17.
52 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×