DSWindow: add APIs for set/get Position 07/241807/1
authorDoyoun Kang <doyoun.kang@samsung.com>
Thu, 13 Aug 2020 04:42:40 +0000 (13:42 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Thu, 20 Aug 2020 10:11:31 +0000 (19:11 +0900)
Change-Id: I111ee4b32e0f43265d49433f1b2edd063355fe57

src/DSWindow/DSWindow.cpp
src/DSWindow/DSWindow.h
src/DSWindow/DSWindowPrivate.h
src/DSWindowShell/DSWindowShellPrivate.cpp
tests/DSWindow-test.cpp

index ac75535..44c598d 100644 (file)
@@ -32,6 +32,8 @@ namespace display_server
 DSWindowPrivate::DSWindowPrivate(DSWindow *p_ptr)
        : DSObjectPrivate(p_ptr),
          __p_ptr(p_ptr),
+         __x(0),
+         __y(0),
          __w(1),
          __h(1),
          __committedW(0),
@@ -253,6 +255,25 @@ bool DSWindow::hasFocus(void)
        return priv->__hasFocus;
 }
 
+void DSWindow::setPosition(int x, int y)
+{
+       DS_GET_PRIV(DSWindow);
+
+       priv->__x = x;
+       priv->__y = y;
+}
+
+stPosition DSWindow::getPosition(void)
+{
+       DS_GET_PRIV(DSWindow);
+
+       stPosition pos;
+       pos.x = priv->__x;
+       pos.y = priv->__y;
+
+       return pos;
+}
+
 stSize DSWindow::getSize()
 {
        DS_GET_PRIV(DSWindow);
index e7ff5d7..ec94e12 100644 (file)
@@ -60,6 +60,9 @@ public:
        bool setFocus(void);
        bool hasFocus(void);
 
+       void setPosition(int x, int y);
+       stPosition getPosition(void);
+
        stSize getSize(void);
        void setSize(unsigned int w, unsigned int h);
        void setSize(stSize size);
index 1650248..249c5b0 100644 (file)
@@ -65,6 +65,7 @@ public:
 private:
        void __onSurfaceCommitted(std::shared_ptr<DSWaylandSurfaceCommitInfo> waylandSurfaceCommitInfo);
 
+       int __x, __y;
        unsigned int __w;
        unsigned int __h;
        unsigned int __committedW, __committedH;
index d4d5ab7..2caa850 100644 (file)
@@ -59,7 +59,10 @@ bool DSWindowShellPrivate::create(int x, int y, unsigned int w, unsigned int h,
        __h = h;
 
        if (__window)
+       {
+               __window->setPosition(__x, __y);
                __window->setSize(__w, __h);
+       }
 
        return true;
 }
@@ -86,6 +89,9 @@ bool DSWindowShellPrivate::setPosition(int x, int y)
        __x = x;
        __y = y;
 
+       if (__window)
+               __window->setPosition(__x, __y);
+
        return true;
 }
 
@@ -118,7 +124,10 @@ void DSWindowShellPrivate::setGeometry(int x, int y, unsigned int w, unsigned in
        __h = h;
 
        if (__window)
+       {
+               __window->setPosition(__x, __y);
                __window->setSize(__w, __h);
+       }
 }
 
 stGeometry DSWindowShellPrivate::getGeometry(void)
index f8e16ae..e10385e 100644 (file)
@@ -57,6 +57,24 @@ TEST_F(DSWindowTest, BasicMethods)
        auto win = new DSWindow();
        EXPECT_TRUE(win != nullptr);
 
+       EXPECT_TRUE(win->show() == true);
+       EXPECT_TRUE(win->hide(true) == true);
+       EXPECT_TRUE(win->showState() == 0);
+
+       EXPECT_TRUE(win->setLayer(100) == true);
+
+       EXPECT_TRUE(win->raise() == true);
+       EXPECT_TRUE(win->lower() == true);
+
+       EXPECT_TRUE(win->setFocus() == true);
+       EXPECT_TRUE(win->hasFocus() == true);
+}
+
+TEST_F(DSWindowTest, SizeTest)
+{
+       auto win = new DSWindow();
+       EXPECT_TRUE(win != nullptr);
+
        stSize size = win->getSize();
        EXPECT_TRUE(size.w == 1);
        EXPECT_TRUE(size.h == 1);
@@ -74,18 +92,21 @@ TEST_F(DSWindowTest, BasicMethods)
        size = win->getSize();
        EXPECT_TRUE(size.w == sSize.w);
        EXPECT_TRUE(size.h == sSize.h);
+}
 
-       EXPECT_TRUE(win->show() == true);
-       EXPECT_TRUE(win->hide(true) == true);
-       EXPECT_TRUE(win->showState() == 0);
-
-       EXPECT_TRUE(win->setLayer(100) == true);
+TEST_F(DSWindowTest, PositionTest)
+{
+       auto win = new DSWindow();
+       EXPECT_TRUE(win != nullptr);
 
-       EXPECT_TRUE(win->raise() == true);
-       EXPECT_TRUE(win->lower() == true);
+       stPosition pos = win->getPosition();
+       EXPECT_TRUE(pos.x == 0);
+       EXPECT_TRUE(pos.y == 0);
 
-       EXPECT_TRUE(win->setFocus() == true);
-       EXPECT_TRUE(win->hasFocus() == true);
+       win->setPosition(100, 200);
+       pos = win->getPosition();
+       EXPECT_TRUE(pos.x == 100);
+       EXPECT_TRUE(pos.y == 200);
 }
 
 TEST_F(DSWindowTest, WindowShellTest)
@@ -101,4 +122,4 @@ TEST_F(DSWindowTest, WindowShellTest)
        DSWindowShell *getWinShell = nullptr;
        getWinShell = win->getWindowShell();
        EXPECT_TRUE(winShell == getWinShell);
-}
\ No newline at end of file
+}