// EIKSPACE.CPP
//
// Copyright (c) 1997-1999 Symbian Ltd.  All rights reserved.
//

#include <barsread.h>
#include <eikspace.h>
#include <eikspace.hrh>

// Put in here to allow a CEikSpacer to have its colour set as clear in a resource file
// this will need to be fixed in ER6

#define KClearSpacer	KRgbDarkMagenta
EXPORT_C CEikSpacer::CEikSpacer()
	: iColor(KRgbWhite)
    {}

EXPORT_C CEikSpacer::CEikSpacer(TInt aWidth,TInt aHeight,TRgb aColor)
    {
	iSize.iWidth=aWidth;
	iSize.iHeight=aHeight;
	iColor=aColor;
	}

EXPORT_C CEikSpacer::~CEikSpacer()
    {
    }

void CEikSpacer::ConstructFromResourceL(TResourceReader& aReader)
    {
    iSize.iWidth=aReader.ReadInt16();
    iSize.iHeight=aReader.ReadInt16();
	const TInt color=aReader.ReadInt32();
	switch (color)
		{
	case EEikSpacerWhite:
		iColor=KRgbWhite;
		break;
	case EEikSpacerDitheredGray:
		iColor=KRgbDitheredLightGray;
		break;
	case EEikSpacerGray:
		iColor=KRgbGray;
		break;
	case EEikSpacerDarkGray:
		iColor=KRgbDarkGray;
		break;
	case EEikSpacerBlack:
		iColor=KRgbBlack;
		break;
	case EEikSpacerClear:
		iColor=KClearSpacer;
		break;
		}
    }

void CEikSpacer::Draw(const TRect& /*aRect*/) const
	{
	CWindowGc& gc=SystemGc();
	gc.SetPenStyle(CGraphicsContext::ENullPen);
	if (iColor == KClearSpacer)
		gc.SetBrushStyle(CGraphicsContext::ENullBrush); //Set the brush to NULL to pick up correct b/g colours
	else
		gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
	gc.SetBrushColor(iColor);
	gc.DrawRect(Rect());
	}

EXPORT_C void CEikSpacer::SetWidth(TInt aWidth)
	{
    iSize.iWidth=aWidth;
	}

EXPORT_C void CEikSpacer::SetHeight(TInt aHeight)
	{
    iSize.iHeight=aHeight;
	}

EXPORT_C void CEikSpacer::SetColor(TRgb aColor)
	{
	iColor=aColor;
	}
