#include <dali-toolkit/third-party/yoga/YGNode.h>
#if defined(DEBUG_ENABLED)
-static Debug::Filter* gLogFilter = Debug::Filter::New( Debug::Concise, false, "LOG_LAYOUT" );
+static Debug::Filter* gLogFilter = Debug::Filter::New( Debug::NoLogging, false, "LOG_LAYOUT" );
#endif
namespace Dali
oss << "FlexLayout::OnMeasure ";
if( actor )
{
- oss << "Actor Id:" << actor.GetId() << " Name:" << actor.GetName() << " Layout direction:" << actor.GetProperty( Actor::Property::LAYOUT_DIRECTION ).Get<int>() << " ";
+ oss << "Actor Id:" << actor.GetId() << " Name:" << actor.GetName() << " Layout direction:" << actor.GetProperty( Actor::Property::LAYOUT_DIRECTION ).Get<int>() << " ";
}
oss << "widthMeasureSpec:" << widthMeasureSpec << " heightMeasureSpec:" << heightMeasureSpec << std::endl;
DALI_LOG_INFO( gLogFilter, Debug::Concise, oss.str().c_str() );
YGNodeStyleSetMaxWidth( mRoot, width );
}
- if (heightMeasureSpec.GetMode() == MeasureSpec::Mode::EXACTLY)
+ if ( heightMeasureSpec.GetMode() == MeasureSpec::Mode::EXACTLY )
{
height = heightMeasureSpec.GetSize();
YGNodeStyleSetHeight( mRoot, height );
}
- else if (widthMeasureSpec.GetMode() == MeasureSpec::Mode::AT_MOST)
+ else if ( heightMeasureSpec.GetMode() == MeasureSpec::Mode::AT_MOST )
{
height = heightMeasureSpec.GetSize();
YGNodeStyleSetMaxHeight( mRoot, height );
YGMeasureMode widthMode,
float innerHeight,
YGMeasureMode heightMode ) {
+ // TODO: this function should try to get use of LayoutGroup::GetChildMeasureSpec
+ // or LayoutGroup::MeasureChild somehow since it is fixed now
LayoutItem* childLayout = static_cast<LayoutItem*>(node->getContext());
auto childOwner = childLayout->GetOwner();
auto desiredWidth = childOwner.GetProperty<int>( Toolkit::LayoutItem::ChildProperty::WIDTH_SPECIFICATION );
if( desiredHeight == Toolkit::ChildLayoutData::MATCH_PARENT )
{
- if( innerWidth != YGUndefined)
+ if( innerHeight != YGUndefined)
{
desiredHeight = innerHeight;
}
}
// Measure for Yoga
- MeasureSpec ygWidthMeasureSpec = MeasureSpec( desiredWidth, static_cast<MeasureSpec::Mode>(widthMode) );
- MeasureSpec ygHeightMeasureSpec = MeasureSpec( desiredHeight, static_cast<MeasureSpec::Mode>(heightMode) );
+ MeasureSpec::Mode ygWidthMode = static_cast<MeasureSpec::Mode>(widthMode);
+ if( measureWidthMode == MeasureSpec::Mode::EXACTLY )
+ {
+ ygWidthMode = MeasureSpec::Mode::EXACTLY;
+ }
+
+ MeasureSpec::Mode ygHeightMode = static_cast<MeasureSpec::Mode>(heightMode);
+ if( measureHeightMode == MeasureSpec::Mode::EXACTLY )
+ {
+ ygHeightMode = MeasureSpec::Mode::EXACTLY;
+ }
+
+ MeasureSpec ygWidthMeasureSpec = MeasureSpec( desiredWidth, ygWidthMode );
+ MeasureSpec ygHeightMeasureSpec = MeasureSpec( desiredHeight, ygHeightMode );
#if defined(DEBUG_ENABLED)
auto actor = Actor::DownCast(childOwner);
std::ostringstream oss;