Revert "[Tizen] Add screen and client rotation itself function"
[platform/core/uifw/dali-adaptor.git] / dali / internal / window-system / windows / window-base-win.cpp
index b1d6f1c..c968bea 100755 (executable)
@@ -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 );\r
-\r
-  if( windowDamagedEvent->window == mWin32Window )\r
-  {\r
-    DamageArea area;\r
-    area.x = 0;\r
-    area.y = 0;\r
-    WindowSystem::GetScreenSize( area.width, area.height );\r
-\r
-    mWindowDamagedSignal.Emit( area );\r
-  }\r
+  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 );\r
-  touchEvent.y = HIWORD( event->lParam );\r
+  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 );\r
-  touchEvent.y = HIWORD( event->lParam );\r
+  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 );\r
-  touchEvent.y = HIWORD( event->lParam );\r
+  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 );\r
-\r
-  WindowsPlatformImplementation::ShowWindow( hWnd );\r
-\r
-  mWin32Window = (WinWindowHandle)hWnd;\r
+  long hWnd = mWindowImpl.CreateHwnd( "Demo", "Demo", positionSize.x, positionSize.y, positionSize.width, positionSize.height, NULL );
+
+  mWin32Window = static_cast<WinWindowHandle>(hWnd);
+
   DALI_ASSERT_ALWAYS( mWin32Window != 0 && "There is no Windows window" );
 }
 
+void WindowBaseWin::SetWinWindow( unsigned int surfaceId )
+{
+  HWND hWnd = (HWND)surfaceId;
+
+  mWin32Window = static_cast<WinWindowHandle>(surfaceId);
+
+  mWindowImpl.SetHWND( reinterpret_cast<uint64_t>(hWnd));
+
+  mWindowImpl.SetWinProc();
+}
+
 void WindowBaseWin::EventEntry( TWinEventInfo *event )
 {
   unsigned int uMsg = event->uMsg;
 
-  switch( uMsg )\r
-  {\r
-  case WM_SETFOCUS:\r
-  {\r
-    OnFocusIn( uMsg, event );\r
-    break;\r
-  }\r
-\r
-  case WM_KILLFOCUS:\r
-  {\r
-    OnFocusOut( uMsg, event );\r
-    break;\r
-  }\r
-\r
-  case WM_PAINT:\r
-  {\r
-    OnWindowDamaged( uMsg, event );\r
-    break;\r
-  }\r
-\r
-  case WM_LBUTTONDOWN:\r
-  {\r
-    OnMouseButtonDown( uMsg, event );\r
-    break;\r
-  }\r
-\r
-  case WM_LBUTTONUP:\r
-  {\r
-    OnMouseButtonUp( uMsg, event );\r
-    break;\r
-  }\r
-\r
-  case WM_MOUSEMOVE:\r
-  {\r
-    OnMouseButtonMove( uMsg, event );\r
-    break;\r
-  }\r
-\r
-  case WM_MOUSEWHEEL:\r
-  {\r
-    OnMouseWheel( uMsg, event );\r
-    break;\r
-  }\r
-\r
-  case WM_KEYDOWN:\r
-  {\r
-    OnKeyDown( uMsg, event );\r
-    break;\r
-  }\r
-\r
-  case WM_KEYUP:\r
-  {\r
-    OnKeyUp( uMsg, event );\r
-    break;\r
-  }\r
-\r
+  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;\r
+    break;
   }
 }
 
+void WindowBaseWin::SetParent( WindowBase* parentWinBase )
+{
+
+}
+
 } // namespace Adaptor
 
 } // namespace Internal