diff options
Diffstat (limited to 'avmedia/source/viewer/mediawindow_impl.cxx')
-rw-r--r-- | avmedia/source/viewer/mediawindow_impl.cxx | 107 |
1 files changed, 54 insertions, 53 deletions
diff --git a/avmedia/source/viewer/mediawindow_impl.cxx b/avmedia/source/viewer/mediawindow_impl.cxx index 24d17abe4d..cb5d9675a1 100644 --- a/avmedia/source/viewer/mediawindow_impl.cxx +++ b/avmedia/source/viewer/mediawindow_impl.cxx @@ -1,4 +1,4 @@ -/************************************************************************* +/************************************************************************ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -77,7 +77,7 @@ MediaWindowControl::~MediaWindowControl() void MediaWindowControl::update() { MediaItem aItem; - + static_cast< MediaWindowImpl* >( GetParent() )->updateMediaItem( aItem ); setState( aItem ); } @@ -94,7 +94,7 @@ void MediaWindowControl::execute( const MediaItem& rItem ) // -------------------- MediaChildWindow::MediaChildWindow( Window* pParent ) : - JavaChildWindow( pParent, WB_CLIPCHILDREN ) + SystemChildWindow( pParent, WB_CLIPCHILDREN ) { } @@ -110,8 +110,8 @@ void MediaChildWindow::MouseMove( const MouseEvent& rMEvt ) { const MouseEvent aTransformedEvent( GetParent()->ScreenToOutputPixel( OutputToScreenPixel( rMEvt.GetPosPixel() ) ), rMEvt.GetClicks(), rMEvt.GetMode(), rMEvt.GetButtons(), rMEvt.GetModifier() ); - - JavaChildWindow::MouseMove( rMEvt ); + + SystemChildWindow::MouseMove( rMEvt ); GetParent()->MouseMove( aTransformedEvent ); } @@ -121,8 +121,8 @@ void MediaChildWindow::MouseButtonDown( const MouseEvent& rMEvt ) { const MouseEvent aTransformedEvent( GetParent()->ScreenToOutputPixel( OutputToScreenPixel( rMEvt.GetPosPixel() ) ), rMEvt.GetClicks(), rMEvt.GetMode(), rMEvt.GetButtons(), rMEvt.GetModifier() ); - - JavaChildWindow::MouseButtonDown( rMEvt ); + + SystemChildWindow::MouseButtonDown( rMEvt ); GetParent()->MouseButtonDown( aTransformedEvent ); } @@ -132,8 +132,8 @@ void MediaChildWindow::MouseButtonUp( const MouseEvent& rMEvt ) { const MouseEvent aTransformedEvent( GetParent()->ScreenToOutputPixel( OutputToScreenPixel( rMEvt.GetPosPixel() ) ), rMEvt.GetClicks(), rMEvt.GetMode(), rMEvt.GetButtons(), rMEvt.GetModifier() ); - - JavaChildWindow::MouseButtonUp( rMEvt ); + + SystemChildWindow::MouseButtonUp( rMEvt ); GetParent()->MouseButtonUp( aTransformedEvent ); } @@ -141,7 +141,7 @@ void MediaChildWindow::MouseButtonUp( const MouseEvent& rMEvt ) void MediaChildWindow::KeyInput( const KeyEvent& rKEvt ) { - JavaChildWindow::KeyInput( rKEvt ); + SystemChildWindow::KeyInput( rKEvt ); GetParent()->KeyInput( rKEvt ); } @@ -149,7 +149,7 @@ void MediaChildWindow::KeyInput( const KeyEvent& rKEvt ) void MediaChildWindow::KeyUp( const KeyEvent& rKEvt ) { - JavaChildWindow::KeyUp( rKEvt ); + SystemChildWindow::KeyUp( rKEvt ); GetParent()->KeyUp( rKEvt ); } @@ -159,8 +159,8 @@ void MediaChildWindow::Command( const CommandEvent& rCEvt ) { const CommandEvent aTransformedEvent( GetParent()->ScreenToOutputPixel( OutputToScreenPixel( rCEvt.GetMousePosPixel() ) ), rCEvt.GetCommand(), rCEvt.IsMouseEvent(), rCEvt.GetData() ); - - JavaChildWindow::Command( rCEvt ); + + SystemChildWindow::Command( rCEvt ); GetParent()->Command( aTransformedEvent ); } @@ -179,9 +179,10 @@ MediaWindowImpl::MediaWindowImpl( Window* pParent, MediaWindow* pMediaWindow, bo mpEmptyBmpEx( NULL ), mpAudioBmpEx( NULL ) { + maChildWindow.SetBackground( Color( COL_BLACK ) ); maChildWindow.SetHelpId( HID_AVMEDIA_PLAYERWINDOW ); maChildWindow.Hide(); - + if( mpMediaWindowControl ) { mpMediaWindowControl->SetSizePixel( mpMediaWindowControl->getMinSizePixel() ); @@ -211,12 +212,12 @@ void MediaWindowImpl::cleanUp() xPlayerWindow->removeKeyListener( uno::Reference< awt::XKeyListener >( mxEventsIf, uno::UNO_QUERY ) ); xPlayerWindow->removeMouseListener( uno::Reference< awt::XMouseListener >( mxEventsIf, uno::UNO_QUERY ) ); xPlayerWindow->removeMouseMotionListener( uno::Reference< awt::XMouseMotionListener >( mxEventsIf, uno::UNO_QUERY ) ); - + uno::Reference< lang::XComponent > xComponent( xPlayerWindow, uno::UNO_QUERY ); - + if( xComponent.is() ) xComponent->dispose(); - + setPlayerWindow( NULL ); } @@ -229,25 +230,30 @@ void MediaWindowImpl::onURLChanged() { if( getPlayer().is() ) { - uno::Sequence< uno::Any > aArgs( 2 ); uno::Reference< media::XPlayerWindow > xPlayerWindow; - const Point aPoint; - const Size aSize( maChildWindow.GetSizePixel() ); - const sal_IntPtr nWndHandle = static_cast< sal_IntPtr >( maChildWindow.getParentWindowHandleForJava() ); - - aArgs[ 0 ] = uno::makeAny( nWndHandle ); - aArgs[ 1 ] = uno::makeAny( awt::Rectangle( aPoint.X(), aPoint.Y(), aSize.Width(), aSize.Height() ) ); + const Point aPoint; + const Size aSize( maChildWindow.GetSizePixel() ); + const sal_IntPtr nWndHandle = (sal_IntPtr) maChildWindow.GetParentWindowHandle( isMediaWindowJavaBased() ); + try { if( nWndHandle != 0 ) + { + uno::Sequence< uno::Any > aArgs( 3 ); + + aArgs[ 0 ] = uno::makeAny( nWndHandle ); + aArgs[ 1 ] = uno::makeAny( awt::Rectangle( aPoint.X(), aPoint.Y(), aSize.Width(), aSize.Height() ) ); + aArgs[ 2 ] = uno::makeAny( reinterpret_cast< sal_IntPtr >( &maChildWindow ) ); + xPlayerWindow = getPlayer()->createPlayerWindow( aArgs ); + } } catch( uno::RuntimeException ) { // happens eg, on MacOSX where Java frames cannot be created from X11 window handles } - + setPlayerWindow( xPlayerWindow ); if( xPlayerWindow.is() ) @@ -260,21 +266,19 @@ void MediaWindowImpl::onURLChanged() } else setPlayerWindow( NULL ); - + if( getPlayerWindow().is() ) maChildWindow.Show(); else maChildWindow.Hide(); - + if( mpMediaWindowControl ) { MediaItem aItem; - + updateMediaItem( aItem ); mpMediaWindowControl->setState( aItem ); } - - Invalidate(); } // --------------------------------------------------------------------- @@ -282,7 +286,7 @@ void MediaWindowImpl::onURLChanged() void MediaWindowImpl::update() { uno::Reference< media::XPlayerWindow > xPlayerWindow( getPlayerWindow() ); - + if( xPlayerWindow.is() ) xPlayerWindow->update(); } @@ -291,7 +295,7 @@ void MediaWindowImpl::update() void MediaWindowImpl::setPosSize( const Rectangle& rRect ) { - SetPosSizePixel( rRect.Left(), rRect.Top(), rRect.GetWidth(), rRect.GetHeight() ); + SetPosSizePixel( rRect.TopLeft(), rRect.GetSize() ); } // --------------------------------------------------------------------- @@ -299,25 +303,24 @@ void MediaWindowImpl::setPosSize( const Rectangle& rRect ) void MediaWindowImpl::setPointer( const Pointer& rPointer ) { uno::Reference< media::XPlayerWindow > xPlayerWindow( getPlayerWindow() ); - + SetPointer( rPointer ); maChildWindow.SetPointer( rPointer ); - + if( xPlayerWindow.is() ) { - long nPointer; - + switch( rPointer.GetStyle() ) { case( POINTER_CROSS ): nPointer = awt::SystemPointer::CROSS; break; case( POINTER_HAND ): nPointer = awt::SystemPointer::HAND; break; case( POINTER_MOVE ): nPointer = awt::SystemPointer::MOVE; break; case( POINTER_WAIT ): nPointer = awt::SystemPointer::WAIT; break; - + default: nPointer = awt::SystemPointer::ARROW; break; } - + xPlayerWindow->setPointerType( nPointer ); } } @@ -345,20 +348,20 @@ void MediaWindowImpl::Resize() const sal_Int32 nOffset( mpMediaWindowControl ? AVMEDIA_CONTROLOFFSET : 0 ); Size aPlayerWindowSize( aCurSize.Width() - ( nOffset << 1 ), aCurSize.Height() - ( nOffset << 1 ) ); - + if( mpMediaWindowControl ) { const sal_Int32 nControlHeight = mpMediaWindowControl->GetSizePixel().Height(); const sal_Int32 nControlY = ::std::max( aCurSize.Height() - nControlHeight - nOffset, 0L ); - + aPlayerWindowSize.Height() = ( nControlY - ( nOffset << 1 ) ); mpMediaWindowControl->SetPosSizePixel( Point( nOffset, nControlY ), Size( aCurSize.Width() - ( nOffset << 1 ), nControlHeight ) ); } - - maChildWindow.SetPosSizePixel( Point( nOffset, nOffset ), aPlayerWindowSize ); - + if( xPlayerWindow.is() ) xPlayerWindow->setPosSize( 0, 0, aPlayerWindowSize.Width(), aPlayerWindowSize.Height(), 0 ); + + maChildWindow.SetPosSizePixel( Point( nOffset, nOffset ), aPlayerWindowSize ); } // --------------------------------------------------------------------- @@ -397,25 +400,25 @@ void MediaWindowImpl::StateChanged( StateChangedType eType ) void MediaWindowImpl::Paint( const Rectangle& ) { BitmapEx* pLogo = NULL; - + if( !getPlayer().is() ) { if( !mpEmptyBmpEx ) mpEmptyBmpEx = new BitmapEx( AVMEDIA_RESID( AVMEDIA_BMP_EMPTYLOGO ) ); - + pLogo = mpEmptyBmpEx; } - else if ( !getPlayerWindow().is() ) + else if( !getPlayerWindow().is() ) { if( !mpAudioBmpEx ) mpAudioBmpEx = new BitmapEx( AVMEDIA_RESID( AVMEDIA_BMP_AUDIOLOGO ) ); - + pLogo = mpAudioBmpEx; } const Point aBasePos( maChildWindow.GetPosPixel() ); - const Rectangle aVideoRect( aBasePos, maChildWindow.GetSizePixel() ); - + const Rectangle aVideoRect( aBasePos, maChildWindow.GetSizePixel() ); + if( pLogo && !pLogo->IsEmpty() && ( aVideoRect.GetWidth() > 0 ) && ( aVideoRect.GetHeight() > 0 ) ) { Size aLogoSize( pLogo->GetSizePixel() ); @@ -424,7 +427,7 @@ void MediaWindowImpl::Paint( const Rectangle& ) SetLineColor( aBackgroundColor ); SetFillColor( aBackgroundColor ); DrawRect( aVideoRect ); - + if( ( aLogoSize.Width() > aVideoRect.GetWidth() || aLogoSize.Height() > aVideoRect.GetHeight() ) && ( aLogoSize.Height() > 0 ) ) { @@ -442,12 +445,10 @@ void MediaWindowImpl::Paint( const Rectangle& ) } } - DrawBitmapEx( Point( aBasePos.X() + ( ( aVideoRect.GetWidth() - aLogoSize.Width() ) >> 1 ), + DrawBitmapEx( Point( aBasePos.X() + ( ( aVideoRect.GetWidth() - aLogoSize.Width() ) >> 1 ), aBasePos.Y() + ( ( aVideoRect.GetHeight() - aLogoSize.Height() ) >> 1 ) ), aLogoSize, *pLogo ); } - - update(); } // --------------------------------------------------------------------- |