diff options
author | Rüdiger Timm <rt@openoffice.org> | 2004-11-03 14:53:18 +0000 |
---|---|---|
committer | Rüdiger Timm <rt@openoffice.org> | 2004-11-03 14:53:18 +0000 |
commit | 26dc1757eed28ad6fbe2e5c756838c79c689ffe7 (patch) | |
tree | 839575aa3e6b4e9162793e9f9c1dd0ae2cf07775 /avmedia | |
parent | c0dafd388758e7006ca81b901e1481b47b83ea15 (diff) |
INTEGRATION: CWS jmf3 (1.1.1.1.2); FILE MERGED
2004/10/04 10:48:31 ka 1.1.1.1.2.3: syntax
2004/10/04 10:30:25 ka 1.1.1.1.2.2: #i34778#: added help ids for mediaplayer
2004/10/01 12:49:32 ka 1.1.1.1.2.1: optimized state handling
Diffstat (limited to 'avmedia')
-rw-r--r-- | avmedia/source/framework/mediacontrol.cxx | 80 |
1 files changed, 58 insertions, 22 deletions
diff --git a/avmedia/source/framework/mediacontrol.cxx b/avmedia/source/framework/mediacontrol.cxx index e1cd92174474..2ab2c2e2e197 100644 --- a/avmedia/source/framework/mediacontrol.cxx +++ b/avmedia/source/framework/mediacontrol.cxx @@ -2,9 +2,9 @@ * * $RCSfile: mediacontrol.cxx,v $ * - * $Revision: 1.1.1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: ka $ $Date: 2004-08-23 09:04:42 $ + * last change: $Author: rt $ $Date: 2004-11-03 15:53:18 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -64,6 +64,7 @@ #include "mediamisc.hxx" #include "mediawindow.hxx" #include "mediaplayer.hxx" +#include "helpids.hrc" #include <vcl/svapp.hxx> #include <vcl/lstbox.hxx> #include <sfx2/viewfrm.hxx> @@ -111,7 +112,8 @@ MediaControl::MediaControl( Window* pParent, MediaControlStyle eControlStyle ) : maZoomToolBox( this, WB_3DLOOK ), mpZoomListBox( new ListBox( &maZoomToolBox, WB_BORDER | WB_DROPDOWN | WB_AUTOHSCROLL | WB_3DLOOK ) ), maTimeEdit( this, WB_CENTER | WB_READONLY | WB_BORDER | WB_3DLOOK | WB_READONLY ), - meControlStyle( eControlStyle ) + meControlStyle( eControlStyle ), + mbLocked( false ) { const String aTimeText( RTL_CONSTASCII_USTRINGPARAM( " 00:00:00/00:00:00 " ) ); @@ -119,8 +121,14 @@ MediaControl::MediaControl( Window* pParent, MediaControlStyle eControlStyle ) : if( MEDIACONTROLSTYLE_SINGLELINE != meControlStyle ) { + + maPlayToolBox.InsertItem( AVMEDIA_TOOLBOXITEM_OPEN, implGetImage( AVMEDIA_IMG_OPEN ), String( AVMEDIA_RESID( AVMEDIA_STR_OPEN ) ) ); + maPlayToolBox.SetHelpId( AVMEDIA_TOOLBOXITEM_OPEN, HID_AVMEDIA_TOOLBOXITEM_OPEN ); + maPlayToolBox.InsertItem( AVMEDIA_TOOLBOXITEM_INSERT, implGetImage( AVMEDIA_IMG_INSERT ), String( AVMEDIA_RESID( AVMEDIA_STR_INSERT ) ) ); + maPlayToolBox.SetHelpId( AVMEDIA_TOOLBOXITEM_INSERT, HID_AVMEDIA_TOOLBOXITEM_INSERT ); + maPlayToolBox.InsertSeparator(); } else @@ -131,14 +139,21 @@ MediaControl::MediaControl( Window* pParent, MediaControlStyle eControlStyle ) : maVolumeSlider.SetBackground(); maZoomToolBox.SetBackground(); mpZoomListBox->SetBackground(); - //maTimeEdit.SetBackground(); } maPlayToolBox.InsertItem( AVMEDIA_TOOLBOXITEM_PLAY, implGetImage( AVMEDIA_IMG_PLAY ), String( AVMEDIA_RESID( AVMEDIA_STR_PLAY ) ), TIB_CHECKABLE ); + maPlayToolBox.SetHelpId( AVMEDIA_TOOLBOXITEM_PLAY, HID_AVMEDIA_TOOLBOXITEM_PLAY ); + maPlayToolBox.InsertItem( AVMEDIA_TOOLBOXITEM_PAUSE, implGetImage( AVMEDIA_IMG_PAUSE ), String( AVMEDIA_RESID( AVMEDIA_STR_PAUSE ) ), TIB_CHECKABLE ); + maPlayToolBox.SetHelpId( AVMEDIA_TOOLBOXITEM_PAUSE, HID_AVMEDIA_TOOLBOXITEM_PAUSE ); + maPlayToolBox.InsertItem( AVMEDIA_TOOLBOXITEM_STOP, implGetImage( AVMEDIA_IMG_STOP ), String( AVMEDIA_RESID( AVMEDIA_STR_STOP ) ), TIB_CHECKABLE ); + maPlayToolBox.SetHelpId( AVMEDIA_TOOLBOXITEM_STOP, HID_AVMEDIA_TOOLBOXITEM_STOP ); + maPlayToolBox.InsertSeparator(); + maPlayToolBox.InsertItem( AVMEDIA_TOOLBOXITEM_LOOP, implGetImage( AVMEDIA_IMG_ENDLESS ), String( AVMEDIA_RESID( AVMEDIA_STR_ENDLESS ) ) ); + maPlayToolBox.SetHelpId( AVMEDIA_TOOLBOXITEM_LOOP, HID_AVMEDIA_TOOLBOXITEM_LOOP ); if( MEDIACONTROLSTYLE_SINGLELINE == meControlStyle ) maPlayToolBox.InsertSeparator(); @@ -151,6 +166,7 @@ MediaControl::MediaControl( Window* pParent, MediaControlStyle eControlStyle ) : maTimeSlider.SetSlideHdl( LINK( this, MediaControl, implTimeHdl ) ); maTimeSlider.SetEndSlideHdl( LINK( this, MediaControl, implTimeEndHdl ) ); maTimeSlider.SetRange( Range( 0, AVMEDIA_TIME_RANGE ) ); + maTimeSlider.SetHelpId( HID_AVMEDIA_TIMESLIDER ); maTimeSlider.SetUpdateMode( true ); maTimeSlider.SetSizePixel( Size( 128, maPlayToolBox.GetSizePixel().Height() ) ); maTimeSlider.Show(); @@ -160,6 +176,7 @@ MediaControl::MediaControl( Window* pParent, MediaControlStyle eControlStyle ) : maTimeEdit.SetUpdateMode( true ); maTimeEdit.SetSizePixel( Size( maTimeEdit.GetTextWidth( aTimeText ) + 8, maPlayToolBox.GetSizePixel().Height() ) ); maTimeEdit.SetControlBackground( Application::GetSettings().GetStyleSettings().GetWindowColor() ); + maTimeEdit.SetHelpId( HID_AVMEDIA_TIMEEDIT ); maTimeEdit.Disable(); maTimeEdit.Show(); maMinSize.Width() += maTimeEdit.GetSizePixel().Width(); @@ -168,6 +185,8 @@ MediaControl::MediaControl( Window* pParent, MediaControlStyle eControlStyle ) : maMuteToolBox.InsertSeparator(); maMuteToolBox.InsertItem( AVMEDIA_TOOLBOXITEM_MUTE, implGetImage( AVMEDIA_IMG_MUTE ), String( AVMEDIA_RESID( AVMEDIA_STR_MUTE ) ) ); + maMuteToolBox.SetHelpId( AVMEDIA_TOOLBOXITEM_MUTE, HID_AVMEDIA_TOOLBOXITEM_MUTE ); + maMuteToolBox.SetSelectHdl( LINK( this, MediaControl, implSelectHdl ) ); maMuteToolBox.SetSizePixel( maMuteToolBox.CalcWindowSizePixel() ); maMuteToolBox.Show(); @@ -176,9 +195,8 @@ MediaControl::MediaControl( Window* pParent, MediaControlStyle eControlStyle ) : maVolumeSlider.SetSlideHdl( LINK( this, MediaControl, implVolumeHdl ) ); maVolumeSlider.SetEndSlideHdl( LINK( this, MediaControl, implVolumeEndHdl ) ); maVolumeSlider.SetRange( Range( AVMEDIA_DB_RANGE, 0 ) ); - maTimeSlider.SetLineSize( labs( AVMEDIA_DB_RANGE / 33 ) ); - maTimeSlider.SetPageSize( labs( AVMEDIA_DB_RANGE / 10 ) ); maVolumeSlider.SetUpdateMode( true ); + maVolumeSlider.SetHelpId( HID_AVMEDIA_VOLUMESLIDER ); maVolumeSlider.SetSizePixel( Size( 48, maPlayToolBox.GetSizePixel().Height() ) ); maVolumeSlider.Show(); maMinSize.Width() += maVolumeSlider.GetSizePixel().Width(); @@ -188,10 +206,12 @@ MediaControl::MediaControl( Window* pParent, MediaControlStyle eControlStyle ) : mpZoomListBox->InsertEntry( String( AVMEDIA_RESID( AVMEDIA_STR_ZOOM_100 ) ), AVMEDIA_ZOOMLEVEL_100 ); mpZoomListBox->InsertEntry( String( AVMEDIA_RESID( AVMEDIA_STR_ZOOM_200 ) ), AVMEDIA_ZOOMLEVEL_200 ); mpZoomListBox->InsertEntry( String( AVMEDIA_RESID( AVMEDIA_STR_ZOOM_FIT ) ), AVMEDIA_ZOOMLEVEL_FIT ); - // mpZoomListBox->InsertEntry( String( AVMEDIA_RESID( AVMEDIA_STR_ZOOM_SCALED ) ), AVMEDIA_ZOOMLEVEL_SCALED ); mpZoomListBox->SetSelectHdl( LINK( this, MediaControl, implZoomSelectHdl ) ); + mpZoomListBox->SetHelpId( HID_AVMEDIA_ZOOMLISTBOX ); maZoomToolBox.InsertItem( AVMEDIA_TOOLBOXITEM_ZOOM, String( AVMEDIA_RESID( AVMEDIA_STR_ZOOM ) ) ); + maZoomToolBox.SetHelpId( AVMEDIA_TOOLBOXITEM_ZOOM, HID_AVMEDIA_ZOOMLISTBOX ); + maZoomToolBox.SetItemWindow( AVMEDIA_TOOLBOXITEM_ZOOM, mpZoomListBox ); maZoomToolBox.SetSelectHdl( LINK( this, MediaControl, implSelectHdl ) ); maZoomToolBox.SetSizePixel( maZoomToolBox.CalcWindowSizePixel() ); @@ -286,12 +306,15 @@ void MediaControl::Resize() void MediaControl::setState( const MediaItem& rItem ) { - maItem.merge( rItem ); + if( !mbLocked ) + { + maItem.merge( rItem ); - implUpdateToolboxes(); - implUpdateTimeSlider(); - implUpdateVolumeSlider(); - implUpdateTimeField( maItem.getTime() ); + implUpdateToolboxes(); + implUpdateTimeSlider(); + implUpdateVolumeSlider(); + implUpdateTimeField( maItem.getTime() ); + } } // ------------------------------------------------------------------------------ @@ -327,10 +350,20 @@ void MediaControl::implUpdateToolboxes() maPlayToolBox.EnableItem( AVMEDIA_TOOLBOXITEM_LOOP, bValidURL ); maMuteToolBox.EnableItem( AVMEDIA_TOOLBOXITEM_MUTE, bValidURL ); - if( !bValidURL ) + if( !bValidURL || !IsEnabled() ) + { mpZoomListBox->Disable(); + + if( MEDIACONTROLSTYLE_SINGLELINE == meControlStyle ) + maPlayToolBox.Disable(); + + maMuteToolBox.Disable(); + } else { + maPlayToolBox.Enable(); + maMuteToolBox.Enable(); + if( MEDIASTATE_PLAY == maItem.getState() || MEDIASTATE_PLAYFFW == maItem.getState() ) { maPlayToolBox.CheckItem( AVMEDIA_TOOLBOXITEM_PLAY, true ); @@ -386,14 +419,14 @@ void MediaControl::implUpdateToolboxes() void MediaControl::implUpdateTimeSlider() { - if( maItem.getURL().getLength() == 0 ) + if( !maItem.getURL().getLength() || !IsEnabled() ) maTimeSlider.Disable(); else { - const double fDuration = maItem.getDuration(); - maTimeSlider.Enable(); + const double fDuration = maItem.getDuration(); + if( fDuration > 0.0 ) { const double fTime = ::std::min( maItem.getTime(), fDuration ); @@ -413,13 +446,14 @@ void MediaControl::implUpdateTimeSlider() void MediaControl::implUpdateVolumeSlider() { - if( maItem.getURL().getLength() == 0 ) + if( !maItem.getURL().getLength() || !IsEnabled() ) maVolumeSlider.Disable(); else { + maVolumeSlider.Enable(); + const sal_Int32 nVolumeDB = maItem.getVolumeDB(); - maVolumeSlider.Enable(); maVolumeSlider.SetThumbPos( ::std::min( ::std::max( nVolumeDB, static_cast< sal_Int32 >( AVMEDIA_DB_RANGE ) ), static_cast< sal_Int32 >( 0 ) ) ); } @@ -429,8 +463,6 @@ void MediaControl::implUpdateVolumeSlider() void MediaControl::implUpdateTimeField( double fCurTime ) { - maTimeEdit.Disable(); - if( maItem.getURL().getLength() > 0 ) { const International aInternational; @@ -439,7 +471,9 @@ void MediaControl::implUpdateTimeField( double fCurTime ) aTimeString += aInternational.GetDuration( Time( 0, 0, static_cast< sal_uInt32 >( floor( fCurTime ) ) ) ); aTimeString.AppendAscii( RTL_CONSTASCII_STRINGPARAM( " / " )); aTimeString += aInternational.GetDuration( Time( 0, 0, static_cast< sal_uInt32 >( floor( maItem.getDuration() ) ) ) ); - maTimeEdit.SetText( aTimeString ); + + if( maTimeEdit.GetText() != aTimeString ) + maTimeEdit.SetText( aTimeString ); } } @@ -454,6 +488,7 @@ Image MediaControl::implGetImage( sal_Int32 nImageId ) const IMPL_LINK( MediaControl, implTimeHdl, Slider*, p ) { + mbLocked = true; maTimer.Stop(); implUpdateTimeField( p->GetThumbPos() * maItem.getDuration() / AVMEDIA_TIME_RANGE ); @@ -470,6 +505,7 @@ IMPL_LINK( MediaControl, implTimeEndHdl, Slider*, p ) execute( aExecItem ); update(); maTimer.Start(); + mbLocked = false; return 0; } @@ -480,7 +516,7 @@ IMPL_LINK( MediaControl, implVolumeHdl, Slider*, p ) { MediaItem aExecItem; - aExecItem.setVolumeDB( p->GetThumbPos() ); + aExecItem.setVolumeDB( static_cast< sal_Int16 >( p->GetThumbPos() ) ); execute( aExecItem ); update(); |