|
S60 3rd Edition SDK for Symbian OS Example Applications Guide |
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 |