taskswitcher/server/inc/tsrunningappentry.h
author hgs
Mon, 18 Oct 2010 10:44:15 +0300
changeset 127 7b66bc3c6dc9
permissions -rw-r--r--
201041

/*
* Copyright (c) 2008 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:  Task list entry
*
*/

#ifndef TSRUNNINGAPPENTRY_H
#define TSRUNNINGAPPENTRY_H

#include <e32base.h>
#include <e32cmn.h>

#include "tsrunningapp.h"
#include "tsentrykey.h"
#include "tstaskmonitorglobals.h"
#include "tsthumbnailobserver.h"


class CTsRunningAppEntry;
class CFbsBitmap;
class QObject;
class MTsResourceManager;
class MTsDataObserver;
class TsThumbnailProvider;

typedef RPointerArray<CTsRunningAppEntry> RTsFswArray;

/**
 * An entry in the task list.
 */
NONSHARABLE_CLASS( CTsRunningAppEntry ) : public CBase,
                                          public MTsRunningApplication,
                                          private MTsThumbnailObserver
{
public:
    static CTsRunningAppEntry *NewL(const TTsEntryKey aKey, 
                                    const MTsRunningApplication& aCacheEntry,
                                    MTsResourceManager& aResources, 
                                    MTsDataObserver &observer, 
                                    QObject* obj);
    static CTsRunningAppEntry *NewLC(const TTsEntryKey aKey,
                                     const MTsRunningApplication& aCacheEntry,
                                     MTsResourceManager& aResources,
                                     MTsDataObserver &observer, 
                                     QObject* obj);
    ~CTsRunningAppEntry();

public://from MTsRunningApplication
    TUid Uid()const;
    ApplicationHideMode HideMode() const;
    void SetHidden( TBool aHidden );
    TBool IsSystem() const;
    TInt WindowGroupId() const;
    TInt ParentWindowGroupId() const;
    TBool IsEmbeded() const;
    
    const TDesC& DisplayName() const;
    TInt IconHandle() const;
    TTime Timestamp() const;
    TTime TimestampUpdate() const; 
    TTsEntryKey Key() const;
    TBool IsActive() const;
    TBool IsClosable() const;
    TBool Close() const;
    TBool Launch() const;
    TBool IsMandatory() const;

public:
    void SetScreenshotL(const CFbsBitmap &bitmap, UpdatePriority priority, TInt angle);
    void RemoveScreenshotL();
    void RefreshTimestamp();
    void RefreshUpdateTimestamp();
    void SetCloseableApp(TBool aClosable);

private:
    CTsRunningAppEntry(const TTsEntryKey aKey,
                       MTsResourceManager& aResources,
                       MTsDataObserver &aObserver);
    void ConstructL(const MTsRunningApplication& aCacheEntry, QObject* aObject);
    void CreateDisplayNameL(const MTsRunningApplication& aCacheEntry);

public://from MTsThumbnailObserver
    void ThumbnailCreated(const CFbsBitmap& aThumbnail);

private:
    MTsResourceManager& iResources;
    MTsDataObserver& iObserver;
    
    const TTsEntryKey iKey;
    UpdatePriority iPriority;
    TUid iUid;
    TBool iIsSystem;
    ApplicationHideMode iHideMode;
    TInt iWindowGroupId;
    TInt iParentWindowGroupId;
    TTime iTimestamp;
    TTime iUpdateTimestamp;
    HBufC *iCaption;
    mutable CFbsBitmap* iThumbnail;
    TsThumbnailProvider* iThumbnailProvider;

};

#endif //TSRUNNINGAPPENTRY_H