--- /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;
+ };