X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fwindow-system%2Fwindows%2Fwindow-base-win.cpp;h=c968bea2247a4965fb07f21cdf03d99a08faf45c;hb=8786ea8fbb26a9cb555a613518cf108017467c69;hp=b1d6f1c268e998ff72cfa4427b3932e7fa090909;hpb=4a0a44830468ad7ee43938f7118d71728a5a9376;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/dali/internal/window-system/windows/window-base-win.cpp b/dali/internal/window-system/windows/window-base-win.cpp index b1d6f1c..c968bea 100755 --- a/dali/internal/window-system/windows/window-base-win.cpp +++ b/dali/internal/window-system/windows/window-base-win.cpp @@ -61,7 +61,7 @@ WindowBaseWin::WindowBaseWin( Dali::PositionSize positionSize, Any surface, bool WindowBaseWin::~WindowBaseWin() { - WindowsPlatformImplementation::PostWinMessage( WM_CLOSE, 0, 0, mWin32Window ); + mWindowImpl.PostWinMessage( WM_CLOSE, 0, 0 ); } void WindowBaseWin::Initialize( PositionSize positionSize, Any surface, bool isTransparent ) @@ -78,11 +78,10 @@ void WindowBaseWin::Initialize( PositionSize positionSize, Any surface, bool isT } else { - // XLib should already be initialized so no point in calling XInitThreads - mWin32Window = static_cast< WinWindowHandle >( surfaceId ); + SetWinWindow( surfaceId ); } - WindowsPlatformImplementation::SetListener( MakeCallback( this, &WindowBaseWin::EventEntry ) ); + mWindowImpl.SetListener( MakeCallback( this, &WindowBaseWin::EventEntry ) ); } void WindowBaseWin::OnDeleteRequest() @@ -100,25 +99,25 @@ void WindowBaseWin::OnFocusOut( int type, TWinEventInfo *event ) void WindowBaseWin::OnWindowDamaged( int type, TWinEventInfo *event ) { - Event_Mouse_Button* windowDamagedEvent( (Event_Mouse_Button*)event ); - - if( windowDamagedEvent->window == mWin32Window ) - { - DamageArea area; - area.x = 0; - area.y = 0; - WindowSystem::GetScreenSize( area.width, area.height ); - - mWindowDamagedSignal.Emit( area ); - } + Event_Mouse_Button* windowDamagedEvent( (Event_Mouse_Button*)event ); + + if( windowDamagedEvent->window == mWin32Window ) + { + DamageArea area; + area.x = 0; + area.y = 0; + WindowSystem::GetScreenSize( area.width, area.height ); + + mWindowDamagedSignal.Emit( area ); + } } void WindowBaseWin::OnMouseButtonDown( int type, TWinEventInfo *event ) { Event_Mouse_Button touchEvent = *((Event_Mouse_Button*)event); touchEvent.timestamp = GetTickCount(); - touchEvent.x = LOWORD( event->lParam ); - touchEvent.y = HIWORD( event->lParam ); + touchEvent.x = LOWORD( event->lParam ); + touchEvent.y = HIWORD( event->lParam ); touchEvent.multi.device = DEVICE_MOUSE; if( touchEvent.window == mWin32Window ) @@ -128,7 +127,7 @@ void WindowBaseWin::OnMouseButtonDown( int type, TWinEventInfo *event ) Integration::Point point; point.SetDeviceId( touchEvent.multi.device ); point.SetState( state ); - point.SetScreenPosition( Vector2( touchEvent.x, touchEvent.y + WindowsPlatformImplementation::GetEdgeHeight() ) ); + point.SetScreenPosition( Vector2( touchEvent.x, touchEvent.y + mWindowImpl.GetEdgeHeight() ) ); point.SetRadius( touchEvent.multi.radius, Vector2( touchEvent.multi.radius_x, touchEvent.multi.radius_y ) ); point.SetPressure( touchEvent.multi.pressure ); point.SetAngle( Degree( touchEvent.multi.angle ) ); @@ -141,8 +140,8 @@ void WindowBaseWin::OnMouseButtonUp( int type, TWinEventInfo *event ) { Event_Mouse_Button touchEvent = *( (Event_Mouse_Button*)event ); touchEvent.timestamp = GetTickCount(); - touchEvent.x = LOWORD( event->lParam ); - touchEvent.y = HIWORD( event->lParam ); + touchEvent.x = LOWORD( event->lParam ); + touchEvent.y = HIWORD( event->lParam ); touchEvent.multi.device = DEVICE_MOUSE; if( touchEvent.window == mWin32Window ) @@ -152,7 +151,7 @@ void WindowBaseWin::OnMouseButtonUp( int type, TWinEventInfo *event ) Integration::Point point; point.SetDeviceId( touchEvent.multi.device ); point.SetState( state ); - point.SetScreenPosition( Vector2( touchEvent.x, touchEvent.y + WindowsPlatformImplementation::GetEdgeHeight() ) ); + point.SetScreenPosition( Vector2( touchEvent.x, touchEvent.y + mWindowImpl.GetEdgeHeight() ) ); point.SetRadius( touchEvent.multi.radius, Vector2( touchEvent.multi.radius_x, touchEvent.multi.radius_y ) ); point.SetPressure( touchEvent.multi.pressure ); point.SetAngle( Degree( touchEvent.multi.angle ) ); @@ -165,8 +164,8 @@ void WindowBaseWin::OnMouseButtonMove( int type, TWinEventInfo *event ) { Event_Mouse_Button touchEvent = *((Event_Mouse_Button*)event); touchEvent.timestamp = GetTickCount(); - touchEvent.x = LOWORD( event->lParam ); - touchEvent.y = HIWORD( event->lParam ); + touchEvent.x = LOWORD( event->lParam ); + touchEvent.y = HIWORD( event->lParam ); touchEvent.multi.device = DEVICE_MOUSE; if( touchEvent.window == mWin32Window ) @@ -176,7 +175,7 @@ void WindowBaseWin::OnMouseButtonMove( int type, TWinEventInfo *event ) Integration::Point point; point.SetDeviceId( touchEvent.multi.device ); point.SetState( state ); - point.SetScreenPosition( Vector2( touchEvent.x, touchEvent.y + WindowsPlatformImplementation::GetEdgeHeight() ) ); + point.SetScreenPosition( Vector2( touchEvent.x, touchEvent.y + mWindowImpl.GetEdgeHeight() ) ); point.SetRadius( touchEvent.multi.radius, Vector2( touchEvent.multi.radius_x, touchEvent.multi.radius_y ) ); point.SetPressure( touchEvent.multi.pressure ); point.SetAngle( Degree( touchEvent.multi.angle ) ); @@ -239,7 +238,7 @@ void WindowBaseWin::OnKeyUp( int type, TWinEventInfo *event ) // Ensure key event string is not NULL as keys like SHIFT have a null string. keyString.push_back( event->wParam ); - Integration::KeyEvent keyEvent( keyName, emptyString, keyString, keyCode, modifier, time, Integration::KeyEvent::Down, emptyString, emptyString, DEFAULT_DEVICE_CLASS, DEFAULT_DEVICE_SUBCLASS ); + Integration::KeyEvent keyEvent( keyName, emptyString, keyString, keyCode, modifier, time, Integration::KeyEvent::Up, emptyString, emptyString, DEFAULT_DEVICE_CLASS, DEFAULT_DEVICE_SUBCLASS ); mKeyEventSignal.Emit( keyEvent ); } @@ -291,6 +290,7 @@ void WindowBaseWin::Move( PositionSize positionSize ) void WindowBaseWin::Resize( PositionSize positionSize ) { + ::SetWindowPos( (HWND)mWin32Window, NULL, positionSize.x, positionSize.y, positionSize.width, positionSize.height, SWP_SHOWWINDOW ); } void WindowBaseWin::MoveResize( PositionSize positionSize ) @@ -313,11 +313,11 @@ void WindowBaseWin::Activate() { } -void WindowBaseWin::SetAvailableOrientations( const std::vector< Dali::Window::WindowOrientation >& orientations ) +void WindowBaseWin::SetAvailableAnlges( const std::vector< int >& angles ) { } -void WindowBaseWin::SetPreferredOrientation( Dali::Window::WindowOrientation orientation ) +void WindowBaseWin::SetPreferredAngle( int angle ) { } @@ -436,7 +436,7 @@ void WindowBaseWin::GetDpi( unsigned int& dpiHorizontal, unsigned int& dpiVertic float xres, yres; //// 1 inch = 25.4 millimeters - WindowsPlatformImplementation::GetDPI( mWin32Window, xres, yres ); + mWindowImpl.GetDPI( xres, yres ); xres *= 1.5f; yres *= 1.5f; @@ -479,79 +479,94 @@ unsigned int WindowBaseWin::GetSurfaceId( Any surface ) const void WindowBaseWin::CreateWinWindow( PositionSize positionSize, bool isTransparent ) { - long hWnd = WindowsPlatformImplementation::CreateHwnd( "Demo", "Demo", positionSize.x, positionSize.y, positionSize.width, positionSize.height, NULL ); - - WindowsPlatformImplementation::ShowWindow( hWnd ); - - mWin32Window = (WinWindowHandle)hWnd; + long hWnd = mWindowImpl.CreateHwnd( "Demo", "Demo", positionSize.x, positionSize.y, positionSize.width, positionSize.height, NULL ); + + mWin32Window = static_cast(hWnd); + DALI_ASSERT_ALWAYS( mWin32Window != 0 && "There is no Windows window" ); } +void WindowBaseWin::SetWinWindow( unsigned int surfaceId ) +{ + HWND hWnd = (HWND)surfaceId; + + mWin32Window = static_cast(surfaceId); + + mWindowImpl.SetHWND( reinterpret_cast(hWnd)); + + mWindowImpl.SetWinProc(); +} + void WindowBaseWin::EventEntry( TWinEventInfo *event ) { unsigned int uMsg = event->uMsg; - switch( uMsg ) - { - case WM_SETFOCUS: - { - OnFocusIn( uMsg, event ); - break; - } - - case WM_KILLFOCUS: - { - OnFocusOut( uMsg, event ); - break; - } - - case WM_PAINT: - { - OnWindowDamaged( uMsg, event ); - break; - } - - case WM_LBUTTONDOWN: - { - OnMouseButtonDown( uMsg, event ); - break; - } - - case WM_LBUTTONUP: - { - OnMouseButtonUp( uMsg, event ); - break; - } - - case WM_MOUSEMOVE: - { - OnMouseButtonMove( uMsg, event ); - break; - } - - case WM_MOUSEWHEEL: - { - OnMouseWheel( uMsg, event ); - break; - } - - case WM_KEYDOWN: - { - OnKeyDown( uMsg, event ); - break; - } - - case WM_KEYUP: - { - OnKeyUp( uMsg, event ); - break; - } - + switch( uMsg ) + { + case WM_SETFOCUS: + { + OnFocusIn( uMsg, event ); + break; + } + + case WM_KILLFOCUS: + { + OnFocusOut( uMsg, event ); + break; + } + + case WM_PAINT: + { + OnWindowDamaged( uMsg, event ); + break; + } + + case WM_LBUTTONDOWN: + { + OnMouseButtonDown( uMsg, event ); + break; + } + + case WM_LBUTTONUP: + { + OnMouseButtonUp( uMsg, event ); + break; + } + + case WM_MOUSEMOVE: + { + OnMouseButtonMove( uMsg, event ); + break; + } + + case WM_MOUSEWHEEL: + { + OnMouseWheel( uMsg, event ); + break; + } + + case WM_KEYDOWN: + { + OnKeyDown( uMsg, event ); + break; + } + + case WM_KEYUP: + { + OnKeyUp( uMsg, event ); + break; + } + default: - break; + break; } } +void WindowBaseWin::SetParent( WindowBase* parentWinBase ) +{ + +} + } // namespace Adaptor } // namespace Internal