X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=adaptors%2Fx11%2Fwindow-impl-x.cpp;h=d760aa808907e561c37bfd2e75cdf11c7b1bac32;hb=1f2153d4febc92138f74ee6b51f2007255fb90b4;hp=c748c56ab0744f1735bb2272fbf1eeb5fcb9d79f;hpb=a23bd76bc3499ef6d56b3bc060ab29b9df0e982c;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/adaptors/x11/window-impl-x.cpp b/adaptors/x11/window-impl-x.cpp index c748c56..d760aa8 100644 --- a/adaptors/x11/window-impl-x.cpp +++ b/adaptors/x11/window-impl-x.cpp @@ -225,11 +225,11 @@ struct Window::EventHandler }; -Window* Window::New(const PositionSize& posSize, const std::string& name, const std::string& className, bool isTransparent) +Window* Window::New( const PositionSize& positionSize, const std::string& name, const std::string& className, bool isTransparent ) { Window* window = new Window(); window->mIsTransparent = isTransparent; - window->Initialize(posSize, name, className); + window->Initialize( positionSize, name, className ); return window; } @@ -349,6 +349,7 @@ Window::Window() mIsFocusAcceptable( true ), mVisible( true ), mOpaqueState( false ), + mResizeEnabled( true ), mIndicator( NULL ), mIndicatorOrientation( Dali::Window::PORTRAIT ), mNextIndicatorOrientation( Dali::Window::PORTRAIT ), @@ -365,17 +366,6 @@ Window::Window() mResizedSignal(), mDeleteRequestSignal() { - - // Detect if we're not running in a ecore main loop (e.g. libuv). - // Typically ecore_x_init is called by app_efl_main->elm_init - // but if we're not using app_efl_main then we have to call it ourselves - // This is a hack until we create a pure X Window class - if( ecore_x_display_get() == NULL ) - { - mEcoreEventHander = false; - ecore_x_init (NULL); // internally calls _ecore_x_input_init - } - } Window::~Window() @@ -402,11 +392,11 @@ Window::~Window() delete mSurface; } -void Window::Initialize(const PositionSize& windowPosition, const std::string& name, const std::string& className) +void Window::Initialize(const PositionSize& positionSize, const std::string& name, const std::string& className) { // create an X11 window by default Any surface; - ECore::WindowRenderSurface* windowSurface = new ECore::WindowRenderSurface( windowPosition, surface, name, className, mIsTransparent ); + ECore::WindowRenderSurface* windowSurface = new ECore::WindowRenderSurface( positionSize, surface, name, className, mIsTransparent ); windowSurface->Map(); mSurface = windowSurface; @@ -818,10 +808,22 @@ void Window::RotationDone( int orientation, int width, int height ) ecore_x_window_prop_property_set( ecoreWindow, ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE, ECORE_X_ATOM_CARDINAL, 32, &angles, 2 ); + + mAdaptor->SurfaceResizePrepare( Adaptor::SurfaceSize( width, height ) ); + + // Emit signal + mResizedSignal.Emit( Dali::DevelWindow::WindowSize( width, height ) ); + + mAdaptor->SurfaceResizeComplete( Adaptor::SurfaceSize( width, height ) ); #endif // DALI_PROFILE_UBUNTU } } +void Window::SetIndicatorVisibleMode( Dali::Window::IndicatorVisibleMode mode ) +{ + mIndicatorVisible = mode; +} + unsigned int Window::GetSupportedAuxiliaryHintCount() { return 0; @@ -911,6 +913,57 @@ int Window::GetBrightness() return 0; } +void Window::SetSize( Dali::DevelWindow::WindowSize size ) +{ + PositionSize positionSize = mSurface->GetPositionSize(); + + if( positionSize.width != size.GetWidth() || positionSize.height != size.GetHeight() ) + { + positionSize.width = size.GetWidth(); + positionSize.height = size.GetHeight(); + + mSurface->MoveResize( positionSize ); + + mAdaptor->SurfaceResizePrepare( Adaptor::SurfaceSize( positionSize.width, positionSize.height ) ); + + // Emit signal + mResizedSignal.Emit( Dali::DevelWindow::WindowSize( positionSize.width, positionSize.height ) ); + + mAdaptor->SurfaceResizeComplete( Adaptor::SurfaceSize( positionSize.width, positionSize.height ) ); + } +} + +Dali::DevelWindow::WindowSize Window::GetSize() +{ + PositionSize positionSize = mSurface->GetPositionSize(); + + return Dali::DevelWindow::WindowSize( positionSize.width, positionSize.height ); +} + +void Window::SetPosition( Dali::DevelWindow::WindowPosition position ) +{ + PositionSize positionSize = mSurface->GetPositionSize(); + + if( positionSize.x != position.GetX() || positionSize.y != position.GetY() ) + { + positionSize.x = position.GetX(); + positionSize.y = position.GetY(); + + mSurface->MoveResize( positionSize ); + } +} + +Dali::DevelWindow::WindowPosition Window::GetPosition() +{ + PositionSize positionSize = mSurface->GetPositionSize(); + + return Dali::DevelWindow::WindowPosition( positionSize.x, positionSize.y ); +} + +void Window::SetTransparency( bool transparent ) +{ +} + } // Adaptor } // Internal