diff -r 000000000000 -r 2f259fa3e83a uifw/uiklaf/inc/LAFMENUP.H --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uifw/uiklaf/inc/LAFMENUP.H Tue Feb 02 01:00:49 2010 +0200 @@ -0,0 +1,265 @@ +/* +* Copyright (c) 1997-1999 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: +* +*/ + + +#ifndef __LAFMENUP_H__ +#define __LAFMENUP_H__ + + +#include +#include +#include +#include +#include +#include +#include "lafsbfrm.h" + +class CGulIcon; +class TMargins8; + +// +// class LafMenuPane +// + +class LafMenuPane + { +public: + enum TInternalFlags + { + EMenuHasIcon = 0x1, + EMenuHasHotkey = 0x2, + EMenuHasLeftAdornment = 0x4, + EMenuHasRightAdornment = 0x8, + EMenuIsLeftAdornment = 0x10, + EMenuIsRightAdornment = 0x20 + }; +public: + class TItemAttributes + { + public: + IMPORT_C TItemAttributes(); + public: + TInt iBaseLine; + TInt iFlags; + TInt iInternalFlags; + TInt iHeight; + SLafMenuPane::THighlightType iHighlightType; + TInt iHPosition; + }; +public: + IMPORT_C static TBool FadeBehind(); + IMPORT_C static void GetDefaultBorder(TGulBorder& aBorder); + IMPORT_C static void GetBorderColors(TGulBorder::TColors& aBorderColors,const MLafEnv& aLafEnv,const CCoeControl& aMatchedControl); + IMPORT_C static const TMargins8 CascadeMargins(); + IMPORT_C static const TMargins8 Margins(); + IMPORT_C static const TMargins8 ScrollBarMargins(); + IMPORT_C static TBool ShowHotKeys(); + IMPORT_C static void GetDefaultScrollBarAttributes(TInt aOrientation, LafScrollBarFrame::TScrollBarAttributes& aAttributes); + IMPORT_C static TInt DefaultScrollBarFlags(TInt aOrientation); + IMPORT_C static TInt AdornmentSpace(const TItemAttributes& aItemAttributes); + IMPORT_C static TInt InputCapabilities(); + IMPORT_C static TBool SelectFirstItemOnConstruction(); + IMPORT_C static TInt DefaultCbaResId(); + IMPORT_C static void GetColorUseListL(CArrayFix& aColorUseList); + IMPORT_C static TUint MapKeyCode(const TKeyEvent& aKeyEvent,TEventCode aType); +// Drawing + IMPORT_C static void DrawVisualFeedback(const MLafEnv& aLafEnv, const CCoeControl& aMenuPane, CWindowGc& aGc, const TRect& aRect); + IMPORT_C static void DrawHotKeyText(const MLafEnv& aLafEnv, const CCoeControl& aMenuPane, CWindowGc& aGc, const TRect& aRect, const TDesC& aHotKeysText, const TItemAttributes& aItemAttributes); + IMPORT_C static void DrawLeftAdornment(const MLafEnv& aLafEnv, const CCoeControl& aMenuPane, CWindowGc& aGc, const TRect& aRect, const TItemAttributes& aItemAttributes); + IMPORT_C static void DrawRightAdornment(const MLafEnv& aLafEnv, const CCoeControl& aMenuPane, CWindowGc& aGc, const TRect& aRect, const TItemAttributes& aItemAttributes); + IMPORT_C static void DrawSeperator(const MLafEnv& aLafEnv, const CCoeControl& aMenuPane, CWindowGc& aGc, const TRect& aRect, const TItemAttributes& aItemAttributes); + IMPORT_C static void DrawText(const MLafEnv& aLafEnv, const CCoeControl& aMenuPane, CWindowGc& aGc, const TRect& aRect, const TDesC& aText, const TItemAttributes& aItemAttributes); + IMPORT_C static void DrawTitlePaneJoint(const MLafEnv& aLafEnv, const CCoeControl& aMenuPane, CWindowGc& aGc, const CCoeControl* aMenuPaneTitle, const TRect& aInnerRect); + IMPORT_C static void PrepareGcForDrawingItems(const MLafEnv& aLafEnv, const CCoeControl& aMenuPane, CWindowGc& aGc); + IMPORT_C static void PrepareGcForHighlight(const MLafEnv& aLafEnv, const CCoeControl& aMenuPane, CWindowGc& aGc, const TItemAttributes& aItemAttributes); +public: +// Constants + inline static TInt ExtraBaselineOffset(); + inline static TInt MenuCascadeOverlap(); + inline static TInt MenuPaneTextTopSpace(); + inline static TInt MenuPaneTextBottomSpace(); + inline static TInt MenuPaneSeparatorAfterSpace(); + inline static TInt MenuPaneSeparatorMargin(); + inline static TInt MenuSeparatorYOffset(); + inline static TInt OffsetBetweenMenuPaneAndMenuPaneTitle(); + inline static TInt PostIconSpace(); + inline static TInt PostRightAdornmentSpace(); + inline static TInt PreIconSpace(); + inline static TInt ShadowHeight(); + inline static TInt SpaceBetweenTextAndHotkey(); + inline static TInt NumberOfItemsInView(); +// Fonts + inline static const CFont* AnnotationFont(const MLafEnv& aLafEnv); + inline static const CFont* NormalFont(const MLafEnv& aLafEnv); + inline static const CFont* SymbolFont(const MLafEnv& aLafEnv); +private: + enum TConstantType + { + EPostRightAdornmentSpace, + EMenuPaneTextTopSpace, + EMenuPaneTextBottomSpace, + ESpaceBetweenTextAndHotkey, + EOffsetBetweenMenuPaneAndMenuPaneTitle, + EMenuPaneSeparatorMargin, + EShadowHeight, + EPreIconSpace, + EPostIconSpace, + EExtraBaselineOffset, + EMenuPaneSeparatorAfterSpace, + EMenuCascadeOverlap, + EMenuSeparatorYOffset, + ENumberOfItemsInView + }; + enum TFontType + { + EAnnotation, + ENormal, + ESymbol + }; +private: + IMPORT_C static TInt Constant(TConstantType aConstantType); + IMPORT_C static const CFont* Font(const MLafEnv& aLafEnv, TFontType aFontType); + }; + +// +// class LafMenuPaneItem +// + +class LafMenuPaneItem + { +public: + IMPORT_C static void DrawIcon(const MLafEnv& aLafEnv, const CCoeControl& aMenuPane, CWindowGc& aGc, const TRect& aRect, const CGulIcon* aIcon, SLafMenuPane::THighlightType aHighlightType); + }; + + +// +// Inlines +// + +/** + * Returns the post right adornment space. + */ +inline TInt LafMenuPane::PostRightAdornmentSpace() + {//static + return Constant(EPostRightAdornmentSpace); + }; + +/** + * Returns an extra space which will be added to the height of item font. + */ +inline TInt LafMenuPane::MenuPaneTextTopSpace() + {//static + return Constant(EMenuPaneTextTopSpace); + } + +/** + * Returns an extra space which will be added to the height of item font. + */ +inline TInt LafMenuPane::MenuPaneTextBottomSpace() + {//static + return Constant(EMenuPaneTextBottomSpace); + } + +/** + * Returns the space between the item text and the hotkey. + */ +inline TInt LafMenuPane::SpaceBetweenTextAndHotkey() + {//static + return Constant(ESpaceBetweenTextAndHotkey); + } + +inline TInt LafMenuPane::OffsetBetweenMenuPaneAndMenuPaneTitle() + {//static + return Constant(EOffsetBetweenMenuPaneAndMenuPaneTitle); + } + +/** + * Returns the shadow height for the menu pane. + */ +inline TInt LafMenuPane::ShadowHeight() + {//static + return Constant(EShadowHeight); + } + +inline TInt LafMenuPane::MenuPaneSeparatorMargin() + {//static + return Constant(EMenuPaneSeparatorMargin); + } + +inline TInt LafMenuPane::PreIconSpace() + {//static + return Constant(EPreIconSpace); + } + +inline TInt LafMenuPane::PostIconSpace() + {//static + return Constant(EPostIconSpace); + } + +inline TInt LafMenuPane::ExtraBaselineOffset() + {//static + return Constant(EExtraBaselineOffset); + } + +inline TInt LafMenuPane::MenuPaneSeparatorAfterSpace() + {//static + return Constant(EMenuPaneSeparatorAfterSpace); + } + +inline TInt LafMenuPane::MenuCascadeOverlap() + {//static + return Constant(EMenuCascadeOverlap); + } + +inline TInt LafMenuPane::MenuSeparatorYOffset() + {//static + return Constant(EMenuSeparatorYOffset); + } + +inline TInt LafMenuPane::NumberOfItemsInView() + {//static + return Constant(ENumberOfItemsInView); + } + +// Fonts +/** + * Returns the menu pane annotation font. + */ +inline const CFont* LafMenuPane::AnnotationFont(const MLafEnv& aLafEnv) + {//static + return Font(aLafEnv, EAnnotation); + } + +/** + * Returns the menu pane normal font. + */ +inline const CFont* LafMenuPane::NormalFont(const MLafEnv& aLafEnv) + {//static + return Font(aLafEnv, ENormal); + } + +/** + * Returns the menu pane symbol font. + */ +inline const CFont* LafMenuPane::SymbolFont(const MLafEnv& aLafEnv) + {//static + return Font(aLafEnv, ESymbol); + } + + + +#endif //__LAFMENUP_H__