# examples/ForumNokia/SMSExample/GUI/inc/SMSExampleMarkableListContainer.h

    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