1 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
22 class MEikAutoMenuObserver;
24 /** A menu title that will be added to a standard resource-constructed menu bar.
26 If added to the CEikAutoMenuTitleArray stored by CEikonEnv during standard
27 application start up, the menu pane specified will appear in all applications.
28 The menu observer passed in is notified of any events on such menu panes in
29 preference to the usual observer (C<MyApp>AppUi).
33 NONSHARABLE_CLASS(CEikAutoMenuTitle) : public CBase
36 /** Specifies the position of a menu title in a menu.
38 If an array of menu titles holds more than one menu title that is specified
39 for the start or end of a menu, the menu titles are placed in the same order
40 as that in which they appear in the array. This means the first menu title
41 specified with EStart in an array will be the first on a menu bar and the last
42 EEnd will be the last on a menu bar. */
45 /** The menu title is placed first in a menu. */
47 /** The menu title is placed last in a menu. */
50 enum { ENominalTextLength=40 };
52 IMPORT_C static CEikAutoMenuTitle* NewLC(TTitlePos aPos, const TDesC& aText, MEikAutoMenuObserver& aMenuObserver,
53 TInt aMenuPaneResourceId = 0, CGulIcon* aIcon = NULL);
54 IMPORT_C ~CEikAutoMenuTitle();
56 CEikAutoMenuTitle(TTitlePos aPos, const TDesC& aText, MEikAutoMenuObserver& aMenuObserver,
57 TInt aMenuPaneResourceId, CGulIcon* aIcon);
60 TBuf<ENominalTextLength> iText;
61 MEikAutoMenuObserver& iMenuObserver;
62 TInt iMenuPaneResourceId;
67 /** Creates a standard array of CEikAutoMenuTitle objects.
71 NONSHARABLE_CLASS(CEikAutoMenuTitleArray) : public CArrayPtrFlat<CEikAutoMenuTitle>
72 // If more than one title is specified for the start or end, they will be placed in the same order they appear
73 // in the array (so the first EStart in the array will be the first on a menu bar also but the last EEnd will
77 CEikAutoMenuTitleArray();
78 ~CEikAutoMenuTitleArray();
81 #endif // __EIKAMNT_H__