diff -r 000000000000 -r 8466d47a6819 meetingrequest/mrgui/src/cmrimage.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/meetingrequest/mrgui/src/cmrimage.cpp Thu Dec 17 08:39:21 2009 +0200 @@ -0,0 +1,434 @@ +/* +* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Definition of CMRImage class. +* +*/ + +#include "cmrimage.h" + +#include +#include +#include + +#include "esmrhelper.h" +#include "cesmrlayoutmgr.h" + + + +// ======== MEMBER FUNCTIONS ======== + +// --------------------------------------------------------------------------- +// CMRImage::NewL +// --------------------------------------------------------------------------- +// +EXPORT_C CMRImage* CMRImage::NewL( + const TAknsItemID& aIconId, TScaleMode aScaleMode ) + { + CMRImage* self = new (ELeave) CMRImage( aScaleMode ); + CleanupStack::PushL( self ); + self->ConstructL( aIconId ); + CleanupStack::Pop( self ); + return self; + } + +// --------------------------------------------------------------------------- +// CMRImage::~CMRImage +// --------------------------------------------------------------------------- +// +EXPORT_C CMRImage* CMRImage::NewL( + NMRBitmapManager::TMRBitmapId aBitmapId, TScaleMode aScaleMode ) + { + CMRImage* self = new (ELeave) CMRImage( aScaleMode ); + CleanupStack::PushL( self ); + self->ConstructL( aBitmapId ); + CleanupStack::Pop( self ); + return self; + } + +// --------------------------------------------------------------------------- +// CMRImage::~CMRImage +// --------------------------------------------------------------------------- +// +EXPORT_C CMRImage::~CMRImage() + { + // Do nothing + } + +// --------------------------------------------------------------------------- +// CMRImage::SizeChanged +// --------------------------------------------------------------------------- +// +void CMRImage::SizeChanged() + { + TSize sz = Rect().Size(); + const CFbsBitmap* bitmap = Bitmap(); + AknIconUtils::SetSize( const_cast< CFbsBitmap* >( bitmap ), sz, iScaleMode ); + } + +// --------------------------------------------------------------------------- +// CMRImage::CMRImage +// --------------------------------------------------------------------------- +// +CMRImage::CMRImage( TScaleMode aScaleMode ) + : iScaleMode( aScaleMode ) + { + // Do nothing + } + +// --------------------------------------------------------------------------- +// CMRImage::ConstructL +// --------------------------------------------------------------------------- +// +void CMRImage::ConstructL( const TAknsItemID& aIconId ) + { + CreateIconL( aIconId ); + } + +// --------------------------------------------------------------------------- +// CMRImage::ConstructL +// --------------------------------------------------------------------------- +// +void CMRImage::ConstructL( NMRBitmapManager::TMRBitmapId aBitmapId ) + { + CreateIconL( aBitmapId ); + } + +// --------------------------------------------------------------------------- +// CMRImage::CreateIconL +// --------------------------------------------------------------------------- +// +void CMRImage::CreateIconL( const TAknsItemID& aIconId ) + { + TInt fileIndex(-1); + TInt fileMaskIndex(-1); + + SetBitmapFallback( aIconId, fileIndex, fileMaskIndex ); + + TFileName bitmapFilePath; + ESMRHelper::LocateResourceFile( + KESMRMifFile, + KDC_APP_BITMAP_DIR, + bitmapFilePath ); + + CFbsBitmap* bitMap; + CFbsBitmap* bitMapMask; + + AknsUtils::CreateIconL( AknsUtils::SkinInstance(), + aIconId, + bitMap, + bitMapMask, + bitmapFilePath, + fileIndex, + fileMaskIndex + ); + + if( bitMap && bitMapMask ) + { + SetPictureOwnedExternally( EFalse ); + SetBrushStyle( CWindowGc::ENullBrush ); + SetPicture( bitMap, bitMapMask ); + } + } + +// --------------------------------------------------------------------------- +// CMRImage::CreateIconL +// --------------------------------------------------------------------------- +// +void CMRImage::CreateIconL( NMRBitmapManager::TMRBitmapId aBitmapId ) + { + CFbsBitmap* bitMap( NULL ); + CFbsBitmap* bitMapMask( NULL ); + TSize sz( Rect().Size() ); + User::LeaveIfError( + NMRBitmapManager::GetSkinBasedBitmap( + aBitmapId, + bitMap, bitMapMask, sz ) ); + + if( bitMap && bitMapMask ) + { + SetPictureOwnedExternally( EFalse ); + SetBrushStyle( CWindowGc::ENullBrush ); + SetPicture( bitMap, bitMapMask ); + } + } + +// --------------------------------------------------------------------------- +// CMRImage::SetBitmapFallback +// --------------------------------------------------------------------------- +// +void CMRImage::SetBitmapFallback( + const TAknsItemID& aIconId, + TInt& aFileIndex, + TInt& aFileMaskIndex ) + { + // icons changed + switch ( aIconId.iMinor ) + { + case EAknsMinorGenericQgnFscalIndiPriorityHigh: + case EAknsMinorGenericQgnFsIndiPriorityHigh: + { + aFileIndex = EMbmEsmrguiQgn_indi_cmail_calendar_priority_high; + aFileMaskIndex = EMbmEsmrguiQgn_indi_cmail_calendar_priority_high_mask; + break; + } + case EAknsMinorGenericQgnFscalIndiPriorityNormal: + case EAknsMinorGenericQgnFsIndiPriorityNormal: + { + aFileIndex = EMbmEsmrguiQgn_indi_cmail_calendar_priority_normal; + aFileMaskIndex = EMbmEsmrguiQgn_indi_cmail_calendar_priority_normal_mask; + break; + } + case EAknsMinorGenericQgnFscalIndiPriorityLow: + case EAknsMinorGenericQgnFsIndiPriorityLow: + { + aFileIndex = EMbmEsmrguiQgn_indi_cmail_calendar_priority_low; + aFileMaskIndex = EMbmEsmrguiQgn_indi_cmail_calendar_priority_low_mask; + break; + } + case EAknsMinorGenericQgnFscalIndiAlarmDay: + { + aFileIndex = EMbmEsmrguiQgn_indi_cmail_calendar_alarm_day; + aFileMaskIndex = EMbmEsmrguiQgn_indi_cmail_calendar_alarm_day_mask; + break; + } + case EAknsMinorGenericQgnFscalIndiAlarmTime: + { + aFileIndex = EMbmEsmrguiQgn_indi_cmail_calendar_alarm; + aFileMaskIndex = EMbmEsmrguiQgn_indi_cmail_calendar_alarm_mask; + break; + } + case EAknsMinorGenericQgnFscalIndiSubject: + { + aFileIndex = EMbmEsmrguiQgn_indi_cmail_calendar_subject; + aFileMaskIndex = EMbmEsmrguiQgn_indi_cmail_calendar_subject_mask; + break; + } + case EAknsMinorGenericQgnFscalIndiRecurrence: + { + aFileIndex = EMbmEsmrguiQgn_indi_cmail_calendar_recurrence; + aFileMaskIndex = EMbmEsmrguiQgn_indi_cmail_calendar_recurrence_mask; + break; + } + case EAknsMinorGenericQgnMeetReqIndiAlarm: + { + aFileIndex = EMbmEsmrguiQgn_indi_cmail_meet_req_alarm; + aFileMaskIndex = EMbmEsmrguiQgn_indi_cmail_meet_req_alarm_mask; + break; + } + case EAknsMinorGenericQgnMeetReqIndiCheckboxMark: + { + aFileIndex = EMbmEsmrguiQgn_indi_cmail_meet_req_checkbox_on; + aFileMaskIndex = EMbmEsmrguiQgn_indi_cmail_meet_req_checkbox_on_mask; + break; + } + case EAknsMinorGenericQgnMeetReqIndiCheckboxUnmark: + { + aFileIndex = EMbmEsmrguiQgn_indi_cmail_meet_req_checkbox_off; + aFileMaskIndex = EMbmEsmrguiQgn_indi_cmail_meet_req_checkbox_off_mask; + break; + } + case EAknsMinorGenericQgnMeetReqIndiClock: + { + aFileIndex = EMbmEsmrguiQgn_indi_cmail_meet_req_clock; + aFileMaskIndex = EMbmEsmrguiQgn_indi_cmail_meet_req_clock_mask; + break; + } + case EAknsMinorGenericQgnMeetReqIndiDateEnd: + { + aFileIndex = EMbmEsmrguiQgn_indi_cmail_meet_req_date_end; + aFileMaskIndex = EMbmEsmrguiQgn_indi_cmail_meet_req_date_end_mask; + break; + } + case EAknsMinorGenericQgnMeetReqIndiDateStart: + { + aFileIndex = EMbmEsmrguiQgn_indi_cmail_meet_req_date_start; + aFileMaskIndex = EMbmEsmrguiQgn_indi_cmail_meet_req_date_start_mask; + break; + } + case EAknsMinorGenericQgnMeetReqIndiLocation: + { + aFileIndex = EMbmEsmrguiQgn_indi_cmail_meet_req_location; + aFileMaskIndex = EMbmEsmrguiQgn_indi_cmail_meet_req_location_mask; + break; + } + case EAknsMinorGenericQgnFscalIndiSynchronisation: + { + aFileIndex = EMbmEsmrguiQgn_indi_cmail_synchronisation; + aFileMaskIndex = EMbmEsmrguiQgn_indi_cmail_synchronisation_mask; + break; + } + case EAknsMinorGenericQgnFscalIndiOccasion: + { + aFileIndex = EMbmEsmrguiQgn_indi_cmail_calendar_occasion; + aFileMaskIndex = EMbmEsmrguiQgn_indi_cmail_calendar_occasion_mask; + break; + } + + case EAknsMinorGenericQgnFsIndiCaleTrackingTentative: + { + aFileIndex = EMbmEsmrguiQgn_indi_cmail_calendar_tracking_tentative; + aFileMaskIndex = EMbmEsmrguiQgn_indi_cmail_calendar_tracking_tentative_mask; + break; + } + case EAknsMinorGenericQgnFsIndiCaleTrackingAccept: + { + aFileIndex = EMbmEsmrguiQgn_indi_cmail_calendar_tracking_accept; + aFileMaskIndex = EMbmEsmrguiQgn_indi_cmail_calendar_tracking_accept_mask; + break; + } + case EAknsMinorGenericQgnFsIndiCaleTrackingNone: + { + aFileIndex = EMbmEsmrguiQgn_indi_cmail_calendar_tracking_none; + aFileMaskIndex = EMbmEsmrguiQgn_indi_cmail_calendar_tracking_none_mask; + break; + } + case EAknsMinorGenericQgnFsIndiCaleTrackingReject: + { + aFileIndex = EMbmEsmrguiQgn_indi_cmail_calendar_tracking_reject; + aFileMaskIndex = EMbmEsmrguiQgn_indi_cmail_calendar_tracking_reject_mask; + break; + } + case EAknsMinorGenericQgnFseMailAttachment: + { + aFileIndex = EMbmEsmrguiQgn_indi_cmail_attachment; + aFileMaskIndex = EMbmEsmrguiQgn_indi_cmail_attachment_mask; + break; + } + case EAknsMinorGenericQgnFsGrafEmailCtrlbar: + { + aFileIndex = EMbmEsmrguiQgn_graf_cmail_email_ctrlbar; + aFileMaskIndex = EMbmEsmrguiQgn_graf_cmail_email_ctrlbar_mask; + break; + } + case EAknsMinorQgnPropCheckboxOn: + aFileIndex = EMbmEsmrguiQgn_prop_checkbox_on; + aFileMaskIndex = EMbmEsmrguiQgn_prop_checkbox_on_mask; + break; + case EAknsMinorQgnPropCheckboxOff: + aFileIndex = EMbmEsmrguiQgn_prop_checkbox_off; + aFileMaskIndex = EMbmEsmrguiQgn_prop_checkbox_off_mask; + break; + case EAknsMinorQgnFsListCenter: + { + aFileIndex = EMbmEsmrguiQsn_fr_list_center; + aFileMaskIndex = EMbmEsmrguiQsn_fr_list_center_mask; + break; + } + case EAknsMinorQgnFsListSideT: + { + aFileIndex = EMbmEsmrguiQsn_fr_list_side_t; + aFileMaskIndex = EMbmEsmrguiQsn_fr_list_side_t_mask; + break; + } + case EAknsMinorQgnFsListSideL: + { + aFileIndex = EMbmEsmrguiQsn_fr_list_side_l; + aFileMaskIndex = EMbmEsmrguiQsn_fr_list_side_l_mask; + break; + } + case EAknsMinorQgnFsListSideR: + { + aFileIndex = EMbmEsmrguiQsn_fr_list_side_r; + aFileMaskIndex = EMbmEsmrguiQsn_fr_list_side_r_mask; + break; + } + case EAknsMinorQgnFsListSideB: + { + aFileIndex = EMbmEsmrguiQsn_fr_list_side_b; + aFileMaskIndex = EMbmEsmrguiQsn_fr_list_side_b_mask; + break; + } + case EAknsMinorQgnFsListCornerTl: + { + aFileIndex = EMbmEsmrguiQsn_fr_list_corner_tl; + aFileMaskIndex = EMbmEsmrguiQsn_fr_list_corner_tl_mask; + break; + } + case EAknsMinorQgnFsListCornerTr: + { + aFileIndex = EMbmEsmrguiQsn_fr_list_corner_tr; + aFileMaskIndex = EMbmEsmrguiQsn_fr_list_corner_tr_mask; + break; + } + case EAknsMinorQgnFsListCornerBl: + { + aFileIndex = EMbmEsmrguiQsn_fr_list_corner_bl; + aFileMaskIndex = EMbmEsmrguiQsn_fr_list_corner_bl_mask; + break; + } + case EAknsMinorQgnFsListCornerBr: + { + aFileIndex = EMbmEsmrguiQsn_fr_list_corner_br; + aFileMaskIndex = EMbmEsmrguiQsn_fr_list_corner_br_mask; + break; + } + case EAknsMinorGenericQgnFsHscrActionArrowLeft: + { + aFileIndex = EMbmEsmrguiQgn_indi_cmail_arrow_right; + aFileMaskIndex = EMbmEsmrguiQgn_indi_cmail_arrow_right_mask; + break; + } + // removed when icons changed to common ones + /* + case EAknsMinorGenericQgnFsHscrActionArrowRight: + { + aFileIndex = EMbmEsmrguiQgn_indi_action_menu; + aFileMaskIndex = EMbmEsmrguiQgn_indi_action_menu_mask; + break; + } + */ + // + // Commented to enable compilation in wk04 + /*case EAknsMinorGenericQgnFseActionMenuOpenInWebIcon: + { + aFileIndex = EMbmEsmrguiQgn_fse_action_menu_open_in_web_icon; + aFileMaskIndex = EMbmEsmrguiQgn_fse_action_menu_open_in_web_icon; + break; + } + case EAknsMinorGenericQgnFseActionMenuOpenInIntranetIcon: + { + aFileIndex = EMbmEsmrguiQgn_fse_action_menu_open_in_intranet_icon; + aFileMaskIndex = EMbmEsmrguiQgn_fse_action_menu_open_in_intranet_icon_mask; + break; + } + case EAknsMinorGenericQgnFseActionMenuBookmarkIcon: + { + aFileIndex = EMbmEsmrguiQgn_fse_action_menu_bookmark_icon; + aFileMaskIndex = EMbmEsmrguiQgn_fse_action_menu_bookmark_icon_mask; + break; + }*/ + // + // removed when icons changed to common ones + /* + case EAknsMinorGenericQgnPropBlidWaypoint: + { + aFileIndex = EMbmEsmrguiQgn_fs_action_show_on_maps; + aFileMaskIndex = EMbmEsmrguiQgn_fs_action_show_on_maps_mask; + break; + } + */ + // + default: + { + // icons changed + aFileIndex = EMbmEsmrguiQgn_indi_cmail_arrow_right; + aFileMaskIndex = EMbmEsmrguiQgn_indi_cmail_arrow_right_mask; + break; + // + } +// + } + } + +// EOF