return __pLiveboxPopupPresenter->GetProviderId();
}
+void
+_LiveboxPopup::SetAnchorPosition(const Tizen::Graphics::FloatPoint& position)
+{
+ return __pLiveboxPopupPresenter->SetAnchorPosition(position);
+}
+
+FloatPoint
+_LiveboxPopup::GetAnchorPosition(void) const
+{
+ return __pLiveboxPopupPresenter->GetAnchorPosition();
+}
+
result
_LiveboxPopup::SetLayerShowState(bool showState)
{
#include <FBaseString.h>
#include "FUi_Window.h"
+namespace Tizen { namespace Graphics
+{
+class Dimension;
+class FloatPoint;
+}} // Tizen::Graphics
+
namespace Tizen { namespace Ui
{
class _IUiEventManager;
result Initialize(const Tizen::Graphics::Dimension& size);
result SetProviderId(const Tizen::Base::String& providerId);
Tizen::Base::String GetProviderId(void) const;
+ void SetAnchorPosition(const Tizen::Graphics::FloatPoint& position);
+ Tizen::Graphics::FloatPoint GetAnchorPosition(void) const;
protected:
_LiveboxPopup(void);
return r;
}
+String
+_LiveboxPopupImpl::GetProviderId(void) const
+{
+ return GetCore().GetProviderId();
+}
+
+void
+_LiveboxPopupImpl::SetAnchorPosition(const Tizen::Graphics::FloatPoint& position)
+{
+ GetCore().SetAnchorPosition(position);
+}
+
+FloatPoint
+_LiveboxPopupImpl::GetAnchorPosition(void) const
+{
+ return GetCore().GetAnchorPosition();
+}
+
}} // Tizen::Shell
#include "FUi_WindowImpl.h"
#include "FShell_LiveboxPopup.h"
+namespace Tizen { namespace Graphics
+{
+class Dimension;
+class FloatPoint;
+}} // Tizen::Graphics
+
namespace Tizen { namespace Shell
{
result Initialize(const Tizen::Graphics::Dimension& size);
result SetProviderId(const Tizen::Base::String& providerId);
+ Tizen::Base::String GetProviderId(void) const;
+ void SetAnchorPosition(const Tizen::Graphics::FloatPoint& position);
+ Tizen::Graphics::FloatPoint GetAnchorPosition(void) const;
protected:
_LiveboxPopupImpl(LiveboxPopup* pPublic, _LiveboxPopup* pCore, const Tizen::Ui::Layout* pPortraitLayout, const Tizen::Ui::Layout* pLandscapeLayout);
#include "FShell_LiveboxPopupModel.h"
using namespace Tizen::Base;
+using namespace Tizen::Graphics;
namespace Tizen { namespace Shell
{
return __providerId;
}
+void
+_LiveboxPopupModel::SetAnchorPosition(const Tizen::Graphics::FloatPoint& position)
+{
+ __anchorPosition = position;
+}
+
+FloatPoint
+_LiveboxPopupModel::GetAnchorPosition(void) const
+{
+ return __anchorPosition;
+}
+
}} // Tizen::Shell
#include <FBaseObject.h>
#include <FBaseString.h>
+#include <FGrpFloatPoint.h>
namespace Tizen { namespace Shell
{
public:
void SetProviderId(const Tizen::Base::String& providerId);
Tizen::Base::String GetProviderId(void) const;
+ void SetAnchorPosition(const Tizen::Graphics::FloatPoint& position);
+ Tizen::Graphics::FloatPoint GetAnchorPosition(void) const;
private:
_LiveboxPopupModel(const _LiveboxPopupModel& rhs);
_LiveboxPopupModel& operator =(const _LiveboxPopupModel& rhs);
private:
- Tizen::Base::String __providerId;
+ Tizen::Base::String __providerId;\r
+ Tizen::Graphics::FloatPoint __anchorPosition;\r
+
}; // _LiveboxPopupModel
}} // Tizen::Shell
}
void
+_LiveboxPopupPresenter::SetAnchorPosition(const Tizen::Graphics::FloatPoint& position)
+{
+ return __pLiveboxPopupModel->SetAnchorPosition(position);
+}
+
+FloatPoint
+_LiveboxPopupPresenter::GetAnchorPosition(void) const
+{
+ return __pLiveboxPopupModel->GetAnchorPosition();
+}
+
+void
_LiveboxPopupPresenter::Draw(void)
{
unique_ptr<Canvas> pCanvas(__pLiveboxPopup->GetCanvasN());
SysTryReturnVoidResult(NID_UI_CTRL, pCanvas, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
+ DrawBackground(*pCanvas);
+ DrawAnchor(*pCanvas);
+}
+
+void
+_LiveboxPopupPresenter::DrawBackground(Canvas& canvas)
+{
Rectangle bounds = __pLiveboxPopup->GetBounds();
bounds.x = 0;
bounds.y = 0;
if (__pBackgroundBitmap->IsNinePatchedBitmap())
{
- pCanvas->DrawNinePatchedBitmap(bounds, *__pBackgroundBitmap);
+ canvas.DrawNinePatchedBitmap(bounds, *__pBackgroundBitmap);
+ }
+ else
+ {
+ canvas.DrawBitmap(bounds, *__pBackgroundBitmap, Rectangle(0, 0, __pBackgroundBitmap->GetWidth(), __pBackgroundBitmap->GetHeight()));
+ }
+}
+
+void
+_LiveboxPopupPresenter::DrawAnchor(Canvas& canvas)
+{
+ Rectangle popupBounds = __pLiveboxPopup->GetBounds();
+ FloatPoint anchorF = GetAnchorPosition();
+ Bitmap* pArrowBitmap = null;
+
+ Dimension screenSize = _ControlManager::GetInstance()->GetScreenSize();
+ Point anchor(anchorF.x * screenSize.width, 0);
+
+ if (anchorF.y < 0.5f)
+ {
+ pArrowBitmap = __pArrowUpBitmap.get();
+ anchor.y = 0;
+ }
+ else
+ {
+ pArrowBitmap = __pArrowDownBitmap.get();
+ anchor.y = popupBounds.height - pArrowBitmap->GetHeight();
+ }
+
+ Rectangle bounds(anchor.x, anchor.y, pArrowBitmap->GetWidth(), pArrowBitmap->GetHeight());
+
+ if (pArrowBitmap->IsNinePatchedBitmap())
+ {
+ canvas.DrawNinePatchedBitmap(bounds, *pArrowBitmap);
}
else
{
- pCanvas->DrawBitmap(bounds, *__pBackgroundBitmap, Rectangle(0, 0, __pBackgroundBitmap->GetWidth(), __pBackgroundBitmap->GetHeight()));
+ canvas.DrawBitmap(bounds, *pArrowBitmap, Rectangle(0, 0, pArrowBitmap->GetWidth(), pArrowBitmap->GetHeight()));
}
}
namespace Tizen { namespace Graphics
{
class Bitmap;
+class Canvas;
+class FloatPoint;
}} // Tizen::Graphics
namespace Tizen { namespace Shell
result Initialize(void);
void SetProviderId(const Tizen::Base::String& providerId);
Tizen::Base::String GetProviderId(void) const;
+ void SetAnchorPosition(const Tizen::Graphics::FloatPoint& position);
+ Tizen::Graphics::FloatPoint GetAnchorPosition(void) const;
void Draw(void);
+ void DrawBackground(Tizen::Graphics::Canvas& canvas);
+ void DrawAnchor(Tizen::Graphics::Canvas& canvas);
private:
_LiveboxPopupPresenter(const _LiveboxPopupPresenter& rhs);
{
using namespace Tizen::Base;
+using namespace Tizen::Graphics;
_LiveboxPopupProviderImpl::_LiveboxPopupProviderImpl(const String& instanceId, double x, double y)
:__instanceId(instanceId)
_LiveboxPopupImpl* pLiveboxPopupImpl = _LiveboxPopupImpl::GetInstance(*pLiveboxPopup);
SysTryReturnResult(NID_APP, pLiveboxPopupImpl, E_INVALID_OPERATION, "Not-yet constructed! LiveboxPopup::Construct() should be called before use.");
+ pLiveboxPopupImpl->SetAnchorPosition(FloatPoint(__x, __y));
pLiveboxPopupImpl->SetProviderId(GetInstanceId());
return E_SUCCESS;