uifw/uiklaf/src/lafbtpan.cpp
changeset 0 2f259fa3e83a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uifw/uiklaf/src/lafbtpan.cpp	Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,104 @@
+/*
+* Copyright (c) 1998-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 "lafbtpan.h"
+#include <lafpanic.h>
+#include "LAFSTD.H"
+
+const TInt8 KLafButtonPanelTopMargin		=2;
+const TInt8 KLafButtonPanelBottomMargin		=2;
+const TInt8 KLafButtonPanelLeftMargin		=4;
+const TInt8 KLafButtonPanelRightMargin		=4;
+
+/**
+ * The ButtonsAllSameSize() function should return ETrue if all dialog buttons are to be
+ * the same size, or EFalse if they should only be their MinimumSize().
+ */
+EXPORT_C TBool LafButtonPanel::ButtonsAllSameSize()
+	{//static 
+	return ETrue; 
+	}
+
+
+/**
+ * Shares out the length aExcess
+ * between aShiftLeft and aShiftRight in order to align the button panel within the dialog.
+ * This function is only used for horizontal buttons.
+ */
+EXPORT_C void LafButtonPanel::TranslateForExcessSpace(TInt aExcess, TInt& aShiftLeft, TInt& aShiftRight)
+	{//static 
+	aShiftLeft=aExcess/2;
+	aShiftRight=(aShiftLeft-aExcess);
+	}
+
+/**
+ * The ReduceMarginsToFit() function should reduce aHorizontalBorder and aGapBetweenButtons
+ * until all of the lines of buttons in aArray fit into the available space. This function
+ * should only be implemented by devices supporting dynamic margin adjustments when not 
+ * enough space is provided.
+ */
+EXPORT_C void LafButtonPanel::ReduceMarginsToFit(
+	const TFixedArray<TDimensions,KLafButPanMaxLinesOfDlgButtons>& /*aArray*/,
+	TInt8& /*aLeftBorder*/, TInt8& /*aRightBorder*/, TInt& /*aGapBetweenButtons*/)
+	{//static 
+	}
+
+/**
+ * Return the margins for the button panel, packaged in a TMargins8 object
+ *
+ * @since App-Framework_6.1
+ */
+EXPORT_C TMargins8 LafButtonPanel::Margins()
+ 	{
+ 	TMargins8 margins;
+ 	margins.iLeft = KLafButtonPanelLeftMargin;
+ 	margins.iRight = KLafButtonPanelRightMargin;
+ 	margins.iTop = KLafButtonPanelTopMargin;
+ 	margins.iBottom = KLafButtonPanelBottomMargin;
+ 	return margins;
+ 	}
+
+EXPORT_C TInt LafButtonPanel::Constant(TConstantType aConstant)
+	{//static
+	TInt retVal=0;
+	switch (aConstant)
+		{
+	case EStartCorner:
+		retVal=SLafControlGroup::EFromTopLeft;
+		break;
+	case EOrientation:
+		retVal=SLafControlGroup::ELayVertically;
+		break;
+	case EInterRowMargin:
+		retVal=2;
+		break;
+	case EVerticalGap:
+		retVal=5;
+		break;
+	case EHorizontalGap:
+		retVal=12;
+		break;
+	case EMinWidth:
+		retVal=50;
+		break;
+	default:
+		__ASSERT_DEBUG(EFalse,Panic(ELafPanicConstantNotKnown)); // should never be reached
+		break;
+		}
+	return retVal;
+	};