Dali::Window instance;
try
{
- Dali::Uint16Pair arg1;
+ Dali::Window::WindowPosition arg1;
instance.SetPosition(arg1);
DALI_TEST_CHECK(false); // Should not get here
}
typedef Signal<void(const std::string&, const std::string&, const Property::Array&)> AuxiliaryMessageSignalType; ///< Auxiliary message signal type
typedef Signal<void(Window, bool)> AccessibilityHighlightSignalType; ///< Accessibility Highlight signal type
typedef Signal<bool(const KeyEvent&)> InterceptKeyEventSignalType; ///< Intercept Key event signal type
-typedef Signal<void(Window, Window::WindowPosition)> MovedSignalType; ///< Window Moved signal type
+typedef Signal<void(Window, Dali::Window::WindowPosition)> MovedSignalType; ///< Window Moved signal type
/**
* @brief Creates an initialized handle to a new Window.
*
* A callback of the following type may be connected:
* @code
- * void YourCallbackName( Window window, Uint16Pair position );
+ * void YourCallbackName( Window window, Dali::Window::WindowPosition position );
* @endcode
* The parameters are the moved x and y coordinates.
* and window means this signal was called from what window
void Window::SetPosition(Dali::Window::WindowPosition position)
{
PositionSize oldRect = mSurface->GetPositionSize();
+ int32_t newX = position.GetX();
+ int32_t newY = position.GetY();
- mWindowSurface->MoveResize(PositionSize(position.GetX(), position.GetY(), oldRect.width, oldRect.height));
+ mWindowSurface->MoveResize(PositionSize(newX, newY, oldRect.width, oldRect.height));
+
+ if((oldRect.x != newX) || (oldRect.y != newY))
+ {
+ Dali::Window handle(this);
+ Dali::Window::WindowPosition newPosition(newX, newY);
+
+ DALI_LOG_RELEASE_INFO("send moved signal with new position: %d, %d\n", newPosition.GetX(), newPosition.GetY());
+ mMovedSignal.Emit(handle, newPosition);
+ }
mSurface->SetFullSwapNextFrame();
return GetImplementation(*this).GetSize();
}
-void Window::SetPosition(Window::WindowPosition position)
+void Window::SetPosition(Dali::Window::WindowPosition position)
{
GetImplementation(*this).SetPosition(position);
}
-Window::WindowPosition Window::GetPosition() const
+Dali::Window::WindowPosition Window::GetPosition() const
{
return GetImplementation(*this).GetPosition();
}
*/
class DALI_ADAPTOR_API Window : public BaseHandle
{
+public:
+ /**
+ * @brief Simple class for window position pairs of integers.
+ *
+ * Use this for integer position with window coordinates.
+ * @SINCE_2_1.43
+ */
+ class IntPair
+ {
+ public:
+ /**
+ * @brief Default constructor, initialises to 0.
+ * @SINCE_2_1.43
+ */
+ IntPair()
+ : mX(0),
+ mY(0)
+ {
+ };
+
+ /**
+ * @brief Constructor taking separate x and y parameters.
+ * @SINCE_2_1.43
+ * @param[in] x The X coordinate of the window.
+ * @param[in] y The Y coordinate of the window.
+ */
+ IntPair(int32_t x, int32_t y)
+ {
+ mX = x;
+ mY = y;
+ }
+
+ /**
+ * @brief Returns the x coordinate.
+ * @SINCE_2_1.43
+ * @return Y
+ */
+ int32_t GetX() const
+ {
+ return mX;
+ }
+
+ /**
+ * @brief Returns the y coordinate.
+ * @SINCE_2_1.43
+ * @return Y
+ */
+ int32_t GetY() const
+ {
+ return mY;
+ }
+
+ /**
+ * @brief Sets the x coordinate
+ * @SINCE_2_1.43
+ * @param[in] x the x coordinate value
+ */
+ void SetX(int32_t x)
+ {
+ mX = x;
+ }
+
+ /**
+ * @brief Sets the y coordinate
+ * @SINCE_2_1.43
+ * @param[in] y the y coordinate value
+ */
+ void SetY(int32_t y)
+ {
+ mY = y;
+ }
+
+ // Default operation
+ public:
+ IntPair(const IntPair&) = default; ///< Default copy constructor
+ IntPair(IntPair&&) = default; ///< Default move constructor
+ IntPair& operator=(const IntPair&) = default; ///< Default copy assignment operator
+ IntPair& operator=(IntPair&&) = default; ///< Default move assignment operator
+
+ // member data
+ private:
+ int32_t mX;
+ int32_t mY;
+ };
+
public:
using WindowSize = Uint16Pair; ///< Window size type @SINCE_1_2.60
- using WindowPosition = Uint16Pair; ///< Window position type @SINCE_1_2.60
+ using WindowPosition = IntPair; ///< Window position type @SINCE_2_1.43
using FocusChangeSignalType = Signal<void(Window, bool)>; ///< Window focus signal type @SINCE_1_4.35
using ResizeSignalType = Signal<void(Window, WindowSize)>; ///< Window resized signal type @SINCE_1_4.35