📄 aknexsettinglistcontainer.cpp
字号:
/* Copyright (c) 2004, Nokia. All rights reserved */
// INCLUDE FILES
#include <barsread.h>
#include <eiklabel.h>
#include <avkon.hrh>
#include <aknlists.h>
#include <aknexsettinglist.rsg>
#include <aknquerydialog.h>
#include "aknexsettinglist.hrh"
#include "aknexsettinglistview.h"
#include "aknexsettinglistcontainer.h"
// ========================= MEMBER FUNCTIONS ==================================
// -----------------------------------------------------------------------------
// CAknExSettingListContainer::CAknExSettingListContainer()
// C++ default constructor can NOT contain any code, that might leave.
// -----------------------------------------------------------------------------
//
CAknExSettingListContainer::CAknExSettingListContainer(
CAknExSettingListView* aView ):
iLabel( NULL ),
iView( aView ),
iCurrentOutlineId( EAknExSettingListCmdEmptyOutline )
{
// No implementation required
}
// -----------------------------------------------------------------------------
// CAknExSettingListContainer::ConstructL()
// Symbian 2nd phase constructor can leave.
// -----------------------------------------------------------------------------
//
void CAknExSettingListContainer::ConstructL( const TRect& aRect )
{
// Creates window
CreateWindowL();
// Sets rectangle of frame
SetRect( aRect );
// Activates the window. (Ready to draw)
ActivateL();
}
// -----------------------------------------------------------------------------
// CAknExSettingListContainer::~CAknExSettingListContainer()
// Destructor.
// -----------------------------------------------------------------------------
//
CAknExSettingListContainer::~CAknExSettingListContainer()
{
// Deletes the label object.
delete iLabel;
}
// ----------------------------------------------------------------------------
// CAknExSettingListContainer::SetCurrentOutlineId()
// Sets ID of current outline.
// ----------------------------------------------------------------------------
//
void CAknExSettingListContainer::SetCurrentOutlineId( const TInt aOutlineId )
{
// Sets ID of current outline.
iCurrentOutlineId = aOutlineId;
}
// ----------------------------------------------------------------------------
// void CAknExSettingListContainer::DisplayLabelL()
// Displays the label by ID of resource.
// ----------------------------------------------------------------------------
//
void CAknExSettingListContainer::DisplayLabelL( const TInt aResourceId )
{
// Creates the label object.
if ( !iLabel )
{
iLabel = new( ELeave ) CEikLabel;
iLabel->SetContainerWindowL( *this );
iLabel->SetFont( LatinBold19() );
iLabel->SetAlignment( EHCenterVCenter );
}
TBuf<KAknExSettingListTextBufLength> labelText( NULL );
iCoeEnv->ReadResource( labelText, aResourceId );
iLabel->SetTextL( labelText );
SizeChanged();
DrawNow();
}
// ----------------------------------------------------------------------------
// CAknExSettingListContainer::OfferKeyEventL()
// Handles the key events.
// ----------------------------------------------------------------------------
//
TKeyResponse CAknExSettingListContainer::OfferKeyEventL( const TKeyEvent&
aKeyEvent,
TEventCode aType )
{
// Is not key event?
if ( aType != EEventKey )
{
return EKeyWasNotConsumed;
}
// The code of key event is
switch ( aKeyEvent.iCode )
{
case EKeySpace: // Space key.
case EKeyRightArrow:
// Requires to display next outline screen.
iView->SetCurrentOutlineId( iCurrentOutlineId );
iView->DisplayNextOutlineL();
break;
case EKeyLeftArrow:
// Display the previous outline.
iView->SetCurrentOutlineId( iCurrentOutlineId );
iView->DisplayPreviousOutlineL();
default:
return EKeyWasNotConsumed;
}
return EKeyWasConsumed;
}
// -----------------------------------------------------------------------------
// CAknExSettingListContainer::SizeChanged()
// Called by framework when the view size is changed.
// -----------------------------------------------------------------------------
//
void CAknExSettingListContainer::SizeChanged()
{
// Sets rectangle of label.
if ( iLabel )
{
iLabel->SetRect( Rect() );
}
}
// -----------------------------------------------------------------------------
// CAknExSettingListContainer::CountComponentControls()
// Returns number of component.
// -----------------------------------------------------------------------------
//
TInt CAknExSettingListContainer::CountComponentControls() const
{
TInt count( KAknExSettingListCountInitial );
if ( iLabel )
{
count++;
}
// Returns number of component.
return count;
}
// -----------------------------------------------------------------------------
// CAknExSettingListContainer::ComponentControl()
// Returns pointer to particular component.
// -----------------------------------------------------------------------------
//
CCoeControl* CAknExSettingListContainer::ComponentControl( TInt aIndex ) const
{
// Component is ...
switch ( aIndex )
{
case EAknExSettingListComponentLabel:
if ( iLabel )
{
// Returns the pointer to label object.
return iLabel;
}
default:
return NULL; // Exception: Returns NULL value.
}
}
// -----------------------------------------------------------------------------
// CAknExSettingListContainer::Draw() const
// Clears the window's rectangle.
// -----------------------------------------------------------------------------
//
void CAknExSettingListContainer::Draw( const TRect& aRect ) const
{
// (Re)draw the rectangle of frame.
CWindowGc& gc = SystemGc();
gc.SetPenStyle( CGraphicsContext::ENullPen );
gc.SetBrushColor( KRgbGray );
gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
gc.DrawRect( aRect );
}
// End of File
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -