#include "DSDisplayArea.h"
+#include "DSDisplayAreaPrivate.h"
+#include "DSDebugLog.h"
namespace display_server
{
-DSDisplayArea::DSDisplayArea()
- : __output(nullptr),
- __x(0),
- __y(0),
- __width(0),
- __height(0)
+DSDisplayArea::DSDisplayArea(std::shared_ptr<DSOutput> output)
+ : _d_ptr(std::make_unique<DSDisplayAreaPrivate>(this, output))
{}
-DSDisplayArea::DSDisplayArea(std::shared_ptr<DSOutput> output)
- : __output(output),
+DSDisplayArea::~DSDisplayArea()
+{}
+
+bool DSDisplayArea::setPosition(int x, int y)
+{
+ DS_GET_PRIV(DSDisplayArea);
+
+ if (!priv->setPosition(x, y))
+ return false;
+
+ return true;
+}
+
+bool DSDisplayArea::setSize(int width, int height)
+{
+ DS_GET_PRIV(DSDisplayArea);
+
+ if (!priv->setSize(width, height))
+ return false;
+
+ return true;
+}
+
+int DSDisplayArea::getWidth()
+{
+ DS_GET_PRIV(DSDisplayArea);
+
+ return priv->getWidth();
+}
+
+int DSDisplayArea::getHeight()
+{
+ DS_GET_PRIV(DSDisplayArea);
+
+ return priv->getHeight();
+}
+
+std::shared_ptr<DSOutput> DSDisplayArea::getOutput()
+{
+ DS_GET_PRIV(DSDisplayArea);
+
+ return priv->getOutput();
+}
+
+DSDisplayAreaPrivate::DSDisplayAreaPrivate(DSDisplayArea *p_ptr, std::shared_ptr<DSOutput> output)
+ : DSObjectPrivate(p_ptr),
+ __p_ptr(p_ptr),
+ __output(output),
__x(0),
__y(0),
__width(0),
__height(0)
{}
-DSDisplayArea::~DSDisplayArea()
+DSDisplayAreaPrivate::~DSDisplayAreaPrivate()
{}
-bool DSDisplayArea::setPosition(int x, int y)
+bool DSDisplayAreaPrivate::setPosition(int x, int y)
{
- // position to canvas.
- return false;
+ __x = x;
+ __y = y;
+
+ return true;
}
-bool DSDisplayArea::setSize(int width, int height)
+bool DSDisplayAreaPrivate::setSize(int width, int height)
{
- return false;
+ __width = width;
+ __height = height;
+
+ return true;
}
-int DSDisplayArea::getWidth()
+int DSDisplayAreaPrivate::getWidth()
{
if (__output == nullptr)
return -1;
return __width;
}
-int DSDisplayArea::getHeight()
+int DSDisplayAreaPrivate::getHeight()
{
if (__output == nullptr)
return -1;
return __height;
}
+std::shared_ptr<DSOutput> DSDisplayAreaPrivate::getOutput()
+{
+ return __output;
+}
+
+
} // namespace display_server
-#ifndef _DSDISPLAYAREA_H_
-#define _DSDISPLAYAREA_H_
+#ifndef __DS_DISPLAY_AREA_H__
+#define __DS_DISPLAY_AREA_H__
+#include <DSCore.h>
+#include <DSObject.h>
#include <DSOutput.h>
#include <memory>
namespace display_server
{
-class DSDisplayArea
-{
+class DSDisplayAreaPrivate;
+class DSDisplayArea : public DSObject
+{
+DS_PIMPL_USE_PRIVATE(DSDisplayArea);
public:
- DSDisplayArea();
- DSDisplayArea(std::shared_ptr<DSOutput> output);
+ explicit DSDisplayArea(std::shared_ptr<DSOutput> output);
virtual ~DSDisplayArea();
bool setPosition(int x, int y);
bool setSize(int width, int height);
int getWidth();
int getHeight();
-
-private:
- std::shared_ptr<DSOutput> __output;
- int __x, __y;
- int __width, __height;
+ std::shared_ptr<DSOutput> getOutput();
};
}
--- /dev/null
+#ifndef __DS_DISPLAY_AREA_PRIVATE_H__
+#define __DS_DISPLAY_AREA_PRIVATE_H__
+
+#include "DSDisplayArea.h"
+#include <DSOutput.h>
+#include <memory>
+
+namespace display_server
+{
+
+class DSDisplayAreaPrivate : public DSObjectPrivate
+{
+DS_PIMPL_USE_PUBLIC(DSDisplayArea);
+public:
+ DSDisplayAreaPrivate() = delete;
+ DSDisplayAreaPrivate(DSDisplayArea *p_ptr, std::shared_ptr<DSOutput> output);
+ virtual ~DSDisplayAreaPrivate();
+
+ bool setPosition(int x, int y);
+ bool setSize(int width, int height);
+ int getWidth();
+ int getHeight();
+
+ bool setOutput(std::shared_ptr<DSOutput> output);
+ std::shared_ptr<DSOutput> getOutput();
+
+private:
+ std::shared_ptr<DSOutput> __output;
+ int __x, __y;
+ int __width, __height;
+};
+
+}
+
+#endif
\ No newline at end of file
EXPECT_TRUE(canvas != nullptr);
}
-TEST_F(DSCanvasTest, BasicMethods)
+TEST_F(DSCanvasTest, attachPolicyArea)
{
- DSCanvas canvas;
+ std::unique_ptr<DSCanvas> canvas = std::make_unique<DSCanvas>();
+ EXPECT_TRUE(canvas != nullptr);
auto policyArea = std::make_shared<DSPolicyArea>();
EXPECT_TRUE(policyArea != nullptr);
- auto displayArea = std::make_shared<DSDisplayArea>();
- EXPECT_TRUE(displayArea != nullptr);
+ EXPECT_TRUE(canvas->attachPolicyArea(policyArea) == true);
+}
- EXPECT_TRUE(canvas.attachPolicyArea(policyArea) == true);
- EXPECT_TRUE(canvas.attachDisplayArea(displayArea) == true);
-}
\ No newline at end of file
+TEST_F(DSCanvasTest, displayArea_Negetive1)
+{
+ std::unique_ptr<DSCanvas> canvas = std::make_unique<DSCanvas>();
+ EXPECT_TRUE(canvas != nullptr);
+ auto output = std::make_shared<DSOutput>();
+ EXPECT_TRUE(output != nullptr);
+ auto displayArea = std::make_shared<DSDisplayArea>(output);
+ EXPECT_TRUE(displayArea != nullptr);
+ EXPECT_TRUE(canvas->attachDisplayArea(displayArea) == false);
+}
#include "libds-tests.h"
#include "DSDisplayArea.h"
-#include "DSDisplayDeviceOutputTDMImpl.h"
using namespace display_server;