lafagnosticuifoundation/uigraphicsutils/gulinc/GULCOLOR.H
changeset 0 2f259fa3e83a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lafagnosticuifoundation/uigraphicsutils/gulinc/GULCOLOR.H	Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,274 @@
+// Copyright (c) 1997-2009 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:
+//
+
+#if !defined(__GULCOLOR_H__)
+#define __GULCOLOR_H__
+
+#if !defined(__W32STD_H__)
+#include <w32std.h>
+#endif
+
+#if !defined(__E32BASE_H__)
+#include <e32base.h>
+#endif
+
+#if !defined(__GDI_H__)
+#include <gdi.h>
+#endif
+
+/** Logical colours.
+
+Logical colours are used to specify the colour scheme for the controls in 
+an application.
+
+Many controls have one logical colour for text and another logical colour 
+for the background. Some logical colours have a dimmed variant for when the 
+control becomes inactive or disabled. Highlighted and pressed variants exist 
+for controls that support selection or which can be pressed. 
+
+@publishedAll
+@released */
+enum TLogicalColor
+	{
+	// Windows
+	/** The colour of a window's background. */
+	EColorWindowBackground,
+	/** The colour of text in a window. */
+	EColorWindowText,
+	// Controls
+	/** The colour of the background contents of a control. */
+	EColorControlBackground,
+	/** The colour of the text inside a control. */
+	EColorControlText, 
+	/** The background colour of a control's border. */
+	EColorControlSurroundBackground,
+	/** The colour of text in a control's border. */
+	EColorControlSurroundText,
+	/** The colour of a control's background when highlighted for selection. */
+	EColorControlHighlightBackground, 
+	/** The colour of the text in a control when highlighted for selection. */
+	EColorControlHighlightText,
+	/** The colour of a control's background when dimmed. */
+	EColorControlDimmedBackground, 
+	/** The colour of the text in a control when dimmed. */
+	EColorControlDimmedText,
+	/** The colour of a control's background when dimmed and highlighted for selection. */
+	EColorControlDimmedHighlightBackground,
+	/** The colour of the text in a control when dimmed and highlighted for selection. */
+	EColorControlDimmedHighlightText,
+	// Dialogs
+	/** The colour of a dialog's background. */
+	EColorDialogBackground,
+	/** The colour of text inside a dialog. */
+	EColorDialogText,
+	/** A dialog title's background colour. */
+	EColorDialogTitle,
+	/** A dialog title's background colour when pressed. */
+	EColorDialogTitlePressed,
+	/** The text colour in a dialog's title. */
+	EColorDialogTitleText,
+	/** The text colour in a dialog's title when pressed. */
+	EColorDialogTitleTextPressed,
+	// Menus
+	/** The colour of the menubar's background. */
+	EColorMenubarBackground,
+	/** The colour of text in the menubar. */
+	EColorMenubarText,
+	/** The colour of the menubar title's background. */
+	EColorMenubarTitleBackground,
+	/** The colour of text in the menubar title. */
+	EColorMenubarTitleText,
+	/** The colour of the menu pane background. */
+	EColorMenuPaneBackground,
+	/** The colour of text in the menu pane. */
+	EColorMenuPaneText,
+	/** The colour of the menu pane background when highlighted for selection. */
+	EColorMenuPaneHighlight,
+	/** The colour of text in the menu pane when highlighted for selection. */
+	EColorMenuPaneTextHighlight,
+	/** The colour of the menu pane background when dimmed and highlighted. */
+	EColorMenuPaneDimmedHighlight,
+	/** The colour of text in the menu pane when dimmed. */
+	EColorMenuPaneDimmedText,
+	/** The colour of text in the menu pane when dimmed and highlighted for selection. */
+	EColorMenuPaneDimmedTextHighlight,
+	// Command buttons
+	/** The colour of the button background, when the button is in the unset state. */
+	EColorButtonFaceClear,
+	/** The colour of the button background when the button is in the set state. */
+	EColorButtonFaceSet,
+	/** The colour of the button background when the button is in the set state and 
+	is pressed. */
+	EColorButtonFaceSetPressed,
+	/** The colour of the button background when the button is in the unset state and 
+	is pressed. */
+	EColorButtonFaceClearPressed,
+	/** The colour of the button text. */
+	EColorButtonText,
+	/** The colour of the button text when the button is pressed. */
+	EColorButtonTextPressed,
+	/** The colour of the button text when the button is dimmed. */
+	EColorButtonTextDimmed,		
+	// Message windows
+	/** The colour of the message window foreground. */
+	EColorMsgWinForeground,
+	EColorMsgWinBackground,
+	// Scrollbars
+	/** The colour of the scroll bar border. */
+	EColorScrollBarBorder,
+	EColorScrollBarShaft,
+	/** The colour of the scroll bar shaft background when dimmed. */
+	EColorScrollBarShaftDimmed,
+	/** The colour of the scroll bar shaft background when pressed. */
+	EColorScrollBarShaftPressed,
+	/** The colour of the background for scroll bars with no thumb and no shaft. */
+	EColorScrollBarNoShaftOrThumb,
+	/** The colour of scroll bar buttons. */
+	EColorScrollButtonIcon,
+	/** The colour of scroll bar buttons when pressed. */
+	EColorScrollButtonIconPressed,
+	/** The colour of scroll bar buttons when dimmed. */
+	EColorScrollButtonIconDimmed,
+	/** The colour of a scroll bar thumb's background. */
+	EColorScrollButtonThumbBackground,
+	/** The colour of a scroll bar thumb's background when pressed. */
+	EColorScrollButtonThumbBackgroundPressed,
+	/** The colour of a scroll bar thumb's background when dimmed. */
+	EColorScrollThumbDimmed,
+	/** The colour of a scroll bar thumb's edge. */
+	EColorScrollThumbEdge,
+	// Toolbars
+	/** The colour of a toolbar's background. */
+	EColorToolbarBackground,
+	/** The colour of the text in a toolbar. */
+	EColorToolbarText,
+	// Status pane
+	/** The colour of a status pane's background. */
+	EColorStatusPaneBackground,
+	/** The colour of the text in a status pane. */
+	EColorStatusPaneText,
+	// Labels
+	/** The colour of the text in a label. */
+	EColorLabelText,
+	/** The colour of emphasised text in a label. */
+	EColorLabelTextEmphasis,
+	/** The colour of the text in a label when dimmed. */
+	EColorLabelDimmedText,
+	/** The colour of the label background when highlighted and dimmed. */
+	EColorLabelHighlightPartialEmphasis,
+	/** The colour of the label background when highlighted. */
+	EColorLabelHighlightFullEmphasis,
+	/** The number of logical colours */
+	EColorNumberOfLogicalColors
+	};
+
+class RReadStream;
+class RWriteStream;
+class CColorArray;
+
+// not available before Release 005
+
+class CColorList : public CBase
+/** A palette that maps logical colours (TLogicalColor) to physical (TRgb) values. It 
+also supports independent sections for applications: a section is identified by an 
+application UID, and the mappings are held as a colour array (CColorArray). 
+
+A colour list also supports mapping for both four-grey and 256-colour schemes; the 
+256-colour scheme will be used and will look good if the screen mode supports 16 or 
+more colours. Otherwise, the four-grey scheme will be used. 
+
+@publishedAll 
+@released */
+	{
+public:
+	IMPORT_C static CColorList* NewL(CArrayFix<TRgb>* aColors);
+	IMPORT_C ~CColorList();
+	// Accessors
+	IMPORT_C TRgb Color(TLogicalColor aColor) const;
+	IMPORT_C TInt Count() const;
+	IMPORT_C TRgb Color(TUid aApp,TInt aColor) const;
+	IMPORT_C CColorArray* ColorArray(TUid aApp) const;
+	IMPORT_C TBool ContainsColorArray(TUid aApp) const;
+	// Manipulators
+	IMPORT_C void SetColor(TLogicalColor aLogicalColor,TRgb aColor);
+	IMPORT_C void AddColorArrayL(TUid aApp,CColorArray* aArray); // takes ownership
+	IMPORT_C void DeleteColorArray(TUid aApp);
+public:
+	IMPORT_C static CColorList* NewLC();
+	IMPORT_C void InternalizeL(RReadStream& aStream);
+	IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
+	IMPORT_C void MergeL(const CColorList& aList);
+private:
+	CColorList(CArrayFix<TRgb>* aColors);
+	TInt Find(TUid aApp) const;
+private:
+	class TAppColorList
+		{
+	public:
+		inline TAppColorList(TUid aApp,CColorArray* aColorArray);
+	public:
+		TUid iApp;
+		CColorArray* iColorArray;
+		};
+private:
+	CArrayFix<TRgb>* iEikColors;
+	CArrayFix<TAppColorList>* iAppColors;
+	};
+
+// not available before Release 005
+
+class CColorArray : public CBase
+/** A dynamic array of mappings between logical and physical colours (TRgb values).
+
+@publishedAll 
+@released */
+	{
+public:
+	IMPORT_C static CColorArray* NewL();
+	IMPORT_C static CColorArray* NewLC();
+	IMPORT_C ~CColorArray();
+	IMPORT_C TRgb Color(TInt aLogicalColor) const;
+	IMPORT_C void SetColor(TInt aLogicalColor,TRgb aColor);
+	IMPORT_C TBool Contains(TInt aLogicalColor) const;
+	IMPORT_C TInt Count() const;
+	IMPORT_C void Reset();
+	IMPORT_C void AddL(TInt aLogicalColor,TRgb aColor);
+	IMPORT_C void Remove(TInt aLogicalColor);
+public:
+	static CColorArray* NewLC(const CColorArray& aArray);
+public:
+	void InternalizeL(RReadStream& aStream);
+	void ExternalizeL(RWriteStream& aStream) const;
+private:
+	CColorArray();
+	void ConstructL();
+	TInt Find(TInt aLogicalColor) const;
+private:
+	class TColor
+		{
+	public:
+		inline TColor();
+		inline TColor(TRgb aColor,TInt aLogicalColor);
+	public:
+		void InternalizeL(RReadStream& aStream);
+		void ExternalizeL(RWriteStream& aStream) const;
+	public:
+		TRgb iColor;
+		TInt iLogicalColor;
+		};
+	CArrayFixFlat<TColor> iColors;
+	};
+
+#endif