--- a/browserutilities/browserdialogsprovider/Src/BrowserSelectElementDlg.cpp Thu Aug 27 07:44:59 2009 +0300
+++ b/browserutilities/browserdialogsprovider/Src/BrowserSelectElementDlg.cpp Thu Sep 24 12:53:48 2009 +0300
@@ -79,9 +79,16 @@
{
// Create the active object for this object
iAsyncExit = CBrowserDialogsProviderAsyncExit::NewL( *this );
-
// Resource
- TInt resource = R_AVKON_SOFTKEYS_OK_CANCEL__MARK;
+ iResource = R_AVKON_SOFTKEYS_OK_CANCEL__MARK;
+ // Enable find pane
+ TBool bIsFindPaneEnabled = (iBrCtlSelectOptionType & 0x100) ? ETrue : EFalse ;
+
+ if(bIsFindPaneEnabled)
+ {
+ iBrCtlSelectOptionType = (TBrCtlSelectOptionType )(iBrCtlSelectOptionType & 0xEFF) ;
+ }
+
if (iBrCtlSelectOptionType == ESelectTypeSingle )
{
// It was decided that Radio Buttons add little value and unnecessary
@@ -90,7 +97,7 @@
}
else if ( iBrCtlSelectOptionType == ESelectTypeOkOnly )
{
- resource = R_AVKON_SOFTKEYS_OK_EMPTY__OK;
+ iResource = R_AVKON_SOFTKEYS_OK_EMPTY__OK;
}
// Construct listbox and popup
@@ -100,7 +107,7 @@
new ( ELeave ) CBrowserSelectElementListBox(
iBrCtlSelectOptionType,
iOptionsOrg );
- CAknPopupList::ConstructL( iListBox, resource,
+ CAknPopupList::ConstructL( iListBox, iResource,
AknPopupLayouts::EMenuWindow );
iListBox->ConstructL( *this );
iListBox->ItemDrawer()->ColumnData()->EnableMarqueeL( ETrue );
@@ -120,6 +127,7 @@
new ( ELeave ) CDesCArrayFlat ( KGranularityMedium );
CleanupStack::PushL(items);
+ iResource = R_AVKON_SOFTKEYS_SELECT_CANCEL__SELECT;
for ( TInt i = 0; i<iOptionsOrg.Count(); i++ )
{
items->AppendL( iOptionsOrg.At(i).Text() );
@@ -129,12 +137,8 @@
iHistoryList = new ( ELeave ) CAknSinglePopupMenuStyleListBox;
// create popup
- CAknPopupList::ConstructL( iHistoryList,
- R_AVKON_SOFTKEYS_SELECT_CANCEL__SELECT,
- AknPopupLayouts::EMenuWindow );
-
-
-
+ CAknPopupList::ConstructL( iHistoryList, iResource, AknPopupLayouts::EMenuWindow );
+
iHistoryList->ConstructL( this, EAknListBoxSelectionList );
iHistoryList->ItemDrawer()->ColumnData()->EnableMarqueeL( ETrue );
iHistoryList->CreateScrollBarFrameL( ETrue );
@@ -142,7 +146,7 @@
( CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto );
CTextListBoxModel* model = iHistoryList->Model();
- TBool hasItems = iOptionsOrg.Count();
+ TBool hasItems = iOptionsOrg.Count();
if ( hasItems )
{
model->SetItemTextArray( items );
@@ -160,8 +164,14 @@
iHistoryList->SetCurrentItemIndex( 0 );
}
SetTitleL( aTitle );
- EnableFind();
- }
+ if (bIsFindPaneEnabled)
+ {
+ EnableFind();
+ STATIC_CAST( CAknFilteredTextListBoxModel*,
+ ListBox()->Model())->Filter()->SetObserver( this );
+ }
+ }
+
}
//-----------------------------------------------------------------------------
@@ -202,14 +212,29 @@
aEventType == MCoeControlObserver::EEventRequestCancel ) )
{
AttemptExitL( EFalse );
- }
- //Some text has been written to findbox, in filtered selectioncase
- //highlight selectable item.
+ }
else if ( aControl == ((CCoeControl*)FindBox()) &&
- aEventType == MCoeControlObserver::EEventStateChanged)
- {
- STATIC_CAST ( CBrowserSelectElementListBox*,
+ aEventType == MCoeControlObserver::EEventStateChanged )
+ {
+ CEikButtonGroupContainer * cbaGroup = CEikButtonGroupContainer::Current();
+ /*Some text has been written to findbox, in filtered selectioncase
+ highlight selectable item. */
+ if ( iBrCtlSelectOptionType != ESelectTypeNone)
+ {
+ STATIC_CAST ( CBrowserSelectElementListBox*,
ListBox() )->HighlightSelectableItem();
+ }
+ if ( iBrCtlSelectOptionType == ESelectTypeOkOnly ) return;
+ if ( STATIC_CAST( CAknFilteredTextListBoxModel*, ListBox()->Model())->Filter()->FilteredNumberOfItems() == 0 )
+ {
+ cbaGroup->SetCommandSetL(R_AVKON_SOFTKEYS_CANCEL);
+ cbaGroup->DrawNow();
+ }
+ else
+ {
+ cbaGroup->SetCommandSetL(iResource);
+ cbaGroup->DrawNow();
+ }
}
}