⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 meginfoview.cpp.bak

📁 symbian系统上的记事本程序
💻 BAK
字号:
/*
* ============================================================================
*  Name     : CMegInfoView from CAknView
*  Part of  : Hello
*  Copyright (c) 2003 Nokia. All rights reserved.
* ============================================================================
*/

// INCLUDE FILES
#include <aknviewappui.h>
#include <avkon.hrh>
#include <aknnotewrappers.h>    // CAknErrorNote, CAknInformationNote
#include <EveryDay.rsg>
#include "EveryDay.mbg"
#include "EveryDay.hrh"
#include "MegInfoView.h"
#include "MegInfoContainer.h" 
#include "EveryDayAppUi.h"
#include "MtmsEngine.h"
#include "MegListView.h"
#include <smuthdr.h>        // CSmsHeader
#include "common.h"
#include "MegView.h"
#include <akntitle.h>
#include <akncontext.h>
#include <aknnotewrappers.h> 

// ================= MEMBER FUNCTIONS =======================

// C++ default constructor can NOT contain any code, that
// might leave.
//
CMegInfoView* CMegInfoView::NewL()
{
    CMegInfoView* self = NewLC();
    CleanupStack::Pop(self);
    return self;
}

CMegInfoView* CMegInfoView::NewLC()
{
    CMegInfoView* self = new (ELeave) CMegInfoView;
    CleanupStack::PushL(self);
    self->ConstructL();
    return self;
}

CMegInfoView::CMegInfoView()
{
		iMessageState = EWriteSms;
	iEngine = NULL;
}

// EPOC default constructor can leave.
void CMegInfoView::ConstructL()
{
    BaseConstructL(R_MEG_INFO_VIEW);
	//BaseConstructL();	
	iEngine = CMtmsEngine::NewL(*this);
}

// Destructor
CMegInfoView::~CMegInfoView()
{
	MEM_FREE(iEngine);
}

// ---------------------------------------------------------
// TUid CMegInfoView::Id()
// Returns Id of the view.
// ---------------------------------------------------------
TUid CMegInfoView::Id() const
{
    return KViewId14;
}

// ---------------------------------------------------------
// CMegInfoView::HandleCommandL(TInt aCommand)
// Handles commands
// ---------------------------------------------------------
void CMegInfoView::HandleCommandL(TInt aCommand)
{   
	switch(aCommand)
	{
	case EMegInfoSend:
		{
			TBuf<16> address;
			TBuf<128> message;
			iContainer->GetAddress(address,message);
			if(address.Length()==0)
			{
				TBuf<16> empty;
				CEikonEnv::Static()->ReadResource(empty,R_MESSAGE_EMPTY);
				CAknInformationNote* note = new (ELeave) CAknInformationNote;
				note->ExecuteLD(empty);
				break;
			}
			mindexEntry = iEngine->CreateSMSMessageL(address,message);
			if(!iEngine->ValidateCreatedSMS())
			{
				TBuf<32> validate;
				CEikonEnv::Static()->ReadResource(validate,R_MESSAGE_NOTRINHT);
				CAknInformationNote* note = new (ELeave) CAknInformationNote;
				note->ExecuteLD(validate);
			}
			else
			{
				iEngine->SendSMSL();
			}	
			AppUi()->ActivateLocalViewL(KViewId12);
			break;
		}
	case EMegInfoSave:
		{
			TBuf<16> address;
			TBuf<128> message;
			iContainer->GetAddress(address,message);
			iEngine->CreateSMSMessageL(address,message);
			TBuf<32> save;
			CEikonEnv::Static()->ReadResource(save,R_MESSAGE_SAVE);
			CAknInformationNote* note = new (ELeave) CAknInformationNote;
			note->ExecuteLD(save);
			
			AppUi()->ActivateLocalViewL(KViewId12);
			break;
		}
	case EAknSoftkeyBack:
		{
			
				( (CMegListView*)AppUi()->View(KViewId12) )->SetFoldState(iMtmState);
				AppUi()->ActivateLocalViewL(KViewId12);	
			break;
		}
		
	default:
		{
			AppUi()->HandleCommandL(aCommand);
			break;
		}
	}
}
// ---------------------------------------------------------
// CMegInfoView::HandleClientRectChange()
// Handles client rect change.
// ---------------------------------------------------------
void CMegInfoView::HandleClientRectChange()
{
    if (iContainer)
	{
        iContainer->SetRect(ClientRect());
	}
}

