00001 /* 00002 * Copyright © 2008 Nokia Corporation. 00003 */ 00004 00005 #ifndef __SMSEXAMPLE_MARKABLELISTCONTAINER_H 00006 #define __SMSEXAMPLE_MARKABLELISTCONTAINER_H 00007 00008 // INCLUDES 00009 #include <badesca.h> // CDesCArray 00010 #include <coecntrl.h> // CCoeControl 00011 #include <eiklbo.h> // MEikListBoxObserver 00012 #include <badesca.h> // CDesCArrayFlat 00013 #include <eikfrlb.h> //CEikFormattedCellListBox 00014 #include <msvstd.h> //TMsvId 00015 00016 // CLASS DECLARATION 00017 00021 class CMarkableListContainer : public CCoeControl, MEikListBoxObserver 00022 { 00023 public: // Constructors and destructor 00024 00031 static CMarkableListContainer* NewL(const TRect& aRect); 00032 00036 static CMarkableListContainer* NewLC(const TRect& aRect); 00037 ~CMarkableListContainer(); 00038 00039 public: // members 00040 00046 void SetArraysL(CDesCArrayFlat* aAddress, CDesCArrayFlat* aMessage); 00047 00052 void SetIdArray(RArray<TMsvId>* aArray); 00053 00059 void MarkAllL(TBool aSelectionMode); 00060 00065 RArray<TMsvId>* GetSelectedItems(); 00066 00067 private: // members 00068 00072 void SetupListIconsL(); 00073 00079 void AddItemL(const TDesC& aFirstLabel, const TDesC& aSecondLabel); 00080 00084 void MarkOrUnMarkL(); 00085 00092 void SelectItem(TInt aIndex, TBool aSelectAll); 00093 00100 void DeSelectItem(TInt aIndex, TBool aDeselectAll); 00101 00105 void CreateListL(); 00106 00110 void SetupScrollBarsL(); 00111 00112 private: // constructor 00113 00117 void ConstructL(const TRect& aRect); 00118 00119 private: // from MEikListBoxObserver 00120 void HandleListBoxEventL(CEikListBox* aListBox, 00121 TListBoxEvent aListBoxEvent); 00122 00123 private: // from CoeControl 00124 00128 void SizeChanged(); 00129 00133 TInt CountComponentControls() const; 00134 00138 CCoeControl* ComponentControl(TInt aIndex) const; 00139 00143 void Draw(const TRect& aRect) const; 00144 00148 TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, 00149 TEventCode aType); 00150 00151 00152 private: 00153 00158 void Cleanup(); 00159 00160 private: //data 00161 00162 // CAknDoubleGraphicStyleListBox 00163 CEikFormattedCellListBox* iSmsListBox; 00164 00165 // One folder SMS recipients 00166 CDesCArrayFlat* iAddress; 00167 00168 // One folder SMS bodys 00169 CDesCArrayFlat* iMessage; 00170 00171 // All SMS ids of one folder. 00172 RArray<TMsvId>* iIdArray; 00173 00174 // Array of Ids of those SMS that have been marked. 00175 RArray<TMsvId>* iSelectedIds; 00176 00177 }; 00178 00179 #endif // #ifndef __SMSEXAMPLE_MARKABLELISTCONTAINER_H 00180 00181
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.