00001 /* 00002 * ============================================================================ 00003 * Name : CPbkMemoryEntryAddItemDlg from CPbkMemoryEntryAddItemDlg.h 00004 * Part of : PbkView.dll 00005 * 00006 * Description: 00007 * Field type selection dialog for Phonebook's Create New / Edit Memory entry 00008 * functions. 00009 * Version: 00010 * 00011 * Copyright (C) 2002 Nokia Corporation. 00012 * This material, including documentation and any related 00013 * computer programs, is protected by copyright controlled by 00014 * Nokia Corporation. All rights are reserved. Copying, 00015 * including reproducing, storing, adapting or translating, any 00016 * or all of this material requires the prior written consent of 00017 * Nokia Corporation. This material also contains confidential 00018 * information which may not be disclosed to others without the 00019 * prior written consent of Nokia Corporation. 00020 * ============================================================================ 00021 */ 00022 00023 #ifndef __CPbkMemoryEntryAddItemDlg_H__ 00024 #define __CPbkMemoryEntryAddItemDlg_H__ 00025 00026 // INCLUDES 00027 #include <e32base.h> 00028 00029 // FORWARD DECLARATIONS 00030 class CPbkFieldInfo; 00031 class CEikFormattedCellListBox; 00032 class CAknPopupList; 00033 00034 // CLASS DECLARATION 00035 00042 class CPbkMemoryEntryAddItemDlg : public CBase 00043 { 00044 public: // Interface 00048 IMPORT_C CPbkMemoryEntryAddItemDlg(); 00049 00054 IMPORT_C void ResetWhenDestroyed(CPbkMemoryEntryAddItemDlg** aSelfPtr); 00055 00063 IMPORT_C CPbkFieldInfo* ExecuteLD 00064 (CArrayPtrFlat<CPbkFieldInfo>& aFieldInfos, TInt aCbaResource); 00065 00075 IMPORT_C CPbkFieldInfo* ExecuteLD 00076 (CArrayPtr<CPbkFieldInfo>& aFieldInfos, 00077 TInt aCbaResource, 00078 const TDesC& aTitleText); 00079 00084 IMPORT_C virtual CPbkFieldInfo* ExecuteLD 00085 (CArrayPtr<CPbkFieldInfo>& aFieldInfos); 00086 00092 IMPORT_C ~CPbkMemoryEntryAddItemDlg(); 00093 00094 public: // internal implementation 00099 void SortFieldInfoArray(); 00100 00101 protected: // Interface for derived classes 00110 void PrepareLC(CArrayPtr<CPbkFieldInfo>& aFieldInfos, 00111 TInt aCbaResource, const TDesC& aTitle); 00112 00118 CPbkFieldInfo* RunLD(); 00119 00120 private: // Spare virtual functions 00121 IMPORT_C virtual void Reserved_1(); 00122 IMPORT_C virtual void Reserved_2(); 00123 00124 private: // Data types 00125 class CListBoxModel; 00126 00127 private: // Data members 00129 CEikFormattedCellListBox* iListBox; 00131 CAknPopupList* iPopupList; 00133 TBool* iDestroyedPtr; 00135 CPbkMemoryEntryAddItemDlg** iSelfPtr; 00136 // Own: Sort Field Infos 00137 TBool iSortFieldInfos; 00138 }; 00139 00140 00146 class CPbkItemTypeSelectCreateNew : public CPbkMemoryEntryAddItemDlg 00147 { 00148 public: // Interface 00152 IMPORT_C CPbkItemTypeSelectCreateNew(); 00153 00159 IMPORT_C ~CPbkItemTypeSelectCreateNew(); 00160 00161 public: // from CPbkMemoryEntryAddItemDlg 00168 IMPORT_C CPbkFieldInfo* ExecuteLD(CArrayPtr<CPbkFieldInfo>& aFieldInfos); 00169 00170 private: // Data 00172 HBufC* iTitleBuf; 00173 // Spare data 00174 TInt32 iSpare1; 00175 }; 00176 00177 00183 class CPbkItemTypeSelectAddToExisting : public CPbkMemoryEntryAddItemDlg 00184 { 00185 public: // Interface 00189 IMPORT_C CPbkItemTypeSelectAddToExisting(); 00190 00196 IMPORT_C ~CPbkItemTypeSelectAddToExisting(); 00197 00198 public: // from CPbkMemoryEntryAddItemDlg 00205 IMPORT_C CPbkFieldInfo* ExecuteLD(CArrayPtr<CPbkFieldInfo>& aFieldInfos); 00206 00207 private: // Data 00209 HBufC* iTitleBuf; 00210 // Spare data 00211 TInt32 iSpare1; 00212 }; 00213 00214 // __CPbkMemoryEntryAddItemDlg_H__ 00215 #endif 00216 00217 // End of File