summaryrefslogtreecommitdiff
path: root/toolkit/source/awt/xsimpleanimation.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/source/awt/xsimpleanimation.cxx')
-rw-r--r--toolkit/source/awt/xsimpleanimation.cxx165
1 files changed, 165 insertions, 0 deletions
diff --git a/toolkit/source/awt/xsimpleanimation.cxx b/toolkit/source/awt/xsimpleanimation.cxx
new file mode 100644
index 000000000000..c7ccbde118f4
--- /dev/null
+++ b/toolkit/source/awt/xsimpleanimation.cxx
@@ -0,0 +1,165 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_toolkit.hxx"
+#include "toolkit/awt/xsimpleanimation.hxx"
+#include "toolkit/helper/property.hxx"
+#include "toolkit/helper/throbberimpl.hxx"
+#include <tools/debug.hxx>
+
+//........................................................................
+namespace toolkit
+{
+//........................................................................
+
+ using namespace ::com::sun::star;
+
+ //====================================================================
+ //= XSimpleAnimation
+ //====================================================================
+ DBG_NAME( XSimpleAnimation )
+
+ //--------------------------------------------------------------------
+ XSimpleAnimation::XSimpleAnimation()
+ {
+ DBG_CTOR( XSimpleAnimation, NULL );
+ mbRepeat = sal_True;
+ mnStepTime = 100;
+ mpThrobber = new Throbber_Impl( this, mnStepTime, mbRepeat );
+ }
+
+ //--------------------------------------------------------------------
+ XSimpleAnimation::~XSimpleAnimation()
+ {
+ DBG_DTOR( XSimpleAnimation, NULL );
+ delete mpThrobber;
+ }
+
+ //--------------------------------------------------------------------
+ IMPLEMENT_FORWARD_XINTERFACE2( XSimpleAnimation, VCLXWindow, XSimpleAnimation_Base )
+
+ //--------------------------------------------------------------------
+ IMPLEMENT_FORWARD_XTYPEPROVIDER2( XSimpleAnimation, VCLXWindow, XSimpleAnimation_Base )
+
+ //--------------------------------------------------------------------
+ void SAL_CALL XSimpleAnimation::start() throw ( uno::RuntimeException )
+ {
+ mpThrobber->start();
+ }
+
+ //--------------------------------------------------------------------
+ void SAL_CALL XSimpleAnimation::stop() throw ( uno::RuntimeException )
+ {
+ mpThrobber->stop();
+ }
+
+ //--------------------------------------------------------------------
+ void SAL_CALL XSimpleAnimation::setImageList( const uno::Sequence< uno::Reference< graphic::XGraphic > >& rImageList )
+ throw ( uno::RuntimeException )
+ {
+ mpThrobber->setImageList( rImageList );
+ }
+
+ //--------------------------------------------------------------------
+ void XSimpleAnimation::ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent )
+ {
+ // TODO: XSimpleAnimation::ProcessWindowEvent
+ //::vos::OClearableGuard aGuard( GetMutex() );
+ //Reference< XSimpleAnimation > xKeepAlive( this );
+ //SpinButton* pSpinButton = static_cast< SpinButton* >( GetWindow() );
+ //if ( !pSpinButton )
+ // return;
+
+ VCLXWindow::ProcessWindowEvent( _rVclWindowEvent );
+ }
+
+ //--------------------------------------------------------------------
+ void SAL_CALL XSimpleAnimation::setProperty( const ::rtl::OUString& PropertyName, const uno::Any& Value )
+ throw( uno::RuntimeException )
+ {
+ ::vos::OGuard aGuard( GetMutex() );
+
+ if ( GetWindow() )
+ {
+ sal_uInt16 nPropertyId = GetPropertyId( PropertyName );
+ switch ( nPropertyId )
+ {
+ case BASEPROPERTY_STEP_TIME: {
+ sal_Int32 nStepTime( 0 );
+ if ( Value >>= nStepTime )
+ {
+ mnStepTime = nStepTime;
+ mpThrobber->setStepTime( mnStepTime );
+ }
+
+ break;
+ }
+ case BASEPROPERTY_REPEAT: {
+ sal_Bool bRepeat( sal_True );
+ if ( Value >>= bRepeat )
+ {
+ mbRepeat = bRepeat;
+ mpThrobber->setRepeat( mbRepeat );
+ }
+ break;
+ }
+ default:
+ VCLXWindow::setProperty( PropertyName, Value );
+ }
+ }
+ }
+
+ //--------------------------------------------------------------------
+ uno::Any SAL_CALL XSimpleAnimation::getProperty( const ::rtl::OUString& PropertyName )
+ throw( uno::RuntimeException )
+ {
+ ::vos::OGuard aGuard( GetMutex() );
+
+ uno::Any aReturn;
+
+ if ( GetWindow() )
+ {
+ sal_uInt16 nPropertyId = GetPropertyId( PropertyName );
+ switch ( nPropertyId )
+ {
+ case BASEPROPERTY_STEP_TIME:
+ aReturn <<= mnStepTime;
+ break;
+ case BASEPROPERTY_REPEAT:
+ aReturn <<= mbRepeat;
+ break;
+ default:
+ aReturn = VCLXWindow::getProperty( PropertyName );
+ }
+ }
+ return aReturn;
+ }
+
+//........................................................................
+} // namespace toolkit
+//........................................................................