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

📄 ccontappui.cpp

📁 实现好友名单。可以今天添加、删除以及增加等操作
💻 CPP
字号:
/* Copyright (c) 2003, Nokia. All rights reserved */

// INCLUDE FILES

#include <contacts.rsg>
#include <avkon.hrh>
#include <eikmenup.h>
#include <eikmenub.h>
#include <akntitle.h>
#include <stringloader.h>

#include "CContAppUi.h"
#include "CContContainer.h"
#include "contacts.hrh"


// ================= MEMBER FUNCTIONS =======================
//
// ----------------------------------------------------------
// CContAppUi::ConstructL()
// Two phased constructor
// ----------------------------------------------------------
//
void CContAppUi::ConstructL()
    {
    BaseConstructL();

    iAppContainer = new (ELeave) CContContainer;
    iAppContainer->SetMopParent( this );
    iAppContainer->ConstructL( ClientRect() );
    AddToStackL( iAppContainer );
    }

// ----------------------------------------------------
// CContAppUi::~CContAppUi()
// Destructor
// Frees reserved resources
// ----------------------------------------------------
//
CContAppUi::~CContAppUi()
    {
    if ( iAppContainer )
        {
        RemoveFromStack( iAppContainer );
        delete iAppContainer;
        }

   }

// ------------------------------------------------------------------------------
// CContAppUi::::DynInitMenuPaneL()
// This function is called by the EIKON framework just before it displays
// a menu pane. Its default implementation is empty, and by overriding it,
// the application can set the state of menu items dynamically according
// to the state of application data.
// ------------------------------------------------------------------------------
//
void CContAppUi::DynInitMenuPaneL(
    TInt /*aResourceId*/, CEikMenuPane* /*aMenuPane*/)
    {

    }

// ----------------------------------------------------
// CContAppUi::HandleKeyEventL()
// Handles key events
// ----------------------------------------------------
//
TKeyResponse CContAppUi::HandleKeyEventL(
    const TKeyEvent& /*aKeyEvent*/, TEventCode /*aType*/)
    {
    return EKeyWasNotConsumed;
    }

// ----------------------------------------------------
// CContAppUi::HandleCommandL()
// Handles user commands.
// ----------------------------------------------------
//
void CContAppUi::HandleCommandL( TInt aCommand )
    {
    switch ( aCommand )
        {
        // flowtrough
        case EAknSoftkeyExit:
        case EEikCmdExit:
            Exit();
            break;
        case EContactsCreateDB:
            iAppContainer->CreateContactDatabaseQueryL();
            if ( iAppContainer->IfContactDbSelected() )
                {
                UpdateTitleL( R_CONTACTS_CREATED_DB );
                }
            else
                {
                UpdateTitleL( R_CONTACTS_NO_DB );
                }

            break;
		case EContactsDeleteDB:
            iAppContainer->DeleteContactDatabaseQueryL();
            if ( !iAppContainer->IfContactDbSelected() )
                {
                UpdateTitleL( R_CONTACTS_NO_DB );
                }

            break;
		case EContactsSelectDB:
            iAppContainer->OpenDataBaseQueryL();
            if ( iAppContainer->IfContactDbSelected() )
                {
                UpdateTitleL( R_CONTACTS_CREATED_DB );
                }
            else
                {
                UpdateTitleL( R_CONTACTS_NO_DB );
                }

            break;
		case EContactsDefaultDB:
            iAppContainer->OpenDefaultDatabaseL();
            if ( iAppContainer->IfContactDbSelected() )
                {
                UpdateTitleL( R_CONTACTS_DEFAULT_DB );
                }
            else
                {
                UpdateTitleL( R_CONTACTS_NO_DB );
                }
            break;
		case EContactsCreateTemplate:
            iAppContainer->CreateContactTemplateL();
            break;
		case EContactsCreateContact:
            iAppContainer->AddNewContactDlgL();
            break;
		case EContactsDeleteContact:
            iAppContainer->DeleteContactDlgL();
            break;
		case EContactsEditContact:
            iAppContainer->EditContactDlgL();
            break;
		case EContactsSelectGrp:
            if ( !iAppContainer->CanAddContactToGroupL() )
                {
                return;
                }
            iAppContainer->GetSelectedContactL();
            CEikonEnv::Static()->AppUiFactory()->
                MenuBar()->SetMenuTitleResourceId( R_CONTACTS_SELECT_GRP_MENUBAR );
            break;
		case EContactsAddContactToGrp:
            iAppContainer->AddContactToGrpL();
            // Show contact on the listbox
            iAppContainer->ShowContactsL();
            // Change menu
            CEikonEnv::Static()->AppUiFactory()->
                MenuBar()->SetMenuTitleResourceId( R_CONTACTS_CONTACTS_MENUBAR );
            break;
		case EContactsCancelSelectGrp:
            iAppContainer->ShowContactsL();
            // Change menu back to original
            CEikonEnv::Static()->AppUiFactory()->
                MenuBar()->SetMenuTitleResourceId( R_CONTACTS_CONTACTS_MENUBAR );
            break;
		case EContactsShowContacts:
            iAppContainer->ShowContactsL();
            CEikonEnv::Static()->AppUiFactory()->
                MenuBar()->SetMenuTitleResourceId( R_CONTACTS_CONTACTS_MENUBAR );
            break;
		case EContactsShowGroups:
            {
            iAppContainer->ShowContactGroupsL();
            CEikonEnv::Static()->AppUiFactory()->
                MenuBar()->SetMenuTitleResourceId( R_CONTACTS_GROUPS_MENUBAR );
            }
            break;
		case EContactsCreateContactGroup:
            iAppContainer->CreateContactGroupL();
            break;
		case EContactsDeleteContactGroup:
            iAppContainer->DeleteContactGroupL();
            break;
        default:
            break;
        }
    }


// ----------------------------------------------------
// CContAppUi::UpdateTitleL()
// Update title
// ----------------------------------------------------
//
void CContAppUi::UpdateTitleL( TInt aResourceId )
    {
    HBufC* textResource = StringLoader::LoadLC( aResourceId );

    CAknTitlePane* titlePane = STATIC_CAST( CAknTitlePane*,
            StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) );

    titlePane->SetTextL( textResource->Des());
    CleanupStack::PopAndDestroy( textResource );
    }

// End of File

⌨️ 快捷键说明

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