diff -r 8173571d354e -r 1fc85118c3ae eventsui/eventsmgmtui/src/evtmgmtuistartupcontainer.cpp --- a/eventsui/eventsmgmtui/src/evtmgmtuistartupcontainer.cpp Thu Aug 19 09:48:36 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,845 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Container class for Events Management UI startup view. -* -*/ - - -// SYSTEM INCLUDES -#include -#include -#include -#include -#include // Icon Array -#include // Column Listbox -#include // Gul Icon -#include // TResourceReader -#include // Status pane -#include // CAknTitlePane -#include // String Loader -#include -#include -#include -#include -#include -#include -#include -#include -#include // Skin Ids -#include -#include // AVKON LAF layouts -#include -#include // For SearchField - -// USER INCLUDES -#include "evtmgmtui.hrh" -#include "evtmgmtuiuid.hrh" -#include "evtmgmtuiappui.h" -#include "evtmgmtuimodel.h" -#include "evtmgmtuistartupcontainer.h" -#include "evtmgmtuilistbox.h" -#include "evtmgmtuilistboxmodel.h" -#include "evtdebug.h" - -// CONSTANT DEFINITIONS -const TInt KIconArrayGranularity = 5; // The number of default icons -const TInt KFindBoxTextLength = 32; // Find Box text length. -const TInt KMinCountForFilter = 2; -_LIT( KEvtMgmtUiIconFileName, "evtmgmtui.mif" ); - -// ----------------- Member funtions for CEvtMgmtUiStartupContainer class ------------------ - -// --------------------------------------------------------------------------- -// CEvtMgmtUiStartupContainer::CEvtMgmtUiStartupContainer -// --------------------------------------------------------------------------- -// -CEvtMgmtUiStartupContainer::CEvtMgmtUiStartupContainer( MEvtMgmtUiCmdHdlr& aCmdHandler ) - :iCmdHandler(aCmdHandler) - { - } - - -// --------------------------------------------------------------------------- -// CEvtMgmtUiStartupContainer::~CEvtMgmtUiStartupContainer -// --------------------------------------------------------------------------- -// -CEvtMgmtUiStartupContainer::~CEvtMgmtUiStartupContainer() - { - // Delete the List box - delete iListBox; - - delete iFindBox; - } - -// --------------------------------------------------------------------------- -// CEvtMgmtUiStartupContainer::NewL -// --------------------------------------------------------------------------- -// -CEvtMgmtUiStartupContainer* CEvtMgmtUiStartupContainer::NewL( - const TRect& aRect, CEvtMgmtUiModel* aModel, - MEvtMgmtUiCmdHdlr& aCmdHandler ) - { - CEvtMgmtUiStartupContainer* self = new ( ELeave ) CEvtMgmtUiStartupContainer( aCmdHandler ); - CleanupStack::PushL( self ); - self->ConstructL( aRect, aModel ); - CleanupStack::Pop(); - return self; - } - -// --------------------------------------------------------------------------- -// CEvtMgmtUiStartupContainer::CEvtMgmtUiStartupContainer -// --------------------------------------------------------------------------- -// -void CEvtMgmtUiStartupContainer::ConstructL( const TRect& aRect, CEvtMgmtUiModel* aModel ) - { - // This is the cheif control for this application. This has to be made a - // Window owning control - CreateWindowL(); - - // Create the List box - EVTUIDEBUG( "Listbox creation" ); - CreateListboxL(aModel); - CreateFindBoxL(); - - // Check for FindBox Visiblity - HandleFindBoxVisibility(); - - // Get the Help context - iContextName = KHLP_LOC_EVENTS_VIEW(); - - // Set Title - MakeTitleL(); - - SetRect(aRect); - ActivateL(); - } - -// --------------------------------------------------------------------------- -// void CEvtMgmtUiStartupContainer::GetHelpContext -// --------------------------------------------------------------------------- -// -void CEvtMgmtUiStartupContainer::GetHelpContext( TCoeHelpContext& aContext ) const - { - aContext.iContext = iContextName; - aContext.iMajor = TUid::Uid( KEvtMgmtUiUid ); - } - -// -------------------------------------------------------------------------- -// CEvtMgmtUiStartupContainer::FocusChanged -// -------------------------------------------------------------------------- -// -void CEvtMgmtUiStartupContainer::FocusChanged( TDrawNow aDrawNow ) - { - if ( iListBox ) - { - iListBox->SetFocus( IsFocused(), aDrawNow ); - } - - if ( iFindBox && iFindBox->IsVisible() ) - { - iFindBox->SetFocus( IsFocused(), aDrawNow ); - if ( aDrawNow == EDrawNow && IsFocused() ) - { - iFindBox->DrawDeferred(); - } - } - } - -// --------------------------------------------------------------------------- -// void CEvtMgmtUiStartupContainer::SizeChanged -// --------------------------------------------------------------------------- -// -void CEvtMgmtUiStartupContainer::SizeChanged() - { - EVTUIDEBUG("+ CEvtMgmtUiStartupContainer::SizeChanged()" ); - const TRect rect( Rect() ); - TAknLayoutRect controlRect; - - // Since iFindBox->IsVisible() returns EFalse if Adaptive Chars are shown, - // We check on FilteredNumberOfItems meaning the FindBox should be visible when - // FilteredNumberOfItems is greater than 1 - if( iListBox && iFindBox && - ( iFindBox->IsVisible() || iListBox->Model()->Filter()->FilteredNumberOfItems() > 1 ) ) - { - controlRect.LayoutRect(rect, AknLayout::list_gen_pane( 1 ) ); - iListBox->SetRect( controlRect.Rect() ); - controlRect.LayoutRect(rect, AknLayout::find_pane() ); - iFindBox->SetRect( controlRect.Rect() ); - } - else if( iListBox ) - { - controlRect.LayoutRect(rect, AknLayout::list_gen_pane( 0 ) ); - iListBox->SetRect( controlRect.Rect() ); - } - EVTUIDEBUG("- CEvtMgmtUiStartupContainer::SizeChanged()" ); - } - -// --------------------------------------------------------------------------- -// TInt CEvtMgmtUiStartupContainer::CountComponentControls -// --------------------------------------------------------------------------- -// -TInt CEvtMgmtUiStartupContainer::CountComponentControls() const - { - TInt count = 0; - CCoeControl* controls[] = { iListBox, iFindBox }; - - for ( TUint i = 0; i < sizeof( controls ) / sizeof( CCoeControl* ); i++ ) - { - if ( controls[i] ) // Test for valid controls - { - count++; - } - } - - return count; - } - -// --------------------------------------------------------------------------- -// CCoeControl* CEvtMgmtUiStartupContainer::CEvtMgmtUiStartupContainer -// --------------------------------------------------------------------------- -// -CCoeControl* CEvtMgmtUiStartupContainer::ComponentControl(TInt aIndex ) const - { - CCoeControl* controls[] = { iListBox, - iFindBox}; - - for ( TUint i = 0; i < sizeof( controls ) / sizeof( CCoeControl* ); i++ ) - { - // Index is decremented only if control is not NULL - if ( controls[i] && aIndex-- == 0 ) - { - return controls[i]; - } - } - - return NULL; - } - -// --------------------------------------------------------------------------- -// TKeyResponse CEvtMgmtUiStartupContainer::OfferKeyEventL -// --------------------------------------------------------------------------- -// -TKeyResponse CEvtMgmtUiStartupContainer::OfferKeyEventL( const TKeyEvent& aKeyEvent, - TEventCode aType ) - { - TKeyResponse keyresponse; - - TBool needRefresh = EFalse; - TInt keyConsumed = iFindBox->TextLength(); - - // Key is first offered to the Find box based on the key press. - keyresponse = AknFind::HandleFindOfferKeyEventL(aKeyEvent, aType, - this, iListBox, iFindBox, EFalse, needRefresh); - - // Handle the ListBox Filter count changed event - iCmdHandler.HandleCmdL( MEvtMgmtUiCmdHdlr::EListBoxFilterCountChanged ); - - // This is to avoid the Mark for the First item of the list box. - // We reset the modifier attribute - TKeyEvent& keyEvent = const_cast(aKeyEvent); - TInt index = CurrentItemIndex(); - if(index == 0 || - (index == iListBox->Model()->NumberOfItems() - 1) && aKeyEvent.iScanCode == EStdKeyDownArrow || - (index == 1) && aKeyEvent.iScanCode == EStdKeyUpArrow ) - { - if(keyEvent.iModifiers & EModifierShift) - keyEvent.iModifiers&= ~EModifierShift; - if(keyEvent.iModifiers & EModifierLeftShift) - keyEvent.iModifiers&= ~EModifierLeftShift; - if(keyEvent.iModifiers & EModifierRightShift) - keyEvent.iModifiers&= ~EModifierRightShift; - if(keyEvent.iModifiers & EModifierCtrl) - keyEvent.iModifiers&= ~EModifierCtrl; - if(keyEvent.iModifiers & EModifierRightCtrl) - keyEvent.iModifiers&= ~EModifierRightCtrl; - } - - // Now handle the Key Event based on the Key type - switch ( aKeyEvent.iScanCode ) - { - case EStdKeyUpArrow: - case EStdKeyDownArrow: - { - keyresponse = iListBox->OfferKeyEventL( aKeyEvent, aType ); - iCmdHandler.HandleCmdL( MEvtMgmtUiCmdHdlr::EListBoxItemFocused ); - return keyresponse; - } - case EStdKeyBackspace: - case EStdKeyDelete: - { - if(aType == EEventKey && !keyConsumed ) - { - keyresponse = iListBox->OfferKeyEventL( aKeyEvent, aType ); - iCmdHandler.HandleCmdL( MEvtMgmtUiCmdHdlr::EListBoxItemDeleted ); - } - return keyresponse; - } - case EStdKeyHash: - { - if(!index) - { - keyresponse = EKeyWasConsumed; - } - else - { - TBool shiftKeyPressed = ( aKeyEvent.iModifiers & EModifierShift ); - keyresponse = iListBox->OfferKeyEventL( aKeyEvent, aType ); - if( aType == EEventKeyUp && ( EKeyWasConsumed == keyresponse || !shiftKeyPressed ) ) - iCmdHandler.HandleCmdL( MEvtMgmtUiCmdHdlr::EListBoxItemFocused ); - } - return keyresponse; - } - default: - { - break; - } - } - // Now it's List box's job to process the key event - return iListBox->OfferKeyEventL( aKeyEvent, aType ); - } - -// --------------------------------------------------------------------------- -// void CEvtMgmtUiStartupContainer::HandleResourceChange -// --------------------------------------------------------------------------- -// -void CEvtMgmtUiStartupContainer::HandleResourceChange( TInt aType ) - { - // Pass the event to the base class - CCoeControl::HandleResourceChange(aType); - - switch( aType ) - { - case KAknsMessageSkinChange: - { - TRAPD( error, UpdateIconsL() ); - if ( error != KErrNone ) - { - iEikonEnv->HandleError( error ); - } - DrawDeferred(); - - break; - } - // Dynamic Layout switch - case KEikDynamicLayoutVariantSwitch: - { - // Handle the screen change event - // Trap and Ignore the error - TRAP_IGNORE( - iCmdHandler.HandleCmdL( MEvtMgmtUiCmdHdlr::EScreenSizeChanged )); - break; - } - default: - { - break; - } - } - } - -// --------------------------------------------------------------------------- -// void CEvtMgmtUiStartupContainer::HandleListBoxEventL -// --------------------------------------------------------------------------- -// -void CEvtMgmtUiStartupContainer::HandleListBoxEventL( - CEikListBox* /* aListBox */, - TListBoxEvent aEventType ) - { - switch (aEventType) - { - // List box Item Selection - case EEventEnterKeyPressed: - case EEventItemSingleClicked: - { - iCmdHandler.HandleCmdL( MEvtMgmtUiCmdHdlr::EListBoxItemDoubleClicked ); - break; - } - case EEventItemClicked: - { - iCmdHandler.HandleCmdL( MEvtMgmtUiCmdHdlr::EListBoxItemFocused); - break; - } - default: - break; - } - } - -// --------------------------------------------------------------------------- -// void CEvtMgmtUiStartupContainer::CreateListboxL -// --------------------------------------------------------------------------- -// -void CEvtMgmtUiStartupContainer::CreateListboxL( CEvtMgmtUiModel* aModel ) - { - EVTUIDEBUG("+ CEvtMgmtUiStartupContainer::CreateListboxL()" ); - // Create the List box - iListBox = new ( ELeave ) CEvtMgmtUiListBox(); - iListBox->ConstructL( this, EAknListBoxStylusMarkableList ); - iListBox->SetContainerWindowL( *this ); - iListBox->SetListBoxObserver( this ); - iListBox->CreateScrollBarFrameL(ETrue); - iListBox->ScrollBarFrame()->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff, - CEikScrollBarFrame::EAuto ); - - UpdateIconsL(); - - // Create the Listbox model - CEvtMgmtUiListBoxModel* model = static_cast(iListBox->Model()); - model->SetItemTextArray( aModel ); - model->SetOwnershipType( ELbmDoesNotOwnItemArray ); - model->SetItemTextArrayToFilterModel(); - - iListBox->ItemDrawer()->ColumnData()->EnableMarqueeL( ETrue ); - - iListBox->ActivateL(); - - EVTUIDEBUG("- CEvtMgmtUiStartupContainer::CreateListboxL()" ); - } - -// ----------------------------------------------------------------------------- -// CEvtMgmtUiStartupContainer::CreateFindBoxL() -// -// Creates the member iFindBox -// ----------------------------------------------------------------------------- -// -void CEvtMgmtUiStartupContainer::CreateFindBoxL() - { - EVTUIDEBUG("+ CEvtMgmtUiStartupContainer::CreateFindBoxL()" ); - - // Create the findbox. - iFindBox = CAknSearchField::NewL( *this, CAknSearchField::EAdaptiveSearch, - NULL, KFindBoxTextLength ); - - // Set default input mode to Katakana if current UI language is Japanese - if (FeatureManager::FeatureSupported(KFeatureIdJapanese) && - (User::Language() == ELangJapanese)) - { - iFindBox->Editor().SetAknEditorInputMode(EAknEditorKatakanaInputMode); - } - else - { - iFindBox->Editor().SetAknEditorCurrentInputMode(EAknEditorTextInputMode); - } - - // Set Column mask - iFindBox->SetListColumnFilterFlags(2); // This is set to search only "Subject" column - - STATIC_CAST(CAknFilteredTextListBoxModel*, iListBox->Model())->CreateFilterL(iListBox,iFindBox); - STATIC_CAST(CAknFilteredTextListBoxModel*, iListBox->Model())->Filter()->SetParentControl( this ); - iListBox->Model()->SetFindToFilterModel(iFindBox); - - iFindBox->ActivateL(); - - EVTUIDEBUG("- CEvtMgmtUiStartupContainer::CreateFindBoxL()" ); - } - -// ----------------------------------------------------------------------------- -// CEvtMgmtUiStartupContainer::MakeFindBoxVisible() -// -// Deletes the member iFindBox -// ----------------------------------------------------------------------------- -// -void CEvtMgmtUiStartupContainer::HandleFindBoxVisibility() - { - if( iListBox && iFindBox ) - { - if(iListBox->Model()->Filter()->FilteredNumberOfItems() < KMinCountForFilter ) - { - iFindBox->SetFocusing( EFalse ); - iFindBox->MakeVisible( EFalse ); - iListBox->SetFocusing( ETrue ); - } - else - { - iFindBox->SetFocusing( ETrue ); - iFindBox->MakeVisible( ETrue ); - iListBox->SetFocusing( EFalse ); - } - - SizeChanged(); - DrawNow(); - } - } - -// ----------------------------------------------------------------------------- -// CEvtMgmtUiStartupContainer::UpdateIconsL -// ----------------------------------------------------------------------------- -void CEvtMgmtUiStartupContainer::UpdateIconsL() - { - EVTUIDEBUG( "+ CEvtMgmtUiStartupContainer::UpdateIconsL()" ); - - CAknIconArray* icons = new( ELeave ) CAknIconArray( KIconArrayGranularity ); - CleanupStack::PushL( icons ); - - TFileName *iconFile = IconFileNameLC(); - - //mark - AddColorIconL( *icons, - AknIconUtils::AvkonIconFileName(), - KAknsIIDQgnIndiMarkedAdd, - EMbmAvkonQgn_indi_marked_add, EMbmAvkonQgn_indi_marked_add_mask ); - -//Create new event - AddIconL( *icons, - *iconFile, - KAknsIIDQgnPropLocevNew, - EMbmEvtmgmtuiQgn_prop_locev_new, EMbmEvtmgmtuiQgn_prop_locev_new_mask); - - //active - AddIconL( *icons, - *iconFile, - KAknsIIDQgnPropLocevTrigger, - EMbmEvtmgmtuiQgn_prop_locev_trigger, EMbmEvtmgmtuiQgn_prop_locev_trigger_mask); - - //draft - AddIconL( *icons, - *iconFile, - KAknsIIDQgnPropLocevDraft, - EMbmEvtmgmtuiQgn_prop_locev_draft, EMbmEvtmgmtuiQgn_prop_locev_draft_mask); - - //completed - AddIconL( *icons, - *iconFile, - KAknsIIDQgnPropLocevCompleted, - EMbmEvtmgmtuiQgn_prop_locev_completed, EMbmEvtmgmtuiQgn_prop_locev_completed_mask); - - // repeat - AddColorIconL( *icons, - *iconFile, - KAknsIIDQgnIndiRepeatAdd, - EMbmEvtmgmtuiQgn_indi_repeat_add, EMbmEvtmgmtuiQgn_indi_repeat_add_mask); - - CleanupStack::PopAndDestroy(iconFile); - - //get old icons and delete those - CAknIconArray* oldIcons = static_cast( - iListBox->ItemDrawer()->ColumnData()->IconArray() ); - delete oldIcons; - - //set new icons to array - iListBox->ItemDrawer()->ColumnData()->SetIconArray( icons ); - CleanupStack::Pop(icons); - - EVTUIDEBUG( "- CEvtMgmtUiStartupContainer::UpdateIconsL()" ); - - } - -// ----------------------------------------------------------------------------- -// CEvtMgmtUiStartupContainer::AddIconL -// ----------------------------------------------------------------------------- -void CEvtMgmtUiStartupContainer::AddIconL( CAknIconArray& aIcons, - const TDesC& aIconFileWithPath, - TAknsItemID aSkinID, - TInt aIconGraphicsIndex, - TInt aIconGraphicsMaskIndex ) - { - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - - EVTUIDEBUG( "AknsUtils::SkinInstance" ); - - CFbsBitmap* bitmap = NULL; - CFbsBitmap* bitmapMask = NULL; - TRAPD( err, AknsUtils::CreateIconL( skin, - aSkinID, - bitmap, - bitmapMask, - aIconFileWithPath, - aIconGraphicsIndex, - aIconGraphicsMaskIndex ) ); - - - EVTUIDEBUG1( "AknsUtils::CreateIconL - %d", err ); - if(err != KErrNone) - { - TRAP( err, AknIconUtils::CreateIconL( bitmap, - bitmapMask, - aIconFileWithPath, - aIconGraphicsIndex, - aIconGraphicsMaskIndex ) ); - EVTUIDEBUG1( "AknIconUtils::CreateIconL - %d", err ); - } - User::LeaveIfError( err ); - - CleanupStack::PushL( bitmap ); - CleanupStack::PushL( bitmapMask ); - - CGulIcon* icon = CGulIcon::NewL( bitmap, bitmapMask ); - - // Remove the Bitmap and the Bitmap Icon from the Clean up stack since - // the ownership is taken over by the icon - CleanupStack::Pop( bitmapMask ); - CleanupStack::Pop( bitmap ); - - CleanupStack::PushL( icon ); - aIcons.AppendL( icon ); - CleanupStack::Pop( icon ); // icon - } - -// ----------------------------------------------------------------------------- -// CEvtMgmtUiStartupContainer::AddColorIconL -// ----------------------------------------------------------------------------- -void CEvtMgmtUiStartupContainer::AddColorIconL( CAknIconArray& aIcons, - const TDesC& aIconFileWithPath, - TAknsItemID aSkinID, - TInt aIconGraphicsIndex, - TInt aIconGraphicsMaskIndex ) - { - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - - // Repeat icon. Color skinned with day view icon color - // FIXME: highlight coloring in lists doesn't work for icons. - // When Avkon suplies some method to do that, change these - TAknsItemID colorGroup = KAknsIIDQsnIconColors; - TInt colorIndex = EAknsCIQsnIconColorsCG19; - TRgb nonSkinColor = AKN_LAF_COLOR(215); - - CFbsBitmap* bitmap = NULL; - CFbsBitmap* bitmapMask = NULL; - AknsUtils::CreateColorIconLC( skin, - aSkinID, - colorGroup, - colorIndex, - bitmap, - bitmapMask, - aIconFileWithPath, - aIconGraphicsIndex, - aIconGraphicsMaskIndex, - nonSkinColor ); - - CGulIcon* icon = CGulIcon::NewL( bitmap, bitmapMask ); - - // Remove the Bitmap and the Bitmap Icon from the Clean up stack since - // the ownership is taken over by the icon - CleanupStack::Pop( bitmapMask ); - CleanupStack::Pop( bitmap ); - - CleanupStack::PushL( icon ); - aIcons.AppendL( icon ); - CleanupStack::Pop( icon ); // icon - } - -// ----------------------------------------------------------------------------- -// CEvtMgmtUiStartupContainer::IconFileNameLC -// ----------------------------------------------------------------------------- -TFileName* CEvtMgmtUiStartupContainer::IconFileNameLC() const - { - TFileName* fileName = new(ELeave) TFileName; - CleanupStack::PushL( fileName ); - - TFileName* tmpName = new(ELeave) TFileName; - CleanupStack::PushL( tmpName ); - - tmpName->Append( KDC_BITMAP_DIR ); - tmpName->Append( KEvtMgmtUiIconFileName ); - - CEikAppUi *appUi = ( CEikAppUi *)( CEikonEnv::Static()->AppUi()); - TFileName appDrive = appUi->Application()->AppFullName(); - - TParse parse; - User::LeaveIfError( parse.Set( appDrive, NULL, NULL ) ); - User::LeaveIfError( parse.Set( parse.Drive(), tmpName, NULL ) ); - - fileName->Copy(parse.FullName()); - - CleanupStack::PopAndDestroy( tmpName ); - - return fileName; - } -// --------------------------------------------------------------------------- -// CEvtMgmtUiModel::UpdateListBoxL() -// It will update listbox -// --------------------------------------------------------------------------- -// -void CEvtMgmtUiStartupContainer::UpdateListBoxL(TInt aSelectedItemIndex) - { - iListBox->Model()->Filter()->ResetFilteringL(); - iFindBox->ResetL(); - iListBox->ClearSelection(); - - TInt count = iListBox->Model()->NumberOfItems(); - if( iPrevCount > count ) - { - iListBox->HandleItemRemovalL(); - iListBox->DrawNow(); - } - else - { - iListBox->HandleItemAdditionL(); - } - - iPrevCount = count; - - if( aSelectedItemIndex >= count ) - aSelectedItemIndex = count-1; - if(aSelectedItemIndex<0) - aSelectedItemIndex = 0; - - iListBox->SetCurrentItemIndexAndDraw( aSelectedItemIndex ); - - // Check for FindBox Visiblity - HandleFindBoxVisibility(); - } - -// --------------------------------------------------------------------------- -// CEvtMgmtUiStartupContainer::CurrentItemIndex() -// It will return the index of the selected item -// --------------------------------------------------------------------------- -// -TInt CEvtMgmtUiStartupContainer::CurrentItemIndex() - { - return iListBox->Model()->Filter()->FilteredItemIndex( iListBox->CurrentItemIndex() ); - } - -// --------------------------------------------------------------------------- -// CEvtMgmtUiStartupContainer::HandleMarkCmd() -// It will handle mark functionality. -// --------------------------------------------------------------------------- -// -void CEvtMgmtUiStartupContainer::HandleMarkCmdL( TInt aIndex, TBool aIsMarked ) - { - CListBoxView* listBoxView = iListBox->View(); - CAknFilteredTextListBoxModel* model = iListBox->Model(); - if( aIndex != KErrNotFound ) - { - TInt visibleIndex = model->Filter()->VisibleItemIndex(aIndex); - if (aIsMarked) - { - listBoxView->SelectItemL(visibleIndex); - } - else - { - listBoxView->DeselectItem(visibleIndex); - } - } - else - { - TInt itemCount = model->NumberOfItems(); - for (TUint i = 1; i < itemCount; i++) - { - TInt visibleIndex = model->Filter()->VisibleItemIndex(i); - if (aIsMarked) - { - listBoxView->SelectItemL(i); - } - else - { - listBoxView->DeselectItem(i); - } - } - } - } - -// --------------------------------------------------------------------------- -// CEvtMgmtUiStartupContainer::HandleMarkableListDynInitMenuPane() -// It will display mark menu items dynamically -// --------------------------------------------------------------------------- -// -void CEvtMgmtUiStartupContainer::HandleMarkableListDynInitMenuPane( TInt /*ResourceId */, CEikMenuPane *aMenuPane ) - { - TInt pos; - if( !aMenuPane->MenuItemExists(EAknCmdMark, pos) ) - return; - - TInt markItems = iListBox->SelectionIndexes()->Count(); - if( iListBox->CurrentItemIndex() == 0 ) //if 'Create New Event' - { - aMenuPane->SetItemDimmed( EAknCmdMark, ETrue ); - aMenuPane->SetItemDimmed( EAknCmdUnmark, ETrue ); - } - else - { - if(iListBox->View()->ItemIsSelected(iListBox->CurrentItemIndex()) ) - { - aMenuPane->SetItemDimmed( EAknCmdMark, ETrue ); - aMenuPane->SetItemDimmed( EAknCmdUnmark, EFalse ); - } - else - { - aMenuPane->SetItemDimmed( EAknCmdMark, EFalse ); - aMenuPane->SetItemDimmed( EAknCmdUnmark, ETrue ); - } - } - if( markItems < 1 )// if no item is selected - { - aMenuPane->SetItemDimmed( EAknUnmarkAll, ETrue ); - } - else - { - aMenuPane->SetItemDimmed( EAknUnmarkAll, EFalse ); - } - - if( markItems == iListBox->Model()->NumberOfItems()-1 )// if all items are selected - { - aMenuPane->SetItemDimmed( EAknMarkAll, ETrue ); - } - else - { - aMenuPane->SetItemDimmed( EAknMarkAll, EFalse ); - } - } - -// --------------------------------------------------------------------------- -// CEvtMgmtUiStartupContainer::NumberOfMarkedItems() -// It will return count of marked items -// --------------------------------------------------------------------------- -// -TInt CEvtMgmtUiStartupContainer::NumberOfMarkedItems() - { - return iListBox->SelectionIndexes()->Count(); - } - -// --------------------------------------------------------------------------- -// CEvtMgmtUiStartupContainer::MarkItems() -// It will return marked items -// --------------------------------------------------------------------------- -// -const CArrayFix* CEvtMgmtUiStartupContainer::MarkItems() - { - return iListBox->SelectionIndexes(); - } - -// --------------------------------------------------------------------------- -// CEvtMgmtUiStartupContainer::FilteredIndex() -// It will return marked items -// --------------------------------------------------------------------------- -// -TInt CEvtMgmtUiStartupContainer::FilteredIndex(TInt aIndex) - { - return iListBox->Model()->Filter()->FilteredItemIndex( aIndex ); - } - -// --------------------------------------------------------------------------- -// CEvtMgmtUiStartupContainer::FilteredCount() -// It will return count of marked items -// --------------------------------------------------------------------------- -// -TInt CEvtMgmtUiStartupContainer::FilteredCount() - { - return iListBox->Model()->Filter()->FilteredNumberOfItems(); - } - -// --------------------------------------------------------------------------- -// CEvtMgmtUiStartupContainer::MakeTitleL() -// Set the Title Text -// --------------------------------------------------------------------------- -// -void CEvtMgmtUiStartupContainer::MakeTitleL() - { - // Obtain the title from the Status Pane - CAknTitlePane* title = static_cast( iEikonEnv->AppUiFactory()-> - StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidTitle ))); - - // Set the Title's buffer - HBufC* buf = StringLoader::LoadL( R_EVTUI_TITLE ); - title->SetText( buf ); // Takes ownership of buf - } -// End of File