00001
00002
00003
00004
00005 #ifndef __SMSEXAMPLE_MARKABLELISTCONTAINER_H
00006 #define __SMSEXAMPLE_MARKABLELISTCONTAINER_H
00007
00008
00009 #include <badesca.h>
00010 #include <coecntrl.h>
00011 #include <eiklbo.h>
00012 #include <badesca.h>
00013 #include <eikfrlb.h>
00014 #include <msvstd.h>
00015
00016
00017
00021 class CMarkableListContainer : public CCoeControl, MEikListBoxObserver
00022 {
00023 public:
00024
00031 static CMarkableListContainer* NewL(const TRect& aRect);
00032
00036 static CMarkableListContainer* NewLC(const TRect& aRect);
00037 ~CMarkableListContainer();
00038
00039 public:
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:
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:
00113
00117 void ConstructL(const TRect& aRect);
00118
00119 private:
00120 void HandleListBoxEventL(CEikListBox* aListBox,
00121 TListBoxEvent aListBoxEvent);
00122
00123 private:
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:
00161
00162
00163 CEikFormattedCellListBox* iSmsListBox;
00164
00165
00166 CDesCArrayFlat* iAddress;
00167
00168
00169 CDesCArrayFlat* iMessage;
00170
00171
00172 RArray<TMsvId>* iIdArray;
00173
00174
00175 RArray<TMsvId>* iSelectedIds;
00176
00177 };
00178
00179 #endif // #ifndef __SMSEXAMPLE_MARKABLELISTCONTAINER_H
00180
00181