00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __SEARCH_CONTAINER_H__
00020 #define __SEARCH_CONTAINER_H__
00021
00022
00023
00024
00025 #include <aknview.h>
00026 #include <akndef.h>
00027 #include "WikiDb.h"
00028
00029
00030 class CAknSingleStyleListBox;
00031 class CAknSearchField;
00032 class CAknNavigationDecorator;
00033 class CAknNavigationControlContainer;
00034 class CSearchView;
00035 class CRecCountContainer;
00036 class CWikiDb;
00037
00038
00039
00045 class CSearchContainer : public CCoeControl, public MCoeControlObserver, public MWikiCountObserver
00046 {
00047 public:
00048
00056 static CSearchContainer* NewL( const TRect& aRect, CSearchView& aView, CRecCountContainer& aRecContainer );
00057
00065 static CSearchContainer* NewLC( const TRect& aRect, CSearchView& aView, CRecCountContainer& aRecContainer );
00066
00072 void ConstructL( const TRect& aRect );
00073
00078 ~CSearchContainer();
00079
00080 private:
00081
00086 CSearchContainer( CSearchView& aView, CRecCountContainer& aRecContainer );
00087
00088 public:
00089
00094 TInt CountComponentControls() const;
00095
00101 CCoeControl* ComponentControl( TInt aIndex ) const;
00102
00106 void SizeChanged();
00107
00111 void HandleResourceChange( TInt aType );
00112
00121 TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,
00122 TEventCode aType );
00123
00124 public:
00125
00132 void HandleControlEventL( CCoeControl* aControl, TCoeEvent aEventType );
00133
00134 public:
00135
00136 void CountUpdatedL( TInt aError );
00137
00138 public:
00139
00140 void RefreshL( TBool aResetNaviPane = EFalse );
00141
00142 TBool ZeroItemsInList() { return iItemArray->MdcaCount() == 0; };
00143
00144 void HandleSelectCommandL();
00145
00146 private:
00147
00148 void CreateListBoxL();
00149 void CreateFindBoxL();
00150
00155 void SetNaviPaneTextL( const TDesC& aText, TBool aShowLeft, TBool aShowRight );
00156 void UpdateListBoxL();
00157 void PopulateItemArrayL();
00158
00159 TBool CanScrollPrev();
00160 TBool CanScrollNext();
00161 void GotoPrevPageL();
00162 void GotoNextPageL();
00163
00164 HBufC* GetSearchTextLC();
00165 void AppendItemToListL( CDesCArray& aList, const TDesC& aItem );
00166 HBufC* FormatListItemLC( const TDesC& aItem );
00167 TPtrC DeFormatListItem( const TDesC& aFormattedItem );
00168 TBool IsSearchTextPresent() { return ( iSearchText->Length() > 0 ); } ;
00169 void SetRecCountAndDrawL( const TInt aRecCount );
00170
00171 private:
00172
00176 CSearchView& iView;
00177
00181 CRecCountContainer& iRecContainer;
00182
00186 CWikiDb& iWikiEngine;
00187
00191 CAknSingleStyleListBox* iListBox;
00192
00196 CAknSearchField* iFindBox;
00197
00201 CAknNavigationDecorator* iNaviDecorator;
00202
00206 CAknNavigationControlContainer* iNaviPane;
00207
00211 CDesCArray* iItemArray;
00212
00216 HBufC* iSearchText;
00217 };
00218
00219 #endif // __SEARCH_CONTAINER_H__
00220
00221
00222