2 * Copyright (c) 2004-2007 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * under the terms of "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".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
14 * Description: An interface for objects that can be expanded to a view
19 #ifndef MVPBKEXPANDABLE_H
20 #define MVPBKEXPANDABLE_H
25 // FORWARD DECLARATIONS
26 class MVPbkContactViewBase;
27 class MVPbkContactViewObserver;
28 class MVPbkFieldTypeList;
33 * An interface for objects that can be expanded to a view
35 * E.g. a view contact that represents a group can be expanded
36 * to the group members view.
37 * @see MVPbkViewContact
41 protected: // destructor
45 virtual ~MVPbkExpandable() { }
49 * Returns an expanded view that is constructed asynchronously.
51 * A client must wait the expanded view to become ready before
54 * @param aObserver A contact view observer
55 * @param aSortOrder A contact view sort order.
56 * @return the expanded view.
57 * @return The child view.
59 virtual MVPbkContactViewBase* ExpandLC(
60 MVPbkContactViewObserver& aObserver,
61 const MVPbkFieldTypeList& aSortOrder ) const =0;
64 * Returns an extension point for this interface or NULL.
66 * @param aExtensionUid no extensions defined currently.
67 * @return an extension point for this interface or NULL.
69 virtual TAny* ExpandableExtension( TUid /*aExtensionUid*/ )
73 #endif // MVPBKEXPANDABLE_H