Fix coordinate error
authorHeeJu Kang <mobum.kang@samsung.com>
Mon, 5 Aug 2013 09:55:16 +0000 (18:55 +0900)
committerHeeJu Kang <mobum.kang@samsung.com>
Mon, 5 Aug 2013 09:55:16 +0000 (18:55 +0900)
Change-Id: Ie646f06d9fde07a1b8c217c70cea13b6c9401075
Signed-off-by: HeeJu Kang <mobum.kang@samsung.com>
12 files changed:
src/FShell_AppWidgetBuffer.cpp
src/FShell_AppWidgetBuffer.h
src/FShell_AppWidgetLayer.cpp
src/FShell_AppWidgetLayer.h
src/FShell_AppWidgetPopup.cpp
src/FShell_AppWidgetProviderManagerImpl.cpp
src/FShell_AppWidgetServiceRequestDispatcher.cpp
src/FShell_AppWidgetView.cpp
src/FShell_AppWidgetViewManager.cpp
src/FShell_AppWidgetViewManager.h
src/inc/FShell_AppWidgetProviderManagerImpl.h
src/inc/FShell_AppWidgetServiceRequestDispatcher.h

index 7c47b76..b2ed462 100644 (file)
@@ -124,7 +124,7 @@ _AppWidgetBuffer::Initialize(void)
 }
 
 void*
-_AppWidgetBuffer::AllocBuffer(Pixmap pixmap, const Tizen::Graphics::FloatDimension& size)
+_AppWidgetBuffer::AllocBuffer(Pixmap pixmap, const Tizen::Graphics::Dimension& size)
 {
        unique_ptr<_Buffer> pBuffer;
 
@@ -240,7 +240,7 @@ _AppWidgetBuffer::_Buffer::~_Buffer(void)
 }
 
 void*
