taskswitcher/contextengine/hgfswserver/engine/src/hgfswidgetlist.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 18 Jan 2010 20:10:36 +0200
changeset 2 08c6ee43b396
permissions -rw-r--r--
Revision: 201001 Kit: 201003

/*
 * ============================================================================
 *  Name        : hgfswidgetlist.cpp
 *  Part of     : Hg Teleport
 *  Description : web widget list
 *  Version     : %version: sa1spcx1#5 %
 *
 *  Copyright 2008 Nokia.  All rights reserved.
 *  This material, including documentation and any related computer
 *  programs, is protected by copyright controlled by Nokia.  All
 *  rights are reserved.  Copying, including reproducing, storing,
 *  adapting or translating, any or all of this material requires the
 *  prior written consent of Nokia.  This material also contains
 *  confidential information which may not be disclosed to others
 *  without the prior written consent of Nokia.
 * ============================================================================
 */

#include "hgfswidgetlist.h"
#include <widgetregistrydata.h>

// --------------------------------------------------------------------------
// CHgFsWidgetList::NewL
// --------------------------------------------------------------------------
//
CHgFsWidgetList* CHgFsWidgetList::NewL()
    {
    return new (ELeave) CHgFsWidgetList;
    }

// --------------------------------------------------------------------------
// CHgFsWidgetList::CHgFsWidgetList
// --------------------------------------------------------------------------
//   
CHgFsWidgetList::CHgFsWidgetList()
    {
    }

// --------------------------------------------------------------------------
// CHgFsWidgetList::~CHgFsWidgetList
// --------------------------------------------------------------------------
//
CHgFsWidgetList::~CHgFsWidgetList()
    {
    ResetArrayOfWidgetInfo( iRunningWidgets );        
    iRunningWidgets.Reset();
    }

// --------------------------------------------------------------------------
// CHgFsWidgetList::CleanupConnect
// --------------------------------------------------------------------------
//
void CHgFsWidgetList::CleanupConnect( TAny* aThis )
    {
    CHgFsWidgetList* self = static_cast<CHgFsWidgetList*>( aThis );
    self->iWidgetRegistryClientSession.Disconnect();
    }

// --------------------------------------------------------------------------
// CHgFsWidgetList::InitializeWidgetListL
// --------------------------------------------------------------------------
//
void CHgFsWidgetList::InitializeWidgetListL()
    {
    ResetArrayOfWidgetInfo( iRunningWidgets );
    iRunningWidgets.Reset();
    User::LeaveIfError( iWidgetRegistryClientSession.Connect() );
    CleanupStack::PushL( TCleanupItem( CleanupConnect, this) );
    iWidgetRegistryClientSession.RunningWidgetsL(iRunningWidgets);
    CleanupStack::Pop(); // clean WidgetRegistryClientSession item
    iWidgetRegistryClientSession.Disconnect();
    }

// --------------------------------------------------------------------------
// CHgFsWidgetList::ResetArrayOfWidgetInfo
// --------------------------------------------------------------------------
//
void CHgFsWidgetList::ResetArrayOfWidgetInfo( 
        RWidgetInfoArray& aWidgetInfoArr )
    {
    for ( TInt i = 0; i < aWidgetInfoArr.Count(); i++ )
        {
        CWidgetInfo *item = aWidgetInfoArr[i];
        delete item;
        }
    }


// end of file