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

📄 noteeditcontainer.cpp

📁 symbian 2rd 备忘录
💻 CPP
字号:

#include <gulicon.h>
#include <aknutils.h>    // definition of AKN_LAF_COLOR()
#include <avkon.hrh>
#include <akntitle.h>
#include <aknnotewrappers.h>

#include <eiklabel.h>
#include <eikedwin.h>
#include <barsread.h>

#include "NoteEditContainer.h"
#include "Assistant.hrh"
#include "Assistant.rsg"

//////////////////////////////////////////////////////////////////////////
CNoteEditContainer::CNoteEditContainer()
{
	m_pLabelTitle = NULL;
	m_pLabelContent = NULL;
	m_pEdWinTitle = NULL;
	m_pEdWinContent = NULL;
}

// EPOC default constructor can leave.
void CNoteEditContainer::ConstructL(const TRect& aRect)
{
    CreateWindowL();

	TBuf<32> sTmplabel;
	//create my label 1
	m_pLabelTitle = new( ELeave ) CEikLabel;
	m_pLabelTitle->SetContainerWindowL( *this );
	m_pLabelTitle->SetExtent(TPoint(10,10), TSize(35,20));
	CEikonEnv::Static()->ReadResource(sTmplabel, R_QTN_ASSISTANT_TITLE);
	m_pLabelTitle->SetTextL(sTmplabel);
	
	//create edit 1
	m_pEdWinTitle = new (ELeave) CEikEdwin;
	m_pEdWinTitle->SetContainerWindowL(*this);
	m_pEdWinTitle->ConstructL(EAknEditorFlagDefault, 10, 10, 1);
	m_pEdWinTitle->SetExtent(TPoint(48, 10), TSize(120, 20));
	
	m_pEdWinTitle->SetFocus(ETrue);
	
	//create my label 2
	m_pLabelContent = new( ELeave ) CEikLabel;
	m_pLabelContent->SetContainerWindowL( *this );
	m_pLabelContent->SetExtent(TPoint(10,35), TSize(35,20));
	CEikonEnv::Static()->ReadResource(sTmplabel, R_QTN_ASSISTANT_CONTENT);
	m_pLabelContent->SetTextL(sTmplabel);
	
	//create edit 2
	m_pEdWinContent = new (ELeave) CEikEdwin;
	m_pEdWinContent->SetContainerWindowL(*this);
	m_pEdWinContent->ConstructL(EAknEditorFlagDefault, 10, 500, 1);
	m_pEdWinContent->SetExtent(TPoint(48,41), TSize(121,90));
	m_pEdWinContent->SetAvkonWrap(EFalse);


    SetRect( aRect );
    ActivateL();
}

// destructor
CNoteEditContainer::~CNoteEditContainer()
{
	MEMORY_FREE(m_pLabelTitle);
	MEMORY_FREE(m_pLabelContent);
	MEMORY_FREE(m_pEdWinTitle);
	MEMORY_FREE(m_pEdWinContent);
}

void CNoteEditContainer::SizeChanged()
{
}

// ---------------------------------------------------------
// CEditContainer::CountComponentControls() const
// return the number of controls
// ---------------------------------------------------------
//
TInt CNoteEditContainer::CountComponentControls() const
{
	// return number of controls inside this container
	return 4; 
}

// ---------------------------------------------------------
// CEditContainer::ComponentControl(TInt aIndex) const
// return the pointer to specified control.
// ---------------------------------------------------------
//
CCoeControl* CNoteEditContainer::ComponentControl( TInt aIndex ) const
{
	
	switch(aIndex)
	{
	case 0:
		return m_pLabelContent;
		break;
	case 1:
		return m_pLabelTitle;
		break;
	case 2:
		return m_pEdWinTitle;
		break;
	case 3:
		return m_pEdWinContent;
		break;
	default:
		break;
	}
	return NULL;
}

// ---------------------------------------------------------
// CEditContainer::Draw(const TRect& aRect) const
// handle the message when client region must be redrawn.
// ---------------------------------------------------------
//
void CNoteEditContainer::Draw( const TRect& aRect ) const
{
	CWindowGc& gc = SystemGc();
	gc.SetPenStyle(CGraphicsContext::ENullPen);
    gc.SetBrushColor(KRgbWhite);
    gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
    gc.DrawRect(aRect);
	gc.SetPenStyle(CGraphicsContext::ESolidPen);
	gc.SetPenColor(KRgbGray);
// 	gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
// 	gc.SetBrushColor(KRgbWhite);
// 	gc.DrawRect(Rect());

//	gc.SetPenStyle(CGraphicsContext::ESolidPen);
//	gc.SetPenColor(KRgbBlack);
	TRect rect1(m_pEdWinTitle->Rect());
	rect1.Shrink(-1, -1);
	gc.DrawRect(rect1);
	
	//画一长方形
// 	gc.SetPenStyle(CGraphicsContext::ESolidPen);
// 	gc.SetPenColor(KRgbBlack);
	TRect rect2(m_pEdWinContent->Rect());
	rect2.Shrink(-1, -1);
	gc.DrawRect(rect2);
}

// ---------------------------------------------------------
// CAknExGridContainer::OfferKeyEventL(
//           const TKeyEvent& aKeyEvent, TEventCode aType )
// Handles the key events.
// ---------------------------------------------------------
//
TKeyResponse CNoteEditContainer::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType )
{
	if (m_pEdWinTitle)
	{
		if (m_pEdWinTitle->IsFocused())
		{
			if((aType == EEventKey) && (aKeyEvent.iCode == EKeyDownArrow))
			{
				m_pEdWinTitle->SetFocus(EFalse);
				m_pEdWinContent->SetFocus(ETrue);
				
				return EKeyWasConsumed;
			}
			return m_pEdWinTitle->OfferKeyEventL(aKeyEvent, aType);
		}
	}
	if (m_pEdWinContent)
	{
		if (m_pEdWinContent->IsFocused())
		{
			if((aType == EEventKey) && (aKeyEvent.iCode == EKeyUpArrow))
			{
				m_pEdWinContent->SetFocus(EFalse);
				m_pEdWinTitle->SetFocus(ETrue);
				
				return EKeyWasConsumed;		
			}
			return m_pEdWinContent->OfferKeyEventL(aKeyEvent, aType);
		}
	}	
	return EKeyWasConsumed;
}



void CNoteEditContainer::GetData(TDes& aTitle, TDes& aContent)
{
	m_pEdWinTitle->GetText(aTitle);
	m_pEdWinContent->GetText(aContent);

}
void CNoteEditContainer::SetData(TInt aStatus, TDesC& aTitle, TDesC& aContent)
{
	m_pEdWinTitle->SetTextL(&aTitle);
	m_pEdWinContent->SetTextL(&aContent);
	if(aStatus == EAssistantStatusOpen)
	{
		m_pEdWinTitle->SetFocus(ETrue);
		m_pEdWinTitle->SetReadOnly(ETrue);
		m_pEdWinTitle->SetBackgroundColorL(KRgbGray);
		m_pEdWinTitle->SetSelectionL(0,0);
		m_pEdWinTitle->SetCursorPosL(0,ETrue);
		m_pEdWinContent->SetFocus(EFalse);
		m_pEdWinContent->SetReadOnly(ETrue);
		m_pEdWinContent->SetBackgroundColorL(KRgbGray);
	}
}

⌨️ 快捷键说明

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