FloatRectangle GetItemClientBoundsFromSize(const FloatDimension& size) const
{
- __pControl->UpdateClientBounds(size);
- return __pControl->GetClientBoundsF(size);
+ FloatRectangle clientBounds(0.0f, 0.0f, 0.0f, 0.0f);
+ __pControl->UpdateClientBounds(size, clientBounds);
+ return clientBounds;
}
FloatDimension GetItemContentSize(void) const
__clientBounds = _CoordinateSystemUtils::ConvertToFloat(bounds);
__isSetClientBounds = true;
- result r = AdjustAbsoluteBounds();
- SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+ const bool moved = (__clientBounds.x != _CoordinateSystemUtils::ConvertToFloat(bounds).x) || (__clientBounds.y != _CoordinateSystemUtils::ConvertToFloat(bounds).y);
+ const bool resized = (__clientBounds.width != _CoordinateSystemUtils::ConvertToFloat(bounds).width) || (__clientBounds.height != _CoordinateSystemUtils::ConvertToFloat(bounds).height);
- SetUpdateLayoutState(true);
+ if (moved || resized)
+ {
+ result r = AdjustAbsoluteBounds();
+ SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+ SetUpdateLayoutState(true);
+ }
return E_SUCCESS;
}
__clientBounds = bounds;
__isSetClientBounds = true;
- result r = AdjustAbsoluteBounds();
- SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+ const bool moved = (__clientBounds.x != bounds.x) || (__clientBounds.y != bounds.y);
+ const bool resized = (__clientBounds.width != bounds.width) || (__clientBounds.height != bounds.height);
- SetUpdateLayoutState(true);
+ if (moved || resized)
+ {
+ result r = AdjustAbsoluteBounds();
+ SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+
+ SetUpdateLayoutState(true);
+ }
return E_SUCCESS;
}
}
void
-_Control::UpdateClientBounds(const FloatDimension& size)
+_Control::UpdateClientBounds(const FloatDimension& size, FloatRectangle& clientBounds)
{
-
+ clientBounds.width = size.width;
+ clientBounds.height = size.height;
}
Color
}
void
-_Form::UpdateClientBounds(const FloatDimension& size)
+_Form::UpdateClientBounds(const FloatDimension& size, FloatRectangle& clientBounds)
{
- FloatRectangle clientBounds(0.0f, 0.0f, size.width, size.height);
+ clientBounds.width = size.width;
+ clientBounds.height = size.height;
if (__deflated)
{
}
}
}
-
- SetClientBounds(clientBounds);
}
}}} // Tizen::Ui::Controls
virtual void OnActionPerformed(const Tizen::Ui::_Control& source, int actionId);
virtual void OnChildVisibleStateChanged(const _Control& child);
virtual void OnBoundsChanged(void);
- virtual void UpdateClientBounds(const Tizen::Graphics::FloatDimension& size);
+ virtual void UpdateClientBounds(const Tizen::Graphics::FloatDimension& size, Tizen::Graphics::FloatRectangle& clientBounds);
// Focus UI
Tizen::Base::Collection::IListT<_Control*>* GetFocusList(void) const;
result SetClientBounds(const Tizen::Graphics::Rectangle& bounds);
result SetClientBounds(const Tizen::Graphics::FloatRectangle& bounds);
bool IsCalledSetClientBounds(void);
- virtual void UpdateClientBounds(const Tizen::Graphics::FloatDimension& size);
+ virtual void UpdateClientBounds(const Tizen::Graphics::FloatDimension& size, Tizen::Graphics::FloatRectangle& clientBounds);
bool Contains(const Tizen::Graphics::Point& point) const;
bool Contains(const Tizen::Graphics::FloatPoint& point) const;