lafagnosticuifoundation/cone/inc/COECCNTX.H
changeset 0 2f259fa3e83a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lafagnosticuifoundation/cone/inc/COECCNTX.H	Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,119 @@
+// 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:
+//
+
+#ifndef __COECCNTX_H__
+#define __COECCNTX_H__
+
+#include <e32std.h>
+#include <e32base.h>
+#include <w32std.h>
+
+/** Interface to allow sharing of graphics settings between controls. 
+
+The interface provides functions to set the graphics context of a control 
+before drawing. If a control has its iContext member set, the UI Control Framework 
+calls functions defined by this interface when a control is about to be drawn. 
+Developers must implement PrepareContext(), which is called by the framework, 
+to initialise the control's window with the required graphics settings.
+
+To use control contexts, a control should inherit from an MCoeControlContext-derived 
+class. To share the context between controls, this control should then be 
+set as the context for all controls that wish to share it. This is done by 
+setting the iContext member of each of the controls, using CCoeControl::SetControlContext() 
+and CCoeControl::CopyControlContextFrom(). 
+
+@publishedAll 
+@released */
+class MCoeControlContext
+	{
+public:
+	IMPORT_C virtual void ActivateContext(CWindowGc& aGc,RDrawableWindow& aWindow) const;
+	IMPORT_C virtual void ResetContext(CWindowGc& aGc) const;
+	IMPORT_C virtual void PrepareContext(CWindowGc& aGc) const;
+protected:
+	IMPORT_C MCoeControlContext();
+	
+private:
+	IMPORT_C virtual void MCoeControlContext_Reserved1();	
+	IMPORT_C virtual void MCoeControlContext_Reserved2();
+	
+private:
+	TInt iMCoeControlContext_Reserved1;
+	};
+
+/** Brush and pen graphics context. 
+
+This class allows an MCoeControlContext to be instantiated and used to set 
+brush and pen properties before drawing a control. 
+
+@publishedAll 
+@released */
+class CCoeBrushAndPenContext : public CBase, public MCoeControlContext
+	{
+public:
+	IMPORT_C static CCoeBrushAndPenContext* NewL();
+	//
+	IMPORT_C void SetBrushStyle(CWindowGc::TBrushStyle aBrushStyle);
+	IMPORT_C void SetBrushColor(TRgb aColor);
+	IMPORT_C void SetBrushBitmap(const CFbsBitmap& aBitmap);
+	IMPORT_C void SetPenColor(TRgb aColor);
+	//
+	IMPORT_C CWindowGc::TBrushStyle BrushStyle() const;
+	IMPORT_C TRgb BrushColor() const;
+	IMPORT_C const CFbsBitmap& BrushBitmap() const;
+	IMPORT_C TRgb PenColor() const;
+protected: // from MCoeControlContext
+	IMPORT_C void PrepareContext(CWindowGc& aGc) const;
+private:
+	CCoeBrushAndPenContext();
+private:
+	CWindowGc::TBrushStyle iBrushStyle;
+	TRgb iBrushColor;
+	const CFbsBitmap* iBitmap;
+	TRgb iPenColor;
+	};
+
+
+/** Protocol for sharing brush settings used in graphics operations. 
+
+It can be used to set brush and pen properties before drawing a control.
+
+The mixin provides a default implementation of a control context. It implements 
+PrepareContext() to initialise brush settings used in graphics operations. 
+Its data members are public so that the brush style, brush colour and brush 
+pattern can be set by application code.
+
+@publishedAll
+@deprecated */
+class MCoeControlBrushContext : public MCoeControlContext
+	{
+public:
+	/** Cause vtable & typeinfo to be exported */
+	IMPORT_C MCoeControlBrushContext();
+protected: // from MCoeControlContext
+	IMPORT_C void PrepareContext(CWindowGc& aGc) const;
+public:
+	/** Brush style. (Not required if iBitmap is set.) */
+	CWindowGc::TBrushStyle iBrushStyle;
+	/** Brush colour. (Not required if iBitmap is set.) */
+	TRgb iBrushColor;
+	/** Brush pattern. */
+	const CFbsBitmap* iBitmap;
+
+private:
+	TInt iMCoeControlBrushContext_Reserved1;
+	};
+
+#endif