S60 3rd Edition SDK for Symbian OS
Example Applications Guide

RegistrationView.cpp

00001 /*
00002 * ==============================================================================
00003 *  Name        : RegistrationView.cpp
00004 *  Part of     : Registration
00005 *  Interface   : 
00006 *  Description : 
00007 *  Version     : 
00008 *
00009 *  Copyright (c) 2005-2006 Nokia Corporation.
00010 *  This material, including documentation and any related 
00011 *  computer programs, is protected by copyright controlled by 
00012 *  Nokia Corporation.
00013 * ==============================================================================
00014 */
00015 
00016 // INCLUDE FILES
00017 #include "RegistrationView.h"
00018 #include "RegistrationListbox.h"
00019 
00020 // ============================ MEMBER FUNCTIONS ==============================
00021 
00022 // ----------------------------------------------------------------------------
00023 // CRegistrationView::NewL()
00024 // Two-phased constructor.
00025 // ----------------------------------------------------------------------------
00026 //
00027 CRegistrationView* CRegistrationView::NewL()
00028     {
00029     CRegistrationView* self = CRegistrationView::NewLC();
00030     CleanupStack::Pop( self );
00031     return self;
00032     }
00033 
00034 // ----------------------------------------------------------------------------
00035 // CRegistrationView::NewLC()
00036 // Two-phased constructor.
00037 // ----------------------------------------------------------------------------
00038 //
00039 CRegistrationView* CRegistrationView::NewLC()
00040     {
00041     CRegistrationView* self = new ( ELeave ) CRegistrationView;
00042     CleanupStack::PushL( self );
00043     self->ConstructL();
00044     return self;
00045     }
00046 
00047 
00048 // ----------------------------------------------------------------------------
00049 // CRegistrationView::ConstructL()
00050 // Symbian 2nd phase constructor can leave.
00051 // ----------------------------------------------------------------------------
00052 //
00053 void CRegistrationView::ConstructL()
00054     {
00055     BaseConstructL();
00056         
00057     iListbox = new ( ELeave ) CRegistrationListbox;
00058     iListbox->SetData( &iItemData );
00059     iListbox->SetMopParent( this );
00060     iListbox->ConstructFromResourceL( R_REGISTRATION_SETTING_ITEM_LIST );
00061 
00062     AppUi()->AddToStackL( *this, iListbox );
00063     iListbox->MakeVisible( ETrue );
00064     iListbox->SetRect( ClientRect() );
00065     iListbox->ActivateL();
00066     iListbox->DrawNow();
00067     
00068     }
00069 
00070 // ----------------------------------------------------------------------------
00071 // CRegistrationView::CRegistrationView()
00072 // C++ default constructor can NOT contain any code, that might leave.
00073 // ----------------------------------------------------------------------------
00074 //
00075 CRegistrationView::CRegistrationView()
00076     {
00077     // No implementation required
00078     }
00079 
00080 // ----------------------------------------------------------------------------
00081 // CRegistrationView::~CRegistrationView()
00082 // Destructor.
00083 // ----------------------------------------------------------------------------
00084 //
00085 CRegistrationView::~CRegistrationView()
00086     {
00087     if ( iListbox )
00088         {
00089         AppUi()->RemoveFromStack( iListbox );
00090         }
00091 
00092     delete iListbox;
00093     }
00094 
00095 
00096 // ----------------------------------------------------------------------------
00097 // CRegistrationView::Id() const
00098 // Returns ID of View.
00099 // ----------------------------------------------------------------------------
00100 //
00101 TUid CRegistrationView::Id() const
00102     {
00103     return KViewId;
00104     }
00105 
00106 // ----------------------------------------------------------------------------
00107 // CRegistrationView::HandleCommandL()
00108 // Handles the commands.
00109 // ----------------------------------------------------------------------------
00110 //
00111 void CRegistrationView::HandleCommandL( TInt aCommand )
00112     {
00113 
00114     switch ( aCommand )
00115         {
00116         case EAknCmdExit:
00117         case EAknSoftkeyBack:
00118             {
00119             AppUi()->ProcessCommandL( EAknCmdExit );
00120             break;
00121             }
00122         
00123         default:
00124             break;
00125         }
00126     }
00127 
00128 // ----------------------------------------------------------------------------
00129 // CRegistrationView::SizeChanged
00130 // Called by AppUi when the view size is changed.
00131 // ----------------------------------------------------------------------------
00132 //
00133 void CRegistrationView::SizeChanged()
00134   {
00135   iListbox->SetRect( ClientRect() );
00136   }
00137 
00138 // ----------------------------------------------------------------------------
00139 // CCRegistrationView::DoActivateL()
00140 // ----------------------------------------------------------------------------
00141 //
00142 void CRegistrationView::DoActivateL( const TVwsViewId& /*aPrevViewId*/,
00143                                          TUid /*aCustomMessageId*/,
00144                                          const TDesC8& /*aCustomMessage*/ )
00145     {
00146     // No implementation required
00147     }
00148 
00149 // ----------------------------------------------------------------------------
00150 // CRegistrationView::DoDeactivate()
00151 // ----------------------------------------------------------------------------
00152 //
00153 void CRegistrationView::DoDeactivate()
00154     {
00155     // No implementation required
00156     }
00157 
00158 // ----------------------------------------------------------------------------
00159 // CRegistrationView::ValidateInput()
00160 // Checks validity of input.
00161 // Returns TBool True if input is valid and EFalse if not valid. 
00162 // ----------------------------------------------------------------------------
00163 //
00164 TBool CRegistrationView::ValidateInput()
00165     {
00166     _LIT( KAt, "@" );
00167     TBool isValid = EFalse;
00168     TBuf<KMaxEmailLength> iEmailEnd;
00169     
00170     //Searching for @ character. 
00171         // Returns index of character if found. Returns KErrNotFound if not found.
00172     TInt index  = iItemData.iEmail.Find( KAt );
00173     if( KErrNotFound != index )
00174         {
00175             if ( iItemData.iEmail.Length() > ++index )
00176                 {
00177                 // iEmailEnd contains email address from @ to end.
00178                 iEmailEnd = iItemData.iEmail.MidTPtr( index );
00179             
00180                 // Search for @ is performed again.
00181                 if ( iEmailEnd.Find(KAt) == KErrNotFound )
00182                     {
00183                     isValid = ETrue;
00184                     }
00185             }
00186         else
00187             {
00188             isValid = ETrue;
00189             }
00190         }
00191      return isValid;
00192      }  
00193 
00194 // End of File

© Nokia 2006

Back to top