📄 pbitemcontainer.cpp.bak
字号:
/*
* ============================================================================
* Name : CPBItemContainer from CCoeControl, MCoeControlObserver
* Part of : FunZone
* Copyright (c) 2003 Nokia. All rights reserved.
* ============================================================================
*/
// INCLUDE FILES
#include "MEM_FREE.H"
#include <FunZone.rsg>
#include "FunZone.hrh"
#include "PBItemContainer.h"
#include <eiklabel.h>
#include <eikedwin.h>
#include <eikenv.h>
#include <barsread.h>
#include "PBInfo.h"
#include "FunZoneAppUi.h"
#include "PBItemView.h"
// ================= MEMBER FUNCTIONS =======================
// C++ default constructor can NOT contain any code, that
// might leave.
//
CPBItemContainer::CPBItemContainer(CPBInfo* a_pPBInfo)
{
i_pLabelLastName = NULL;
i_pLabelFirstName = NULL;
i_pLabelTel = NULL;
i_pLabelHomeTel = NULL;
i_pLabelEmail = NULL;
i_pEditLastName = NULL;
i_pEditFirstName = NULL;
i_pEditTel = NULL;
i_pEditHomeTel = NULL;
i_pEditEmail = NULL;
i_pPBInfo = a_pPBInfo;
}
// EPOC default constructor can leave.
void CPBItemContainer::ConstructL(const TRect& aRect)
{
CreateWindowL();
CreateLabel();
CreateEdit();
SetRect(aRect);
SetExtentToWholeScreen();
ActivateL();
}
// Destructor
CPBItemContainer::~CPBItemContainer()
{
MEM_FREE(i_pLabelLastName )
MEM_FREE(i_pLabelFirstName )
MEM_FREE(i_pLabelHomeTel )
MEM_FREE(i_pLabelTel )
MEM_FREE(i_pLabelEmail)
MEM_FREE(i_pEditLastName)
MEM_FREE(i_pEditFirstName)
MEM_FREE(i_pEditTel )
MEM_FREE(i_pEditHomeTel)
MEM_FREE(i_pEditEmail )
// MEM_FREE(i_pPBInfo )
}
// ---------------------------------------------------------
// CPBItemContainer::FocusTo(TInt aCommand)
// Change foccused control.
// (other items were commented in a header).
// ---------------------------------------------------------
//
void CPBItemContainer::FocusTo(TInt aCommand)
{
}
// ---------------------------------------------------------
// CPBItemContainer::SizeChanged()
// Called by framework when the view size is changed
// (other items were commented in a header).
// ---------------------------------------------------------
//
void CPBItemContainer::SizeChanged()
{
}
// ---------------------------------------------------------
// CPBItemContainer::CountComponentControls() const
// (other items were commented in a header).
// ---------------------------------------------------------
//
TInt CPBItemContainer::CountComponentControls() const
{
return 10; // return nbr of controls inside this container
}
// ---------------------------------------------------------
// CPBItemContainer::ComponentControl(TInt aIndex) const
// (other items were commented in a header).
// ---------------------------------------------------------
//
CCoeControl* CPBItemContainer::ComponentControl(TInt aIndex) const
{
switch(aIndex)
{
case 0:
{
return i_pLabelLastName;
break;
}
case 1:
{
return i_pLabelFirstName;
break;
}
case 2:
{
return i_pLabelHomeTel;
break;
}
case 3:
{
return i_pLabelEmail;
break;
}
case 4:
{
return i_pLabelTel;
break;
}
case 5:
{
return i_pEditLastName;
break;
}
case 6:
{
return i_pEditFirstName;
break;
}
case 7:
{
return i_pEditTel;
break;
}
case 8:
{
return i_pEditHomeTel;
break;
}
case 9:
{
return i_pEditEmail;
break;
}
default:
{
return NULL;
break;
}
}
}
// ---------------------------------------------------------
// CPBItemContainer::Draw(const TRect& aRect) const
// (other items were commented in a header).
// ---------------------------------------------------------
//
void CPBItemContainer::Draw(const TRect& aRect) const
{
CWindowGc& gc = SystemGc();
gc.SetPenStyle(CGraphicsContext::ENullPen);
gc.SetBrushColor(KRgbYellow);
gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
gc.DrawRect(aRect);
gc.SetPenColor(KRgbBlack);
gc.SetPenStyle(CGraphicsContext::ESolidPen);
gc.DrawLine(TPoint(10,0), TPoint(10,142));
gc.DrawLine(TPoint(10,142), TPoint(176,142));
TRect rRectFrist;
rRectFrist.iTl = TPoint(3,4);
rRectFrist.iBr = TPoint(170,48);
gc.SetBrushColor(KRgbBlue);
// if ( iState == ECardOpen )
// {
// gc.SetBrushColor(KRgbWhite);
// }
if (i_pEditLastName->IsFocused())
{
gc.DrawRect(rRectFrist);
}
TRect rRectLast;
rRectLast.iTl = TPoint(3,49);
rRectLast.iBr = TPoint(170,94);
gc.SetBrushColor(KRgbGray);
// if ( iState == ECardOpen )
// {
// gc.SetBrushColor(KRgbWhite);
// }
if (i_pEditFirstName->IsFocused())
{
gc.DrawRect(rRectLast);
}
TRect rRectPhoneNO;
rRectPhoneNO.iTl = TPoint(3,94);
rRectPhoneNO.iBr = TPoint(170,139);
gc.SetBrushColor(KRgbGray);
// if ( iState == ECardOpen )
// {
// gc.SetBrushColor(KRgbWhite);
// }
if (i_pEditHomeTel->IsFocused())
{
gc.DrawRect(rRectPhoneNO);
}
// const CFont* iFont;
// gc.SetPenColor(KRgbBlack);
// gc.SetPenStyle(CGraphicsContext::ESolidPen);
// gc.DrawLine(TPoint(25,0), TPoint(25,142));
// gc.DrawLine(TPoint(25,142), TPoint(176,188));
}
// ---------------------------------------------------------
// CPBItemContainer::OfferKeyEventL(...)
// Notify key events to editors.
// (other items were commented in a header).
// ---------------------------------------------------------
//
TKeyResponse CPBItemContainer::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType)
{
if(EStdKeyHash==aKeyEvent.iScanCode)
{
// CFunZoneAppUi* pApp = (CFunZoneAppUi*)CEikonEnv::Static()->AppUi();
// pApp->GetView()->StatusPane()->MakeVisible(EFalse);
}
if (i_pEditLastName)
{
if (i_pEditLastName->IsFocused())
{
if((aType == EEventKey) && (aKeyEvent.iCode == EKeyDownArrow))
{
i_pEditLastName->SetFocus(EFalse);
i_pEditFirstName->SetFocus(ETrue);
DrawDeferred();
return EKeyWasConsumed;
}
return i_pEditLastName->OfferKeyEventL(aKeyEvent, aType);
}
}
if (i_pEditFirstName)
{
if (i_pEditFirstName->IsFocused())
{
if((aType == EEventKey) && (aKeyEvent.iCode == EKeyDownArrow))
{
i_pEditFirstName->SetFocus(EFalse);
i_pEditHomeTel->SetFocus(ETrue);
DrawNow();
return EKeyWasConsumed;
}
else if((aType == EEventKey) && (aKeyEvent.iCode == EKeyUpArrow))
{
i_pEditLastName->SetFocus(ETrue);
i_pEditFirstName->SetFocus(EFalse);
DrawNow();
return EKeyWasConsumed;
}
return i_pEditFirstName->OfferKeyEventL(aKeyEvent, aType);
}
}
if (i_pEditHomeTel)
{
if (i_pEditHomeTel->IsFocused())
{
if((aType == EEventKey) && (aKeyEvent.iCode == EKeyUpArrow))
{
i_pEditFirstName->SetFocus(ETrue);
i_pEditHomeTel->SetFocus(EFalse);
DrawDeferred();
return EKeyWasConsumed;
}
else if((aType == EEventKey) && (aKeyEvent.iCode == EKeyDownArrow))
{
i_pEditTel->SetFocus(ETrue);
i_pEditHomeTel->SetFocus(EFalse);
DrawDeferred();
return EKeyWasConsumed;
}
return i_pEditHomeTel->OfferKeyEventL(aKeyEvent, aType);
}
}
if (i_pEditTel)
{
if (i_pEditTel->IsFocused())
{
if((aType == EEventKey) && (aKeyEvent.iCode == EKeyUpArrow))
{
i_pEditHomeTel->SetFocus(ETrue);
i_pEditTel->SetFocus(EFalse);
DrawDeferred();
return EKeyWasConsumed;
}
else if((aType == EEventKey) && (aKeyEvent.iCode == EKeyDownArrow))
{
i_pEditEmail->SetFocus(ETrue);
i_pEditTel->SetFocus(EFalse);
DrawDeferred();
return EKeyWasConsumed;
}
return i_pEditTel->OfferKeyEventL(aKeyEvent, aType);
}
}
if (i_pEditEmail)
{
if (i_pEditEmail->IsFocused())
{
if((aType == EEventKey) && (aKeyEvent.iCode == EKeyUpArrow))
{
i_pEditEmail->SetFocus(EFalse);
i_pEditTel->SetFocus(ETrue);
DrawDeferred();
return EKeyWasConsumed;
}
return i_pEditEmail->OfferKeyEventL(aKeyEvent, aType);
}
}
return EKeyWasNotConsumed;
}
// ---------------------------------------------------------
// CPBItemContainer::HandleControlEventL(
// CCoeControl* aControl,TCoeEvent aEventType)
// (other items were commented in a header).
// ---------------------------------------------------------
//
void CPBItemContainer::HandleControlEventL(CCoeControl* /*aControl*/,TCoeEvent /*aEventType*/)
{
}
void CPBItemContainer::GetLastName(TDes &aLastName)
{
i_pEditLastName->GetText(aLastName);
}
void CPBItemContainer::GetFirstName(TDes &aFirstName)
{
i_pEditFirstName->GetText(aFirstName);
}
void CPBItemContainer::GetTel(TDes &aTel)
{
i_pEditTel->GetText(aTel);
}
void CPBItemContainer::GetHomeTel(TDes &aHomeTel)
{
i_pEditHomeTel->GetText(aHomeTel);
}
void CPBItemContainer::GetEmail(TDes &aEmail)
{
i_pEditEmail->GetText(aEmail);
}
void CPBItemContainer::CreateLabel()
{
TBuf<32> Buf;
CEikonEnv::Static()->ReadResource(Buf, R_QTN_MH_ITEM_LABEL_LASTNAME);
i_pLabelLastName = new(ELeave) CEikLabel;
CleanupStack::PushL(i_pLabelLastName);
i_pLabelLastName->SetContainerWindowL(*this);
i_pLabelLastName->SetTextL(Buf);
i_pLabelLastName->SetExtent(TPoint(15,15), i_pLabelLastName->MinimumSize());
Buf.Zero();
CEikonEnv::Static()->ReadResource(Buf, R_QTN_MH_ITEM_LABEL_FIRSTNAME);
i_pLabelFirstName = new(ELeave) CEikLabel;
CleanupStack::PushL(i_pLabelLastName);
i_pLabelFirstName->SetContainerWindowL(*this);
i_pLabelFirstName->SetTextL(Buf);
i_pLabelFirstName->SetExtent(TPoint(15,40), i_pLabelFirstName->MinimumSize());
Buf.Zero();
CEikonEnv::Static()->ReadResource(Buf, R_QTN_MH_ITEM_LABEL_TEL);
i_pLabelTel = new(ELeave) CEikLabel;
CleanupStack::PushL(i_pLabelTel);
i_pLabelTel->SetContainerWindowL(*this);
i_pLabelTel->SetTextL(Buf);
i_pLabelTel->SetExtent(TPoint(15,65), i_pLabelTel->MinimumSize());
Buf.Zero();
CEikonEnv::Static()->ReadResource(Buf, R_QTN_MH_ITEM_LABEL_CELLPHONE);
i_pLabelHomeTel = new(ELeave) CEikLabel;
CleanupStack::PushL(i_pLabelTel);
i_pLabelHomeTel->SetContainerWindowL(*this);
i_pLabelHomeTel->SetTextL(Buf);
i_pLabelHomeTel->SetExtent(TPoint(15,90), i_pLabelHomeTel->MinimumSize());
Buf.Zero();
CEikonEnv::Static()->ReadResource(Buf, R_QTN_MH_ITEM_LABEL_EMAIL);
i_pLabelEmail = new(ELeave) CEikLabel;
CleanupStack::PushL(i_pLabelEmail);
i_pLabelEmail->SetContainerWindowL(*this);
i_pLabelEmail->SetTextL(Buf);
i_pLabelEmail->SetExtent(TPoint(15,115), i_pLabelEmail->MinimumSize());
CleanupStack::Pop(5);
}
void CPBItemContainer::CreateEdit ()
{
//Edit from RSS
TResourceReader reader;
iCoeEnv->CreateResourceReaderLC(reader, R_AKNEXEDITOR_NAME_EDWIN);
i_pEditLastName = new(ELeave) CEikEdwin;
CleanupStack::PushL(i_pEditLastName);
i_pEditLastName->SetContainerWindowL(*this);
i_pEditLastName->ConstructFromResourceL(reader);
//i_pEditLastName->SetAknEditorCurrentInputMode(EAknEditorFlagDefault);//only Input number.
i_pEditLastName->SetExtent(TPoint(55,15), TSize(80,20));
i_pEditLastName->SetTextL(i_pPBInfo->GetLastName());
i_pEditLastName->SetFocus(ETrue);
CleanupStack::Pop();
CleanupStack::PopAndDestroy();
/***************************************************************/
TResourceReader reader1;
iCoeEnv->CreateResourceReaderLC(reader1, R_AKNEXEDITOR_NAME_EDWIN);
i_pEditFirstName = new(ELeave) CEikEdwin;
CleanupStack::PushL(i_pEditFirstName);
i_pEditFirstName->SetContainerWindowL(*this);
i_pEditFirstName->ConstructFromResourceL(reader1);
// i_pEditFirstName->SetAknEditorCurrentInputMode(EAknEditorFlagDefault);//only Input number.
i_pEditFirstName->SetExtent(TPoint(55,40), TSize(80,20));
i_pEditFirstName->SetTextL(i_pPBInfo->GetFirstName());
CleanupStack::Pop();
CleanupStack::PopAndDestroy();
/*************************电话****************************************/
i_pEditHomeTel = new(ELeave) CEikEdwin;
CleanupStack::PushL(i_pEditHomeTel);
i_pEditHomeTel->SetContainerWindowL(*this);
i_pEditHomeTel->SetAknEditorCurrentInputMode(EAknEditorNumericInputMode);
i_pEditHomeTel->ConstructL(EAknEditorFlagDefault, 10, 48, 1);
i_pEditHomeTel->SetExtent(TPoint(55,65), TSize(80,20));
i_pEditHomeTel->SetTextL(i_pPBInfo->GetTelephone());
CleanupStack::Pop();
/********************手机号***********************************************************/
i_pEditTel = new(ELeave) CEikEdwin;
CleanupStack::PushL(i_pEditTel);
i_pEditTel->SetContainerWindowL(*this);
i_pEditTel->SetAknEditorCurrentInputMode(EAknEditorNumericInputMode);
i_pEditTel->ConstructL(EAknEditorFlagDefault, 10, 48, 1);
i_pEditTel->SetExtent(TPoint(55,90), TSize(80,20));
i_pEditTel->SetTextL(i_pPBInfo->GetHomeMobileNumber());
CleanupStack::Pop();
/*************************************************************************************/
TResourceReader reader4;
iCoeEnv->CreateResourceReaderLC(reader4, R_AKNEXEDITOR_NAME_EDWIN);
i_pEditEmail = new(ELeave) CEikEdwin;
CleanupStack::PushL(i_pEditEmail);
i_pEditEmail->SetContainerWindowL(*this);
i_pEditEmail->ConstructFromResourceL(reader4);
// i_pEditEmail->SetAknEditorCurrentInputMode(EAknEditorFlagDefault);//only Input number.
i_pEditEmail->SetExtent(TPoint(55,115), TSize(80,20));
i_pEditEmail->SetTextL(i_pPBInfo->GetEmail());
CleanupStack::Pop();
CleanupStack::PopAndDestroy();
// i_pEditName = new(ELeave) CEikEdwin;
// CleanupStack::PushL(i_pEditName);
// i_pEditName->SetContainerWindowL(*this);
// i_pEditName->ConstructL(EAknEditorTextCase, 10, 10, 1);
// i_pEditName->SetExtent(TPoint(60,20), TSize(80,20));
// i_pEditName->SetTextL(&_L("Name"));
// i_pEditName->SetFocus(ETrue);
// CleanupStack::Pop();
}
void CPBItemContainer::SetEditReadOnly()
{
i_pEditLastName->SetReadOnly(ETrue);
i_pEditFirstName->SetReadOnly(ETrue);
i_pEditHomeTel->SetReadOnly(ETrue);
i_pEditTel->SetReadOnly(ETrue);
i_pEditEmail->SetReadOnly(ETrue);
}
void CPBItemContainer::MakeVisible(TBool aVisible)
{
// DoMakeVisible(aVisible);
}
// End of File
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -