phonebookui/Phonebook2/GroupExtension/src/CPguGroupMembersView.cpp
branchRCL_3
changeset 85 38bb213f60ba
parent 74 6b5524b4f673
equal deleted inserted replaced
74:6b5524b4f673 85:38bb213f60ba
    20 
    20 
    21 // Phonebook 2
    21 // Phonebook 2
    22 #include "CPguAddMembersCmd.h"
    22 #include "CPguAddMembersCmd.h"
    23 #include "CPguRemoveFromGroupCmd.h"
    23 #include "CPguRemoveFromGroupCmd.h"
    24 #include "Pbk2GroupUi.hrh"
    24 #include "Pbk2GroupUi.hrh"
    25 #include <pbk2groupuires.rsg>
    25 #include <Pbk2GroupUIRes.rsg>
    26 #include <CPbk2AppUiBase.h>
    26 #include <CPbk2AppUiBase.h>
    27 #include <pbk2commands.rsg>
    27 #include <Pbk2Commands.rsg>
    28 #include <CPbk2UIExtensionView.h>
    28 #include <CPbk2UIExtensionView.h>
    29 #include <CPbk2DocumentBase.h>
    29 #include <CPbk2DocumentBase.h>
    30 #include <CPbk2NamesListControl.h>
    30 #include <CPbk2NamesListControl.h>
    31 #include <CPbk2ViewState.h>
    31 #include <CPbk2ViewState.h>
    32 #include <CPbk2ControlContainer.h>
    32 #include <CPbk2ControlContainer.h>
    47 #include <CPbk2ContactUiControlSubstitute.h>
    47 #include <CPbk2ContactUiControlSubstitute.h>
    48 #include <MPbk2StoreConfigurationObserver.h>
    48 #include <MPbk2StoreConfigurationObserver.h>
    49 #include <MPbk2ControlObserver.h>
    49 #include <MPbk2ControlObserver.h>
    50 #include <MPbk2NavigationObserver.h>
    50 #include <MPbk2NavigationObserver.h>
    51 #include <MPbk2MenuCommandObserver.h>
    51 #include <MPbk2MenuCommandObserver.h>
    52 #include <pbk2commonui.rsg>
    52 #include <Pbk2CommonUi.rsg>
    53 #include <pbk2uicontrols.rsg>
    53 #include <Pbk2UIControls.rsg>
    54 #include <MPbk2PointerEventInspector.h>
    54 #include <MPbk2PointerEventInspector.h>
    55 #include <MPbk2ApplicationServices.h>
    55 #include <MPbk2ApplicationServices.h>
    56 #include <MPbk2ContactViewSupplier.h>
    56 #include <MPbk2ContactViewSupplier.h>
    57 #include <CPbk2StoreConfiguration.h>
    57 #include <CPbk2StoreConfiguration.h>
    58 #include <MPbk2AppUi.h>
    58 #include <MPbk2AppUi.h>
    59 #include <Pbk2MenuFilteringFlags.hrh>
    59 #include <Pbk2MenuFilteringFlags.hrh>
    60 #include <CPbk2CommandStore.h>
       
    61 #include <CPbk2CommandHandler.h>
       
    62 
    60 
    63 // Virtual Phonebook
    61 // Virtual Phonebook
    64 #include <MVPbkContactViewBase.h>
    62 #include <MVPbkContactViewBase.h>
    65 #include <MVPbkViewContact.h>
    63 #include <MVPbkViewContact.h>
    66 #include <MVPbkExpandable.h>
    64 #include <MVPbkExpandable.h>
   468         /**
   466         /**
   469          * Destructor.
   467          * Destructor.
   470          */
   468          */
   471         virtual ~CGroupMembersViewImpl()
   469         virtual ~CGroupMembersViewImpl()
   472             {}
   470             {}
   473         
       
   474     public:
       
   475         
       
   476         void SetMarkingModeOn( TBool aMarkingModeOn )
       
   477             {
       
   478             iMarkingModeOn = aMarkingModeOn;
       
   479             }
       
   480         
       
   481         TBool IsMarkingModeOn()
       
   482             {
       
   483             return iMarkingModeOn;
       
   484             }
       
   485 
   471 
   486     protected: // Implementation
   472     protected: // Implementation
   487         CGroupMembersViewImpl() : iMarkingModeOn( EFalse )
   473         CGroupMembersViewImpl()
   488             {}
   474             {}
   489         
       
   490     protected:
       
   491         // Flag to indicate whether Marking mode is active
       
   492         TBool iMarkingModeOn;
       
   493     };
   475     };
   494 
   476 
   495 
   477 
   496 /**
   478 /**
   497  * Group members view implementation class. This class encapsulates
   479  * Group members view implementation class. This class encapsulates
   742         TBool iSelectionModifierUsed;
   724         TBool iSelectionModifierUsed;
   743         /// Own: Stylus popup menu state indicator
   725         /// Own: Stylus popup menu state indicator
   744         TBool iStylusPopupMenuLaunched;
   726         TBool iStylusPopupMenuLaunched;
   745         // Ref: Store management ptr
   727         // Ref: Store management ptr
   746         CPbk2StoreConfiguration* iStoreConf;
   728         CPbk2StoreConfiguration* iStoreConf;
   747         //OWN: Active scheduler wait for waiting the completion
       
   748         CActiveSchedulerWait    iWait;
       
   749         // Ref: To the command. Doesn't Own.
       
   750         MPguGroupCmd* iCommand;
       
   751     };
   729     };
   752 
   730 
   753 // --------------------------------------------------------------------------
   731 // --------------------------------------------------------------------------
   754 // CPguGroupMembersView::CGroupMembersViewImpl:::ContactViewUnavailable
   732 // CPguGroupMembersView::CGroupMembersViewImpl:::ContactViewUnavailable
   755 // --------------------------------------------------------------------------
   733 // --------------------------------------------------------------------------
  1099 // --------------------------------------------------------------------------
  1077 // --------------------------------------------------------------------------
  1100 //
  1078 //
  1101 CPguGroupMembersView::CGroupMembersAllGroupsReady::
  1079 CPguGroupMembersView::CGroupMembersAllGroupsReady::
  1102         ~CGroupMembersAllGroupsReady()
  1080         ~CGroupMembersAllGroupsReady()
  1103     {    
  1081     {    
  1104 
       
  1105     if( iWait.IsStarted() )
       
  1106         {
       
  1107         iWait.AsyncStop();  
       
  1108         }
       
  1109 
       
  1110     iCommandHandler.RemoveMenuCommandObserver( *this );
  1082     iCommandHandler.RemoveMenuCommandObserver( *this );
  1111 
  1083 
  1112     if ( iStoreConf )
  1084     if ( iStoreConf )
  1113         {
  1085         {
  1114         iStoreConf->RemoveObserver( *this );
  1086         iStoreConf->RemoveObserver( *this );
  1145     {
  1117     {
  1146     // Add this view to observe command events
  1118     // Add this view to observe command events
  1147     iCommandHandler.AddMenuCommandObserver(*this);
  1119     iCommandHandler.AddMenuCommandObserver(*this);
  1148 
  1120 
  1149     iStoreConf = &( Phonebook2::Pbk2AppUi()->ApplicationServices().
  1121     iStoreConf = &( Phonebook2::Pbk2AppUi()->ApplicationServices().
  1150         StoreConfiguration() );
  1122     	StoreConfiguration() );
  1151     iStoreConf->AddObserverL( *this );
  1123     iStoreConf->AddObserverL( *this );
  1152 
  1124 
  1153     // Expand the group members view from the all groups view
  1125     // Expand the group members view from the all groups view
  1154     const MVPbkViewContact& group =
  1126     const MVPbkViewContact& group =
  1155         Phonebook2::Pbk2AppUi()->ApplicationServices().
  1127         Phonebook2::Pbk2AppUi()->ApplicationServices().
  1451                 break;
  1423                 break;
  1452                 }
  1424                 }
  1453             case EKeyEnter: // FALLTHROUGH
  1425             case EKeyEnter: // FALLTHROUGH
  1454             case EKeyOK:
  1426             case EKeyOK:
  1455                 {
  1427                 {
  1456                 // The key will be handled by ListBox if there are contacts in this view
       
  1457                 if ( !ShiftDown(aKeyEvent) ) // pure OK or ENTER key
  1428                 if ( !ShiftDown(aKeyEvent) ) // pure OK or ENTER key
  1458                     {
  1429 					{	
  1459                     if ( iControl->NumberOfContacts() == 0 )
  1430                     if ( iControl->ContactsMarked() && itemSpecEnabled )
  1460                         {
  1431                     	{
  1461                         result = ETrue;
  1432                     	iView.LaunchPopupMenuL(
  1462                         }
  1433                     		R_PHONEBOOK2_GROUPMEMBERS_CONTEXT_MENUBAR);
       
  1434 						result = ETrue;
       
  1435 						}
       
  1436 					else if ( iControl->NumberOfContacts() == 0 )
       
  1437 						{
       
  1438 						result = ETrue;
       
  1439 						}
  1463                     }
  1440                     }
  1464                 break;
  1441                 break;
  1465                 }
  1442                 }
  1466 
  1443 
  1467             case EKeyPhoneSend:
  1444             case EKeyPhoneSend:
  1539                 aMenuPane->SetItemDimmed( EPbk2CmdOpenCca, ETrue );
  1516                 aMenuPane->SetItemDimmed( EPbk2CmdOpenCca, ETrue );
  1540                 }
  1517                 }
  1541             break;
  1518             break;
  1542             }
  1519             }
  1543 
  1520 
  1544         case R_AVKON_MENUPANE_MARK_MULTIPLE:
       
  1545                 {
       
  1546                 TInt markedContactCount = 0;
       
  1547                 
       
  1548                 CPbk2NamesListControl* nlctrl = static_cast <CPbk2NamesListControl*> (iControl);
       
  1549 
       
  1550                 CCoeControl* ctrl = nlctrl->ComponentControl(0);
       
  1551                 CEikListBox* listbox=static_cast <CEikListBox*> (ctrl);
       
  1552                 
       
  1553                 if ( listbox )
       
  1554                     {
       
  1555                     markedContactCount = listbox->SelectionIndexes()->Count();
       
  1556                     }
       
  1557                 // dim the makr all item if all contacts are marked. 
       
  1558                 if ( markedContactCount > 0 && markedContactCount == iControl->NumberOfContacts() )
       
  1559                     {
       
  1560                     aMenuPane->SetItemDimmed( EAknCmdMarkingModeMarkAll, ETrue );
       
  1561                     }
       
  1562                 break;
       
  1563                 }
       
  1564                 
       
  1565         case R_PHONEBOOK2_GROUPMEMBERS_MENU:
  1521         case R_PHONEBOOK2_GROUPMEMBERS_MENU:
  1566             {
  1522             {
  1567             // Weed out commands not meant to be used with empty list
  1523             // Weed out commands not meant to be used with empty list
  1568             if ( iControl->NumberOfContacts() == 0 )
  1524             if ( iControl->NumberOfContacts() == 0 )
  1569                 {
  1525                 {
  1573 
  1529 
  1574             if ( iControl->ContactsMarked() )
  1530             if ( iControl->ContactsMarked() )
  1575                 {
  1531                 {
  1576                 aMenuPane->SetItemDimmed( EPbk2CmdBelongsToGroups, ETrue );
  1532                 aMenuPane->SetItemDimmed( EPbk2CmdBelongsToGroups, ETrue );
  1577                 aMenuPane->SetItemDimmed( EPbk2CmdAddMembers, ETrue );
  1533                 aMenuPane->SetItemDimmed( EPbk2CmdAddMembers, ETrue );
       
  1534                 aMenuPane->SetItemSpecific( EPbk2CmdRemoveFromGroup, EFalse );
  1578                 }
  1535                 }
  1579             // Weed out commands not meant to be if names list is empty
  1536             // Weed out commands not meant to be if names list is empty
  1580             if ( Phonebook2::Pbk2AppUi()->ApplicationServices().
  1537             if ( Phonebook2::Pbk2AppUi()->ApplicationServices().
  1581                     ViewSupplier().AllContactsViewL()->ContactCountL() == 0 )
  1538                     ViewSupplier().AllContactsViewL()->ContactCountL() == 0 )
  1582                 {
  1539                 {
  1590             // Weed out commands not meant to be used with empty list
  1547             // Weed out commands not meant to be used with empty list
  1591             if ( iControl->NumberOfContacts() == 0 )
  1548             if ( iControl->NumberOfContacts() == 0 )
  1592                 {
  1549                 {
  1593                 aMenuPane->SetItemDimmed( EPbk2CmdSend, ETrue );
  1550                 aMenuPane->SetItemDimmed( EPbk2CmdSend, ETrue );
  1594                 }
  1551                 }
  1595                 
  1552             if ( iControl->ContactsMarked() )
  1596             // When Marking mode is active,
  1553                 {
  1597             // Send as business card item should be shown in pop up menu.
  1554                 aMenuPane->SetItemSpecific( EPbk2CmdSend, EFalse );
  1598             if( iMarkingModeOn )
       
  1599                 {
       
  1600                 aMenuPane->SetItemSpecific( EPbk2CmdSend, ETrue );
       
  1601                 }
  1555                 }
  1602             break;
  1556             break;
  1603             }
  1557             }
  1604 
  1558 
  1605         case R_PHONEBOOK2_GROUPMEMBERS_CONTEXT_MENU:
  1559         case R_PHONEBOOK2_GROUPMEMBERS_CONTEXT_MENU:
  1830                 // Set middle softkey as Context menu.
  1784                 // Set middle softkey as Context menu.
  1831                 iView.Cba()->SetCommandSetL(
  1785                 iView.Cba()->SetCommandSetL(
  1832                     R_PBK2_SOFTKEYS_OPTIONS_BACK_CONTEXT);
  1786                     R_PBK2_SOFTKEYS_OPTIONS_BACK_CONTEXT);
  1833                 }
  1787                 }
  1834             iView.Cba()->DrawDeferred();
  1788             iView.Cba()->DrawDeferred();
       
  1789             // Change context menu when marked items
       
  1790             iView.MenuBar()->SetContextMenuTitleResourceId
       
  1791                 ( R_PHONEBOOK2_GROUPMEMBERS_CONTEXT_MENUBAR );
  1835             }
  1792             }
  1836         }
  1793         }
  1837     }
  1794     }
  1838 
  1795 
  1839 // --------------------------------------------------------------------------
  1796 // --------------------------------------------------------------------------
  1864                     {
  1821                     {
  1865                     CPguRemoveFromGroupCmd* cmd =
  1822                     CPguRemoveFromGroupCmd* cmd =
  1866                             CPguRemoveFromGroupCmd::NewLC(
  1823                             CPguRemoveFromGroupCmd::NewLC(
  1867                                 *iViewParent.FocusedContact(),
  1824                                 *iViewParent.FocusedContact(),
  1868                                 *iControl);
  1825                                 *iControl);
  1869                     iCommandHandler.AddAndExecuteCommandL(cmd);                    
  1826                     iCommandHandler.AddAndExecuteCommandL(cmd);
       
  1827                     
  1870                     CleanupStack::Pop(cmd);  // command handler takes the ownership
  1828                     CleanupStack::Pop(cmd);  // command handler takes the ownership
  1871                     //Store the reference here. Reset to NULL when Command is Completed.
       
  1872                     iCommand = cmd;
       
  1873                     }
  1829                     }
  1874                 break;
  1830                 break;
  1875                 }
  1831                 }
  1876     
  1832     
  1877             case EPbk2CmdAddMembers:
  1833             case EPbk2CmdAddMembers:
  1878                 {
  1834                 {
  1879                 CPguAddMembersCmd* cmd =
  1835                 CPguAddMembersCmd* cmd =
  1880                         CPguAddMembersCmd::NewLC(*iViewParent.FocusedContact(),
  1836                         CPguAddMembersCmd::NewLC(*iViewParent.FocusedContact(),
  1881                             *iControl);
  1837                             *iControl);
  1882                 iCommandHandler.AddAndExecuteCommandL(cmd);                
  1838                 iCommandHandler.AddAndExecuteCommandL(cmd);
  1883                 CleanupStack::Pop(cmd); // command handler takes the ownership
  1839                 CleanupStack::Pop(cmd); // command handler takes the ownership
  1884                 //Store the reference here. Reset to NULL when Command is Completed. 
       
  1885                 iCommand = cmd;
       
  1886                 break;
  1840                 break;
  1887                 }
  1841                 }
  1888            
  1842     
  1889 			case EAknCmdExit:
       
  1890         	case EAknSoftkeyExit:
       
  1891         	case EPbk2CmdExit:
       
  1892             case EAknCmdHideInBackground:
       
  1893                 {
       
  1894                 CPbk2CommandStore* cmdStore = static_cast<CPbk2CommandHandler*>(&iCommandHandler)->CommandStore();
       
  1895                 if ( iCommand && cmdStore )
       
  1896                     {
       
  1897                     iCommand->Abort();
       
  1898                     cmdStore->DestroyAllCommands();
       
  1899                     
       
  1900                     if( !iWait.IsStarted() )
       
  1901                         {
       
  1902                         iWait.Start();  
       
  1903                         }  
       
  1904                     }                
       
  1905                 break;
       
  1906                 }    
       
  1907                 
       
  1908             default:
  1843             default:
  1909                 {
  1844                 {
  1910                 // Do nothing
  1845                 // Do nothing
  1911                 break;
  1846                 break;
  1912                 }
  1847                 }
  1963                     !iControl->ContactsMarked())
  1898                     !iControl->ContactsMarked())
  1964                     {
  1899                     {
  1965                     // Select key is mapped to "Open Contact" command
  1900                     // Select key is mapped to "Open Contact" command
  1966                     HandleCommandL( EPbk2CmdOpenCca );
  1901                     HandleCommandL( EPbk2CmdOpenCca );
  1967                     }
  1902                     }
       
  1903                 else
       
  1904                     {
       
  1905                     iView.LaunchPopupMenuL(
       
  1906                             R_PHONEBOOK2_GROUPMEMBERS_CONTEXT_MENUBAR);
       
  1907                     }
  1968                 break;
  1908                 break;
  1969                 }
  1909                 }
  1970             default:
  1910             default:
  1971                break;
  1911                break;
  1972             }
  1912             }
  2011               !iSelectionModifierUsed )
  1951               !iSelectionModifierUsed )
  2012         {
  1952         {
  2013         if ( iControl->NumberOfContacts() > 0 && 
  1953         if ( iControl->NumberOfContacts() > 0 && 
  2014                 iPointerEventInspector->FocusedItemPointed() )
  1954                 iPointerEventInspector->FocusedItemPointed() )
  2015             {
  1955             {
  2016             if ( !iControl->ContactsMarked() )
  1956             if ( iControl->ContactsMarked() )
       
  1957                 {
       
  1958                 iView.LaunchPopupMenuL(
       
  1959                     R_PHONEBOOK2_GROUPMEMBERS_CONTEXT_MENUBAR );
       
  1960                 }
       
  1961             else
  2017                 {
  1962                 {
  2018                 // Open contact
  1963                 // Open contact
  2019                 HandleCommandL(EPbk2CmdOpenCca);
  1964                 HandleCommandL(EPbk2CmdOpenCca);
  2020                 }
  1965                 }
  2021             }
  1966             }
  2047 void CPguGroupMembersView::CGroupMembersAllGroupsReady::PreCommandExecutionL
  1992 void CPguGroupMembersView::CGroupMembersAllGroupsReady::PreCommandExecutionL
  2048         ( const MPbk2Command& /*aCommand*/ )
  1993         ( const MPbk2Command& /*aCommand*/ )
  2049     {    
  1994     {    
  2050     if (iContainer && iContainer->Control())
  1995     if (iContainer && iContainer->Control())
  2051         {
  1996         {
  2052         iContainer->Control()->HideThumbnail();        
  1997         iContainer->Control()->HideThumbnail();
  2053         }
  1998         }
  2054     }
  1999     }
  2055 
  2000 
  2056 // --------------------------------------------------------------------------
  2001 // --------------------------------------------------------------------------
  2057 // CPguGroupMembersView::CGroupMembersAllGroupsReady::PostCommandExecutionL
  2002 // CPguGroupMembersView::CGroupMembersAllGroupsReady::PostCommandExecutionL
  2058 // --------------------------------------------------------------------------
  2003 // --------------------------------------------------------------------------
  2059 //
  2004 //
  2060 void CPguGroupMembersView::CGroupMembersAllGroupsReady::PostCommandExecutionL
  2005 void CPguGroupMembersView::CGroupMembersAllGroupsReady::PostCommandExecutionL
  2061         ( const MPbk2Command& /*aCommand*/ )
  2006         ( const MPbk2Command& /*aCommand*/ )
  2062     { 
  2007     {    
  2063     if ( iCommand )
       
  2064         {
       
  2065         iCommand = NULL;
       
  2066         }
       
  2067     
       
  2068     if ( iContainer && iContainer->Control() )
  2008     if ( iContainer && iContainer->Control() )
  2069         {
  2009         {
  2070         iContainer->Control()->ShowThumbnail();
  2010         iContainer->Control()->ShowThumbnail();
  2071         }
  2011         }
  2072 
  2012 
  2073     UpdateCbasL();
  2013     UpdateCbasL();
  2074     if( iWait.IsStarted() )
       
  2075         {
       
  2076         iWait.AsyncStop();  
       
  2077         }
       
  2078     
       
  2079     }
  2014     }
  2080 
  2015 
  2081 // --------------------------------------------------------------------------
  2016 // --------------------------------------------------------------------------
  2082 // CPguGroupMembersView::CPguGroupMembersView
  2017 // CPguGroupMembersView::CPguGroupMembersView
  2083 // --------------------------------------------------------------------------
  2018 // --------------------------------------------------------------------------
  2250         Phonebook2::Pbk2AppUi()->Pbk2StartupMonitor()->
  2185         Phonebook2::Pbk2AppUi()->Pbk2StartupMonitor()->
  2251             NotifyViewActivationL( iView.Id() );
  2186             NotifyViewActivationL( iView.Id() );
  2252         }
  2187         }
  2253 
  2188 
  2254     iViewImpl->CreateControlL(iView.ClientRect());
  2189     iViewImpl->CreateControlL(iView.ClientRect());
  2255 
  2190     
  2256     CPbk2NamesListControl* nlctrl=static_cast <CPbk2NamesListControl*> (iViewImpl->Control());
  2191     CPbk2NamesListControl* nlctrl=static_cast <CPbk2NamesListControl*> (iViewImpl->Control());
  2257 
       
  2258     // It will return the listbox by calling nlctrl->ComponentControl(0),
       
  2259     // which is defined in CPbk2NamesListControl::ComponentControl(TInt aIndex).
       
  2260     CCoeControl* ctrl=nlctrl->ComponentControl(0);
  2192     CCoeControl* ctrl=nlctrl->ComponentControl(0);
  2261     CEikListBox* listbox=static_cast <CEikListBox*> (ctrl);
  2193     CEikListBox* listbox=static_cast <CEikListBox*> (ctrl);
  2262     listbox->SetListBoxObserver( this );
  2194     listbox->SetListBoxObserver( this ); 
  2263     listbox->SetMarkingModeObserver( this );
       
  2264 
  2195 
  2265     iPreviousViewId = aPrevViewId;
  2196     iPreviousViewId = aPrevViewId;
  2266 
  2197 
  2267     viewActivationTransaction->Commit();
  2198     viewActivationTransaction->Commit();
  2268     CleanupStack::PopAndDestroy(); // viewActivationTransaction
  2199     CleanupStack::PopAndDestroy(); // viewActivationTransaction
  2344         {
  2275         {
  2345         switch ( aEventType )
  2276         switch ( aEventType )
  2346             {
  2277             {
  2347             case EEventItemDoubleClicked:
  2278             case EEventItemDoubleClicked:
  2348             case EEventItemSingleClicked:
  2279             case EEventItemSingleClicked:
  2349             case EEventEnterKeyPressed:
  2280 		    case EEventEnterKeyPressed:
  2350                 {
  2281                 {
  2351 
  2282 
  2352                 if ( iViewImpl )
  2283                 if ( iViewImpl )
  2353                     {
  2284                     {
  2354                     // route the events to the view implementing the application
  2285                     // route the events to the view implementing the application
  2373 // --------------------------------------------------------------------------
  2304 // --------------------------------------------------------------------------
  2374 //
  2305 //
  2375 void CPguGroupMembersView::HandlePointerEventL(
  2306 void CPguGroupMembersView::HandlePointerEventL(
  2376         const TPointerEvent& aPointerEvent)
  2307         const TPointerEvent& aPointerEvent)
  2377     {
  2308     {
  2378     if ( iViewImpl && !iViewImpl->IsMarkingModeOn() )
  2309     if ( iViewImpl )
  2379         {
  2310         {
  2380         // Route the pointer events to the view implementing the application
  2311         // route the pointer events to the view implementing the application
  2381         // view currently except the Marking mode is active, 
  2312         // view currently
  2382         // because the event is handled by avkon when marking mode is active.
       
  2383         iViewImpl->HandlePointerEventL(aPointerEvent);
  2313         iViewImpl->HandlePointerEventL(aPointerEvent);
  2384         }
  2314         }
  2385     }
  2315     }
  2386 
  2316 
  2387 // --------------------------------------------------------------------------
  2317 // --------------------------------------------------------------------------
  2397         // route the long tap event to the view implementing the application
  2327         // route the long tap event to the view implementing the application
  2398         // view currently
  2328         // view currently
  2399         iViewImpl->HandleLongTapEventL(
  2329         iViewImpl->HandleLongTapEventL(
  2400             aPenEventLocation, aPenEventScreenLocation );
  2330             aPenEventLocation, aPenEventScreenLocation );
  2401         }
  2331         }
  2402     }
       
  2403 
       
  2404 // -----------------------------------------------------------------------------
       
  2405 // CPguGroupMembersView::MarkingModeStatusChanged
       
  2406 // -----------------------------------------------------------------------------
       
  2407 //
       
  2408 void CPguGroupMembersView::MarkingModeStatusChanged( TBool aActivated )
       
  2409     {
       
  2410     if( iViewImpl )
       
  2411         {
       
  2412         iViewImpl->SetMarkingModeOn( aActivated );
       
  2413         CPbk2NamesListControl* nlctrl = 
       
  2414             static_cast <CPbk2NamesListControl*> (iViewImpl->Control());
       
  2415         if( !aActivated )
       
  2416             {
       
  2417             // It will return the findbox by calling 
       
  2418             // nlctrl->ComponentControl(1), which is defined in 
       
  2419             // CPbk2NamesListControl::ComponentControl(TInt aIndex).
       
  2420             CCoeControl* ctrl=nlctrl->ComponentControl(1);
       
  2421             if( ctrl->IsVisible() )
       
  2422                 {
       
  2423                 // Clear the text of the FindBox
       
  2424                 // when canceling from Marking mode.
       
  2425                 TRAP_IGNORE( nlctrl->ResetFindL() );
       
  2426                 }
       
  2427             }
       
  2428         nlctrl->SetMarkingMode( aActivated );
       
  2429         }
       
  2430     }
       
  2431 
       
  2432 // -----------------------------------------------------------------------------
       
  2433 // CPguGroupMembersView::ExitMarkingMode
       
  2434 // Called by avkon, if the return value is ETrue, 
       
  2435 // the Marking mode will be canceled after any operation,
       
  2436 // otherwise the Marking mode keep active.
       
  2437 // -----------------------------------------------------------------------------
       
  2438 //
       
  2439 TBool CPguGroupMembersView::ExitMarkingMode() const
       
  2440     {
       
  2441     return ETrue; 
       
  2442     }
  2332     }
  2443 
  2333 
  2444 // --------------------------------------------------------------------------
  2334 // --------------------------------------------------------------------------
  2445 // CPguGroupMembersView::TransformViewActivationStateToReady
  2335 // CPguGroupMembersView::TransformViewActivationStateToReady
  2446 // --------------------------------------------------------------------------
  2336 // --------------------------------------------------------------------------