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

📄 aknexsettinglistlistbox.cpp

📁 symbian下的settinglist 适合初学者
💻 CPP
字号:
/* Copyright (c) 2004, Nokia. All rights reserved */


// INCLUDE FILES
#include "AknExSettingListListbox.h"
#include "AknExSettingListItemData.h"
#include "AknExSettingList.hrh"
#include "AknExSettingListView.h"



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

// ----------------------------------------------------------------------------
// CAknExSettingListListbox::CreateSettingItemL()
// Updates descripter array for list box
// ----------------------------------------------------------------------------
//
CAknSettingItem* CAknExSettingListListbox::CreateSettingItemL( TInt aIdentifier  )
    {

    CAknSettingItem* settingItem = NULL;

    switch ( aIdentifier )
    {
    case EAknExSettingText:
        settingItem = new ( ELeave ) CAknTextSettingItem( aIdentifier, 
                                                          iData->iTextBuf );
        break;

    case EAknExSettingVolume:
        settingItem = new ( ELeave ) CAknVolumeSettingItem( aIdentifier,
                                                            iData->iVolume );
        break;

    case EAknExSettingEnumText:
        settingItem = new ( ELeave ) CAknEnumeratedTextPopupSettingItem( 
                                             aIdentifier,iData->iLanguageCode );
        break;

    case EAknExSettingSlider:
        settingItem = new ( ELeave ) CAknSliderSettingItem(
                                             aIdentifier, iData->iSliderValue );
        break;

    case EAknExSettingDate:
        settingItem = new ( ELeave ) CAknTimeOrDateSettingItem( 
                  aIdentifier, CAknTimeOrDateSettingItem::EDate, iData->iDate );
        break;

    case EAknExSettingTime:
        settingItem = new ( ELeave ) CAknTimeOrDateSettingItem(
                  aIdentifier, CAknTimeOrDateSettingItem::ETime, iData->iTime );
        break;

    case EAknExSettingBinary:
        settingItem = new ( ELeave ) CAknBinaryPopupSettingItem( 
                                                  aIdentifier, iData->iBinary );
        break;

    case EAknExSettingPassAlph:
        settingItem = new ( ELeave ) CAknPasswordSettingItem( 
                     aIdentifier, CAknPasswordSettingItem::EAlpha, iData->iPw );
        break;

    case EAknExSettingPassNumber:
        settingItem = new ( ELeave ) CAknPasswordSettingItem(
                  aIdentifier, CAknPasswordSettingItem::ENumeric, iData->iPin );
        break;

    case EAknExSettingIpAddress:
        settingItem = new ( ELeave ) CAknIpFieldSettingItem(
                                               aIdentifier, iData->iIpAddress );
        break;

    default:
        break;
        }
    return settingItem;
    }

// ------------------------------------------------------------------------------
// CAknExSettingListListbox::SetData()
// Set ListItem data
// ------------------------------------------------------------------------------
//
void CAknExSettingListListbox::SetData( CAknExSettingListItemData* aData )
    {
    iData = aData;
    }

// ------------------------------------------------------------------------------
// CAknExSettingListListbox::SetView()
// Set ListItem view
// ------------------------------------------------------------------------------
//
void CAknExSettingListListbox::SetView( CAknExSettingListView* aView )
    {
    iView = aView;
    }

// ------------------------------------------------------------------------------
// TKeyResponse CAknExSettingListListbox::OfferKeyEventL()
// Handles the key events.
// ------------------------------------------------------------------------------
//
TKeyResponse CAknExSettingListListbox::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:

            // Display next outline screen.
            iView->SetCurrentOutlineId ( iView->CurrentOutlineId() ) ;
            iView->DisplayNextOutlineL();
            break;

        case EKeyLeftArrow:
            // Display previous outline screen.
            iView->SetCurrentOutlineId ( iView->CurrentOutlineId() ) ;
            iView->DisplayPreviousOutlineL();
            break;

        default:
            CAknSettingItemList::OfferKeyEventL( aKeyEvent, aType );
            break;
        }
    return EKeyWasConsumed;
    }

// -----------------------------------------------------------------------------
// CAknExSettingListListbox::SizeChanged()
// Called by framework when the view size is changed.
// -----------------------------------------------------------------------------
//
void CAknExSettingListListbox::SizeChanged()
    {
    if (ListBox() ) 
        {
        ListBox()->SetRect(Rect() );
        }
    }

// End of File

⌨️ 快捷键说明

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