// ---------------------------------------------------------
// CMegInfoView::DoActivateL(...)
// Creates the Container class object.
// ---------------------------------------------------------
void CMegInfoView::DoActivateL(const TVwsViewId& ,
							   TUid ,
							   const TDesC8& )
{
    iContainer = new (ELeave) CMegInfoContainer;
    iContainer->SetMopParent(this);
	
	
	TRect rc;
	rc.SetRect(ClientRect().iTl, TSize(176, 144));
    iContainer->ConstructL(rc);
    AppUi()->AddToStackL(*this, iContainer);
	
	TBuf<KMaxPath> path;
#ifdef __WINS__
	path.Copy(_L("z:\\system\\apps\\EveryDay\\EveryDay.mbm"));
#else
	CEveryDayAppUi* pApp = (CEveryDayAppUi*)CEikonEnv::Static()->AppUi();
	pApp->GetAppPath(path);
	path.Append(_L("EveryDay.mbm"));
#endif
	
	if ((iMessageState == EOpen)||(iMessageState == ESendFrom))
	{
		if ( iMtmState == EMtmInbox )
		{
			iContainer->SetInfo(address,message);
			CEikStatusPane* statusPane = StatusPane();
			CAknContextPane* contextPane = (CAknContextPane*)StatusPane()->ControlL(TUid::Uid(EEikStatusPaneUidContext));
			CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL(path,EMbmEverydayInboxsmall);
			contextPane->SetPicture(bitmap); 	
			TBuf<32> sTitle;
			CEikonEnv::Static()->ReadResource(sTitle, R_INBOX_TITLE);	
			CAknTitlePane* titlePane = (CAknTitlePane*)statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
			titlePane->SetTextL(sTitle);
			iContainer->SetEditReadOnly();
		}

		if ( iMtmState == EMtmDraft )
		{
			iContainer->SetInfo(address,message);
			CEikStatusPane* statusPane = StatusPane();
			CAknContextPane* contextPane = (CAknContextPane*)StatusPane()->ControlL(TUid::Uid(EEikStatusPaneUidContext));
			CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL(path,EMbmEverydayDraft);
			contextPane->SetPicture(bitmap); 	
			TBuf<32> sTitle;
			CEikonEnv::Static()->ReadResource(sTitle, R_DRAFT_TITLE);	
			CAknTitlePane* titlePane = (CAknTitlePane*)statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
			titlePane->SetTextL(sTitle);
			iContainer->SetEditReadOnly();
		}

		if( iMtmState == EMtmSended )
		{
			iContainer->SetInfo(address,message);
			CEikStatusPane* statusPane = StatusPane();
			CAknContextPane* contextPane = (CAknContextPane*)StatusPane()->ControlL(TUid::Uid(EEikStatusPaneUidContext));
			CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL(path,EMbmEverydayOutbox);
			contextPane->SetPicture(bitmap); 	
			TBuf<32> sTitle;
			CEikonEnv::Static()->ReadResource(sTitle, R_SEND_TITLE);	
			CAknTitlePane* titlePane = (CAknTitlePane*)statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
			titlePane->SetTextL(sTitle);
			iContainer->SetEditReadOnly();
		}	

		if (iMtmState == EMtmWriteInfo)
		{
			CEikStatusPane* statusPane = StatusPane();
			CAknContextPane* contextPane = (CAknContextPane*)StatusPane()->ControlL(TUid::Uid(EEikStatusPaneUidContext));
			CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL(path,EMbmEverydayWritemessagesmall);
			contextPane->SetPicture(bitmap); 	
			TBuf<32> sTitle;
			CEikonEnv::Static()->ReadResource(sTitle, R_WRITE_TITLE);	
			CAknTitlePane* titlePane = (CAknTitlePane*)statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
			titlePane->SetTextL(sTitle);
		}
	}

	if (iMessageState == ESendFrom)
	{
		if ( iMtmState == EMtmInbox )
		{
			iContainer->SetInfo(address,message);
			CEikStatusPane* statusPane = StatusPane();
			CAknContextPane* contextPane = (CAknContextPane*)StatusPane()->ControlL(TUid::Uid(EEikStatusPaneUidContext));
			CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL(path,EMbmEverydayInboxsmall);
			contextPane->SetPicture(bitmap); 	
			TBuf<32> sTitle;
			CEikonEnv::Static()->ReadResource(sTitle, R_INBOX_TITLE);	
			CAknTitlePane* titlePane = (CAknTitlePane*)statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
			titlePane->SetTextL(sTitle);
		}
		
		if ( iMtmState == EMtmDraft )
		{
			iContainer->SetInfo(address,message);
			CEikStatusPane* statusPane = StatusPane();
			CAknContextPane* contextPane = (CAknContextPane*)StatusPane()->ControlL(TUid::Uid(EEikStatusPaneUidContext));
			CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL(path,EMbmEverydayDraft);
			contextPane->SetPicture(bitmap); 	
			TBuf<32> sTitle;
			CEikonEnv::Static()->ReadResource(sTitle, R_DRAFT_TITLE);	
			CAknTitlePane* titlePane = (CAknTitlePane*)statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
			titlePane->SetTextL(sTitle);
		}
		
		if( iMtmState == EMtmSended )
		{
			iContainer->SetInfo(address,message);
			CEikStatusPane* statusPane = StatusPane();
			CAknContextPane* contextPane = (CAknContextPane*)StatusPane()->ControlL(TUid::Uid(EEikStatusPaneUidContext));
			CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL(path,EMbmEverydayOutbox);
			contextPane->SetPicture(bitmap); 	
			TBuf<32> sTitle;
			CEikonEnv::Static()->ReadResource(sTitle, R_SEND_TITLE);	
			CAknTitlePane* titlePane = (CAknTitlePane*)statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
			titlePane->SetTextL(sTitle);
		}	
		
		if (iMtmState == EMtmWriteInfo)
		{
			CEikStatusPane* statusPane = StatusPane();
			CAknContextPane* contextPane = (CAknContextPane*)StatusPane()->ControlL(TUid::Uid(EEikStatusPaneUidContext));
			CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL(path,EMbmEverydayWritemessagesmall);
			contextPane->SetPicture(bitmap); 	
			TBuf<32> sTitle;
			CEikonEnv::Static()->ReadResource(sTitle, R_WRITE_TITLE);	
			CAknTitlePane* titlePane = (CAknTitlePane*)statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
			titlePane->SetTextL(sTitle);
		}
	}

	if(iMessageState == EWriteSms)
	{
		CEikStatusPane* statusPane = StatusPane();
		CAknContextPane* contextPane = (CAknContextPane*)StatusPane()->ControlL(TUid::Uid(EEikStatusPaneUidContext));
		CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL(path,EMbmEverydayWritemessagesmall);
		contextPane->SetPicture(bitmap); 	
		TBuf<32> sTitle;
		CEikonEnv::Static()->ReadResource(sTitle, R_WRITE_TITLE);	
		CAknTitlePane* titlePane = (CAknTitlePane*)statusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
		titlePane->SetTextL(sTitle);
	}
}

// ---------------------------------------------------------
// CMegInfoView::DoDeactivate()
// Deletes the Container class object.
// ---------------------------------------------------------
void CMegInfoView::DoDeactivate()
{
    if (iContainer)
	{
        AppUi()->RemoveFromStack(iContainer);
		
		delete iContainer;
		iContainer = NULL;
	}	
	
}
void CMegInfoView::HandleMessageSentL(TInt aError)
{
	if (aError == KErrNone)
    {
		TBuf<16> success;
		CEikonEnv::Static()->ReadResource(success,R_MESSAGE_SUCCESS);
		CAknInformationNote* note = new (ELeave) CAknInformationNote;
        note->ExecuteLD(success);
		
		iEngine->MoveToFolderL(mindexEntry.Id(),KMsvGlobalOutBoxIndexEntryId);
		//AppUi()->ActivateLocalViewL(KViewId13);
    }
    else
    {
        TBuf<16> fail;
		CEikonEnv::Static()->ReadResource(fail,R_MESSAGE_SENDFAIL);//若发送不成功,显示不成功的标志
		CAknInformationNote* note = new (ELeave) CAknInformationNote;
        note->ExecuteLD(fail);
    }
}

void CMegInfoView::GetMessage(TMessageState aMessageState, TFoldState aMtmState, TInt aIndex)
{
	iMessageState = aMessageState;
	iMtmState = aMtmState;
	iIndex = aIndex;
}

void CMegInfoView::sendate(RArray<TMsvId>& aArray, TInt aNum)
{	
	address.Copy(_L(""));
	message.Copy(_L(""));
	iEngine->GetMessageAddressL(aArray[aNum],address);
	iEngine->GetMessageL(aArray[aNum],message);		
}
// End of File

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -