// EIKBPREV.CPP
//
// Copyright (c) 1997-1999 Symbian Ltd.  All rights reserved.
//

#include <eikbprev.h>
#include <eikenv.h>
#include <eikpriv.hrh>
#include <frmtlay.h>
#include <txtfrmat.h>

const TInt KEikBorderPreviewWidth = 30;
const TInt KEikBorderPreviewHeight = 30;

EXPORT_C CEikBorderPreview::CEikBorderPreview()
 	{
	__DECLARE_NAME(_S("CEikBorderPreview"));
	iBorder=TEikBorder(TEikBorder::ESingleGray);
	}

EXPORT_C CEikBorderPreview::~CEikBorderPreview()
	{
	}


EXPORT_C void CEikBorderPreview::Draw(const TRect& /*aRect*/) const
	{
	iBorder.Draw(SystemGc(),Rect());
	DrawParaBorders();
	}

EXPORT_C TSize CEikBorderPreview::MinimumSize()
	{
	return TSize(KEikBorderPreviewWidth,KEikBorderPreviewHeight);
	}

void CEikBorderPreview::DrawParaBorders() const
	{
	TRect inner=iBorder.InnerRect(Rect());
	ClearRect(inner);
	inner.Shrink(2,2); // !! magic numbers
	CTextLayout::DrawBorders(iCoeEnv->ScreenDevice(),SystemGc(),inner,iBorders,&iBackgroundColor);
	}

EXPORT_C void CEikBorderPreview::HandleChange()
	{
	ActivateGc();
	DrawParaBorders();
	DeactivateGc();
	}

EXPORT_C void CEikBorderPreview::SetUp(const TParaBorderArray& aBorders, TRgb* aBackgroundColor)
    {
	iBorders=aBorders;
	iBackgroundColor=*aBackgroundColor;
	}

void CEikBorderPreview::ClearRect(const TRect& aRect) const
	{
	CWindowGc& gc=SystemGc();
	gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
	gc.SetBrushColor(iBackgroundColor);
	gc.Clear(aRect);
	gc.SetBrushStyle(CGraphicsContext::ENullBrush);
	}
