#include <new>
#include <FBaseResult.h>
+#include <FBaseUtilMath.h>
#include "FUi_Math.h"
#include "FUi_LayoutLinearLayout.h"
#include "FUi_LayoutLayoutItemProxy.h"
#include "FUi_LayoutProxyList.h"
#include "FUi_LayoutLayoutItemInfo.h"
+using namespace Tizen::Base::Utility;
+
namespace Tizen { namespace Ui { namespace _Layout
{
}
LayoutRect itemRect = pItemInfo->__itemRect;
itemRect.x += x;
- if (pItemInfo->__fixedSize == false && !_FloatCompare(usedEmptySpace, 0.0f))
+ if (pItemInfo->__fixedSize == false && !_FloatCompare(usedEmptySpace, 0.0f) && !_FloatCompare(pItemInfo->__weight, 0.0f))
{
if (usedEmptySpace > 0.0f)
{
}
float unitSize = emptySpace / __weightSum;
- int correctionValue = emptySpace - (int)(unitSize * 100.0) * (int) (__weightSum) / 100.0f;
- if (correctionValue < 0)
- {
- correctionValue = -correctionValue;
- }
ProxyListNode* pNode = pProxyList->GetFirstNode();
while (pNode != null)
return E_INVALID_STATE;
}
LayoutRect itemRect = pItemInfo->__itemRect;
- int correctionSize = unitSize * pItemInfo->__weight;
- if (correctionValue != 0)
- {
- if (correctionSize < 0)
- {
- correctionSize--;
- }
- else
- {
- correctionSize++;
- }
- correctionValue--;
- }
+ float correctionSize = unitSize * pItemInfo->__weight;
if (__direction == LINEAR_LEFT_TO_RIGHT)
{
if (pItemInfo->__fixedSize == false)
{
+ correctionSize = Math::Round(correctionSize);
+
itemRect.w += correctionSize;
x += correctionSize;
usedEmptySpace -= correctionSize;
__weightSum -= pItemInfo->__weight;
pItemInfo->__fixedSize = true;
}
+
#ifdef NOT_SUPPORT_NEGATIVE_SIZE
if (itemRect.w < 0.0f)
{
}
LayoutRect itemRect = pItemInfo->__itemRect;
itemRect.y += y;
- if (pItemInfo->__fixedSize == false && !_FloatCompare(usedEmptySpace, 0.0f))
+ if (pItemInfo->__fixedSize == false && !_FloatCompare(usedEmptySpace, 0.0f) && !_FloatCompare(pItemInfo->__weight, 0.0f))
{
if (usedEmptySpace > 0.0f)
{
}
float unitSize = emptySpace / __weightSum;
- int correctionValue = emptySpace - (int) (unitSize * 100.0) * (int) (__weightSum) / 100;
- if (correctionValue < 0)
- {
- correctionValue = -correctionValue;
- }
ProxyListNode* pNode = pProxyList->GetFirstNode();
while (pNode != null)
return E_INVALID_STATE;
}
LayoutRect itemRect = pItemInfo->__itemRect;
- int correctionSize = unitSize * pItemInfo->__weight;
- if (correctionValue != 0)
- {
- if (correctionSize < 0.0f)
- {
- correctionSize--;
- }
- else
- {
- correctionSize++;
- }
- correctionValue--;
- }
+ float correctionSize = unitSize * pItemInfo->__weight;
if (__direction == LINEAR_TOP_TO_BOTTOM)
{
if (pItemInfo->__fixedSize == false)
{
+ correctionSize = Math::Round(correctionSize);
+
itemRect.h += correctionSize;
y += correctionSize;
usedEmptySpace -= correctionSize;
__weightSum -= pItemInfo->__weight;
pItemInfo->__fixedSize = true;
}
+
#ifdef NOT_SUPPORT_NEGATIVE_SIZE
if (itemRect.h < 0)
{