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

📄 s60uiexampleform.cpp

📁 《Symbian S60第3版手机程序开发与实用教程》光盘源代码
💻 CPP
字号:
// Copyright (c) 2006 Nokia Corporation.

#include "S60UIExampleForm.h"
#include <S60UIExample.rsg>
#include "S60UIExample.hrh"
#include <avkon.rsg>  // for AknForm menu resource id
#include <avkon.hrh>  // for AknForm menu command ids
#include <eikmenup.h> // for CEikMenuPane

// -----------------------------------------------------------------------------
// CS60UIExampleForm::NewL()
// Two stage constructor
// -----------------------------------------------------------------------------
//
CS60UIExampleForm* CS60UIExampleForm::NewL(TDes& aName, 
                                           TTime& aBirthDate, 
                                           TDes& aMobile) 
    {
    CS60UIExampleForm* self = new (ELeave) CS60UIExampleForm(aName, 
                                                             aBirthDate,  
                                                             aMobile);
    CleanupStack::PushL(self);
    self->CAknForm::ConstructL(); 
    CleanupStack::Pop(self);
    return self;
    }

// -----------------------------------------------------------------------------
// CS60UIExampleForm::CS60UIExampleForm()
// First stage constructor
// -----------------------------------------------------------------------------
//
CS60UIExampleForm::CS60UIExampleForm(TDes& aName, 
                                      TTime& aBirthDate,  
                                      TDes& aMobile) 
    : iName(aName), iBirthDate(aBirthDate), iMobile(aMobile)
    {
    // nothing to do here
    }


// -----------------------------------------------------------------------------
// CS60UIExampleForm::~CS60UIExampleForm()
// Destructor
// -----------------------------------------------------------------------------
//
CS60UIExampleForm::~CS60UIExampleForm()
    {
    // nothing to do here
    }


// -----------------------------------------------------------------------------
// CS60UIExampleForm::RunDlgLD()
// Creates, initialises, displays and then deletes the form
// -----------------------------------------------------------------------------
//
TInt CS60UIExampleForm::RunDlgLD(TDes& aName, 
                                 TTime& aBirthDate,  
                                 TDes& aMobile)
    {
    CS60UIExampleForm* form =  CS60UIExampleForm::NewL(aName, 
                                                       aBirthDate,  
                                                       aMobile);
    form->PrepareLC(R_S60UIEX_FORM_DIALOG);  
    form->DoNotSaveFormDataL();   // to load initial data                           
    return form->RunLD();                                 
    }
    

// -----------------------------------------------------------------------------
// CS60UIExampleForm::SaveFormDataL()
// extracts information from editors
// -----------------------------------------------------------------------------
//
TBool CS60UIExampleForm::SaveFormDataL()
    {
    if (ControlOrNull(ES60UIExCtrlIdName))
        {
        GetEdwinText(iName, ES60UIExCtrlIdName);
        }
        
    if (ControlOrNull(ES60UIExCtrlIdBirthDate))
        {
        iBirthDate = TTimeEditorValue(ES60UIExCtrlIdBirthDate);
        }
        
    return ETrue;
    }
    

// -----------------------------------------------------------------------------
// CS60UIExampleForm::DoNotSaveFormDataL()
// loads editors with previous text
// -----------------------------------------------------------------------------
//
void CS60UIExampleForm::DoNotSaveFormDataL()
    {
    if (ControlOrNull(ES60UIExCtrlIdName))
        {
        SetEdwinTextL(ES60UIExCtrlIdName, &iName);
        }
        
    if (ControlOrNull(ES60UIExCtrlIdBirthDate))
        {
        SetTTimeEditorValue(ES60UIExCtrlIdBirthDate, iBirthDate);
        }
        
    }


// -----------------------------------------------------------------------------
// CS60UIExampleForm::DynInitMenuPaneL()
// Used to remove unwanted default options from edit mode menu
// -----------------------------------------------------------------------------
//
void CS60UIExampleForm::DynInitMenuPaneL(TInt aResourceId, 
                                          CEikMenuPane* aMenuPane)
    {
    CAknForm::DynInitMenuPaneL(aResourceId, aMenuPane);
    if (aResourceId == R_AVKON_FORM_MENUPANE)
        {
        // Override the default form options. 
        aMenuPane->SetItemDimmed(EAknFormCmdAdd, ETrue);
        aMenuPane->SetItemDimmed(EAknFormCmdLabel, ETrue);
        aMenuPane->SetItemDimmed(EAknFormCmdDelete, ETrue);
        }
        
    }

⌨️ 快捷键说明

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