summaryrefslogtreecommitdiff
path: root/slideshow/source/engine/animationnodes/basenode.cxx
diff options
context:
space:
mode:
authorBjoern Michaelsen <bjoern.michaelsen@canonical.com>2011-08-23 15:11:16 +0200
committerBjoern Michaelsen <bjoern.michaelsen@canonical.com>2011-08-23 15:11:16 +0200
commit0553d10867217e30a86c88c17ccb15a06030ce07 (patch)
tree4d85a5a78ea132f8fd53b26ce93e94ae30dad1f9 /slideshow/source/engine/animationnodes/basenode.cxx
parentd0ac8f1e7866c637be15f081b59ef456aacb954a (diff)
recreated tag OOO_BUILD_3_2_98_1 which had these commits:
commit c0de36f21ef8f0afd7667f53a5d97dbc264a1cfb (tag: refs/tags/OOO_BUILD_3_2_98_1) Author: Petr Mladek <pmladek@walk.suse.cz> Date: Wed Sep 15 19:03:26 2010 +0200 Release ooo-build-3.2.98.1, tag OOO_BUILD_3_2_98_1 (3.3-alpha1) commit e31a45314a5a2f1e7e2bbea4a2bb6eca7beb7962 Merge: 7234327 29a7259 Author: Jan Holesovsky <kendy@suse.cz> Date: Wed Sep 8 11:34:03 2010 +0200 Merge commit 'ooo/OOO330_m7' commit 29a72592b0046498a30e87a7beedae4d29161f9b (tag: refs/tags/ooo/OOO330_m7) Merge: 10146e0 6b04480 Author: Kurt Zenker <kz@openoffice.org> Date: Tue Aug 31 15:10:03 2010 +0200 CWS-TOOLING: integrate CWS impress197 commit 6b04480dd88a5bd048d12874dc8c07630670c239 Author: sj <sj@openoffice.org> Date: Mon Aug 9 14:11:58 2010 +0200 impress197: #163250# fixed string handling, improved polygon splitting sd/source/filter/ppt/propread.cxx | 128 ++++++++++++++++++++++++------------- 1 files changed, 83 insertions(+), 45 deletions(-) commit a37d85f979d1616b158c918762821ed82b1e0691 Merge: 1380a03 d766efe Author: Christian Lippka <christian.lippka@sun.com> Date: Fri Aug 6 14:53:07 2010 +0200 merge commit 1380a03aaf7464643eb99de1488ab5b372663ccd Author: Christian Lippka <christian.lippka@sun.com> Date: Wed Aug 4 10:48:35 2010 +0200 #i113603# only change layout shape size on init or of user call is set sd/source/core/sdpage.cxx | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit d766efe9f601a65cd22b46e0f4131d9acd74b1a8 Author: Andre Fischer<andre.f.fischer <Andre Fischer<andre.f.fischer@oracle.com> Date: Thu Jan 1 00:00:00 1970 +0000 impress197: #i112420# Create accessibility object of ToolPanelViewShell in constructor. sd/source/ui/toolpanel/ToolPanelViewShell.cxx | 17 +++++++++++++++-- sd/source/ui/view/sdwindow.cxx | 4 ++-- 2 files changed, 17 insertions(+), 4 deletions(-)
Notes
Notes: split repo tag: impress_OOO_BUILD_3_2_98_1
Diffstat (limited to 'slideshow/source/engine/animationnodes/basenode.cxx')
-rw-r--r--slideshow/source/engine/animationnodes/basenode.cxx224
1 files changed, 112 insertions, 112 deletions
diff --git a/slideshow/source/engine/animationnodes/basenode.cxx b/slideshow/source/engine/animationnodes/basenode.cxx
index b0cfa99c34f5..61ec04ae16d6 100644
--- a/slideshow/source/engine/animationnodes/basenode.cxx
+++ b/slideshow/source/engine/animationnodes/basenode.cxx
@@ -1,7 +1,7 @@
/*************************************************************************
*
* 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
@@ -70,38 +70,38 @@ const int* getStateTransitionTable( sal_Int16 nRestartMode,
sal_Int16 nFillMode )
{
// TODO(F2): restart issues in below tables
-
+
// transition table for restart=NEVER, fill=REMOVE
static const StateTransitionTable stateTransitionTable_Never_Remove = {
AnimationNode::INVALID,
AnimationNode::RESOLVED|AnimationNode::ENDED, // active successors for UNRESOLVED
AnimationNode::ACTIVE|AnimationNode::ENDED, // active successors for RESOLVED
- AnimationNode::INVALID,
+ AnimationNode::INVALID,
AnimationNode::ENDED, // active successors for ACTIVE: no freeze here
- AnimationNode::INVALID,
- AnimationNode::INVALID,
- AnimationNode::INVALID,
+ AnimationNode::INVALID,
+ AnimationNode::INVALID,
+ AnimationNode::INVALID,
AnimationNode::INVALID, // active successors for FROZEN: this state is unreachable here
- AnimationNode::INVALID,
- AnimationNode::INVALID,
- AnimationNode::INVALID,
- AnimationNode::INVALID,
- AnimationNode::INVALID,
- AnimationNode::INVALID,
- AnimationNode::INVALID,
+ AnimationNode::INVALID,
+ AnimationNode::INVALID,
+ AnimationNode::INVALID,
+ AnimationNode::INVALID,
+ AnimationNode::INVALID,
+ AnimationNode::INVALID,
+ AnimationNode::INVALID,
AnimationNode::ENDED // active successors for ENDED: this state is a sink here (cannot restart)
};
-
+
// transition table for restart=WHEN_NOT_ACTIVE, fill=REMOVE
static const StateTransitionTable stateTransitionTable_NotActive_Remove = {
AnimationNode::INVALID,
AnimationNode::RESOLVED|AnimationNode::ENDED, // active successors for UNRESOLVED
AnimationNode::ACTIVE|AnimationNode::ENDED, // active successors for RESOLVED
- AnimationNode::INVALID,
+ AnimationNode::INVALID,
AnimationNode::ENDED, // active successors for ACTIVE: no freeze here
- AnimationNode::INVALID,
- AnimationNode::INVALID,
- AnimationNode::INVALID,
+ AnimationNode::INVALID,
+ AnimationNode::INVALID,
+ AnimationNode::INVALID,
AnimationNode::INVALID, // active successors for FROZEN:
// this state is unreachable here
AnimationNode::INVALID,
@@ -114,13 +114,13 @@ const int* getStateTransitionTable( sal_Int16 nRestartMode,
AnimationNode::ENDED|AnimationNode::RESOLVED|AnimationNode::ACTIVE // active successors for ENDED:
// restart possible when ended
};
-
+
// transition table for restart=ALWAYS, fill=REMOVE
static const StateTransitionTable stateTransitionTable_Always_Remove = {
AnimationNode::INVALID,
AnimationNode::RESOLVED|AnimationNode::ENDED, // active successors for UNRESOLVED
AnimationNode::ACTIVE|AnimationNode::ENDED, // active successors for RESOLVED
- AnimationNode::INVALID,
+ AnimationNode::INVALID,
AnimationNode::ENDED|AnimationNode::ACTIVE|AnimationNode::RESOLVED, // active successors for ACTIVE: restart
AnimationNode::INVALID,
AnimationNode::INVALID,
@@ -136,38 +136,38 @@ const int* getStateTransitionTable( sal_Int16 nRestartMode,
AnimationNode::INVALID,
AnimationNode::ENDED|AnimationNode::ACTIVE|AnimationNode::RESOLVED // active successors for ENDED: restart
};
-
+
// transition table for restart=NEVER, fill=FREEZE
static const StateTransitionTable stateTransitionTable_Never_Freeze = {
AnimationNode::INVALID,
AnimationNode::RESOLVED|AnimationNode::ENDED, // active successors for UNRESOLVED
AnimationNode::ACTIVE|AnimationNode::ENDED, // active successors for RESOLVED
- AnimationNode::INVALID,
+ AnimationNode::INVALID,
AnimationNode::FROZEN|AnimationNode::ENDED, // active successors for ACTIVE: freeze object
- AnimationNode::INVALID,
- AnimationNode::INVALID,
- AnimationNode::INVALID,
- AnimationNode::ENDED, // active successors for FROZEN: end
- AnimationNode::INVALID,
- AnimationNode::INVALID,
- AnimationNode::INVALID,
- AnimationNode::INVALID,
- AnimationNode::INVALID,
- AnimationNode::INVALID,
- AnimationNode::INVALID,
+ AnimationNode::INVALID,
+ AnimationNode::INVALID,
+ AnimationNode::INVALID,
+ AnimationNode::ENDED, // active successors for FROZEN: end
+ AnimationNode::INVALID,
+ AnimationNode::INVALID,
+ AnimationNode::INVALID,
+ AnimationNode::INVALID,
+ AnimationNode::INVALID,
+ AnimationNode::INVALID,
+ AnimationNode::INVALID,
AnimationNode::ENDED, // active successors for ENDED: this state is a sink here (cannot restart)
};
-
+
// transition table for restart=WHEN_NOT_ACTIVE, fill=FREEZE
static const StateTransitionTable stateTransitionTable_NotActive_Freeze = {
AnimationNode::INVALID,
AnimationNode::RESOLVED|AnimationNode::ENDED, // active successors for UNRESOLVED
AnimationNode::ACTIVE|AnimationNode::ENDED, // active successors for RESOLVED
- AnimationNode::INVALID,
+ AnimationNode::INVALID,
AnimationNode::FROZEN|AnimationNode::ENDED, // active successors for ACTIVE: freeze object
- AnimationNode::INVALID,
- AnimationNode::INVALID,
- AnimationNode::INVALID,
+ AnimationNode::INVALID,
+ AnimationNode::INVALID,
+ AnimationNode::INVALID,
AnimationNode::ENDED|AnimationNode::RESOLVED|AnimationNode::ACTIVE, // active successors for FROZEN:
// restart possible when ended
AnimationNode::INVALID,
@@ -180,29 +180,29 @@ const int* getStateTransitionTable( sal_Int16 nRestartMode,
AnimationNode::ENDED|AnimationNode::RESOLVED|AnimationNode::ACTIVE // active successors for ENDED:
// restart possible when ended
};
-
+
// transition table for restart=ALWAYS, fill=FREEZE
static const StateTransitionTable stateTransitionTable_Always_Freeze = {
AnimationNode::INVALID,
AnimationNode::RESOLVED|AnimationNode::ENDED, // active successors for UNRESOLVED
AnimationNode::ACTIVE|AnimationNode::ENDED, // active successors for RESOLVED
- AnimationNode::INVALID,
+ AnimationNode::INVALID,
AnimationNode::FROZEN|AnimationNode::ENDED|AnimationNode::ACTIVE|AnimationNode::RESOLVED, // active successors for ACTIVE:
// end object, restart
AnimationNode::INVALID,
AnimationNode::INVALID,
AnimationNode::INVALID,
AnimationNode::ENDED|AnimationNode::RESOLVED|AnimationNode::ACTIVE, // active successors for FROZEN: restart possible
- AnimationNode::INVALID,
- AnimationNode::INVALID,
- AnimationNode::INVALID,
- AnimationNode::INVALID,
- AnimationNode::INVALID,
- AnimationNode::INVALID,
- AnimationNode::INVALID,
+ AnimationNode::INVALID,
+ AnimationNode::INVALID,
+ AnimationNode::INVALID,
+ AnimationNode::INVALID,
+ AnimationNode::INVALID,
+ AnimationNode::INVALID,
+ AnimationNode::INVALID,
AnimationNode::ENDED|AnimationNode::ACTIVE|AnimationNode::RESOLVED // active successors for ENDED: restart
};
-
+
static const StateTransitionTable* tableGuide[] = {
&stateTransitionTable_Never_Remove,
&stateTransitionTable_NotActive_Remove,
@@ -211,12 +211,12 @@ const int* getStateTransitionTable( sal_Int16 nRestartMode,
&stateTransitionTable_NotActive_Freeze,
&stateTransitionTable_Always_Freeze
};
-
+
int nRestartValue;
switch( nRestartMode ) {
default:
case animations::AnimationRestart::DEFAULT:
- // same value: animations::AnimationRestart::INHERIT:
+ // same value: animations::AnimationRestart::INHERIT:
OSL_ENSURE(
false, "getStateTransitionTable(): unexpected case for restart" );
// FALLTHROUGH intended
@@ -230,7 +230,7 @@ const int* getStateTransitionTable( sal_Int16 nRestartMode,
nRestartValue = 2;
break;
}
-
+
int nFillValue;
switch( nFillMode ) {
default:
@@ -249,7 +249,7 @@ const int* getStateTransitionTable( sal_Int16 nRestartMode,
nFillValue = 1;
break;
}
-
+
return *tableGuide[ 3*nFillValue + nRestartValue ];
}
@@ -259,10 +259,10 @@ bool isMainSequenceRootNode_(
{
// detect main sequence root node (need that for
// end-of-mainsequence signalling below)
- beans::NamedValue const aSearchKey(
+ beans::NamedValue const aSearchKey(
rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "node-type" ) ),
uno::makeAny( presentation::EffectNodeType::MAIN_SEQUENCE ) );
-
+
uno::Sequence<beans::NamedValue> const userData(xNode->getUserData());
return findNamedValue( userData, aSearchKey );
}
@@ -278,14 +278,14 @@ class BaseNode::StateTransition : private boost::noncopyable
{
public:
enum Options { NONE, FORCE };
-
+
explicit StateTransition( BaseNode * pNode )
: mpNode(pNode), meToState(INVALID) {}
-
+
~StateTransition() {
clear();
}
-
+
bool enter( NodeState eToState, int options = NONE )
{
OSL_ENSURE( meToState == INVALID,
@@ -303,7 +303,7 @@ public:
meToState = eToState;
return true; // in transition
}
-
+
void commit() {
OSL_ENSURE( meToState != INVALID, "### nothing to commit!" );
if (meToState != INVALID) {
@@ -315,7 +315,7 @@ public:
// every state change of one of its nodes.
// Debug_ShowNodeTree(mpNode->mpSelf);
}
-
+
void clear() {
if (meToState != INVALID) {
OSL_ASSERT( (mpNode->meCurrentStateTransition & meToState) != 0 );
@@ -323,13 +323,13 @@ public:
meToState = INVALID;
}
}
-
+
private:
BaseNode *const mpNode;
NodeState meToState;
};
-BaseNode::BaseNode( const uno::Reference< animations::XAnimationNode >& xNode,
+BaseNode::BaseNode( const uno::Reference< animations::XAnimationNode >& xNode,
const BaseContainerNodeSharedPtr& rParent,
const NodeContext& rContext ) :
maContext( rContext.maContext ),
@@ -346,7 +346,7 @@ BaseNode::BaseNode( const uno::Reference< animations::XAnimationNode >& xNode,
{
ENSURE_OR_THROW( mxAnimationNode.is(),
"BaseNode::BaseNode(): Invalid XAnimationNode" );
-
+
// setup state transition table
mpStateTransitionTable = getStateTransitionTable( getRestartMode(),
getFillMode() );
@@ -355,7 +355,7 @@ BaseNode::BaseNode( const uno::Reference< animations::XAnimationNode >& xNode,
void BaseNode::dispose()
{
meCurrState = INVALID;
-
+
// discharge a loaded event, if any:
if (mpCurrentEvent) {
mpCurrentEvent->dispose();
@@ -383,13 +383,13 @@ sal_Int16 BaseNode::getFillMode()
const sal_Int16 nFill((nTmp != animations::AnimationFill::DEFAULT &&
nTmp != animations::AnimationFill::INHERIT)
? nTmp : getFillDefaultMode());
-
+
// For AUTO fill mode, SMIL specifies that fill mode is FREEZE,
// if no explicit active duration is given
- // (no duration, end, repeatCount or repeatDuration given),
+ // (no duration, end, repeatCount or repeatDuration given),
// and REMOVE otherwise
if( nFill == animations::AnimationFill::AUTO ) {
- return (isIndefiniteTiming( mxAnimationNode->getDuration() ) &&
+ return (isIndefiniteTiming( mxAnimationNode->getDuration() ) &&
isIndefiniteTiming( mxAnimationNode->getEnd() ) &&
!mxAnimationNode->getRepeatCount().hasValue() &&
isIndefiniteTiming( mxAnimationNode->getRepeatDuration() ))
@@ -450,31 +450,31 @@ bool BaseNode::resolve()
{
if (! checkValidNode())
return false;
-
+
OSL_ASSERT( meCurrState != RESOLVED );
if (inStateOrTransition( RESOLVED ))
return true;
-
+
StateTransition st(this);
if (st.enter( RESOLVED ) &&
isTransition( RESOLVED, ACTIVE ) &&
resolve_st() /* may call derived class */)
{
st.commit(); // changing state
-
+
// discharge a loaded event, if any:
if (mpCurrentEvent)
mpCurrentEvent->dispose();
-
+
// schedule activation event:
-
+
// This method takes the NodeContext::mnStartDelay value into account,
// to cater for iterate container time shifts. We cannot put different
- // iterations of the iterate container's children into different
+ // iterations of the iterate container's children into different
// subcontainer (such as a 'DelayContainer', which delays resolving its
- // children by a fixed amount), since all iterations' nodes must be
+ // children by a fixed amount), since all iterations' nodes must be
// resolved at the same time (otherwise, the delayed subset creation
- // will not work, i.e. deactivate the subsets too late in the master
+ // will not work, i.e. deactivate the subsets too late in the master
// shape).
uno::Any const aBegin( mxAnimationNode->getBegin() );
if (aBegin.hasValue()) {
@@ -486,7 +486,7 @@ bool BaseNode::resolve()
// For some leaf nodes, PPT import yields empty begin time,
// although semantically, it should be 0.0
// TODO(F3): That should really be provided by the PPT import
-
+
// schedule delayed activation event. Take iterate node
// timeout into account
mpCurrentEvent = makeDelay(
@@ -495,7 +495,7 @@ bool BaseNode::resolve()
"AnimationNode::activate with delay");
maContext.mrEventQueue.addEvent( mpCurrentEvent );
}
-
+
return true;
}
return false;
@@ -511,23 +511,23 @@ bool BaseNode::activate()
{
if (! checkValidNode())
return false;
-
+
OSL_ASSERT( meCurrState != ACTIVE );
if (inStateOrTransition( ACTIVE ))
return true;
-
+
StateTransition st(this);
if (st.enter( ACTIVE )) {
-
+
activate_st(); // calling derived class
-
+
st.commit(); // changing state
-
+
maContext.mrEventMultiplexer.notifyAnimationStart( mpSelf );
-
+
return true;
}
-
+
return false;
}
@@ -552,12 +552,12 @@ void BaseNode::scheduleDeactivationEvent( EventSharedPtr const& pEvent )
// because the deactivation event is only scheduled
// when the effect is started: the timeout is then
// already respected.
-
+
// xxx todo:
// think about set node, anim base node!
// if anim base node has no activity, this is called to schedule deactivatiion,
// but what if it does not schedule anything?
-
+
// TODO(F2): Handle end time attribute, too
mpCurrentEvent = generateEvent(
mxAnimationNode->getDuration(),
@@ -570,17 +570,17 @@ void BaseNode::deactivate()
{
if (inStateOrTransition( ENDED | FROZEN ) || !checkValidNode())
return;
-
+
if (isTransition( meCurrState, FROZEN, false /* no OSL_ASSERT */ )) {
// do transition to FROZEN:
StateTransition st(this);
if (st.enter( FROZEN, StateTransition::FORCE )) {
-
+
deactivate_st( FROZEN );
st.commit();
-
+
notifyEndListeners();
-
+
// discharge a loaded event, before going on:
if (mpCurrentEvent) {
mpCurrentEvent->dispose();
@@ -604,15 +604,15 @@ void BaseNode::end()
bool const bIsFrozenOrInTransitionToFrozen = inStateOrTransition( FROZEN );
if (inStateOrTransition( ENDED ) || !checkValidNode())
return;
-
- // END must always be reachable. If not, that's an error in the
+
+ // END must always be reachable. If not, that's an error in the
// transition tables
OSL_ENSURE( isTransition( meCurrState, ENDED ),
"end state not reachable in transition table" );
-
+
StateTransition st(this);
if (st.enter( ENDED, StateTransition::FORCE )) {
-
+
deactivate_st( ENDED );
st.commit(); // changing state
@@ -620,7 +620,7 @@ void BaseNode::end()
// will/already notified deactivating listeners
if (!bIsFrozenOrInTransitionToFrozen)
notifyEndListeners();
-
+
// discharge a loaded event, before going on:
if (mpCurrentEvent) {
mpCurrentEvent->dispose();
@@ -644,10 +644,10 @@ void BaseNode::notifyEndListeners() const
maDeactivatingListeners.end(),
boost::bind( &AnimationNode::notifyDeactivating, _1,
boost::cref(mpSelf) ) );
-
+
// notify state change
maContext.mrEventMultiplexer.notifyAnimationEnd( mpSelf );
-
+
// notify main sequence end (iff we're the main
// sequence root node). This is because the main
// sequence determines the active duration of the
@@ -670,12 +670,12 @@ bool BaseNode::registerDeactivatingListener(
{
if (! checkValidNode())
return false;
-
+
ENSURE_OR_RETURN_FALSE(
rNotifee,
"BaseNode::registerDeactivatingListener(): invalid notifee" );
maDeactivatingListeners.push_back( rNotifee );
-
+
return true;
}
@@ -685,7 +685,7 @@ void BaseNode::setSelf( const BaseNodeSharedPtr& rSelf )
"BaseNode::setSelf(): got ptr to different object" );
ENSURE_OR_THROW( !mpSelf,
"BaseNode::setSelf(): called multiple times" );
-
+
mpSelf = rSelf;
}
@@ -696,7 +696,7 @@ void BaseNode::setSelf( const BaseNodeSharedPtr& rSelf )
void BaseNode::showState() const
{
const AnimationNode::NodeState eNodeState( getState() );
-
+
if( eNodeState == AnimationNode::INVALID )
VERBOSE_TRACE( "Node state: n0x%X [label=\"%s\",style=filled,"
"fillcolor=\"0.5,0.2,0.5\"]",
@@ -708,7 +708,7 @@ void BaseNode::showState() const
(const char*)this+debugGetCurrentOffset(),
getDescription(),
log(double(getState()))/4.0 );
-
+
// determine additional node information
uno::Reference<animations::XAnimate> const xAnimate( mxAnimationNode,
uno::UNO_QUERY );
@@ -716,31 +716,31 @@ void BaseNode::showState() const
{
uno::Reference< drawing::XShape > xTargetShape( xAnimate->getTarget(),
uno::UNO_QUERY );
-
+
if( !xTargetShape.is() )
{
::com::sun::star::presentation::ParagraphTarget aTarget;
-
+
// no shape provided. Maybe a ParagraphTarget?
if( (xAnimate->getTarget() >>= aTarget) )
xTargetShape = aTarget.Shape;
}
-
+
if( xTargetShape.is() )
{
- uno::Reference< beans::XPropertySet > xPropSet( xTargetShape,
+ uno::Reference< beans::XPropertySet > xPropSet( xTargetShape,
uno::UNO_QUERY );
-
+
// read shape name
::rtl::OUString aName;
- if( (xPropSet->getPropertyValue(
+ if( (xPropSet->getPropertyValue(
::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Name") ) )
>>= aName) )
{
- const ::rtl::OString& rAsciiName(
- ::rtl::OUStringToOString( aName,
- RTL_TEXTENCODING_ASCII_US ) );
-
+ const ::rtl::OString& rAsciiName(
+ ::rtl::OUStringToOString( aName,
+ RTL_TEXTENCODING_ASCII_US ) );
+
VERBOSE_TRACE( "Node info: n0x%X, name \"%s\"",
(const char*)this+debugGetCurrentOffset(),
rAsciiName.getStr() );
@@ -759,7 +759,7 @@ void BaseNode::showTreeFromWithin() const
// find root node
BaseNodeSharedPtr pCurrNode( mpSelf );
while( pCurrNode->mpParent ) pCurrNode = pCurrNode->mpParent;
-
+
pCurrNode->showState();
}
#endif