📄 aknexmenuokcontainer.cpp
字号:
/* Copyright (c) 2005, Nokia. All rights reserved */
// INCLUDE FILES
#include <barsread.h>
#include <eikmenub.h>
#include <akndef.h>
#include <aknutils.h>
#include <AknExMenu.rsg>
#include "AknExMenuOkContainer.h"
#include "AknExMenuOkView.h"
// ========================= MEMBER FUNCTIONS ==================================
// -----------------------------------------------------------------------------
// CAknExMenuOkContainer::ConstructL()
// Symbian 2nd phase constructor can leave.
// -----------------------------------------------------------------------------
//
void CAknExMenuOkContainer::ConstructL( const TRect& aRect,
CAknExMenuOkView* aParent )
{
CreateWindowL();
iParent = aParent;
// Interprets resource data read from a resource file.
TResourceReader reader;
iUpperText = new( ELeave ) CEikEdwin;
iUpperText->SetContainerWindowL( *this );
// Load RSS resource into TResourceReader Object.
iCoeEnv->CreateResourceReaderLC( reader, R_AKNEXMENU_TEXT_VIEW );
iUpperText->ConstructFromResourceL( reader );
// Pop and Destroy TResourceReader from CleanupStack.
CleanupStack::PopAndDestroy();
iUpperText->SetTextL( &( aParent->iUpperMsg ) );
iLowerText = new( ELeave ) CEikEdwin;
iLowerText->SetContainerWindowL( *this );
// Load RSS resource into TResourceReader Object.
iCoeEnv->CreateResourceReaderLC( reader, R_AKNEXMENU_EDITABLE_VIEW );
iLowerText->ConstructFromResourceL( reader );
// Pop and Destroy TResourceReader from CleanupStack.
CleanupStack::PopAndDestroy();
iLowerText->SetTextL( & ( aParent->iLowerMsg ) );
SetRect( aRect );
ActivateL();
iLowerText->SetFocus( ETrue );
}
// -----------------------------------------------------------------------------
// CAknExMenuOkContainer::~CAknExMenuOkContainer()
// Destructor.
// -----------------------------------------------------------------------------
//
CAknExMenuOkContainer::~CAknExMenuOkContainer()
{
delete iUpperText;
delete iLowerText;
}
// -----------------------------------------------------------------------------
// CAknExMenuOkContainer::SizeChanged()
// Called by framework when the view size is changed
// -----------------------------------------------------------------------------
//
void CAknExMenuOkContainer::SizeChanged()
{
// TODO: Add here control resize code etc.
TRect rect = Rect();
TSize size;
size.iWidth = rect.iBr.iX - rect.iTl.iX;
size.iHeight = ( rect.iBr.iY - rect.iTl.iY ) / 2;
iUpperText->SetExtent( rect.iTl, size );
size.iHeight-=1;
iLowerText->SetExtent( TPoint( rect.iTl.iX, ( rect.iBr.iY/2 ) +1 ), size );
}
// -----------------------------------------------------------------------------
// CAknExMenuOkContainer::CountComponentControls() const
// return number of controls inside this container.
// -----------------------------------------------------------------------------
//
TInt CAknExMenuOkContainer::CountComponentControls() const
{
return KNumberOfComponentOkView;
}
// -----------------------------------------------------------------------------
// CAknExMenuOkContainer::ComponentControl() const
// returns pointer of controls inside this container
// -----------------------------------------------------------------------------
//
CCoeControl* CAknExMenuOkContainer::ComponentControl( TInt aIndex ) const
{
switch ( aIndex )
{
case EUpperTextOkView:
return iUpperText;
case ELowerTextOkView:
return iLowerText;
default:
return NULL;
}
}
// -----------------------------------------------------------------------------
// CAknExMenuOkContainer::OfferKeyEventL()
// Notify key events to editors.
// -----------------------------------------------------------------------------
//
TKeyResponse CAknExMenuOkContainer::OfferKeyEventL( const TKeyEvent& aKeyEvent,
TEventCode aType )
{
TKeyResponse keyResponce( EKeyWasNotConsumed );
keyResponce = iLowerText->OfferKeyEventL( aKeyEvent, aType );
if ( keyResponce == EKeyWasNotConsumed )
{
if ( ( aType == EEventKey ) && ( aKeyEvent.iCode == EKeyOK ) )
{
iParent->MenuBar()->
SetMenuTitleResourceId( R_AKNEXMENU_MENUBAR_OK_TEST );
if ( iParent->MenuBar() )
{
iParent->MenuBar()->StopDisplayingMenuBar();
}
if (iParent->MenuBar())
{
iParent->MenuBar()->TryDisplayMenuBarL();
}
}
iParent->MenuBar()->
SetMenuTitleResourceId( R_AKNEXMENU_MENUBAR_OK_MENU );
return EKeyWasConsumed;
}
return keyResponce;
}
// -----------------------------------------------------------------------------
// CAknExMenuOkContainer::HandleControlEventL()
// Handles an event of type aEventType reported
// by the control aControl to this observer.
// -----------------------------------------------------------------------------
//
void CAknExMenuOkContainer::HandleControlEventL( CCoeControl* /*aControl*/,
TCoeEvent /*aEventType*/ )
{
// TODO: Add your control event handler code here
}
// -----------------------------------------------------------------------------
// CAknExMenuContainer::Draw() const
// Draws the display
// -----------------------------------------------------------------------------
//
void CAknExMenuOkContainer::Draw( const TRect& aRect ) const
{
TRgb MyRgb;
MyRgb = KAknExMenuWhite;
CWindowGc& gc = SystemGc();
gc.SetPenStyle( CGraphicsContext::ENullPen );
gc.SetBrushColor( MyRgb );
gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
gc.DrawRect( aRect );
}
// ---------------------------------------------------------
// CAknExMenuOkContainer::HandleResourceChange()
// Called by framework when layout is changed.
// ---------------------------------------------------------
//
void CAknExMenuOkContainer::HandleResourceChange(TInt aType)
{
CCoeControl::HandleResourceChange(aType);
// ADDED FOR SCALABLE UI SUPPORT
// *****************************
if ( aType==KEikDynamicLayoutVariantSwitch )
{
TRect rect;
AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane, rect);
SetRect(rect);
}
}
// End of File
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -