uifw/EikStd/coctlsrc/EIKFNLAB.CPP
changeset 0 2f259fa3e83a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uifw/EikStd/coctlsrc/EIKFNLAB.CPP	Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,146 @@
+/*
+* 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:
+*
+*/
+
+
+#include <apparc.h>
+#include <barsread.h>
+#include <eikfnlab.h>
+#include <eikenv.h>
+#include <eikappui.h>
+#include <eikdoc.h>
+#include <eikapp.h>
+#include <eiklabel.h>
+#include <eikfutil.h>
+#include "LAFFNLAB.H"
+
+const TInt KLabelMargins=2;
+
+EXPORT_C CEikFileNameLabel::CEikFileNameLabel()
+	{
+	LafFileNameLabel::GetDefaultBorder(iBorder);
+	SetNonFocusing();
+	}
+
+EXPORT_C CEikFileNameLabel::~CEikFileNameLabel()
+	{
+	delete iLabel;
+	}
+
+EXPORT_C void CEikFileNameLabel::ConstructL()
+	{
+	iLabel=new(ELeave) CEikLabel;
+	iLabel->iAlignment.SetHAlignment(EHCenter);
+	iLabel->iAlignment.SetVAlignment(EVCenter);
+	iLabel->iMargin.iLeft=iLabel->iMargin.iRight=iLabel->iMargin.iTop=iLabel->iMargin.iBottom=KLabelMargins;
+	iLabel->SetFont(iEikonEnv->LegendFont());
+	iLabel->SetTextL(TPtrC());
+	}
+
+EXPORT_C void CEikFileNameLabel::ConstructFromResourceL(TResourceReader& /*aReader*/)
+	{
+	ConstructL();
+	}
+
+EXPORT_C void CEikFileNameLabel::UpdateL()
+	{
+	TFileName fileName=iEikonEnv->EikAppUi()->Document()->Process()->MainDocFileName();
+	if (fileName.Length()==0)
+		fileName=iEikonEnv->EikAppUi()->Application()->AppCaption();
+	User::LeaveIfError(EikFileUtils::Parse(fileName));
+	TParsePtrC parse(fileName);
+	if (parse.NamePresent())
+		fileName=parse.NameAndExt();
+	else
+		fileName=TPtrC();
+	TextUtils::ClipToFit(fileName,*(iLabel->Font()),iLabel->Size().iWidth,TChar(0));
+	iLabel->SetTextL(fileName);
+	}
+
+EXPORT_C void CEikFileNameLabel::HandlePointerEventL(const TPointerEvent& aPointerEvent)
+	{
+	if (aPointerEvent.iType==TPointerEvent::EButton1Down && iLabel->Rect().Contains(aPointerEvent.iPosition))
+		iEikonEnv->DisplayTaskList();
+	}
+
+EXPORT_C void* CEikFileNameLabel::ExtensionInterface( TUid /*aInterface*/ )
+    {
+    return NULL;
+    }
+
+EXPORT_C TSize CEikFileNameLabel::MinimumSize()
+	{
+	TSize size=iLabel->MinimumSize();
+	size+=iBorder.SizeDelta();
+	return size;
+	}
+
+EXPORT_C void CEikFileNameLabel::SizeChanged()
+	{
+	TSize size=iSize-iBorder.SizeDelta();
+	TPoint pos=iPosition;
+	const TMargins margins=iBorder.Margins();
+	pos.iX+=margins.iLeft;
+	pos.iY+=margins.iTop;
+	iLabel->SetExtent(pos,size);
+	}
+
+EXPORT_C TInt CEikFileNameLabel::CountComponentControls() const
+	{
+	return 1;
+	}
+
+EXPORT_C CCoeControl* CEikFileNameLabel::ComponentControl(TInt aIndex) const
+	{
+	if (aIndex==0)
+		return iLabel;
+	return NULL;
+	}
+
+
+EXPORT_C void CEikFileNameLabel::Draw(const TRect& /*aRect*/) const
+	{
+	TRect rect=Rect();
+	CGraphicsContext& gc=SystemGc();
+
+	TGulBorder::TColors borderColors;
+	LafFileNameLabel::GetBorderColors(borderColors, iEikonEnv->LafEnv(), *this);	
+	iBorder.Draw(gc, rect, borderColors);
+
+	gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
+	}
+
+/**
+ * Gets the list of logical colors employed in the drawing of the control,
+ * paired with an explanation of how they are used. Appends the list to aColorUseList.
+ *
+ * @since ER5U 
+ */
+EXPORT_C void CEikFileNameLabel::GetColorUseListL(CArrayFix<TCoeColorUse>& aColorUseList) const
+	{
+	CEikBorderedControl::GetColorUseListL(aColorUseList);
+	}
+
+/**
+ * Handles a change to the control's resources of type aType
+ * which are shared across the environment, e.g. colors or fonts.
+ *
+ * @since ER5U 
+ */
+EXPORT_C void CEikFileNameLabel::HandleResourceChange(TInt aType)
+	{
+	CEikBorderedControl::HandleResourceChange(aType);
+	}