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

📄 aknexlistcolumncontainer.cpp

📁 Symbian手机编程
💻 CPP
📖 第 1 页 / 共 3 页
字号:
                break;
            case EAknExListCmdOutline15:
            case EAknExListCmdOutline52:
                aIcons->AppendL( iEikonEnv->CreateIconL( KAknExListMbmFileName,
                                                         EMbmAknexlistMarked_add,
                                                         EMbmAknexlistMarked_add_m ) );
                aIcons->AppendL(
                    iEikonEnv->CreateIconL( KAknExListMbmFileName,
                                            EMbmAknexlistGolgo2,
                                            EMbmAknexlistGolgo2m ) );
                break;
            case EAknExListCmdOutline44:
                aIcons->AppendL( iEikonEnv->CreateIconL( KAknExListMbmFileName,
                                                         EMbmAknexlistMarked_add,
                                                         EMbmAknexlistMarked_add_m ) );
                aIcons->AppendL(
                    iEikonEnv->CreateIconL( KAknExListMbmFileName,
                                            EMbmAknexlistGolgo4,
                                            EMbmAknexlistGolgo4m ) );
                aIcons->AppendL(
                    iEikonEnv->CreateIconL( KAknExListMbmFileName,
                                            EMbmAknexlistGolgo5,
                                            EMbmAknexlistGolgo5m ) );
                aIcons->AppendL(
                    iEikonEnv->CreateIconL( KAknExListMbmFileName,
                                            EMbmAknexlistGolgo6,
                                            EMbmAknexlistGolgo6m ) );
                break;
            case EAknExListCmdOutline43:
                aIcons->AppendL( iEikonEnv->CreateIconL( KAknExListMbmFileName,
                                                         EMbmAknexlistMarked_add,
                                                         EMbmAknexlistMarked_add_m ) );
                aIcons->AppendL(
                    iEikonEnv->CreateIconL( KAknExListMbmFileName,
                                            EMbmAknexlistGolgo3,
                                            EMbmAknexlistGolgo3m ) );
                aIcons->AppendL(
                    iEikonEnv->CreateIconL( KAknExListMbmFileName,
                                            EMbmAknexlistAthene,
                                            EMbmAknexlistAthenem ) );
                break;
            case EAknExListCmdOutline31:
                // Appends icon.
                aIcons->AppendL( iEikonEnv->CreateIconL( KAknExListMbmFileName,
                                                 EMbmAknexlistCheck,
                                                 EMbmAknexlistCheckm ) );
                // Appends icon.
                aIcons->AppendL( iEikonEnv->CreateIconL( KAknExListMbmFileName,
                                                 EMbmAknexlistNon_check,
                                                 EMbmAknexlistNon_checkm ) );
                break;
            default:
                break;
            }
        }
    }

// ----------------------------------------------------------------------------
// void CAknExListColumnContainer::SetCountAndAddItemL( const TKeyEvent& )
// Sets count of added list items and calls AddItemL().
// ----------------------------------------------------------------------------
//
void CAknExListColumnContainer::SetCountAndAddItemL(
    const TKeyEvent& aKeyEvent )
    {
    if ( iListBox )
        {
        TInt addCount( KAknExListAddInitCount );

        // Sets number(addCount) of adding list items
        switch ( aKeyEvent.iCode )
            {
            case AKNEXLIST_ADDINGTYPE1_KEY: // 'a' key.
                addCount = KAknExListNumberOfItemType1;
                break;
            case AKNEXLIST_ADDINGTYPE2_KEY: // 'z' key.
                addCount = KAknExListNumberOfItemType2;
                break;
            case AKNEXLIST_ADDINGTYPE3_KEY: // 'x' key.
                addCount = KAknExListNumberOfItemType3;
                break;
            case AKNEXLIST_ADDINGTYPE4_KEY: // 'c' key.
                addCount = KAknExListNumberOfItemType4;
                break;
            case AKNEXLIST_ADDINGTYPE5_KEY: // 'v' key.
                addCount = KAknExListNumberOfItemType5;
                break;
            default:
                break;
            }

        if ( addCount )
            {
            // Adds list items.
            CTextListBoxModel* model = iListBox->Model();
            AddItemL( iListBox, model, addCount, R_AKNEXLIST_ADD_ITEM_SINGLE );

            // Displays information for total number of list items.
            CountMessage( model );
            }
        }
    }

// ----------------------------------------------------------------------------
// void CAknExListColumnContainer::SetCountAndRemoveItemL( const TKeyEvent& )
// Sets count of removed list items and calls RemoveItemL().
// ----------------------------------------------------------------------------
//
void CAknExListColumnContainer::SetCountAndRemoveItemL(
    const TKeyEvent& aKeyEvent )
    {
    if ( iListBox )
        {
        TInt removeCount( KAknExListRemoveInitCount );

        // Sets number(removeCount) of removing list items.
        switch ( aKeyEvent.iCode )
            {
            case AKNEXLIST_REMOVINGTYPE1_KEY: // 'd' key.
                removeCount = KAknExListNumberOfItemType1;
                break;
            case AKNEXLIST_REMOVINGTYPE2_KEY: // 'p' key.
                removeCount = KAknExListNumberOfItemType2;
                break;
            case AKNEXLIST_REMOVINGTYPE3_KEY: // 'o' key.
                removeCount = KAknExListNumberOfItemType3;
                break;
            case AKNEXLIST_REMOVINGTYPE4_KEY: // 'i' key.
                removeCount = KAknExListNumberOfItemType4;
                break;
            case AKNEXLIST_REMOVINGTYPE5_KEY: // 'u' key.
                removeCount = KAknExListNumberOfItemType5;
                break;
            default:
                break;
            }

        if ( removeCount )
            {
            // Removes list items.
            CTextListBoxModel* model = iListBox->Model();
            RemoveItemL( iListBox, model, removeCount );

            // Displays information for total number of list items.
            CountMessage( model );
            }
        }
    }

