www.pudn.com > EncryptionDecryption.rar.rar > cipherappview.cpp


/* Copyright (c) 2003, Nokia. All rights reserved */ 
#include  
#include  
#include "CipherAppView.h" 
#include "Cipher.pan" 
 
// Dimensions of output window 
const TInt KMaxLineLength = 40; 
const TInt KGranularityOfArray = 10; 
 
CCipherAppView* CCipherAppView::NewL(const TRect& aRect) 
    { 
    CCipherAppView* self = NewLC(aRect); 
    CleanupStack::Pop(self); 
    return self; 
    } 
 
CCipherAppView* CCipherAppView::NewLC(const TRect& aRect) 
    { 
    CCipherAppView* self = new (ELeave) CCipherAppView; 
    CleanupStack::PushL(self); 
    self->ConstructL(aRect); 
    return self; 
    } 
 
void CCipherAppView::ConstructL(const TRect& aRect) 
    { 
    iOutputText = HBufC::NewL(KMaxLineLength); 
 
    CreateWindowL(); 
    SetRect(aRect); 
 
    iMsgIndex = NULL; 
     
    iListBox = new (ELeave) CAknSingleStyleListBox; 
    iListBox->SetContainerWindowL(*this); 
    iListBox->ConstructL(this, NULL); 
     
    iListBox->SetRect(aRect.Size()); 
 
    iListBox->ActivateL(); 
    iListBox->CreateScrollBarFrameL(ETrue); 
    iListBox->ScrollBarFrame() 
            ->SetScrollBarVisibilityL(CEikScrollBarFrame::EOn, CEikScrollBarFrame::EAuto); 
    iListBox->SetDimmed(ETrue); 
 
    iMessageList = new (ELeave) CDesCArrayFlat(KGranularityOfArray); 
 
    CTextListBoxModel* model = iListBox->Model(); 
    model->SetItemTextArray(iMessageList); 
    model->SetOwnershipType(ELbmOwnsItemArray); // Transfer ownership of iMessageList 
 
    ActivateL(); 
    MakeVisible(ETrue); 
    } 
 
CCipherAppView::CCipherAppView() 
    { 
    // No implementation required 
    } 
 
 
CCipherAppView::~CCipherAppView() 
    { 
    // iMessageList owned by iListBox->Model() 
       iMessageList = NULL; 
 
    delete iListBox; 
    iListBox = NULL; 
 
    delete iOutputText; 
    iOutputText = NULL; 
    } 
 
TInt CCipherAppView::CountComponentControls() const 
    { 
    return 1; // Only have one Component 
    } 
 
CCoeControl* CCipherAppView::ComponentControl(TInt aIndex) const 
    { 
    __ASSERT_ALWAYS(aIndex == 0, Panic(ECipherInvalidComponentIndex)); 
    return iListBox; 
    } 
 
TKeyResponse CCipherAppView::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType) 
    { 
    return iListBox->OfferKeyEventL(aKeyEvent, aType); 
    } 
 
void CCipherAppView::PrintLineL(const TDesC& aText) 
    { 
    _LIT(KTabLiteral,"\t"); 
    iOutputText->Des().Append(KTabLiteral); 
    TInt spaceRemaining = KMaxLineLength - iOutputText->Des().Length(); 
    // If mlen is greater than the length of the string 
    // then Left returns the whole of the descriptor. 
    iOutputText->Des().Append(aText.Left(spaceRemaining)); 
    iMessageList->AppendL(*iOutputText); 
    iListBox->HandleItemAdditionL(); 
    iOutputText->Des().Zero(); 
    }