-_AppWidgetBuffer::_Buffer::AllocBuffer(Pixmap pixmap, const Tizen::Graphics::FloatDimension& size)
+_AppWidgetBuffer::_Buffer::AllocBuffer(Pixmap pixmap, const Tizen::Graphics::Dimension& size)
 {
        __pixmap = pixmap;
        __size = size;
@@ -307,7 +307,7 @@ _AppWidgetBuffer::_Buffer::Dump(const char* pName)
 
        SysTryReturnVoidResult(NID_SHELL, pBuffer, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
 
-       int size = static_cast<int>(__size.width) * static_cast<int>(__size.height) * __depth;
+       int size = __size.width * __size.height * __depth;
 
        char fileName[1024];
        memset(fileName, 0, sizeof(fileName));
@@ -373,8 +373,8 @@ _AppWidgetBuffer::_Buffer::DeleteBuffer(void)
 void
 _AppWidgetBuffer::_Buffer::OnCreateBuffer(void)
 {
-       int bufferSize = static_cast<int>(__size.width) * static_cast<int>(__size.height) * __depth;
-       SysLog(NID_SHELL, "%d [%f %f %d]", bufferSize, __size.width, __size.height, __depth);
+       int bufferSize = __size.width * __size.height * __depth;
+       SysLog(NID_SHELL, "%d [%d %d %d]", bufferSize, __size.width, __size.height, __depth);
 
        __xShmSegmentInfo.shmid = shmget(IPC_PRIVATE, bufferSize, IPC_CREAT | 0666);
        SysTryReturnVoidResult(NID_SHELL, __xShmSegmentInfo.shmid >= 0, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
@@ -480,14 +480,14 @@ _AppWidgetBuffer::_GemBuffer::DeleteGemBuffer(void)
 void
 _AppWidgetBuffer::_GemBuffer::OnCreateBuffer(void)
 {
-       SysLog(NID_SHELL, "[%f %f]", __size.width, __size.height);
+       SysLog(NID_SHELL, "[%d %d]", __size.width, __size.height);
 
        unsigned int pitch = 0;
 
        DRI2CreateDrawable(__pAppWidgetBuffer->__pDisplay.get(), __pixmap);
 
-       int width = static_cast<int>(__size.width);
-       int height = static_cast<int>(__size.height);
+       int width = __size.width;
+       int height = __size.height;
 
        __pDri2Buffer = DRI2GetBuffers(__pAppWidgetBuffer->__pDisplay.get(), __pixmap, &width, &height, __attachments, __count, &__outCount);
        SysTryCatch(NID_SHELL, __pDri2Buffer && __pDri2Buffer->name, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
index 314eed3..f5a5e1d 100644 (file)
@@ -60,7 +60,7 @@ public:
        ~_AppWidgetBuffer(void);
 
        void Initialize(void);
-       void* AllocBuffer(Pixmap pixmap, const Tizen::Graphics::FloatDimension& size);
+       void* AllocBuffer(Pixmap pixmap, const Tizen::Graphics::Dimension& size);
        void DeallocBuffer(void);
        void* LockBuffer(void);
        void UnlockBuffer(void);
@@ -81,7 +81,7 @@ private:
        public:
                _Buffer(_AppWidgetBuffer* pAppWidgetBuffer);
                virtual ~_Buffer(void);
-               void* AllocBuffer(Pixmap pixmap, const Tizen::Graphics::FloatDimension& size);
+               void* AllocBuffer(Pixmap pixmap, const Tizen::Graphics::Dimension& size);
                void DeallocBuffer(void);
                void* LockBuffer(void);
                void UnlockBuffer(void);
@@ -105,7 +105,7 @@ private:
                bool __locked;
                Pixmap __pixmap;
                int __depth;
-               Tizen::Graphics::FloatDimension __size;
+               Tizen::Graphics::Dimension __size;
                _AppWidgetBuffer* __pAppWidgetBuffer;
 
        private:
@@ -143,7 +143,7 @@ private:
                void* __pCompensateBuffer;
        };
 
-       Tizen::Graphics::FloatDimension __size;
+       Tizen::Graphics::Dimension __size;
        int __screen;
        Visual* __pVisual;
 
index 52b1a69..7ff3858 100644 (file)
@@ -35,6 +35,7 @@
 #include <FUiAnim_DisplayManager.h>
 #include "FUiAnim_RootVisualElement.h"
 #include "FUi_AccessibilityManager.h"
+#include "FUi_CoordinateSystemUtils.h"
 #include "FUi_Window.h"
 #include "FShell_AppWidgetBuffer.h"
 #include "FShell_AppWidgetLayer.h"
@@ -75,7 +76,7 @@ FreeRenderBuffer(void* pData, void* pCanvas)
 void
 PreRender(void* pData, Evas* pEvas, void* pEventInfo)
 {
-       SysLog(NID_SHELL, "ENTER");
+//     SysLog(NID_SHELL, "ENTER");
 
        _AppWidgetLayer* pAppWidgetLayer = static_cast<_AppWidgetLayer*>(pData);
        SysTryReturnVoidResult(NID_SHELL, pAppWidgetLayer, E_INVALID_ARG, "[E_INVALID_ARG] The argument is invalid.");
@@ -86,7 +87,7 @@ PreRender(void* pData, Evas* pEvas, void* pEventInfo)
 void
 PostRender(void* pData, Evas* pEvas, void* pEventInfo)
 {
-       SysLog(NID_SHELL, "ENTER");
+//     SysLog(NID_SHELL, "ENTER");
 
        _AppWidgetLayer* pAppWidgetLayer = static_cast<_AppWidgetLayer*>(pData);
        SysTryReturnVoidResult(NID_SHELL, pAppWidgetLayer, E_INVALID_ARG, "[E_INVALID_ARG] The argument is invalid.");
@@ -121,6 +122,19 @@ _AppWidgetLayer::_AppWidgetLayer(const Tizen::Base::String& providerId, const Fl
        , __flush(false)
        , __pWindow(null)
 {
+       FloatDimension physicalSize = _CoordinateSystemUtils::Transform(__size);
+       __physicalSize = _CoordinateSystemUtils::ConvertToInteger(physicalSize);
+       SysSecureLog(NID_SHELL, "size(%f %f) physicalSize(%f %f %d %d)", __size.width, __size.height, physicalSize.width, physicalSize.height, __physicalSize.width, __physicalSize.height);
+
+       if (__physicalSize.width <= 0)
+       {
+               __physicalSize.width = 1;
+       }
+
+       if (__physicalSize.height <= 0)
+       {
+               __physicalSize.height = 1;
+       }
 }
 
 _AppWidgetLayer::~_AppWidgetLayer(void)
@@ -153,12 +167,12 @@ _AppWidgetLayer::OnConstructed(void)
 
        __pAppWidgetBuffer->Initialize();
 
-       unique_ptr<Ecore_Evas, _EcoreEvasDeleter> pEcoreEvas(ecore_evas_buffer_allocfunc_new(__size.width, __size.height, AllocRenderBuffer, FreeRenderBuffer, this));
+       unique_ptr<Ecore_Evas, _EcoreEvasDeleter> pEcoreEvas(ecore_evas_buffer_allocfunc_new(__physicalSize.width, __physicalSize.height, AllocRenderBuffer, FreeRenderBuffer, this));
        SysTryReturn(NID_SHELL, pEcoreEvas, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
 
        ecore_evas_alpha_set(pEcoreEvas.get(), EINA_TRUE);
        ecore_evas_manual_render_set(pEcoreEvas.get(), EINA_FALSE);
-       ecore_evas_resize(pEcoreEvas.get(), __size.width, __size.height);
+       ecore_evas_resize(pEcoreEvas.get(), __physicalSize.width, __physicalSize.height);
        ecore_evas_activate(pEcoreEvas.get());
 
        Evas* pEvas = ecore_evas_get(pEcoreEvas.get());
@@ -170,7 +184,7 @@ _AppWidgetLayer::OnConstructed(void)
        unique_ptr<Evas_Object, _EvasObjectDeleter> pEvasObject(evas_object_rectangle_add(pEvas));
        SysTryReturn(NID_SHELL, pEvasObject, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
 
-       evas_object_resize(pEvasObject.get(), __size.width, __size.height);
+       evas_object_resize(pEvasObject.get(), __physicalSize.width, __physicalSize.height);
        evas_object_color_set(pEvasObject.get(), 0, 0, 0, 255);
 
        r = Initialize(pEvasObject.get());
@@ -199,7 +213,7 @@ _AppWidgetLayer::SetProviderId(const String& providerId)
        __pixmapId = AcquirePixmap();
        SysTryReturn(NID_SHELL, __pixmapId != -1, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
 
-       SysSecureLog(NID_SHELL, "pixmapId(%d) size(%f %f)", __pixmapId, __size.width, __size.height);
+       SysSecureLog(NID_SHELL, "pixmapId(%d) size(%f %f) physicalSize(%f %f)", __pixmapId, __size.width, __size.height, __physicalSize.width, __physicalSize.height);
 
        result r = RegisterTouchEventListener();
        SysTryReturn(NID_SHELL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
@@ -224,7 +238,21 @@ _AppWidgetLayer::SetLayerBounds(const FloatRectangle& bounds)
 {
        __size = FloatDimension(bounds.width, bounds.height);
 
-       ecore_evas_resize(__pEcoreEvas.get(), __size.width, __size.height);
+       FloatDimension physicalSize = _CoordinateSystemUtils::Transform(__size);
+       __physicalSize = _CoordinateSystemUtils::ConvertToInteger(physicalSize);
+       SysSecureLog(NID_SHELL, "size(%f %f) physicalSize(%f %f %d %d)", __size.width, __size.height, physicalSize.width, physicalSize.height, __physicalSize.width, __physicalSize.height);
+
+       if (__physicalSize.width <= 0)
+       {
+               __physicalSize.width = 1;
+       }
+
+       if (__physicalSize.height <= 0)
+       {
+               __physicalSize.height = 1;
+       }
+
+       ecore_evas_resize(__pEcoreEvas.get(), __physicalSize.width, __physicalSize.height);
 
        SetBounds(bounds);
 }
@@ -252,7 +280,7 @@ _AppWidgetLayer::AllocCanvas(int size)
                        SysTryReturn(NID_SHELL, __pixmapId != -1, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
                }
 
-               __pRenderBuffer = __pAppWidgetBuffer->AllocBuffer(__pixmapId, __size);
+               __pRenderBuffer = __pAppWidgetBuffer->AllocBuffer(__pixmapId, __physicalSize);
                pBuffer = __pRenderBuffer;
                __pAppWidgetBuffer->UnlockBuffer();
        }
@@ -293,12 +321,12 @@ _AppWidgetLayer::FreeCanvas(void* pCanvas)
 }
 
 result
-_AppWidgetLayer::SyncPixmap(const FloatDimension& size)
+_AppWidgetLayer::SyncPixmap(const Dimension& size)
 {
        SysTryReturn(NID_SHELL, __pRenderBuffer, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
        SysTryReturn(NID_SHELL, __pAppWidgetBuffer, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
 
-       SysSecureLog(NID_SHELL, "buffer (0x%x) size (%d) pixmapId (%d) width(%f) height(%f)", __pRenderBuffer, __bufferSize, __pixmapId, size.width, size.height);
+       SysSecureLog(NID_SHELL, "buffer (0x%x) size (%d) pixmapId (%d) width(%d) height(%d)", __pRenderBuffer, __bufferSize, __pixmapId, size.width, size.height);
 
        XShmPutImage(__pAppWidgetBuffer->GetDisplay(), static_cast<Pixmap>(__pixmapId), __pAppWidgetBuffer->GetGc(), __pAppWidgetBuffer->GetXImage(), 0, 0, 0, 0, size.width, size.height, False);
        XSync(__pAppWidgetBuffer->GetDisplay(), False);
@@ -319,13 +347,13 @@ _AppWidgetLayer::OnRendered(void)
                        SysTryReturnVoidResult(NID_SHELL, __pixmapId >= 0, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
                }
 
-               r = SyncPixmap(__size);
+               r = SyncPixmap(__physicalSize);
                SysTryReturnVoidResult(NID_SHELL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
        }
 
        SysLog(NID_SHELL, "ENTER (%d)", __type);
 
-       r = Sync(__size);
+       r = Sync(__physicalSize);
        SysTryReturnVoidResult(NID_SHELL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
 }
 
@@ -334,7 +362,7 @@ _AppWidgetLayer::OnNativeCanvasPreRendered(void)
 {
        if (!__flush)
        {
-               SysLog(NID_SHELL, "ENTER (%d)", __type);
+//             SysLog(NID_SHELL, "ENTER (%d)", __type);
 
                __pAppWidgetBuffer->LockBuffer();
 
@@ -350,7 +378,7 @@ _AppWidgetLayer::OnNativeCanvasPostRendered(void)
 {
        if (!__flush)
        {
-               SysLog(NID_SHELL, "ENTER (%d)", __type);
+//             SysLog(NID_SHELL, "ENTER (%d)", __type);
                __pAppWidgetBuffer->UnlockBuffer();
        }
 }
@@ -377,16 +405,16 @@ _AppWidgetLayer::AcquirePixmap(void)
 
        int pixmapId = -1;
 
-       result r = _AppWidgetProviderManagerImpl::GetInstance()->AcquireRemoteBuffer(__providerId, __size.width, __size.height, pixmapId);
+       result r = _AppWidgetProviderManagerImpl::GetInstance()->AcquireRemoteBuffer(__providerId, __physicalSize.width, __physicalSize.height, pixmapId);
        SysTryReturn(NID_SHELL, r == E_SUCCESS, -1, r, "[%s] Propagating.", GetErrorMessage(r));
 
-       SysSecureLog(NID_SHELL, "pixmapId(%d) size(%f %f)", pixmapId, __size.width, __size.height);
+       SysSecureLog(NID_SHELL, "pixmapId(%d) size(%f %f) physicalSize(%d %d)", pixmapId, __size.width, __size.height, __physicalSize.width, __physicalSize.height);
 
        return pixmapId;
 }
 
 result
-_AppWidgetLayer::Sync(const FloatDimension& size)
+_AppWidgetLayer::Sync(const Dimension& size)
 {
        SysTryReturn(NID_SHELL, !__providerId.IsEmpty(), E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] The argument is invalid.");
 
@@ -432,8 +460,8 @@ _AppWidgetLayer::OnTouchEventRecevied(int eventType, double timestamp, double x,
 
        SysLog(NID_SHELL, "eventType (%d) timestamp (%f) (%f, %f) tempTime (%d)", eventType, timestamp, x, y, tempTime);
 
-       int xPos = __size.width * x;
-       int yPos = __size.height * y;
+       int xPos = __physicalSize.width * x;
+       int yPos = __physicalSize.height * y;
 
        Evas* pEvas = ecore_evas_get(__pEcoreEvas.get());
        SysTryReturn(NID_SHELL, pEvas, 0, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
@@ -527,7 +555,7 @@ _AppWidgetLayer::Flush(void)
                Evas* pEvas = ecore_evas_get(__pEcoreEvas.get());
                SysTryReturnVoidResult(NID_SHELL, pEvas, E_OUT_OF_MEMORY, "[%s] Propagating.", GetErrorMessage(E_OUT_OF_MEMORY));
 
-               evas_damage_rectangle_add(pEvas, 0, 0, __size.width, __size.height);
+               evas_damage_rectangle_add(pEvas, 0, 0, __physicalSize.width, __physicalSize.height);
        }
 
        _EflLayer::Flush();
@@ -537,7 +565,7 @@ _AppWidgetLayer::Flush(void)
                void* pBuffer = const_cast<void*>(ecore_evas_buffer_pixels_get(__pEcoreEvas.get()));
                SysTryReturnVoidResult(NID_SHELL, pBuffer, E_OUT_OF_MEMORY, "[%s] Propagating.", GetErrorMessage(E_OUT_OF_MEMORY));
 
-               evas_data_argb_unpremul(static_cast<unsigned int*>(pBuffer), __size.width * __size.height);
+               evas_data_argb_unpremul(static_cast<unsigned int*>(pBuffer), __physicalSize.width * __physicalSize.height);
 
                OnRendered();
        }
index df1567e..3614761 100644 (file)
@@ -60,7 +60,7 @@ public:
        void* AllocCanvas(int size);
        void FreeCanvas(void* pCanvas);
        int EventHandler(int eventType, double timestamp, double x, double y);
-       result SyncPixmap(const Tizen::Graphics::FloatDimension& size);
+       result SyncPixmap(const Tizen::Graphics::Dimension& size);
        void OnRendered(void);
        void OnNativeCanvasPreRendered(void);
        void OnNativeCanvasPostRendered(void);
@@ -68,7 +68,7 @@ public:
 
        virtual result RegisterTouchEventListener(void);
        virtual int AcquirePixmap(void);
-       virtual result Sync(const Tizen::Graphics::FloatDimension& size);
+       virtual result Sync(const Tizen::Graphics::Dimension& size);
        virtual void ReleasePixmap(void);
        virtual int OnTouchEventRecevied(int eventType, double timestamp, double x, double y);
 
@@ -81,6 +81,7 @@ private:
 protected:
        bool __isReleased;
        Tizen::Graphics::FloatDimension __size;
+       Tizen::Graphics::Dimension __physicalSize;
        std::unique_ptr<_AppWidgetBuffer> __pAppWidgetBuffer;
        int __type;
 
index e99c6fe..7441be9 100644 (file)
@@ -61,7 +61,7 @@ private:
 
        virtual result RegisterTouchEventListener(void);
        virtual int AcquirePixmap(void);
-       virtual result Sync(const FloatDimension& size);
+       virtual result Sync(const Dimension& size);
        virtual void ReleasePixmap(void);
 };
 
@@ -98,19 +98,19 @@ _AppWidgetPopupLayer::AcquirePixmap(void)
 
        int pixmapId = -1;
 
-       result r = _AppWidgetProviderManagerImpl::GetInstance()->AcquireRemoteBufferForPD(GetProviderId(), __size.width, __size.height, pixmapId);
+       result r = _AppWidgetProviderManagerImpl::GetInstance()->AcquireRemoteBufferForPD(GetProviderId(), __physicalSize.width, __physicalSize.height, pixmapId);
        SysTryReturn(NID_SHELL, r == E_SUCCESS, -1, r, "[%s] Propagating.", GetErrorMessage(r));
 
        SystemTime::GetTicks(ticks);
        SysLog(NID_SHELL, "%lld", ticks);
 
-       SysLog(NID_SHELL, "pixmapId(%d) size(%f %f)", pixmapId, __size.width, __size.height);
+       SysSecureLog(NID_SHELL, "pixmapId(%d) size(%f %f) physicalSize(%d %d)", pixmapId, __size.width, __size.height, __physicalSize.width, __physicalSize.height);
 
        return pixmapId;
 }
 
 result
-_AppWidgetPopupLayer::Sync(const FloatDimension& size)
+_AppWidgetPopupLayer::Sync(const Dimension& size)
 {
        result r = _AppWidgetProviderManagerImpl::GetInstance()->SyncRemoteBufferForPD(GetProviderId());
        SysTryReturn(NID_SHELL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
index 09ad083..748f0dc 100644 (file)
@@ -351,7 +351,7 @@ _AppWidgetProviderManagerImpl::ContainsAppWidget(const String& instanceId) const
 }
 
 result
-_AppWidgetProviderManagerImpl::CreateAppWidget(const String& name, const String& instanceId, int width, int height, const String& userInfo)
+_AppWidgetProviderManagerImpl::CreateAppWidget(const String& name, const String& instanceId, float width, float height, const String& userInfo)
 {
        SysSecureLog(NID_SHELL, "instanceId(%ls), w:%d, h:%d, userInfo:%ls", instanceId.GetPointer(), width, height, userInfo.GetPointer());
        SysTryReturnResult(NID_SHELL, __pAppWidgetFactory, E_FAILURE, "__pAppWidgetFactory should not be null. Please make sure AppWidgetProviderManager::SetAppWidgetProviderFactory() is called in App::OnAppInitializing() and successed.");
index 08772d8..242e517 100644 (file)
@@ -29,6 +29,7 @@
 #include <FApp_ServiceAppImpl.h>
 #include "FShell_AppWidgetManagerProxy.h"
 #include "FShell_AppWidgetServiceRequestDispatcher.h"
+#include "FUi_CoordinateSystemUtils.h"
 
 
 namespace Tizen { namespace Shell {
@@ -37,6 +38,9 @@ using namespace Tizen::Io;
 using namespace Tizen::Base;
 using namespace Tizen::Base::Collection;
 using namespace Tizen::App;
+using namespace Tizen::Ui;
+using namespace Tizen::Graphics;
+
 
 const wchar_t APPWIDGET_ON_ADD_RESTORE[] = L"http://tizen.org/appcontrol/appwidget/add_restore";
 extern const wchar_t APPWIDGET_ON_ADD[] = L"http://tizen.org/appcontrol/appwidget/add";
@@ -262,7 +266,9 @@ _AppWidgetServiceRequestDispatcher::OnAddAppWidget(const Tizen::Base::String& in
        SysTryReturnResult(NID_SHELL, pValue, E_FAILURE, "Failed to GetValue(%ls)", ARG_KEY_HEIGHT.GetPointer() );
        Integer::Parse(*pValue, height);
 
-       return CreateAppWidget(*pName, instanceId, width, height, *pParam);
+       FloatDimension size = _CoordinateSystemUtils::InverseTransform(FloatDimension(width, height));
+
+       return CreateAppWidget(*pName, instanceId, size.width, size.height, *pParam);
 }
 
 result
index 5bc1002..30ec929 100644 (file)
@@ -371,7 +371,10 @@ _AppWidgetView::OpenAppWidgetPopup(void)
        r = GetLastResult();
        SysTryReturn(NID_SHELL, pParent, r, r, "[%s] Propagating.", GetErrorMessage(r));
 
-       FloatDimension size = __pAppWidgetViewManager->GetAppWidgetPopupSize(__pAppWidget);
+       Dimension physicalSize = __pAppWidgetViewManager->GetAppWidgetPopupSize(__pAppWidget);
+       FloatDimension size = _CoordinateSystemUtils::InverseTransform(FloatDimension(physicalSize.width, physicalSize.height));
+       SysSecureLog(NID_SHELL, "physicalSize [%d %d] size [%f %f]", physicalSize.width, physicalSize.height, size.width, size.height);
+
        FloatRectangle popupBounds(0, 0, size.width, size.height);
        FloatRectangle bounds = GetBoundsF();
        FloatRectangle absoluteBounds = GetAbsoluteBoundsF();
@@ -391,7 +394,7 @@ _AppWidgetView::OpenAppWidgetPopup(void)
                popupBounds.y = absoluteBounds.y + absoluteBounds.height - anchorSize.height;
        }
 
-       SysLog(NID_SHELL, "[%d %d]", popupBounds.y, size.height);
+       SysLog(NID_SHELL, "[%f %f %f]", popupBounds.y, size.width, size.height);
 
        if (!__pAppWidgetPopupView)
        {
index 6b7c39a..37f1989 100644 (file)
@@ -44,6 +44,7 @@ extern "C"
 #include <FGrp_BitmapImpl.h>
 #include <FGrp_CoordinateSystem.h>
 #include <FUi_ControlManager.h>
+#include <FUi_CoordinateSystemUtils.h>
 #include <FUiCtrl_Frame.h>
 #include <FUiCtrl_IFrameEventListener.h>
 #include "FShell_AppWidgetBuffer.h"
@@ -174,10 +175,10 @@ _AppWidgetViewManager::GetAppWidgetView(livebox* pAppWidget) const
        return pAppWidgetView;
 }
 
-FloatDimension
+Dimension
 _AppWidgetViewManager::GetAppWidgetSize(livebox* pAppWidget) const
 {
-       SysTryReturn(NID_SHELL, pAppWidget, FloatDimension(0, 0), E_SYSTEM, "[E_SYSTEM] A system error occurred.");
+       SysTryReturn(NID_SHELL, pAppWidget, Dimension(0, 0), E_SYSTEM, "[E_SYSTEM] A system error occurred.");
 
        int width = 0;
        int height = 0;
@@ -187,13 +188,13 @@ _AppWidgetViewManager::GetAppWidgetSize(livebox* pAppWidget) const
 
 //     SysLog(NID_SHELL, "size [%d %d]", width, height);
 
-       return FloatDimension(width, height);
+       return Dimension(width, height);
 }
 
-FloatDimension
+Dimension
 _AppWidgetViewManager::GetAppWidgetPopupSize(livebox* pAppWidget) const
 {
-       SysTryReturn(NID_SHELL, pAppWidget, FloatDimension(0, 0), E_SYSTEM, "[E_SYSTEM] A system error occurred.");
+       SysTryReturn(NID_SHELL, pAppWidget, Dimension(0, 0), E_SYSTEM, "[E_SYSTEM] A system error occurred.");
 
        int width = 0;
        int height = 0;
@@ -202,7 +203,7 @@ _AppWidgetViewManager::GetAppWidgetPopupSize(livebox* pAppWidget) const
 
 //     SysLog(NID_SHELL, "size [%d %d]", width, height);
 
-       return FloatDimension(width, height);
+       return Dimension(width, height);
 }
 
 void
@@ -263,7 +264,7 @@ _AppWidgetViewManager::GetAppWidgetSizeType(const Tizen::Graphics::FloatDimensio
                }
        }
 
-       SysLog(NID_SHELL, "[%f %f] type [%d][%d]", size.width, size.height, sizeType, sizetypeCount);
+       SysSecureLog(NID_SHELL, "[%f %f] type [%d][%d]", size.width, size.height, sizeType, sizetypeCount);
 
        return sizeType;
 }
@@ -344,7 +345,7 @@ _AppWidgetViewManager::GetBitmapN(const String& fileName) const
 }
 
 Bitmap*
-_AppWidgetViewManager::GetBitmapN(void* pBuffer, const FloatDimension& size) const
+_AppWidgetViewManager::GetBitmapN(void* pBuffer, const Dimension& size) const
 {
        SysTryReturn(NID_SHELL, pBuffer, null, E_INVALID_ARG, "[E_INVALID_ARG] The argument is invalid.");
 
@@ -358,9 +359,25 @@ _AppWidgetViewManager::GetBitmapN(void* pBuffer, const FloatDimension& size) con
        result r = pByteBuffer->Construct(pTempBuffer, 0, length, length);
        SysTryReturn(NID_SHELL, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
 
+
+       SysSecureLog(NID_SHELL, "Buffer [%f %f]", size.width, size.height);
+
        unique_ptr<Bitmap> pBitmap(_BitmapImpl::GetNonScaledBitmapN(*pByteBuffer.get(), Dimension(size.width, size.height), BITMAP_PIXEL_FORMAT_ARGB8888));
        SysTryReturn(NID_SHELL, pBitmap, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
 
+       SysSecureLog(NID_SHELL, "Buffer [%f %f]", size.width, size.height);
+
+/*
+       SysSecureLog(NID_SHELL, "Buffer [%f %f]", size.width, size.height);
+
+       unique_ptr<Bitmap> pBitmap(new (std::nothrow) Bitmap());
+       SysTryReturn(NID_SHELL, pBitmap, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
+
+       r = pBitmap->Construct(*pByteBuffer.get(), Dimension(size.width, size.height), BITMAP_PIXEL_FORMAT_ARGB8888, BUFFER_SCALING_AUTO);\r
+       SysTryReturn(NID_MEDIA, r == E_SUCCESS, null, r, "[%s] Propagated. ", GetErrorMessage(r));
+
+       SysSecureLog(NID_SHELL, "Bitmap [%f %f]", pBitmap->GetWidthF(), pBitmap->GetHeightF());
+*/
        return pBitmap.release();
 }
 
@@ -396,7 +413,7 @@ _AppWidgetViewManager::IsGlMode(void) const
 }
 
 void
-_AppWidgetViewManager::DumpBuffer(void* pBuffer, FloatDimension size, const char* pName)
+_AppWidgetViewManager::DumpBuffer(void* pBuffer, Dimension size, const char* pName)
 {
        static int index = 0;
        int buffSize = static_cast<int>(size.width) * static_cast<int>(size.height) * sizeof(int);
@@ -432,7 +449,7 @@ _AppWidgetViewManager::DumpBuffer(unsigned int pixmap, const char* pName)
                SysTryReturnVoidResult(NID_SHELL, (width > 0) && (height > 0), E_INVALID_ARG, "[E_INVALID_ARG] The argument is invalid [0x%x %d %d].", pixmap, width , height);
 
                __pAppWidgetBuffer->DeallocBuffer();
-               __pAppWidgetBuffer->AllocBuffer(pixmap, FloatDimension(width, height));
+               __pAppWidgetBuffer->AllocBuffer(pixmap, Dimension(width, height));
                __pAppWidgetBuffer->Dump(pName);
                __pAppWidgetBuffer->UnlockBuffer();
        }
@@ -466,7 +483,12 @@ _AppWidgetViewManager::OnAppWidgetUpdated(livebox* pAppWidget)
                        unique_ptr<Bitmap> pBitmap(GetBitmapN(livebox_filename(pAppWidget)));
                        SysTryReturnVoidResult(NID_SHELL, pBitmap, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
 
-                       pAppWidgetView->OnAppWidgetUpdated(*pBitmap.get(), GetAppWidgetSize(pAppWidget));
+                       Dimension physicalSize = GetAppWidgetSize(pAppWidget);
+
+                       FloatDimension size = _CoordinateSystemUtils::InverseTransform(FloatDimension(physicalSize.width, physicalSize.height));
+                       SysSecureLog(NID_SHELL, "physicalSize [%d %d] size [%f %f]", physicalSize.width, physicalSize.height, size.width, size.height);
+
+                       pAppWidgetView->OnAppWidgetUpdated(*pBitmap.get(), size);
                        pBitmap.release();
                }
                break;
@@ -476,17 +498,21 @@ _AppWidgetViewManager::OnAppWidgetUpdated(livebox* pAppWidget)
                        void* pBuffer = livebox_acquire_fb(pAppWidget);
                        SysTryReturnVoidResult(NID_SHELL, pBuffer, E_SYSTEM, "[E_SYSTEM] A system error occured.");
 
-                       FloatDimension sourceSize = GetAppWidgetSize(pAppWidget);
-                       SysLog(NID_SHELL, "size [%d %d]", sourceSize.width, sourceSize.height);
+                       Dimension physicalSize = GetAppWidgetSize(pAppWidget);
 
 #if defined(_DUMP_BUFFER)
-                       DumpBuffer(pBuffer, sourceSize, "Box");
+                       DumpBuffer(pBuffer, physicalSize, "Box");
 #endif // _DUMP_BUFFER
 
-                       unique_ptr<Bitmap> pBitmap(GetBitmapN(pBuffer, sourceSize));
+                       unique_ptr<Bitmap> pBitmap(GetBitmapN(pBuffer, physicalSize));
                        SysTryReturnVoidResult(NID_SHELL, pBitmap, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
 
-                       pAppWidgetView->OnAppWidgetUpdated(*pBitmap.get(), sourceSize);
+                       FloatDimension size = _CoordinateSystemUtils::InverseTransform(FloatDimension(physicalSize.width, physicalSize.height));
+
+                       SysSecureLog(NID_SHELL, "physicalSize [%d %d] size [%f %f]", physicalSize.width, physicalSize.height, size.width, size.height);
+
+                       pAppWidgetView->OnAppWidgetUpdated(*pBitmap.get(), size);
+
                        livebox_release_fb(pBuffer);
                        pBitmap.release();
                }
@@ -507,16 +533,19 @@ _AppWidgetViewManager::OnAppWidgetUpdated(livebox* pAppWidget)
                        void* pBuffer = livebox_acquire_fb(pAppWidget);
                        SysTryReturnVoidResult(NID_SHELL, pBuffer, E_SYSTEM, "[E_SYSTEM] A system error occured.");
 
-                       FloatDimension sourceSize = GetAppWidgetSize(pAppWidget);
+                       Dimension physicalSize = GetAppWidgetSize(pAppWidget);
 
 #if defined(_DUMP_BUFFER)
-                       DumpBuffer(pBuffer, sourceSize, "Box");
+                       DumpBuffer(pBuffer, physicalSize, "Box");
 #endif // _DUMP_BUFFER
 
-                       unique_ptr<Bitmap> pBitmap(GetBitmapN(pBuffer, sourceSize));
+                       unique_ptr<Bitmap> pBitmap(GetBitmapN(pBuffer, physicalSize));
                        SysTryReturnVoidResult(NID_SHELL, pBitmap, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
 
-                       pAppWidgetView->OnAppWidgetUpdated(*pBitmap.get(), sourceSize);
+                       FloatDimension size = _CoordinateSystemUtils::InverseTransform(FloatDimension(physicalSize.width, physicalSize.height));
+                       SysSecureLog(NID_SHELL, "physicalSize [%d %d] size [%f %f]", physicalSize.width, physicalSize.height, size.width, size.height);
+
+                       pAppWidgetView->OnAppWidgetUpdated(*pBitmap.get(), size);
                        livebox_release_fb(pBuffer);
                        pBitmap.release();
                }
@@ -561,16 +590,19 @@ _AppWidgetViewManager::OnAppWidgetPopupUpdated(livebox* pAppWidget)
                        void* pBuffer = livebox_acquire_pdfb(pAppWidget);
                        SysTryReturnVoidResult(NID_SHELL, pBuffer, E_SYSTEM, "[E_SYSTEM] A system error occured.");
 
-                       FloatDimension sourceSize = GetAppWidgetPopupSize(pAppWidget);
+                       Dimension physicalSize = GetAppWidgetPopupSize(pAppWidget);
 
 #if defined(_DUMP_BUFFER)
-                       DumpBuffer(pBuffer, sourceSize, "Popup");
+                       DumpBuffer(pBuffer, physicalSize, "Popup");
 #endif // _DUMP_BUFFER
 
-                       unique_ptr<Bitmap> pBitmap(GetBitmapN(pBuffer, sourceSize));
+                       unique_ptr<Bitmap> pBitmap(GetBitmapN(pBuffer, physicalSize));
                        SysTryReturnVoidResult(NID_SHELL, pBitmap, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
 
-                       pAppWidgetPopupView->OnAppWidgetUpdated(*pBitmap.get(), sourceSize);
+                       FloatDimension size = _CoordinateSystemUtils::InverseTransform(FloatDimension(physicalSize.width, physicalSize.height));
+                       SysSecureLog(NID_SHELL, "physicalSize [%d %d] size [%f %f]", physicalSize.width, physicalSize.height, size.width, size.height);
+
+                       pAppWidgetPopupView->OnAppWidgetUpdated(*pBitmap.get(), size);
                        livebox_release_pdfb(pBuffer);
                        pBitmap.release();
                }
@@ -590,16 +622,19 @@ _AppWidgetViewManager::OnAppWidgetPopupUpdated(livebox* pAppWidget)
                        void* pBuffer = livebox_acquire_pdfb(pAppWidget);
                        SysTryReturnVoidResult(NID_SHELL, pBuffer, E_SYSTEM, "[E_SYSTEM] A system error occured.");
 
-                       FloatDimension sourceSize = GetAppWidgetPopupSize(pAppWidget);
+                       Dimension physicalSize = GetAppWidgetPopupSize(pAppWidget);
 
 #if defined(_DUMP_BUFFER)
-                       DumpBuffer(pBuffer, sourceSize, "Popup");
+                       DumpBuffer(pBuffer, physicalSize, "Popup");
 #endif // _DUMP_BUFFER
 
-                       unique_ptr<Bitmap> pBitmap(GetBitmapN(pBuffer, sourceSize));
+                       unique_ptr<Bitmap> pBitmap(GetBitmapN(pBuffer, physicalSize));
                        SysTryReturnVoidResult(NID_SHELL, pBitmap, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
 
-                       pAppWidgetPopupView->OnAppWidgetUpdated(*pBitmap.get(), sourceSize);
+                       FloatDimension size = _CoordinateSystemUtils::InverseTransform(FloatDimension(physicalSize.width, physicalSize.height));
+                       SysSecureLog(NID_SHELL, "physicalSize [%d %d] size [%f %f]", physicalSize.width, physicalSize.height, size.width, size.height);
+
+                       pAppWidgetPopupView->OnAppWidgetUpdated(*pBitmap.get(), size);
                        livebox_release_pdfb(pBuffer);
                        pBitmap.release();
                }
index 42628b0..3fa73f3 100644 (file)
@@ -65,8 +65,8 @@ public:
        livebox* AddAppWidgetView(_AppWidgetView* pAppWidgetView, const Tizen::Base::String& userInfo);
        void RemoveAppWidgetView(_AppWidgetView* pAppWidgetView);
        _AppWidgetView* GetAppWidgetView(livebox* pAppWidget) const;
-       Tizen::Graphics::FloatDimension GetAppWidgetSize(livebox* pAppWidget) const;
-       Tizen::Graphics::FloatDimension GetAppWidgetPopupSize(livebox* pAppWidget) const;
+       Tizen::Graphics::Dimension GetAppWidgetSize(livebox* pAppWidget) const;
+       Tizen::Graphics::Dimension GetAppWidgetPopupSize(livebox* pAppWidget) const;
        void SetAppWidgetSize(const _AppWidgetView& appwidgetView, const Tizen::Graphics::FloatDimension& size);
        void AddFrameEventListener(void);
        int GetAppWidgetSizeType(const Tizen::Graphics::FloatDimension& size) const;
@@ -79,9 +79,9 @@ private:
 
        Tizen::Media::MediaPixelFormat GetPixelFormat(Tizen::Graphics::BitmapPixelFormat format) const;
        Tizen::Graphics::Bitmap* GetBitmapN(const Tizen::Base::String& fileName) const;
-       Tizen::Graphics::Bitmap* GetBitmapN(void* pBuffer, const Tizen::Graphics::FloatDimension& size) const;
+       Tizen::Graphics::Bitmap* GetBitmapN(void* pBuffer, const Tizen::Graphics::Dimension& size) const;
        bool IsGlMode(void) const;
-       void DumpBuffer(void* pBuffer, Tizen::Graphics::FloatDimension size, const char* pName);
+       void DumpBuffer(void* pBuffer, Tizen::Graphics::Dimension size, const char* pName);
        void DumpBuffer(unsigned int pixmap, const char* pName);
 
        void OnAppWidgetCreated(livebox* pAppWidget);
index 4aecb50..f4dbec2 100644 (file)
@@ -98,7 +98,7 @@ private:
        virtual ~_AppWidgetProviderManagerImpl();
        result Construct();
 
-       virtual result CreateAppWidget(const Tizen::Base::String& name, const Tizen::Base::String& instanceId, int width, int height, const Tizen::Base::String& userInfo);
+       virtual result CreateAppWidget(const Tizen::Base::String& name, const Tizen::Base::String& instanceId, float width, float height, const Tizen::Base::String& userInfo);
        virtual result UpdateAppWidget(const Tizen::Base::String& instanceId, int width, int height, const Tizen::Base::String& argument);
        virtual result ResizeAppWidget(const Tizen::Base::String& instanceId, int width, int height);
        virtual result RemoveAppWidget(const Tizen::Base::String& instanceId, bool terminateIfFinished);
index 3ed4067..6a9621e 100644 (file)
@@ -99,7 +99,7 @@ protected:
        result OnCreateAppWidgetPopup(const Tizen::Base::String& instanceId, const Tizen::Base::Collection::IMap* pArgs);
        result OnDestroyAppWidgetPopup(const Tizen::Base::String& instanceId, const Tizen::Base::Collection::IMap* pArgs);
 
-       virtual result CreateAppWidget(const Tizen::Base::String& name, const Tizen::Base::String& instanceId, int width, int height, const Tizen::Base::String& userInfo) = 0;
+       virtual result CreateAppWidget(const Tizen::Base::String& name, const Tizen::Base::String& instanceId, float width, float height, const Tizen::Base::String& userInfo) = 0;
        virtual result UpdateAppWidget(const Tizen::Base::String& instanceId, int width, int height, const Tizen::Base::String& argument) = 0;
        virtual result ResizeAppWidget(const Tizen::Base::String& instanceId, int width, int height) = 0;
        virtual result RemoveAppWidget(const Tizen::Base::String& instanceId, bool terminateIfFinished) = 0;