// ----------------------------------------------------------------------------
// void CAknExListColumnContainer::AdditionalIconPriorityL()
// Confirms priority of additional icons.
// ----------------------------------------------------------------------------
//
void CAknExListColumnContainer::AdditionalIconPriorityL()
    {
    if ( iListBox )
        {
        // Gets current item.
        TInt currentItem( iListBox->CurrentItemIndex() );
        MDesCArray* itemList = iListBox->Model()->ItemTextArray();
        CDesCArray* itemArray = STATIC_CAST( CDesCArray* ,itemList );
        TPtrC item( ( *itemArray )[currentItem] );

        // Gets position and count of tab.
        TBuf<KAknExListTabBufLength> tab( 0 );
        iCoeEnv->ReadResource( tab, R_AKNEXLIST_TAB );
        TInt oldPosition( item.Find( tab ) );
        TInt count( KAknExListInitTabCount );
        TInt position( KAknExListInitPosition );

        while ( oldPosition != KErrNotFound )
            {
            count++;
            position += oldPosition;
            oldPosition = item.Mid( ++position ).Find( tab );
            }

        // Sets number of additional icons.
        TInt iconNumber( KErrNotFound );

        switch ( count )
            {
            case EKAknExListFirstPriority:
                iconNumber = EKAknExListFirstIconIndex;
                break;
            case EKAknExListSecondPriority:
                iconNumber = EKAknExListSecondIconIndex;
                break;
            case EKAknExListThirdPriority:
                iconNumber = EKAknExListThirdIconIndex;
                break;
            default:
                break;
            }

        if ( iconNumber != KErrNotFound )
            {
            // Update new item.
            TBuf<KAknExListItemBufLength> newItem( 0 );
            newItem.Copy( item );
            newItem.Append( tab );
            newItem.AppendNum( iconNumber );
            itemArray->Delete( currentItem );
            itemArray->InsertL( currentItem, newItem );
            iListBox->View()->DrawItem( currentItem );
            }

        if ( count > EKAknExListSecondPriority )
            {
            InfoMessage( R_AKNEXLIST_MSG ); // Displays information message.
            }
        }
    }


// ----------------------------------------------------------------------------
// void CAknExListColumnContainer::SizeChangedForFindBox()
// Called by framework when the view size is changed for creating listbox with
// findbox.
// ----------------------------------------------------------------------------
//
void CAknExListColumnContainer::SizeChangedForFindBox()
    {
    if ( iListBox && iFindBox )
        {
        // Initialize of resource ID for layout of findbox(These initial
        // values are layout for fixed findbox).
        TInt findWindowResourceId( R_AVKON_FIND_PANE );
        TInt listAreaResourceId( R_AVKON_LIST_GEN_PANE_X );
        TInt findWindowParentId( R_AVKON_MAIN_PANE_PARENT_NONE );
        TBool flagsOfPopup( EFalse ); // Flag for find popup.

        switch ( iOutlineId ) // Outline ID is...
            {
            case EAknExListCmdOutline41T2: // Layout for find popup.
                findWindowResourceId = R_AVKON_POPUP_FIND_WINDOW;
                listAreaResourceId = R_AVKON_LIST_GEN_PANE;
                findWindowParentId = R_AVKON_MAIN_PANE_WITH_STATUS_PANE;
                flagsOfPopup = ETrue;
                break;
            default:
                break;
            }

        // Calls HandleFindSizeChanged after creates findbox.
        AknFind::HandleFindSizeChanged(
            this, iListBox, iFindBox, flagsOfPopup, findWindowResourceId,
            listAreaResourceId, R_AVKON_LIST_GEN_PANE_WITH_FIND_POPUP,
            findWindowParentId );
        }
    }

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

    if ( iListBox )
        {
        if ( iFindBox )
            {
            SizeChangedForFindBox(); // Sets rectangle of listbox with findbox.
            }
        else
            {
            iListBox->SetRect( Rect() ); // Sets rectangle of listbox.
            }
        }
    }

// ----------------------------------------------------------------------------
// TInt CAknExListColumnContainer::CountComponentControls() const
// Returns number of components.
// ----------------------------------------------------------------------------
//
TInt CAknExListColumnContainer::CountComponentControls() const
    {
    TInt count( KAknExListInitCount );

    if ( iLabel )
        {
        count++;
        }

    if ( iListBox )
        {
        count++;
        }

    if ( iFindBox )
        {
        count++;
        }

    return count; // Returns number of controls inside this container.
    }

// ----------------------------------------------------------------------------
// CCoeControl* CAknExListColumnContainer::ComponentControl( TInt ) const
// Returns pointer to particular component.
// ----------------------------------------------------------------------------
//
CCoeControl* CAknExListColumnContainer::ComponentControl( TInt aIndex ) const
    {
    switch ( aIndex )
        {
        case EAknExListDefaultComponent:
            if ( iLabel )
                {
                return iLabel; // Returns the pointer to label object.
                }
            else if ( iListBox )
                {
                return iListBox; // Returns the pointer to listbox object.
                }
            return iFindBox; // Returns the pointer to findbox object.
        case EAknExListComponent1:
            if ( iFindBox )
                {
                return iFindBox; // Returns the pointer to findbox object.
                }
            return iListBox; // Returns the pointer to listbox object.
        case EAknExListComponent2:
            return iListBox; // Returns the pointer to listbox object.
        default:
            return NULL; // Exception : Returns NULL.
        }
    }

// End of File

⌨️ 快捷键说明

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