mediasettings/mediasettingsapp/src/MPSettingsMainView.cpp
changeset 0 96612d01cf9f
child 1 6711b85517b7
equal deleted inserted replaced
-1:000000000000 0:96612d01cf9f
       
     1 /*
       
     2 * Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of the License "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:   MPSettingsMainView.cpp*
       
    15 */
       
    16 
       
    17 
       
    18 // Version : %version: 5 %
       
    19 
       
    20 
       
    21 
       
    22 // INCLUDE FILES
       
    23 #include    <avkon.hrh>
       
    24 #include    <MediaSettings.rsg>
       
    25 #include    <calslbs.h>
       
    26 #include    "MPSettingsAppUi.h"
       
    27 #include    "MPSettingsMainView.h"
       
    28 #include    "MPSettingsMainContainer.h" 
       
    29 #include    "mediasettings.hrh"
       
    30 #include    "MPSettingsConstants.h"
       
    31 #include    "MPSettingsModelForROP.h"
       
    32 #include    "mpxlog.h"
       
    33 
       
    34 // CONSTANTS
       
    35 const TInt KMPSettTopItemIndex = 0;
       
    36 
       
    37 // ================= MEMBER FUNCTIONS =======================
       
    38 
       
    39 // -----------------------------------------------------------------------------
       
    40 // CMPSettingsMainView::CMPSettingsMainView
       
    41 // C++ default constructor can NOT contain any code, that
       
    42 // might leave.
       
    43 // -----------------------------------------------------------------------------
       
    44 //
       
    45 CMPSettingsMainView::CMPSettingsMainView(CArrayFix<TUid>* aViewIds, CMPSettingsModelForROP* aModel, TBool iConstructAsGsPlugin) 
       
    46     : iViewIds(aViewIds), iModel(aModel), iGsPlugin(iConstructAsGsPlugin)
       
    47     {
       
    48     MPX_DEBUG2(_L("#MS# CMPSettingsMainView::CMPSettingsMainView() iGsPlugin(%d)"),iGsPlugin);
       
    49     }
       
    50 
       
    51 // ---------------------------------------------------------
       
    52 // CMPSettingsMainView::ConstructL
       
    53 // Symbian 2nd phase constructor can leave.
       
    54 // ---------------------------------------------------------
       
    55 //
       
    56 void CMPSettingsMainView::ConstructL()
       
    57     {
       
    58     MPX_DEBUG1(_L("#MS# CMPSettingsMainView::ConstructL()"));
       
    59     BaseConstructL(R_MPSETT_MAIN_VIEW);
       
    60     }
       
    61 
       
    62 // -----------------------------------------------------------------------------
       
    63 // CMPSettingsMainView::NewLC
       
    64 // Two-phased constructor.
       
    65 // -----------------------------------------------------------------------------
       
    66 //
       
    67 CMPSettingsMainView* CMPSettingsMainView::NewLC(CArrayFix<TUid>* aViewIds, CMPSettingsModelForROP* aModel, TBool iConstructAsGsPlugin)
       
    68     {
       
    69     MPX_DEBUG1(_L("#MS# CMPSettingsMainView::NewLC()"));
       
    70     CMPSettingsMainView* self = new(ELeave) CMPSettingsMainView(aViewIds,aModel,iConstructAsGsPlugin);
       
    71     
       
    72     CleanupStack::PushL(self);
       
    73     self->ConstructL();
       
    74 
       
    75     return self;
       
    76     }
       
    77 
       
    78 // ---------------------------------------------------------
       
    79 // CMPSettingsMainView::~CMPSettingsMainView
       
    80 // ---------------------------------------------------------
       
    81 //
       
    82 CMPSettingsMainView::~CMPSettingsMainView()
       
    83     {   
       
    84     MPX_DEBUG1(_L("#MS# CMPSettingsMainView::~CMPSettingsMainView()"));
       
    85     }
       
    86 
       
    87 // ---------------------------------------------------------
       
    88 // TUid CMPSettingsMainView::Id
       
    89 // ---------------------------------------------------------
       
    90 //
       
    91 TUid CMPSettingsMainView::Id() const
       
    92     {
       
    93     MPX_DEBUG1(_L("#MS# CMPSettingsMainView::Id()"));
       
    94     return KMPSettMainViewId;
       
    95     }
       
    96 
       
    97 // ---------------------------------------------------------
       
    98 // CMPSettingsMainView::HandleCommandL
       
    99 // ---------------------------------------------------------
       
   100 //
       
   101 void CMPSettingsMainView::HandleCommandL(TInt aCommand)
       
   102     {   
       
   103     MPX_DEBUG2(_L("#MS# CMPSettingsMainView::HandleCommandL(%d)"),aCommand);
       
   104     switch (aCommand)
       
   105         {
       
   106         case EMPSettCmdOpen:
       
   107             HandleListBoxSelectionL();
       
   108             break;
       
   109         case EAknSoftkeyBack:
       
   110             if (iGsPlugin)
       
   111             {
       
   112                 AppUi()->ActivateLocalViewL( KGSVideoPluginUid );       
       
   113             }
       
   114             else
       
   115             {
       
   116                 AppUi()->HandleCommandL(EEikCmdExit);
       
   117             }
       
   118             break;
       
   119         default:
       
   120             AppUi()->HandleCommandL(aCommand);
       
   121             break;
       
   122         }
       
   123     }
       
   124 
       
   125 // ---------------------------------------------------------------------------
       
   126 // CMPSettingsMainView::NewContainerL
       
   127 // ---------------------------------------------------------------------------
       
   128 //
       
   129 CMPSettingsBaseContainer* CMPSettingsMainView::NewContainerL()
       
   130     {
       
   131     MPX_DEBUG1(_L("#MS# CMPSettingsMainView::NewContainerL()"));
       
   132     return new(ELeave) CMPSettingsMainContainer;
       
   133     }  
       
   134 
       
   135 // ---------------------------------------------------------------------------
       
   136 // CMPSettingsMainView::ActiveFolder
       
   137 // ---------------------------------------------------------------------------
       
   138 //
       
   139 TInt CMPSettingsMainView::ActiveFolder()
       
   140     {
       
   141     MPX_DEBUG2(_L("#MS# CMPSettingsMainView::ActiveFolder() ret %d"),iCurrentItem);
       
   142     return iCurrentItem;
       
   143     }
       
   144 
       
   145 // ---------------------------------------------------------------------------
       
   146 // CMPSettingsMainView::SetActiveFolder
       
   147 // ---------------------------------------------------------------------------
       
   148 //
       
   149 void CMPSettingsMainView::SetActiveFolder(TInt aCurrentItem)
       
   150     {
       
   151     MPX_DEBUG2(_L("#MS# CMPSettingsMainView::SetActiveFolder(%d)"),aCurrentItem);
       
   152     iCurrentItem = aCurrentItem;
       
   153     }
       
   154 
       
   155 // ---------------------------------------------------------------------------
       
   156 // CMPSettingsMainView::HandleListBoxEventL
       
   157 // ---------------------------------------------------------------------------
       
   158 //
       
   159 void CMPSettingsMainView::HandleListBoxEventL(CEikListBox* /*aListBox*/, TListBoxEvent aEventType)
       
   160     {
       
   161     MPX_DEBUG2(_L("#MS# CMPSettingsMainView::HandleListBoxEventL(0x%X)"),aEventType);
       
   162     switch (aEventType)
       
   163         {
       
   164         case EEventEnterKeyPressed:
       
   165         case EEventItemSingleClicked:
       
   166         case EEventItemDoubleClicked:
       
   167             HandleListBoxSelectionL();
       
   168             break;
       
   169         default:
       
   170            break;
       
   171         }
       
   172     }
       
   173 
       
   174 // ---------------------------------------------------------------------------
       
   175 // CMPSettingsMainView::DynInitContainerL
       
   176 // ---------------------------------------------------------------------------
       
   177 //
       
   178 void CMPSettingsMainView::DynInitContainerL()
       
   179     {
       
   180     MPX_DEBUG1(_L("#MS# CMPSettingsMainView::DynInitContainerL()"));
       
   181     CEikTextListBox* listbox = iContainer->ListBox();
       
   182 
       
   183     listbox->SetListBoxObserver(this);
       
   184     listbox->SetTopItemIndex(iTopItemIndex);
       
   185 
       
   186     if (iCurrentItem >= 0 && iCurrentItem < listbox->Model()->NumberOfItems())
       
   187         {
       
   188         listbox->SetCurrentItemIndexAndDraw(iCurrentItem);
       
   189         }
       
   190     CMPSettingsBaseView::SetMiddleSoftKeyLabelL(R_MEDIASETTING_MSK_OPEN,EMPSettCmdOpen);
       
   191     }
       
   192 
       
   193 // ---------------------------------------------------------------------------
       
   194 // CMPSettingsMainView::HandleListBoxSelectionL()
       
   195 // Handles listbox selection.
       
   196 // ---------------------------------------------------------------------------
       
   197 //
       
   198 void CMPSettingsMainView::HandleListBoxSelectionL() 
       
   199     {
       
   200     iCurrentItem = iContainer->ListBox()->CurrentItemIndex();
       
   201     iTopItemIndex = iContainer->ListBox()->TopItemIndex();
       
   202     MPX_DEBUG3(_L("#MS# CMPSettingsMainView::HandleListBoxSelectionL() iCurrentItem(%d,%d)"),iCurrentItem,iTopItemIndex);
       
   203     
       
   204     CMPSettingsBaseView* view = NULL;
       
   205     TInt count = iViewIds->Count();
       
   206 
       
   207     for (TInt i = 0; i < count; i++)
       
   208         {
       
   209         view = static_cast<CMPSettingsBaseView*>(AppUi()->View(iViewIds->At(i)));
       
   210         view->SetCurrentItem(KMPSettTopItemIndex);
       
   211         }
       
   212 
       
   213     AppUi()->ActivateLocalViewL(iViewIds->At(iCurrentItem));
       
   214     }
       
   215 
       
   216 
       
   217 // End of File
       
   218