diff options
Diffstat (limited to 'sd/inc')
65 files changed, 9294 insertions, 0 deletions
diff --git a/sd/inc/CustomAnimationCloner.hxx b/sd/inc/CustomAnimationCloner.hxx new file mode 100644 index 000000000000..71d895e22270 --- /dev/null +++ b/sd/inc/CustomAnimationCloner.hxx @@ -0,0 +1,45 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_CUSTOMANIMATIONCLONER_HXX +#define _SD_CUSTOMANIMATIONCLONER_HXX + +#include <com/sun/star/animations/XAnimationNode.hpp> + +class SdPage; + +namespace sd +{ + ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode > Clone( + const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xSourceNode, + const SdPage* pSource = 0, const SdPage* pTarget = 0 ); +} + +#endif // _SD_CUSTOMANIMATIONCLONER_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/CustomAnimationEffect.hxx b/sd/inc/CustomAnimationEffect.hxx new file mode 100644 index 000000000000..6acd804369cf --- /dev/null +++ b/sd/inc/CustomAnimationEffect.hxx @@ -0,0 +1,479 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_CUSTOMANIMATIONEFFECT_HXX +#define _SD_CUSTOMANIMATIONEFFECT_HXX + +#include <com/sun/star/animations/XAnimationNode.hpp> +#include <com/sun/star/animations/XTimeContainer.hpp> +#include <com/sun/star/animations/XAudio.hpp> +#include <com/sun/star/drawing/XShape.hpp> +#include <com/sun/star/util/XChangesListener.hpp> +#include <tools/string.hxx> + +#include <boost/shared_ptr.hpp> + +#include <comphelper/stl_types.hxx> +#include <vcl/timer.hxx> + +#include <sddllapi.h> + +#include <list> +#include <map> + +class SdrPathObj; + +namespace sd { + +// -------------------------------------------------------------------- + +enum EValue { VALUE_FROM, VALUE_TO, VALUE_BY, VALUE_FIRST, VALUE_LAST }; + +class CustomAnimationEffect; +class AnimationTrigger; + +class CustomAnimationPreset; +typedef boost::shared_ptr< CustomAnimationPreset > CustomAnimationPresetPtr; + +typedef boost::shared_ptr< CustomAnimationEffect > CustomAnimationEffectPtr; + +typedef std::list< CustomAnimationEffectPtr > EffectSequence; + +class EffectSequenceHelper; + +class CustomAnimationEffect +{ + friend class MainSequence; + friend class EffectSequenceHelper; + +public: + SD_DLLPUBLIC CustomAnimationEffect( const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xNode ); + SD_DLLPUBLIC virtual ~CustomAnimationEffect(); + + const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& getNode() const { return mxNode; } + void setNode( const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xNode ); + void replaceNode( const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xNode ); + + CustomAnimationEffectPtr clone() const; + + // attributes + const rtl::OUString& getPresetId() const { return maPresetId; } + const rtl::OUString& getPresetSubType() const { return maPresetSubType; } + const rtl::OUString& getProperty() const { return maProperty; } + + sal_Int16 getPresetClass() const { return mnPresetClass; } + void setPresetClass( sal_Int16 nPresetClass ); + + sal_Int16 getNodeType() const { return mnNodeType; } + SD_DLLPUBLIC void setNodeType( sal_Int16 nNodeType ); + + ::com::sun::star::uno::Any getRepeatCount() const; + void setRepeatCount( const ::com::sun::star::uno::Any& rRepeatCount ); + + ::com::sun::star::uno::Any getEnd() const; + void setEnd( const ::com::sun::star::uno::Any& rEnd ); + + sal_Int16 getFill() const; + void setFill( sal_Int16 nFill ); + + double getBegin() const { return mfBegin; } + SD_DLLPUBLIC void setBegin( double fBegin ); + + double getDuration() const { return mfDuration; } + SD_DLLPUBLIC void setDuration( double fDuration ); + + double getAbsoluteDuration() const { return mfAbsoluteDuration; } + + const String& getName() const { return maName; } + void setName( const String& rName ) { maName = rName; } + + sal_Int16 getIterateType() const { return mnIterateType; } + SD_DLLPUBLIC void setIterateType( sal_Int16 nIterateType ); + + double getIterateInterval() const { return mfIterateInterval; } + SD_DLLPUBLIC void setIterateInterval( double fIterateInterval ); + + ::com::sun::star::uno::Any getTarget() const { return maTarget; } + SD_DLLPUBLIC void setTarget( const ::com::sun::star::uno::Any& rTarget ); + + sal_Bool hasAfterEffect() const { return mbHasAfterEffect; } + void setHasAfterEffect( sal_Bool bHasAfterEffect ) { mbHasAfterEffect = bHasAfterEffect; } + + ::com::sun::star::uno::Any getDimColor() const { return maDimColor; } + void setDimColor( ::com::sun::star::uno::Any aDimColor ) { maDimColor = aDimColor; } + + bool IsAfterEffectOnNext() const { return mbAfterEffectOnNextEffect; } + void setAfterEffectOnNext( bool bOnNextEffect ) { mbAfterEffectOnNextEffect = bOnNextEffect; } + + sal_Int32 getParaDepth() const { return mnParaDepth; } + + sal_Bool hasText() const { return mbHasText; } + + sal_Int16 getCommand() const { return mnCommand; } + + double getAcceleration() const { return mfAcceleration; } + void setAcceleration( double fAcceleration ); + + double getDecelerate() const { return mfDecelerate; } + void setDecelerate( double fDecelerate ); + + sal_Bool getAutoReverse() const { return mbAutoReverse; } + void setAutoReverse( sal_Bool bAutoReverse ); + + ::com::sun::star::uno::Any getProperty( sal_Int32 nNodeType, const rtl::OUString& rAttributeName, EValue eValue ); + bool setProperty( sal_Int32 nNodeType, const rtl::OUString& rAttributeName, EValue eValue, const ::com::sun::star::uno::Any& rValue ); + + ::com::sun::star::uno::Any getTransformationProperty( sal_Int32 nTransformType, EValue eValue ); + bool setTransformationProperty( sal_Int32 nTransformType, EValue eValue, const ::com::sun::star::uno::Any& rValue ); + + ::com::sun::star::uno::Any getColor( sal_Int32 nIndex ); + void setColor( sal_Int32 nIndex, const ::com::sun::star::uno::Any& rColor ); + + ::com::sun::star::uno::Any getRotation(); + void setRotation( const ::com::sun::star::uno::Any& rRotation ); + + sal_Int32 getGroupId() const { return mnGroupId; } + void setGroupId( sal_Int32 nGroupId ); + + sal_Int16 getTargetSubItem() const { return mnTargetSubItem; } + SD_DLLPUBLIC void setTargetSubItem( sal_Int16 nSubItem ); + + ::rtl::OUString getPath() const; + void setPath( const ::rtl::OUString& rPath ); + + bool checkForText(); + bool calculateIterateDuration(); + + void setAudio( const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAudio >& xAudio ); + bool getStopAudio() const; + SD_DLLPUBLIC void setStopAudio(); + SD_DLLPUBLIC void createAudio( const ::com::sun::star::uno::Any& rSource, double fVolume = 1.0 ); + void removeAudio(); + const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAudio >& getAudio() const { return mxAudio; } + + EffectSequenceHelper* getEffectSequence() const { return mpEffectSequence; } + + // helper + ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode > createAfterEffectNode() const throw (com::sun::star::uno::Exception); + ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > getTargetShape() const; + + // static helpers + static sal_Int32 get_node_type( const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xNode ); + static sal_Int32 getNumberOfSubitems( const ::com::sun::star::uno::Any& aTarget, sal_Int16 nIterateType ); + + SdrPathObj* createSdrPathObjFromPath(); + void updateSdrPathObjFromPath( SdrPathObj& rPathObj ); + void updatePathFromSdrPathObj( const SdrPathObj& rPathObj ); + +protected: + void setEffectSequence( EffectSequenceHelper* pSequence ) { mpEffectSequence = pSequence; } + +private: + sal_Int16 mnNodeType; + rtl::OUString maPresetId; + rtl::OUString maPresetSubType; + rtl::OUString maProperty; + sal_Int16 mnPresetClass; + double mfBegin; + double mfDuration; // this is the maximum duration of the subeffects + double mfAbsoluteDuration; // this is the maximum duration of the subeffects including possible iterations + sal_Int32 mnGroupId; + sal_Int16 mnIterateType; + double mfIterateInterval; + sal_Int32 mnParaDepth; + sal_Bool mbHasText; + double mfAcceleration; + double mfDecelerate; + sal_Bool mbAutoReverse; + sal_Int16 mnTargetSubItem; + sal_Int16 mnCommand; + + EffectSequenceHelper* mpEffectSequence; + + String maName; + + ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode > mxNode; + ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAudio > mxAudio; + ::com::sun::star::uno::Any maTarget; + + sal_Bool mbHasAfterEffect; + ::com::sun::star::uno::Any maDimColor; + bool mbAfterEffectOnNextEffect; +}; + +struct stl_CustomAnimationEffect_search_node_predict +{ + stl_CustomAnimationEffect_search_node_predict( const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xSearchNode ); + bool operator()( CustomAnimationEffectPtr pEffect ) const; + const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& mxSearchNode; +}; + +enum ESequenceHint { EFFECT_EDITED, EFFECT_REMOVED, EFFECT_ADDED }; + +/** this listener is implemented by UI components to track changes in the animation core */ +class ISequenceListener +{ +public: + virtual void notify_change() = 0; +}; + +/** this class keeps track of a group of animations that build up + a text animation for a single shape */ +class CustomAnimationTextGroup +{ + friend class EffectSequenceHelper; + +public: + CustomAnimationTextGroup( const ::com::sun::star::uno::Reference< com::sun::star::drawing::XShape >& rTarget, sal_Int32 nGroupId ); + + void reset(); + void addEffect( CustomAnimationEffectPtr& pEffect ); + + const ::com::sun::star::uno::Reference< com::sun::star::drawing::XShape >& getTarget() const { return maTarget; } + const EffectSequence& getEffects() const { return maEffects; } + + /* -1: as single object, 0: all at once, n > 0: by n Th paragraph */ + sal_Int32 getTextGrouping() const { return mnTextGrouping; } + + sal_Bool getAnimateForm() const { return mbAnimateForm; } + sal_Bool getTextReverse() const { return mbTextReverse; } + double getTextGroupingAuto() const { return mfGroupingAuto; } + +private: + EffectSequence maEffects; + ::com::sun::star::uno::Reference< com::sun::star::drawing::XShape > maTarget; + + sal_Int32 mnTextGrouping; + sal_Bool mbAnimateForm; + sal_Bool mbTextReverse; + double mfGroupingAuto; + sal_Int32 mnLastPara; + sal_Int8 mnDepthFlags[5]; + sal_Int32 mnGroupId; +}; + +typedef boost::shared_ptr< CustomAnimationTextGroup > CustomAnimationTextGroupPtr; +typedef std::map< sal_Int32, CustomAnimationTextGroupPtr > CustomAnimationTextGroupMap; + +class EffectSequenceHelper +{ +friend class MainSequence; + +public: + EffectSequenceHelper(); + EffectSequenceHelper( const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XTimeContainer >& xSequenceRoot ); + virtual ~EffectSequenceHelper(); + + virtual ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode > getRootNode(); + + CustomAnimationEffectPtr append( const CustomAnimationPresetPtr& pDescriptor, const ::com::sun::star::uno::Any& rTarget, double fDuration = -1.0 ); + CustomAnimationEffectPtr append( const SdrPathObj& rPathObj, const ::com::sun::star::uno::Any& rTarget, double fDuration = -1.0 ); + SD_DLLPUBLIC void append( const CustomAnimationEffectPtr& pEffect ); + void insert( EffectSequence::iterator& rPos, const CustomAnimationEffectPtr& pEffect ); + void replace( const CustomAnimationEffectPtr& pEffect, const CustomAnimationPresetPtr& pDescriptor, double fDuration = -1.0 ); + void replace( const CustomAnimationEffectPtr& pEffect, const CustomAnimationPresetPtr& pDescriptor, const rtl::OUString& rPresetSubType, double fDuration = -1.0 ); + void remove( const CustomAnimationEffectPtr& pEffect ); + + void create( const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xNode ); + void createEffectsequence( const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xNode ); + void processAfterEffect( const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xNode ); + void createEffects( const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xNode ); + + sal_Int32 getCount() const { return sal::static_int_cast< sal_Int32 >( maEffects.size() ); } + + virtual CustomAnimationEffectPtr findEffect( const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xNode ) const; + + virtual bool disposeShape( const com::sun::star::uno::Reference< com::sun::star::drawing::XShape >& xShape ); + virtual void insertTextRange( const com::sun::star::uno::Any& aTarget ); + virtual void disposeTextRange( const com::sun::star::uno::Any& aTarget ); + virtual bool hasEffect( const com::sun::star::uno::Reference< com::sun::star::drawing::XShape >& xShape ); + virtual void onTextChanged( const com::sun::star::uno::Reference< com::sun::star::drawing::XShape >& xShape ); + + /** this must be called if effects from this sequence are changed. + the method will call the registered listeners */ + void update( const CustomAnimationEffectPtr& pEffect ); + + /** this method rebuilds the animation nodes */ + virtual void rebuild(); + + EffectSequence::iterator getBegin() { return maEffects.begin(); } + EffectSequence::iterator getEnd() { return maEffects.end(); } + EffectSequence::iterator find( const CustomAnimationEffectPtr& pEffect ); + + EffectSequence& getSequence() { return maEffects; } + + void addListener( ISequenceListener* pListener ); + void removeListener( ISequenceListener* pListener ); + + // text group methods + + CustomAnimationTextGroupPtr findGroup( sal_Int32 nGroupId ); + SD_DLLPUBLIC CustomAnimationTextGroupPtr createTextGroup( CustomAnimationEffectPtr pEffect, sal_Int32 nTextGrouping, double fTextGroupingAuto, sal_Bool bAnimateForm, sal_Bool bTextReverse ); + void setTextGrouping( CustomAnimationTextGroupPtr pTextGroup, sal_Int32 nTextGrouping ); + void setAnimateForm( CustomAnimationTextGroupPtr pTextGroup, sal_Bool bAnimateForm ); + void setTextGroupingAuto( CustomAnimationTextGroupPtr pTextGroup, double fTextGroupingAuto ); + void setTextReverse( CustomAnimationTextGroupPtr pTextGroup, sal_Bool bAnimateForm ); + + sal_Int32 getSequenceType() const { return mnSequenceType; } + + ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > getTriggerShape() const { return mxEventSource; } + void setTriggerShape( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >& xTrigger ) { mxEventSource = xTrigger; } + + virtual sal_Int32 getOffsetFromEffect( const CustomAnimationEffectPtr& xEffect ) const; + virtual CustomAnimationEffectPtr getEffectFromOffset( sal_Int32 nOffset ) const; + +protected: + virtual void implRebuild(); + virtual void reset(); + + void createTextGroupParagraphEffects( CustomAnimationTextGroupPtr pTextGroup, CustomAnimationEffectPtr pEffect, bool bUsed ); + + void notify_listeners(); + + ::com::sun::star::uno::Reference< ::com::sun::star::animations::XTimeContainer > createParallelTimeContainer() const; + + void updateTextGroups(); + +protected: + ::com::sun::star::uno::Reference< ::com::sun::star::animations::XTimeContainer > mxSequenceRoot; + EffectSequence maEffects; + std::list< ISequenceListener* > maListeners; + CustomAnimationTextGroupMap maGroupMap; + sal_Int32 mnSequenceType; + ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > mxEventSource; +}; + +class MainSequence; + +class InteractiveSequence : public EffectSequenceHelper +{ +friend class MainSequence; +friend class MainSequenceChangeGuard; + +public: + InteractiveSequence( const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XTimeContainer >& xSequenceRoot, MainSequence* pMainSequence ); + + /** this method rebuilds the animation nodes */ + virtual void rebuild(); + +private: + virtual void implRebuild(); + + MainSequence* mpMainSequence; +}; + +typedef boost::shared_ptr< InteractiveSequence > InteractiveSequencePtr; +typedef std::list< InteractiveSequencePtr > InteractiveSequenceList; + +class MainSequence : public EffectSequenceHelper, public ISequenceListener +{ + friend class UndoAnimation; + friend class MainSequenceRebuildGuard; + friend class MainSequenceChangeGuard; + +public: + MainSequence(); + MainSequence( const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xTimingRootNode ); + ~MainSequence(); + + virtual ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode > getRootNode(); + void reset( const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xTimingRootNode ); + + /** this method rebuilds the animation nodes */ + virtual void rebuild(); + + virtual CustomAnimationEffectPtr findEffect( const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xNode ) const; + + virtual bool disposeShape( const com::sun::star::uno::Reference< com::sun::star::drawing::XShape >& xShape ); + virtual void insertTextRange( const com::sun::star::uno::Any& aTarget ); + virtual void disposeTextRange( const com::sun::star::uno::Any& aTarget ); + virtual bool hasEffect( const com::sun::star::uno::Reference< com::sun::star::drawing::XShape >& xShape ); + virtual void onTextChanged( const com::sun::star::uno::Reference< com::sun::star::drawing::XShape >& xShape ); + + const InteractiveSequenceList& getInteractiveSequenceList() const { return maInteractiveSequenceList; } + + virtual void notify_change(); + + bool setTrigger( const CustomAnimationEffectPtr& pEffect, const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >& xTriggerShape ); + + /** starts a timer that recreates the internal structure from the API core after 1 second */ + void startRecreateTimer(); + + /** starts a timer that rebuilds the API core from the internal structure after 1 second */ + void startRebuildTimer(); + + virtual sal_Int32 getOffsetFromEffect( const CustomAnimationEffectPtr& xEffect ) const; + virtual CustomAnimationEffectPtr getEffectFromOffset( sal_Int32 nOffset ) const; + +protected: + /** permits rebuilds until unlockRebuilds() is called. All rebuild calls during a locked sequence are + process after unlockRebuilds() call. lockRebuilds() and unlockRebuilds() calls can be nested. */ + void lockRebuilds(); + void unlockRebuilds(); + + DECL_LINK( onTimerHdl, Timer * ); + + virtual void implRebuild(); + + void init(); + + void createMainSequence(); + virtual void reset(); + + InteractiveSequencePtr createInteractiveSequence( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >& xShape ); + + InteractiveSequenceList maInteractiveSequenceList; + + ::com::sun::star::uno::Reference< ::com::sun::star::util::XChangesListener > mxChangesListener; + ::com::sun::star::uno::Reference< ::com::sun::star::animations::XTimeContainer > mxTimingRootNode; + Timer maTimer; + bool mbTimerMode; + bool mbRebuilding; + + long mnRebuildLockGuard; + bool mbPendingRebuildRequest; + sal_Int32 mbIgnoreChanges; +}; + +typedef boost::shared_ptr< MainSequence > MainSequencePtr; + +class MainSequenceRebuildGuard +{ +public: + MainSequenceRebuildGuard( const MainSequencePtr& pMainSequence ); + ~MainSequenceRebuildGuard(); + +private: + MainSequencePtr mpMainSequence; +}; + +} + +#endif // _SD_CUSTOMANIMATIONEFFECT_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/CustomAnimationPreset.hxx b/sd/inc/CustomAnimationPreset.hxx new file mode 100644 index 000000000000..b350a7f81c91 --- /dev/null +++ b/sd/inc/CustomAnimationPreset.hxx @@ -0,0 +1,151 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_CUSTOMANIMATIONPRESET_HXX +#define _SD_CUSTOMANIMATIONPRESET_HXX + +#include <boost/shared_ptr.hpp> +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#include <com/sun/star/animations/AnimationNodeType.hpp> + +#include <comphelper/stl_types.hxx> +#include <CustomAnimationEffect.hxx> + +#include <boost/unordered_map.hpp> + +namespace sd { + +typedef boost::unordered_map< rtl::OUString, CustomAnimationEffectPtr, comphelper::UStringHash, comphelper::UStringEqual > EffectsSubTypeMap; +typedef boost::unordered_map< rtl::OUString, rtl::OUString, comphelper::UStringHash, comphelper::UStringEqual > UStringMap; +typedef std::vector< rtl::OUString > UStringList; + +class CustomAnimationPreset +{ + friend class CustomAnimationPresets; + +public: + CustomAnimationPreset( CustomAnimationEffectPtr pEffect ); + + void add( CustomAnimationEffectPtr pEffect ); + + SD_DLLPUBLIC ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode > create( const rtl::OUString& rstrSubType ); + + const rtl::OUString& getPresetId() const { return maPresetId; } + const rtl::OUString& getProperty() const { return maProperty; } + const rtl::OUString& getLabel() const { return maLabel; } + sal_Int16 getPresetClass() const { return mnPresetClass; } + double getDuration() const { return mfDuration; } + + UStringList getSubTypes(); + UStringList getProperties() const; + + bool hasProperty( const rtl::OUString& rProperty ) const; + bool isTextOnly() const { return mbIsTextOnly; } + +private: + rtl::OUString maPresetId; + rtl::OUString maProperty; + sal_Int16 mnPresetClass; + rtl::OUString maLabel; + rtl::OUString maDefaultSubTyp; + double mfDuration; + bool mbIsTextOnly; + + EffectsSubTypeMap maSubTypes; +}; + +typedef boost::shared_ptr< CustomAnimationPreset > CustomAnimationPresetPtr; +typedef boost::unordered_map<rtl::OUString, CustomAnimationPresetPtr, comphelper::UStringHash, comphelper::UStringEqual> EffectDescriptorMap; +typedef std::vector< CustomAnimationPresetPtr > EffectDescriptorList; + +struct PresetCategory +{ + rtl::OUString maLabel; + EffectDescriptorList maEffects; + + PresetCategory( const rtl::OUString& rLabel, const EffectDescriptorList& rEffects ) + : maLabel( rLabel ), maEffects( rEffects ) {} +}; +typedef boost::shared_ptr< PresetCategory > PresetCategoryPtr; +typedef std::vector< PresetCategoryPtr > PresetCategoryList; + +class CustomAnimationPresets +{ +public: + CustomAnimationPresets(); + virtual ~CustomAnimationPresets(); + + void init(); + + SD_DLLPUBLIC static const CustomAnimationPresets& getCustomAnimationPresets(); + + ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode > getRandomPreset( sal_Int16 nPresetClass ) const; + + SD_DLLPUBLIC CustomAnimationPresetPtr getEffectDescriptor( const rtl::OUString& rPresetId ) const; + + const rtl::OUString& getUINameForPresetId( const rtl::OUString& rPresetId ) const; + const rtl::OUString& getUINameForProperty( const rtl::OUString& rProperty ) const; + + const PresetCategoryList& getEntrancePresets() const { return maEntrancePresets; } + const PresetCategoryList& getEmphasisPresets() const { return maEmphasisPresets; } + const PresetCategoryList& getExitPresets() const { return maExitPresets; } + const PresetCategoryList& getMotionPathsPresets() const { return maMotionPathsPresets; } + const PresetCategoryList& getMiscPresets() const { return maMiscPresets; } + + void changePresetSubType( CustomAnimationEffectPtr pEffect, const rtl::OUString& rPresetSubType ) const; + +private: + void importEffects(); + void importResources(); + + void importPresets( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xConfigProvider, const rtl::OUString& rNodePath, PresetCategoryList& rPresetMap ); + + const rtl::OUString& translateName( const rtl::OUString& rId, const UStringMap& rNameMap ) const; + +private: + ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode > mxRootNode; + EffectDescriptorMap maEffectDiscriptorMap; + UStringMap maEffectNameMap; + UStringMap maPropertyNameMap; + + PresetCategoryList maEntrancePresets; + PresetCategoryList maEmphasisPresets; + PresetCategoryList maExitPresets; + PresetCategoryList maMotionPathsPresets; + PresetCategoryList maMiscPresets; + + static CustomAnimationPresets* mpCustomAnimationPresets; +}; + +typedef boost::shared_ptr< CustomAnimationPresets > CustomAnimationPresetsPtr; + +} + +#endif // _SD_CUSTOMANIMATIONEFFECTS_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/EffectMigration.hxx b/sd/inc/EffectMigration.hxx new file mode 100644 index 000000000000..03fd55303422 --- /dev/null +++ b/sd/inc/EffectMigration.hxx @@ -0,0 +1,86 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_EFFECT_MIGRATION_HXX +#define _SD_EFFECT_MIGRATION_HXX + +#include <com/sun/star/presentation/AnimationEffect.hpp> +#include <com/sun/star/presentation/AnimationSpeed.hpp> +#include <com/sun/star/presentation/FadeEffect.hpp> + +class SdPage; +class SvxShape; +class SdAnimationInfo; +class SdrObject; + +namespace sd { + +/** this helper class gives various methods to convert effects from OOo 1.1 + and below to and from OOo 2.0 and above +*/ +class EffectMigration +{ +public: + static ::com::sun::star::presentation::AnimationSpeed ConvertDuration( double fDuration ); + static double ConvertAnimationSpeed( ::com::sun::star::presentation::AnimationSpeed eSpeed ); + + static bool ConvertPreset( const ::rtl::OUString& rPresetId, const ::rtl::OUString* pPresetSubType, ::com::sun::star::presentation::AnimationEffect& rEffect ); + static bool ConvertAnimationEffect( const ::com::sun::star::presentation::AnimationEffect& rEffect, ::rtl::OUString& rPresetId, ::rtl::OUString& rPresetSubType ); + +public: + void AddEffectFromAnimationInfo( SdrObject* pObject, SdAnimationInfo* pInfo ); + +public: + static void SetFadeEffect( SdPage* pPage, ::com::sun::star::presentation::FadeEffect eNewEffect); + static ::com::sun::star::presentation::FadeEffect GetFadeEffect( const SdPage* pPage ); + +public: + static void SetAnimationEffect( SvxShape* pShape, ::com::sun::star::presentation::AnimationEffect eValue ); + static ::com::sun::star::presentation::AnimationEffect GetAnimationEffect( SvxShape* pShape ); + static void SetTextAnimationEffect( SvxShape* pShape, ::com::sun::star::presentation::AnimationEffect eValue ); + static ::com::sun::star::presentation::AnimationEffect GetTextAnimationEffect( SvxShape* pShape ); + static void SetAnimationSpeed( SvxShape* pShape, ::com::sun::star::presentation::AnimationSpeed eSpeed ); + static ::com::sun::star::presentation::AnimationSpeed GetAnimationSpeed( SvxShape* pShape ); + static void SetDimColor( SvxShape* pShape, sal_Int32 nColor ); + static sal_Int32 GetDimColor( SvxShape* pShape ); + static void SetDimHide( SvxShape* pShape, sal_Bool bDimHide ); + static sal_Bool GetDimHide( SvxShape* pShape ); + static void SetDimPrevious( SvxShape* pShape, sal_Bool bDimPrevious ); + static sal_Bool GetDimPrevious( SvxShape* pShape ); + static void SetPresentationOrder( SvxShape* pShape, sal_Int32 nNewPos ); + static sal_Int32 GetPresentationOrder( SvxShape* pShape ); + static void UpdateSoundEffect( SvxShape* pShape, SdAnimationInfo* pInfo ); + static ::rtl::OUString GetSoundFile( SvxShape* pShape ); + static sal_Bool GetSoundOn( SvxShape* pShape ); +}; + +} // end of namespace sd + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/FactoryIds.hxx b/sd/inc/FactoryIds.hxx new file mode 100644 index 000000000000..d9bd8e38077c --- /dev/null +++ b/sd/inc/FactoryIds.hxx @@ -0,0 +1,53 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef SD_FACTORY_IDS_HXX +#define SD_FACTORY_IDS_HXX + +namespace sd { + +/** This are ids used by SfxTopFrame::Create() or CreateViewFrame() to + select a factory to create an instance of an SfxViewShell super + class. This allows the caller to create a view shell directly + with a certain view instead of first create a default view and + then switch to the desired view. +*/ +enum ViewShellFactoryIds +{ + IMPRESS_FACTORY_ID = 1, + DRAW_FACTORY_ID = 1, + SLIDE_SORTER_FACTORY_ID = 2, + OUTLINE_FACTORY_ID = 3, + PRESENTATION_FACTORY_ID = 4 +}; + +} // end of namespace sd + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/Outliner.hxx b/sd/inc/Outliner.hxx new file mode 100644 index 000000000000..aa75c763a459 --- /dev/null +++ b/sd/inc/Outliner.hxx @@ -0,0 +1,555 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef SD_OUTLINER_HXX +#define SD_OUTLINER_HXX + +#include <svx/svdobj.hxx> +#include <svx/svdoutl.hxx> +#include "pres.hxx" +#include "OutlinerIterator.hxx" +#include <editeng/SpellPortions.hxx> +#include <memory> +#include <boost/shared_ptr.hpp> + +class Dialog; +class SdPage; +class SdrObject; +class SdrTextObj; +class SdDrawDocument; +class SfxStyleSheetPool; +class SdrObjListIter; + +namespace sd { + +class DrawViewShell; +class View; +class ViewShell; +class Window; + +/** The main purpose of this class is searching and replacing as well as + spelling of impress documents. The main part of both tasks lies in + iterating over the pages and view modes of a document and apply the + respective function to all objects containing text on those pages. + + <p>Relevant objects: There are two sets of objects to search/spell + check. One is the set of all selected objects. The other consists of + all objects on all pages in draw-, notes-, and handout view as well as + slide- and background view (draw pages and master pages).</p> + + <p>Iteration: Search/replace and spelling functions operate on shapes + containing text. To cover all relevant objects an order has to be + defined on the objects. For the set of all selected objects this order + is simply the order in which they can be retrieved from the selection + object.<br> + When there is no selection the order is nested. The three modes of the + draw view are on the outer level: draw mode, notes mode, handout mode. + The inner level switches between draw pages and master pages. This + leads to the following order: + <ol> + <li>draw pages of draw mode</li> + <li>master pages of draw mode</li> + <li>draw pages of notes mode</li> + <li>master pages of notes mode</li> + <li>draw pages of handout mode</li> + <li>master pages of handout mode</li> + </ol> + Iteration starts at the top of the current page. When reaching the end + of the document, i.e. the last master page of the handout mode, it jumps + to the first draw page of draw mode. In backward searches this order is + reversed. When doing a <em>replace all</em> then the whole document is + searched for matches starting at the first page of the draw/slide view + (or last page of handout/background view even though search + direction).</p> + + <p>The start position is restored after finishing spell checking or + replacing all matches in a document.</p> + + <p>Some related pieces of information: + The search dialog (<type>SvxSearchDialog</type>) can be controlled in + more than one way: + <ul><li>A set of option flags returned by the slot call + SID_SEARCH_OPTIONS handled by the + <member>SdDrawDocument::GetState()</member> method.</li> + <li>The contents of the search item of type + <type>SvxSearchItem</type>.</li> + <li>The <member>HasSelection()</member> view shell method that returns + whether or not a selection exists. However, it is called from the + search dialog with an argument so that only text selections are + queried. This is only sufficient for searching the outline view. + </p> +*/ +class Outliner + : public SdrOutliner +{ +public: + friend class ::sd::outliner::OutlinerContainer; + + /** Create a new sd outliner object. + @param pDoc + The draw document from which to take the content. + @param nMode + The valid values <const>OUTLINERMODE_DONTKNOW</const>, + <const>OUTLINERMODE_TEXTOBJECT</const>, + <const>OUTLINERMODE_TITLEOBJECT</const>, + <const>OUTLINERMODE_OUTLINEOBJECT</const>, and + <const>OUTLINERMODE_OUTLINEVIEW</const> are defined in + editeng/outliner.hxx. + */ + Outliner( SdDrawDocument* pDoc, sal_uInt16 nMode ); + virtual ~Outliner(); + + /** Despite the name this method is called prior to spell cheking *and* + searching and replacing. The position of current view + mode/page/object/caret position is remembered and, depending on the + search mode, may be restored after finishing searching/spell + checking. + */ + void PrepareSpelling (void); + + /** Initialize a spell check but do not start it yet. This method + is a better candiate for the name PrepareSpelling. + */ + void StartSpelling (void); + + /** Proxy for method from base class to avoid compiler warning */ + void StartSpelling(EditView&, unsigned char); + + /** Initiate a find and/or replace on the next relevant text object. + @return + Returns </sal_True> when the search/replace is finished (as + indicated by user input to the search dialog). A </sal_False> value + indicates that another call to this method is required. + */ + bool StartSearchAndReplace (const SvxSearchItem* pSearchItem); + + /** Iterate over the sentences in all text shapes and stop at the + next sentence with spelling errors. While doing so the view + mode may be changed and text shapes are set into edit mode. + */ + ::svx::SpellPortions GetNextSpellSentence (void); + + /** Release all resources that have been created during the find&replace + or spell check. + */ + void EndSpelling (void); + + /** callback for textconversion */ + sal_Bool ConvertNextDocument (void); + + /** Starts the text conversion (hangul/hanja or Chinese simplified/traditional) + for the current viewshell */ + void StartConversion( sal_Int16 nSourceLanguage, sal_Int16 nTargetLanguage, + const Font *pTargetFont, sal_Int32 nOptions, sal_Bool bIsInteractive ); + + /** This is called internaly when text conversion is started. + The position of current view mode/page/object/caret position + is remembered and will be restored after conversion. + */ + void BeginConversion (void); + + /** Release all resources that have been created during the conversion */ + void EndConversion (void); + + DECL_LINK( SpellError, void * ); + + enum ChangeHint { CH_VIEW_SHELL_INVALID, CH_VIEW_SHELL_VALID }; + + int GetIgnoreCurrentPageChangesLevel() const { return mnIgnoreCurrentPageChangesLevel; }; + void IncreIgnoreCurrentPageChangesLevel() { mnIgnoreCurrentPageChangesLevel++; }; + void DecreIgnoreCurrentPageChangesLevel() { mnIgnoreCurrentPageChangesLevel--; }; + +private: + class Implementation; + ::std::auto_ptr<Implementation> mpImpl; + + /// Specifies whether to search and replace, to spell check or to do a + /// text conversion. + enum mode {SEARCH, SPELL, TEXT_CONVERSION} meMode; + + /// The view which displays the searched objects. + ::sd::View* mpView; + /// The view shell containing the view. + ::boost::shared_ptr<ViewShell> mpViewShell; + /// This window contains the view. + ::sd::Window* mpWindow; + /// The document on whose objects and pages this class operates. + SdDrawDocument* mpDrawDocument; + + /** this is the language that is used for current text conversion. + Only valid if meMode is TEXT_CONVERSION. + */ + sal_Int16 mnConversionLanguage; + + /** While the value of this flag is greater than 0 changes of the current page + do not lead to selecting the corresponding text in the outliner. + */ + int mnIgnoreCurrentPageChangesLevel; + + /// Specifies whether the search string has been found so far. + bool mbStringFound; + + /** This flag indicates whether there may exist a match of the search + string before/after the current position in the document. It can be + set to </sal_False> only when starting from the beginning/end of the + document. When reaching the end/beginning with it still be set to + </sal_False> then there exists no match and the search can be terminated. + */ + bool mbMatchMayExist; + + /// The number of pages in the current view. + sal_uInt16 mnPageCount; + + /// Number of objects on the current page / in the current selection. + sal_Int32 mnObjectCount; + + /** A <TRUE/> value indicates that the end of the find&replace or spell + check has been reached. + */ + bool mbEndOfSearch; + + /** Set to <TRUE/> when an object has been prepared successfully for + searching/spell checking. This flag directs the internal iteration + which stops when set to </sal_True>. + */ + bool mbFoundObject; + + /** When set to <TRUE/> this flag indicates that an error has occurred + that should terminate the iteration over the objects to search/spell + check. + */ + bool mbError; + + /** This flag indicates whether to search forward or backwards. + */ + bool mbDirectionIsForward; + + /** This flag indicates that only the selected objects are to be + searched. + */ + bool mbRestrictSearchToSelection; + + /** When the search is restricted to the current selection then + this list contains pointers to all the objects of the + selection. This copy is necessary because during the search + process the mark list is modified. + */ + ::std::vector<SdrObjectWeakRef> maMarkListCopy; + + /** This flag inidcates that only the current view is to be used for + searching and spelling. Automatically switching to other view does + not take place when this flag is set. + */ + bool mbProcessCurrentViewOnly; + + /** Current object that may be a text object. The object pointer to + corresponds to <member>mnObjIndex</member>. While iterating over the + objects on a page <member>mpObj</member> will point to every object + while <member>mpTextObj</member> will be set only to valid text + objects. + */ + SdrObject* mpObj; + + /** this stores the first object that is used for text conversion. + Conversion automaticly wraps around the document and stops when it + finds this object again. + */ + SdrObject* mpFirstObj; + + /// Candidate for being searched/spell checked. + SdrTextObj* mpTextObj; + + /// Current text to be searched/spelled inside the current text object + sal_Int32 mnText; + + /// Paragraph object of <member>mpTextObj</member>. + OutlinerParaObject* mpParaObj; + + /// The view mode that was active when starting to search/spell check. + PageKind meStartViewMode; + + /// The master page mode that was active when starting to search/spell check. + EditMode meStartEditMode; + + /// The current page index on starting to search/spell check. + sal_uInt16 mnStartPageIndex; + + /// The object in edit mode when searching /spell checking was started + /// (if any). + SdrObject* mpStartEditedObject; + + /// The position of the caret when searching /spell checking was started. + ESelection maStartSelection; + + /** The search item contains various attributes that define the type of + search. It is set every time the + <member>SearchAndReplaceAll</member> method is called. + */ + const SvxSearchItem* mpSearchItem; + + /// The actual object iterator. + ::sd::outliner::Iterator maObjectIterator; + /// The current position of the object iterator. + ::sd::outliner::IteratorPosition maCurrentPosition; + /// The position when the search started. Corresponds largely to the + /// m?Start* members. + ::sd::outliner::Iterator maSearchStartPosition; + /** The last valid position desribes where the last text object has been + found. This position is restored when some dialogs are shown. The + position is initially set to the where the search begins. + */ + ::sd::outliner::IteratorPosition maLastValidPosition; + + /** This flag remebers a selection change between a call to the + selection change listener callback and the next + <member>DetectChange()</member> method call. + */ + bool mbSelectionHasChanged; + + /** This flag indicates whether a selection change event is expected due + to a programatical change of the selection. + */ + bool mbExpectingSelectionChangeEvent; + + /** This flag is set to true when the whole document has been + processed once 'officially', i.e. a message box has been shown + that tells the user so. + */ + bool mbWholeDocumentProcessed; + + /** When this flag is true then a PrepareSpelling() is executed when + StartSearchAndReplace() is called the next time. + */ + bool mbPrepareSpellingPending; + + /** In this flag we store whether the view shell is valid and may be + accessed. + */ + bool mbViewShellValid; + + /** Initialize the object iterator. Call this method after being + invoked from the search or spellcheck dialog. It creates a new + iterator pointing at the current object when this has not been done + before. It reverses the direction of iteration if the given flag + differs from the current direction. + @param bDirectionIsForward + This flag specifies in which direction to iterator over the + objects. If it differs from the current direction the iterator + is reversed. + */ + void Initialize (bool bDirectionIsForward); + + /** Do search and replace for whole document. + */ + bool SearchAndReplaceAll (void); + + /** Do search and replace for next match. + @return + The return value specifies whether the search ended (</sal_True>) or + another call to this method is required (</sal_False>). + */ + bool SearchAndReplaceOnce (void); + + /** Detect changes of the document or view and react accordingly. Such + changes may occur because different calls to + <member>SearchAndReplace()</member> there usually is user + interaction. This is at least the press of the search or replace + button but may include any other action some of which affect the + search. + */ + void DetectChange (void); + + /** Detect whether the selection has changed. + @return + Return <TRUE/> when the selection has been changed since the + last call to this method. + */ + bool DetectSelectionChange (void); + + /** Remember the current edited object/caret position/page/view mode + when starting to search/spell check so that it can be restored on + termination. + */ + void RememberStartPosition (void); + + /** Restore the position stored in the last call of + <member>RememberStartPositiony</member>. + */ + void RestoreStartPosition (void); + + /** Provide next object to search or spell check as text object in edit + mode on the current page. This skips all objects that do not + match or are no text object. + */ + void ProvideNextTextObject (void); + + /** Handle the situation that the iterator has reached the last object. + This may result in setting the <member>mbEndOfSearch</member> flag + back to </sal_False>. This method may show either the end-of-search + dialog or the wrap-arround dialog. + */ + void EndOfSearch (void); + + /** Show a dialog that tells the user that the search has ended either + because there are no more matches after finding at least one or that + no match has been found at all. + */ + void ShowEndOfSearchDialog (void); + + /** Show a dialog that asks the user whether to wrap arround to the + beginning/end of the document and continue with the search/spell + check. + */ + bool ShowWrapArroundDialog (void); + + /** Check whether the object pointed to by the iterator is a valid text + object. + @param aPosition + The object for which to test whether it is a valid text object. + */ + bool IsValidTextObject (const ::sd::outliner::IteratorPosition& rPosition); + + /** Put text of current text object into outliner so that the text can + be searched/spell checked. + */ + void PutTextIntoOutliner (void); + + /** Prepare to do spell checking on the current text object. This + includes putting it into edit mode. Under certain conditions this + method sets <member>mbEndOfSearch</member> to <TRUE/>. + */ + void PrepareSpellCheck (void); + + /** Prepare to search and replace on the current text object. This + includes putting it into edit mode. + */ + void PrepareSearchAndReplace (void); + + /** Prepare to do a text conversion on the current text + object. This includes putting it into edit mode. + */ + void PrepareConversion (void); + + /** Switch to a new view mode. Try to restore the original edit mode + before doing so. + @param ePageKind + Specifies the new view mode. + */ + void SetViewMode (PageKind ePageKind); + + /** Switch to the page or master page specified by the + <member>mnPage</member> index. Master page mode is specified by + <member>meEditMode</member>. + @param eEditMode + The new edit mode. + @param nPageIndex + The new page index. + */ + void SetPage (EditMode eEditMode, sal_uInt16 nPageIndex); + + /** Switch on edit mode for the currently selected text object. + */ + void EnterEditMode (sal_Bool bGrabFocus=sal_True); + + /** Return the position at which a new search is started with respect to + the search direction as specified by the argument. + @return + The position mentioned above in form of a selection with start + equals end. + */ + ESelection GetSearchStartPosition (void); + + /** Detect whether there exists a previous match. Note that only the + absence of such a match can be detected reliably. An existing match + is assumed when the search started not at the beginning/end of the + presentation. This does not have to be true. The user can have set + the cursor at the middle of the text without a prior search. + @return + Returns </True> when there is no previous match and </False> + when there may be one. + */ + bool HasNoPreviousMatch (void); + + /** Handle a failed search (with or without replace) for the outline + mode. Show message boxes when the search failed completely, + i.e. there is no match in the whole presentation, or when no further + match exists. + @return + The returned value indicates whether another (wrapped arround) + search shall take place. If that is so, then it is the caller's + responsibility to set the cursor position accordingly. + */ + bool HandleFailedSearch (void); + + /** Take a position as returned by an object iterator and switch to the + view and page on which the object specified by this position is + located. + @param rPosition + This position points to a <type>SdrObject</type> object and + contains the view and page where it is located. + @return + Return a pointer to the <type>SdrObject</type>. + */ + SdrObject* SetObject (const ::sd::outliner::IteratorPosition& rPosition); + + /** Use this method when the view shell in which to search has changed. + It handles i.e. registering at the associated view as selection + change listener. + */ + void SetViewShell (const ::boost::shared_ptr<ViewShell>& rpViewShell); + + /** Activate or deactivate the search in the current selection. Call + this method whenever the selection has changed. This method creates + a copy of the current selection and reassings the object iterator to + the current() iterator. + */ + void HandleChangedSelection (void); + + /** Initiate the spell check of the next relevant text object. + When the outline view is active then this method is called + after a wrap arround to continue at the beginning of the document. + @return + Returns <TRUE/> to indicate that another call to this method is + required. When all text objects have been processed then + <FALSE/> is returned. + */ + virtual sal_Bool SpellNextDocument (void); + + /** Show the given message box and make it modal. It is assumed that + the parent of the given dialog is NULL, i.e. the application + window. This function makes sure that the otherwise non-modal + search dialog, if visible, is locked, too. + */ + sal_uInt16 ShowModalMessageBox (Dialog& rMessageBox); +}; + +} // end of namespace sd + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/OutlinerIterator.hxx b/sd/inc/OutlinerIterator.hxx new file mode 100644 index 000000000000..e66325fdbf15 --- /dev/null +++ b/sd/inc/OutlinerIterator.hxx @@ -0,0 +1,372 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef SD_OUTLINER_ITERATOR_HXX +#define SD_OUTLINER_ITERATOR_HXX + +#include <svx/svdobj.hxx> + +#include "pres.hxx" +#include "sal/types.h" +#include <vector> +#include <boost/shared_ptr.hpp> + +class SdDrawDocument; + +namespace sd { + +class ViewShell; +class Outliner; +class View; + +namespace outliner { + +class IteratorImplBase; +class IteratorPosition; + +/** Use this enum to specify the initial location of the object pointed to by + a newly created iterator. The values are + <ul><li><const>BEGIN</const> for the first object with reference to + iteration direction.</li> + <li>END for one past the last valid object or, if the iterator is a + backward iterator, the object in front of the first valid one.</li> + <li>CURRENT for the current object. Because there is only a current + page this usually is taken to be the first/last object on the current + page.</li></ul> +*/ +enum IteratorLocation {BEGIN,END,CURRENT}; + +/** Use this enum to specify the type of iterator when creating a new + iterator: + <ul><li>SELECTION for iteration over all objects that belong to the + current mark list.</li> + <li>SINGLE_VIEW for iteration over all objects in the current view.</li> + <li>DOCUMENT for iteratioin over all object in all relevant + views.</li></ul> +*/ +enum IteratorType {SELECTION,SINGLE_VIEW,DOCUMENT}; + + +/** This iterator can be used to iterate over all <type>SdrObject</type> + objects of one of three set denoted by the <type>IteratorType</type>: + <ul><li>All objects of the current mark list (selection) + (type==SELECTION).</li> + <li>All objects in the current view (type==SINGLE_VIEW).</li> + <li>All objects in all views (type=DOCUMENT).</li></ul> + + <p>Note that the iterator does not change pages or views. It is the + task of the user of the iterator to take the information provided by the + <type>IteratorPosition</type> as returned by the + <member>operator*()</member> method and set view, visible page, and + selection/edit mode markers to reflect this position.</p> + + <p>A simple forward iteration from the first to the last object would + instantiate the iterator with + <code>Iterator(pDocument,pViewShell,true,BEGIN)</code> for some document + and view shell. This iterator can then be compared against + <code>Iterator(pDocument,pViewShell,true,END)</code>. On equality the + iteration should be stoped without evaluating the iterator: The position + of an end iterator is not valid.</p> +*/ +class Iterator +{ +public: + Iterator (void); + + /** The copy constructor creates a new iterator by copying the + implementation object. + */ + Iterator (const Iterator& rIterator); + + /** Create a new iterator with the implementation object being the + provided one. + @param pObject + A copy of this object will become the implementation object. + */ + explicit Iterator (IteratorImplBase* pObject); + + ~Iterator (void); + + /** Assign the iterator from the given one. The implementation object + of this iterator will be a copy of the given iterator. + @param rIterator + The iterator which to assign from. + */ + Iterator& operator= (const Iterator& rIterator); + /** Return the current position of the iterator. + @return + Returns a reference to the current position. Therefore this + method is not thread safe. The reason for this behaviour is, of + course, to ommit the copying of the returned position. + */ + const IteratorPosition& operator* () const; + /** The prefix increment operator returns the iterator pointing to the + next object. When in doubt prefer this operator over the postfix + increment operator. + @return + Returns a reference to this iterator pointing to the next object. + */ + Iterator& operator++ (); + /** The postfix increment operator returns the iterator still pointing + to the current object. Only the next call to + <member>operator*()</member> will return the next object. When in + doubt rather use the prefix increment operator. + @param dummy + A dummy operator used by the compiler. + @return + Returns a copy of the iterator as it where before the operator + was called. + */ + Iterator operator++ (int); + /** Test equality of two iterators. Two iterators are taken to be equal + when they point are of the same type (their implementation objects + are instances of the same class) and point to the same object. + @param rIterator + The iterator to test equality with. + @return + Returns <TRUE/> when both iterators point to the same object. + */ + bool operator== (const Iterator& rIterator); + /** Test whether two iterators point to different objects. This is just + the negation of the result of the equality operator. + @param rIterator + The iterator to test inequality with. + @return + Returns <TRUE/> when both iterators point to the different objects. + */ + bool operator!= (const Iterator& rIterator); + /** Reverse the direction of iteration. The position of the iterator is + not changed. Thus caling this method twice returns to the old state. + */ + void Reverse (void); + +private: + /// The implementation object to which most of the methods are forwarded. + IteratorImplBase* mpIterator; +}; + + + + +/** This class wraps the <type>Outliner</type> class and represents it as + a container of <type>SdrObject</type> objects. Its main purpose is to + provide iterators for certain sub-sets of those objects. These sub-sets + are a) the set of the currently selected objects, b) all objects in the + current view, and c) all objects in all views. + + <p>The direction of the returned iterators depends on the underlying + <type>Outliner</type> object and is usually set in the search + dialog.</p> +*/ +class OutlinerContainer +{ +public: + /** Create a new wraper object for the given outliner. + @param pOutliner + The outliner that is represented by the new object as + <type>SdrObject</type> container. + */ + OutlinerContainer (::sd::Outliner* pOutliner); + + /** Return an iterator that points to the first object of one of the + sets described above. This takes also into account the direction of + iteration. + @return + The returned iterator points either to the first (forward + search) or to the last object (backward search) of the set. + */ + Iterator begin (void); + + /** Return an iterator that marks the end of the iteration. This takes + also into account the direction of iteration. The object pointed to + is not valid. + @return + The returned iterator points either to that object past the last + one (forward search) or to the one in front of the first + (backward search). + */ + Iterator end (void); + + /** Return an iterator that points to the current object of one of the + sets described above. This takes also into account the direction of + iteration. + @return + The returned iterator points either to the first (forward + search) or to the last object (backward search) of the set of + selected objects or of the current page if the search set spans + more than one page. + */ + Iterator current (void); + +private: + /// The wrapped outliner that is represented as object container. + ::sd::Outliner* mpOutliner; + + /** Create an iterator. The object pointed to depends on the search + direction retrieved from the outliner object + <member>mpOutliner</member> and the given location. + @param aLocation + This specifies whether the returned iterator points to the + first, (one past the) last, or current object. + @return + Returns an iterator as constructed by + <member>CreateSelectionIterator()</member>, + */ + Iterator CreateIterator (IteratorLocation aLocation); + + /** Create an iterator that iterates over all currently selected + <type>SdrObjects</type> objects of the <member>mpOutliner</member> + outliner. + @param rObjectList + List of currently selected objects. This list is necessary + so that the selection can be changed without affecting the + iterator. + @param pDocument + The document to which the objects belong. + @param pViewShell + The view shell which displays the objects. + @param bDirectionIsForward + The direction of iteration. It defaults to forward. + @param aLocation + This specifies at which object the iterator points initially. + */ + Iterator CreateSelectionIterator ( + const ::std::vector<SdrObjectWeakRef>& rObjectList, + SdDrawDocument* pDocument, + const ::boost::shared_ptr<ViewShell>& rpViewShell, + bool bDirectionIsForward=true, + IteratorLocation aLocation=BEGIN); + + /** Create an iterator that iterates over all <type>SdrObjects</type> + objects of the <member>mpOutliner</member> outliner. + @param pDocument + The document to which the objects belong. + @param pViewShell + The view shell which displays the objects. + @param bDirectionIsForward + The direction of iteration. It defaults to forward. + @param aLocation + This specifies at which object the iterator points initially. + */ + Iterator CreateDocumentIterator ( + SdDrawDocument* pDocument, + const ::boost::shared_ptr<ViewShell>& rpViewShell, + bool bDirectionIsForward=true, + IteratorLocation aLocation=BEGIN); + + /** Return the index of a page that contains an object that a new + iterator shall point to. This page index depends primarily on the + location, iteration direction, as well as on edit mode and page + kind. + @param pDocument + The document to which the page belongs. + @param pViewShell + The view shell which displays the page. + @param ePageKind + Specifies the view the page belongs to. + @param eEditMode + Specifies whether the page is a master page. + @param bDirectionIsForward + The direction of iteration. + @param aLocation + This specifies at which object the iterator points initially. + */ + sal_Int32 GetPageIndex ( + SdDrawDocument* pDocument, + const ::boost::shared_ptr<ViewShell>& rpViewShell, + PageKind ePageKind, + EditMode eEditMode, + bool bDirectionIsForward, + IteratorLocation aLocation); + + // Do not allow default constructor and copying of outliner containers. + OutlinerContainer (const OutlinerContainer&) {}; + OutlinerContainer (void) {}; + OutlinerContainer& operator= (const OutlinerContainer&) {return *this;}; +}; + + + + +/** Data collection specifying a <type>SdrObject</type> and its position in + a document and view. +*/ +class IteratorPosition +{ +public: + /** Create a new object with all data members set to default values. + These values should not be accessed. The only use of the object as + it is is as a marker in comparisons. + */ + IteratorPosition (void); + /** Create a new object with all data members set from the given + position. + @param aPosition + The position object from which to take the values that are + assigned to the data members of this object. + */ + IteratorPosition (const IteratorPosition& aPosition); + + /// The destructor is a no-op at the moment. + ~IteratorPosition (void); + /** Assign the content of the given position to this one. + @param aPosition + This is the position object from which to take the values of all + data members. + @return + Returns a reference to this object. + */ + IteratorPosition& operator= (const IteratorPosition& aPosition); + /** Compare two positions for equality. + @return + <TRUE/> is returned only when all data members have the same + values in both position objects. + */ + bool operator== (const IteratorPosition& aPosition) const; + + /// Pointer to the actual <type>SdrObject</type> object. + SdrObjectWeakRef mxObject; + + /// Number of the actual SdrText from the current <type>SdrObject</type> + sal_Int32 mnText; + + /// The index of a page where the object is located on. + sal_Int32 mnPageIndex; + /// Page kind of the view. + PageKind mePageKind; + /// Edit mode of the view. + EditMode meEditMode; +}; + + +} } // end of namespace ::sd::outliner + + +#endif // _SD_OUTLINER_ITERATOR_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/SdShapeTypes.hxx b/sd/inc/SdShapeTypes.hxx new file mode 100644 index 000000000000..5bdabcf09cb5 --- /dev/null +++ b/sd/inc/SdShapeTypes.hxx @@ -0,0 +1,84 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_SD_SHAPE_TYPES_HXX +#define _SD_SD_SHAPE_TYPES_HXX + +#include <svx/ShapeTypeHandler.hxx> +#include <svx/AccessibleShape.hxx> +#include <com/sun/star/accessibility/XAccessible.hpp> + +namespace accessibility { + +/** Register the SD presentation shape types with the ShapeTypeHandler singleton. + This method is usually called while loading the sd library. +*/ +void RegisterImpressShapeTypes (void); + +/** Enum describing all shape types known in the SD project. +*/ +enum SdShapeTypes +{ + PRESENTATION_OUTLINER, + PRESENTATION_SUBTITLE, + PRESENTATION_GRAPHIC_OBJECT, + PRESENTATION_PAGE, + PRESENTATION_OLE, + PRESENTATION_CHART, + PRESENTATION_TABLE, + PRESENTATION_NOTES, + PRESENTATION_TITLE, + PRESENTATION_HANDOUT, + PRESENTATION_HEADER, + PRESENTATION_FOOTER, + PRESENTATION_DATETIME, + PRESENTATION_PAGENUMBER +}; + +/** Factory method that creates accessibility objects corresponding to the + type of the given shape. +*/ +AccessibleShape* + CreateSdAccessibleShape (const ::com::sun::star::uno::Reference< + ::com::sun::star::accessibility::XAccessible>& rxParent, + const ::com::sun::star::uno::Reference< + ::com::sun::star::drawing::XShape>& rxShape + ); + + +/** List of shape type descriptors corresponding to the + <type>SdShapeTypes</type> enum. +*/ +extern ShapeTypeDescriptor aSdShapeTypeList[]; + + +} // end of namespace accessibility + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/TransitionPreset.hxx b/sd/inc/TransitionPreset.hxx new file mode 100644 index 000000000000..56570b0161c4 --- /dev/null +++ b/sd/inc/TransitionPreset.hxx @@ -0,0 +1,93 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_TRANSITIONPRESET_HXX +#define _SD_TRANSITIONPRESET_HXX + +#include <boost/shared_ptr.hpp> +#include <com/sun/star/lang/XMultiServiceFactory.hpp> + +#include <comphelper/stl_types.hxx> + +#include <list> +#include <boost/unordered_map.hpp> + +namespace com { namespace sun { namespace star { + namespace animations { class XAnimationNode; } + namespace uno { template<class X> class Reference; } +} } } + +class SdPage; +class String; + +namespace sd { + +class TransitionPreset; +typedef boost::shared_ptr< TransitionPreset > TransitionPresetPtr; +typedef std::list< TransitionPresetPtr > TransitionPresetList; +typedef boost::unordered_map< rtl::OUString, rtl::OUString, comphelper::UStringHash, comphelper::UStringEqual > UStringMap; + +class TransitionPreset +{ +public: + static const TransitionPresetList& getTransitionPresetList(); + static bool importTransitionPresetList( TransitionPresetList& rList ); + + void apply( SdPage* pSlide ) const; + + sal_Int16 getTransition() const { return mnTransition; } + sal_Int16 getSubtype() const { return mnSubtype; } + sal_Bool getDirection() const { return mbDirection; } + sal_Int32 getFadeColor() const { return mnFadeColor; } + + const rtl::OUString& getUIName() const { return maUIName; } + const rtl::OUString& getPresetId() const { return maPresetId; } + +private: + TransitionPreset( const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xNode ); + + sal_Int16 mnTransition; + sal_Int16 mnSubtype; + sal_Bool mbDirection; + sal_Int32 mnFadeColor; + rtl::OUString maPresetId; + rtl::OUString maUIName; + + static sd::TransitionPresetList* mpTransitionPresetList; + + static bool importTransitionsFile( TransitionPresetList& rList, + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory, + UStringMap& rTransitionNameMape, + String aFilaname ); +}; + +} + +#endif // _SD_TRANSITIONPRESET_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/animations.hxx b/sd/inc/animations.hxx new file mode 100644 index 000000000000..1fe6f64dc8d6 --- /dev/null +++ b/sd/inc/animations.hxx @@ -0,0 +1,33 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +#ifndef _SD_ANIMATIONS_HXX_ +#define _SD_ANIMATIONS_HXX_ + +#include <sddllapi.h> + +namespace sd +{ + +/** stores the link between an after effect node and its master for later insertion + into the timing hierarchie +*/ +struct AfterEffectNode +{ + ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode > mxNode; + ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode > mxMaster; + bool mbOnNextEffect; + + AfterEffectNode( const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xNode, const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xMaster, bool bOnNextEffect ) + : mxNode( xNode ), mxMaster( xMaster ), mbOnNextEffect( bOnNextEffect ) {} +}; + +typedef std::list< AfterEffectNode > AfterEffectNodeList; + +/** inserts the animation node in the given AfterEffectNode at the correct position + in the timing hierarchie of its master */ +SD_DLLPUBLIC void stl_process_after_effect_node_func(AfterEffectNode& rNode); + +} // namespace sd; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/anmdef.hxx b/sd/inc/anmdef.hxx new file mode 100644 index 000000000000..1e7b8fb8d396 --- /dev/null +++ b/sd/inc/anmdef.hxx @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_ANMDEF_HXX +#define _SD_ANMDEF_HXX + +// muss angepasst werden! +#define ANIMATION_SPEED_COUNT 3 + +// muss angepasst werden! +#define ANIMATION_EFFECT_COUNT 48 + +// muss angepasst werden! +#define CLICK_ACTION_COUNT 14 + +#endif // _SD_ANIMATIONDEF_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/anminfo.hxx b/sd/inc/anminfo.hxx new file mode 100644 index 000000000000..54aacefdf79f --- /dev/null +++ b/sd/inc/anminfo.hxx @@ -0,0 +1,90 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_ANMINFO_HXX +#define _SD_ANMINFO_HXX + +#include <com/sun/star/presentation/AnimationEffect.hpp> +#include <com/sun/star/presentation/AnimationSpeed.hpp> +#include <com/sun/star/presentation/ClickAction.hpp> +#include "pres.hxx" +#include "anmdef.hxx" +#include <svx/svdobj.hxx> +#include <tools/color.hxx> +#include <sddllapi.h> + +class Polygon; +class Point; +class SvStream; +class SdrObjSurrogate; +class SdrObject; +class SdrPathObj; +class SdDrawDocument; + +class SdAnimationInfo : public SdrObjUserData +{ +public: + PresObjKind mePresObjKind; + + /* deprecated animation infos */ + ::com::sun::star::presentation::AnimationEffect meEffect; // Animationseffekt + ::com::sun::star::presentation::AnimationEffect meTextEffect; // Animationseffekt fuer Textinhalt + ::com::sun::star::presentation::AnimationSpeed meSpeed; // Geschwindigkeit der Animation + sal_Bool mbActive; // eingeschaltet ? + sal_Bool mbDimPrevious; // Objekt abblenden + sal_Bool mbIsMovie; // wenn Gruppenobjekt, dann Sequenz aus den + sal_Bool mbDimHide; // verstecken statt abblenden + Color maBlueScreen; // identifiziert "Hintergrundpixel" + Color maDimColor; // zum Abblenden des Objekts + String maSoundFile; // Pfad zum Soundfile in MSDOS-Notation + sal_Bool mbSoundOn; // Sound ein/aus + sal_Bool mbPlayFull; // Sound ganz abspielen + SdrPathObj* mpPathObj; // das Pfadobjekt + ::com::sun::star::presentation::ClickAction meClickAction; // Aktion bei Mausklick + ::com::sun::star::presentation::AnimationEffect meSecondEffect; // fuer Objekt ausblenden + ::com::sun::star::presentation::AnimationSpeed meSecondSpeed; // fuer Objekt ausblenden + String maSecondSoundFile; // fuer Objekt ausblenden + sal_Bool mbSecondSoundOn; // fuer Objekt ausblenden + sal_Bool mbSecondPlayFull;// fuer Objekt ausblenden + sal_uInt16 mnVerb; // fuer OLE-Objekt + sal_uLong mnPresOrder; + SdrObject& mrObject; + + SD_DLLPUBLIC void SetBookmark( const String& rBookmark ); + SD_DLLPUBLIC String GetBookmark(); +public: + SdAnimationInfo(SdrObject& rObject); + SdAnimationInfo(const SdAnimationInfo& rAnmInfo, SdrObject& rObject); + virtual ~SdAnimationInfo(); + + virtual SdrObjUserData* Clone(SdrObject* pObject) const; +}; + +#endif // _SD_ANMINFO_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/app.hrc b/sd/inc/app.hrc new file mode 100644 index 000000000000..707a62fd791d --- /dev/null +++ b/sd/inc/app.hrc @@ -0,0 +1,507 @@ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_APP_HRC_ +#define _SD_APP_HRC_ + +#ifndef _SFX_HRC +#include <sfx2/sfx.hrc> +#endif + +// HelpIDs fuer Vorlagen +#define HID_STANDARD_STYLESHEET_NAME (HID_SD_START + 70) +#define HID_POOLSHEET_OBJWITHARROW (HID_SD_START + 71) +#define HID_POOLSHEET_OBJWITHSHADOW (HID_SD_START + 72) +#define HID_POOLSHEET_OBJWITHOUTFILL (HID_SD_START + 73) +#define HID_POOLSHEET_TEXT (HID_SD_START + 74) +#define HID_POOLSHEET_TEXTBODY (HID_SD_START + 75) +#define HID_POOLSHEET_TEXTBODY_JUSTIFY (HID_SD_START + 76) +#define HID_POOLSHEET_TEXTBODY_INDENT (HID_SD_START + 77) +#define HID_POOLSHEET_TITLE (HID_SD_START + 78) +#define HID_POOLSHEET_TITLE1 (HID_SD_START + 79) +#define HID_POOLSHEET_TITLE2 (HID_SD_START + 80) +#define HID_POOLSHEET_HEADLINE (HID_SD_START + 81) +#define HID_POOLSHEET_HEADLINE1 (HID_SD_START + 82) +#define HID_POOLSHEET_HEADLINE2 (HID_SD_START + 83) +#define HID_POOLSHEET_MEASURE (HID_SD_START + 84) +#define HID_PSEUDOSHEET_TITLE (HID_SD_START + 85) +#define HID_PSEUDOSHEET_OUTLINE (HID_SD_START + 86) +#define HID_PSEUDOSHEET_OUTLINE1 (HID_SD_START + 87) +#define HID_PSEUDOSHEET_OUTLINE2 (HID_SD_START + 88) +#define HID_PSEUDOSHEET_OUTLINE3 (HID_SD_START + 89) +#define HID_PSEUDOSHEET_OUTLINE4 (HID_SD_START + 90) +#define HID_PSEUDOSHEET_OUTLINE5 (HID_SD_START + 91) +#define HID_PSEUDOSHEET_OUTLINE6 (HID_SD_START + 92) +#define HID_PSEUDOSHEET_OUTLINE7 (HID_SD_START + 93) +#define HID_PSEUDOSHEET_OUTLINE8 (HID_SD_START + 94) +#define HID_PSEUDOSHEET_OUTLINE9 (HID_SD_START + 95) +#define HID_PSEUDOSHEET_BACKGROUNDOBJECTS (HID_SD_START + 96) +#define HID_PSEUDOSHEET_BACKGROUND (HID_SD_START + 97) +#define HID_PSEUDOSHEET_NOTES (HID_SD_START + 98) +#define HID_PSEUDOSHEET_SUBTITLE (HID_SD_START + 101) + +#define HID_SD_CELL_STYLE_DEFAULT (HID_SD_START + 194) +#define HID_SD_CELL_STYLE_BANDED (HID_SD_START + 195) +#define HID_SD_CELL_STYLE_HEADER (HID_SD_START + 196) +#define HID_SD_CELL_STYLE_TOTAL (HID_SD_START + 197) +#define HID_SD_CELL_STYLE_FIRST_COLUMN (HID_SD_START + 198) +#define HID_SD_CELL_STYLE_LAST_COLUMN (HID_SD_START + 199) + +#define SHELLID_SD_TASK_PANE_PREVIEW_CURRENT (HID_SD_START + 174) +#define SHELLID_SD_TASK_PANE_PREVIEW_RECENT (HID_SD_START + 175) +#define SHELLID_SD_TASK_PANE_PREVIEW_ALL (HID_SD_START + 176) +#define SHELLID_SD_TASK_PANE_PREVIEW_LAYOUTS (HID_SD_START + 177) + +#define SID_BACKGROUND (SID_SD_START) +#define SID_LASTVERSION (SID_SD_START+1) +#define SID_PAGESETUP (SID_SD_START+2) +#define SID_COPYOBJECTS (SID_SD_START+4) +#define SID_MANAGE_LINKS (SID_SD_START+5) +#define SID_CHOOSE (SID_SD_START+7) +#define SID_CONVERT_TO_3D_LATHE (SID_SD_START+8) +#define SID_DRAWINGMODE (SID_SD_START+9) +#define SID_OUTLINEMODE (SID_SD_START+10) +#define SID_DIAMODE (SID_SD_START+11) +#define SID_VIEWS (SID_SD_START+13) +#define SID_INSERTPAGE (SID_SD_START+14) +#define SID_INSERTFILE (SID_SD_START+15) +#define SID_INSERTSYMBOL (SID_SD_START+16) +#define SID_ZOOM_PANNING (SID_SD_START+17) +#define SID_PRESENTATION_END (SID_SD_START+18) +#define SID_TEXTFORMAT (SID_SD_START+20) +#define SID_POSITION (SID_SD_START+22) +#define SID_MIRROR (SID_SD_START+23) +#define SID_CONVERT (SID_SD_START+24) +#define SID_TEXT_FITTOTEXT (SID_SD_START+25) +#define SID_COMBINE (SID_SD_START+26) +#define SID_NAME_GROUP (SID_SD_START+27) +#define SID_DRAWTBX_CONNECTORS (SID_SD_START+28) +#define SID_TEXTALIGNMENT (SID_SD_START+29) +#define SID_BEZIER_ELIMINATE_POINTS (SID_SD_START+30) +#define SID_MOREFRONT (SID_SD_START+31) +#define SID_MOREBACK (SID_SD_START+32) + +// #i68101# +#define SID_OBJECT_TITLE_DESCRIPTION (SID_SD_START+33) + +#define SID_VERTICAL (SID_SD_START+34) +#define SID_HORIZONTAL (SID_SD_START+35) +#define SID_CHANGEBEZIER (SID_SD_START+36) +#define SID_CHANGEPOLYGON (SID_SD_START+37) +#define SID_CAPTUREPOINT (SID_SD_START+38) +#define SID_EXECUTE_MACRO (SID_SD_START+39) +#define SID_RULER (SID_SD_START+40) +#define SID_HELPKEYBOARD (SID_SD_START+42) +#define SID_INSERTLAYER (SID_SD_START+43) +#define SID_EDIT_OUTLINER (SID_SD_START+44) +#define SID_SWITCHPAGE (SID_SD_START+45) +#define SID_MODIFYPAGE (SID_SD_START+46) +#define SID_SWITCHLAYER (SID_SD_START+47) +#define SID_MODIFYLAYER (SID_SD_START+48) +#define SID_PAGEMODE (SID_SD_START+49) +#define SID_LAYERMODE (SID_SD_START+50) +#define SID_DRAW_MEASURELINE (SID_SD_START+51) +#define SID_STARTAPP (SID_SD_START+52) +#define SID_MASTERPAGE (SID_SD_START+53) +#define SID_TOOL_CONNECTOR (SID_SD_START+58) +#define SID_ANIMATION (SID_SD_START+61) +#define SID_ANIMATION_OBJECTS (SID_SD_START+62) +#define SID_ANIMATION_EFFECTS (SID_SD_START+63) +#define SID_PRESENTATION_LAYOUT (SID_SD_START+64) +#define SID_BEZIER_CONVERT (SID_SD_START+65) +#define SID_BEZIER_EDGE (SID_SD_START+66) +#define SID_BEZIER_SYMMTR (SID_SD_START+67) +#define SID_PRESENTATION_TEMPLATES (SID_SD_START+68) +#define SID_NOTESMODE (SID_SD_START+69) +#define SID_HANDOUTMODE (SID_SD_START+70) +#define SID_LINEEND_POLYGON (SID_SD_START+71) +#define SID_OBJPALETTE_SELECT (SID_SD_START+72) +#define SID_GRAPHIC_EXPORT (SID_SD_START+73) +#define SID_SWITCH_POINTEDIT (SID_SD_START+74) +#define SID_RULER_NULLOFFSET (SID_SD_START+75) +#define SID_TEXTEDIT (SID_SD_START+76) +#define SID_SET_SNAPITEM (SID_SD_START+77) +#define SID_PRINT_PREVIEW (SID_SD_START+78) +#define SID_SEARCH_REPLACE (SID_SD_START+79) +#define SID_DELETE_PAGE (SID_SD_START+80) +#define SID_DELETE_LAYER (SID_SD_START+81) +#define SID_DISMANTLE (SID_SD_START+82) +#define SID_SD_HELP_PI (SID_SD_START+83) +#define SID_TIPHELP (SID_SD_START+84) +#define SID_STATUS_PAGE (SID_SD_START+86) +#define SID_STATUS_LAYOUT (SID_SD_START+87) +#define SID_STATUS_SELMODE (SID_SD_START+88) +#define SID_MODIFIED (SID_SD_START+89) +#define SID_OBJECT_CROOK_ROTATE (SID_SD_START+90) +#define SID_OBJECT_CROOK_SLANT (SID_SD_START+91) +#define SID_OBJECT_CROOK_STRETCH (SID_SD_START+92) +#define SID_CONNECT (SID_SD_START+93) +#define SID_BREAK (SID_SD_START+94) +#define SID_OBJECT_CHOOSE_MODE (SID_SD_START+95) +#define SID_ENTER_GROUP (SID_SD_START+96) +#define SID_LEAVE_GROUP (SID_SD_START+97) +#define SID_SIZE_PAGE_WIDTH (SID_SD_START+98) +#define SID_SIZE_OPTIMAL (SID_SD_START+99) +#define SID_OBJECT_TRANSPARENCE (SID_SD_START+100) +#define SID_OBJECT_GRADIENT (SID_SD_START+101) +#define SID_OBJPALETTE_ADD (SID_SD_START+102) +#define SID_OBJPALETTE_MODIFY (SID_SD_START+103) +#define SID_OBJPALETTE_OBJECTS (SID_SD_START+104) +#define SID_INSERT_IMAGE (SID_SD_START+105) +#define SID_INSERT_MATH (SID_SD_START+106) +#define SID_OBJECT_SHEAR (SID_SD_START+107) +#define SID_DELETE_SNAPITEM (SID_SD_START+108) +#define SID_OBJECT_CLOSE (SID_SD_START+109) +#define SID_ANIMATOR_ADD (SID_SD_START+110) +#define SID_ANIMATOR_CREATE (SID_SD_START+111) +#define SID_ANIMATOR_STATE (SID_SD_START+112) +#define SID_PRESENTATIONOBJECT (SID_SD_START+113) +#define SID_SIZE_VISAREA (SID_SD_START+114) +#define SID_CLEAR_UNDO_STACK (SID_SD_START+115) +#define SID_BEHIND_OBJ (SID_SD_START+116) +#define SID_REVERSE_ORDER (SID_SD_START+117) +#define SID_SDOPTIONS (SID_SD_START+118) + +#define SID_CONNECTOR_ARROW_START (SID_SD_START+119) +#define SID_CONNECTOR_ARROW_END (SID_SD_START+120) +#define SID_CONNECTOR_ARROWS (SID_SD_START+121) +#define SID_CONNECTOR_CIRCLE_START (SID_SD_START+122) +#define SID_CONNECTOR_CIRCLE_END (SID_SD_START+123) +#define SID_CONNECTOR_CIRCLES (SID_SD_START+124) +#define SID_CONNECTOR_LINE (SID_SD_START+125) +#define SID_CONNECTOR_LINE_ARROW_START (SID_SD_START+126) +#define SID_CONNECTOR_LINE_ARROW_END (SID_SD_START+127) +#define SID_CONNECTOR_LINE_ARROWS (SID_SD_START+128) +#define SID_CONNECTOR_LINE_CIRCLE_START (SID_SD_START+129) +#define SID_CONNECTOR_LINE_CIRCLE_END (SID_SD_START+130) +#define SID_CONNECTOR_LINE_CIRCLES (SID_SD_START+131) +#define SID_CONNECTOR_CURVE (SID_SD_START+132) +#define SID_CONNECTOR_CURVE_ARROW_START (SID_SD_START+133) +#define SID_CONNECTOR_CURVE_ARROW_END (SID_SD_START+134) +#define SID_CONNECTOR_CURVE_ARROWS (SID_SD_START+135) +#define SID_CONNECTOR_CURVE_CIRCLE_START (SID_SD_START+136) +#define SID_CONNECTOR_CURVE_CIRCLE_END (SID_SD_START+137) +#define SID_CONNECTOR_CURVE_CIRCLES (SID_SD_START+138) +#define SID_CONNECTOR_LINES (SID_SD_START+139) +#define SID_CONNECTOR_LINES_ARROW_START (SID_SD_START+140) +#define SID_CONNECTOR_LINES_ARROW_END (SID_SD_START+141) +#define SID_CONNECTOR_LINES_ARROWS (SID_SD_START+142) +#define SID_CONNECTOR_LINES_CIRCLE_START (SID_SD_START+143) +#define SID_CONNECTOR_LINES_CIRCLE_END (SID_SD_START+144) +#define SID_CONNECTOR_LINES_CIRCLES (SID_SD_START+145) + +// Options-Leisten Slot-IDs +#define SID_HANDLES_DRAFT (SID_SD_START+150) +#define SID_SOLID_CREATE (SID_SD_START+151) +#define SID_HELPLINES_USE (SID_SD_START+152) +#define SID_HELPLINES_MOVE (SID_SD_START+153) +#define SID_GRID_USE (SID_SD_START+154) +#define SID_SNAP_BORDER (SID_SD_START+155) +#define SID_SNAP_FRAME (SID_SD_START+156) +#define SID_SNAP_POINTS (SID_SD_START+157) +#define SID_QUICKEDIT (SID_SD_START+158) +#define SID_PICK_THROUGH (SID_SD_START+159) +#define SID_COLORRESOLUTION (SID_SD_START+160) +#define SID_CONVERT_TO_1BIT_THRESHOLD (SID_SD_START+161) +#define SID_CONVERT_TO_1BIT_MATRIX (SID_SD_START+162) +#define SID_CONVERT_TO_4BIT_GRAYS (SID_SD_START+163) +#define SID_CONVERT_TO_4BIT_COLORS (SID_SD_START+164) +#define SID_CONVERT_TO_8BIT_GRAYS (SID_SD_START+165) +#define SID_CONVERT_TO_8BIT_COLORS (SID_SD_START+166) +#define SID_CONVERT_TO_24BIT (SID_SD_START+167) +#define SID_BIG_HANDLES (SID_SD_START+168) +#define SID_DOUBLECLICK_TEXTEDIT (SID_SD_START+169) +#define SID_CLICK_CHANGE_ROTATION (SID_SD_START+170) + +#define SID_DRAWTBX_ARROWS (SID_SD_START+171) +#define SID_LINE_ARROW_START (SID_SD_START+172) +#define SID_LINE_ARROW_END (SID_SD_START+173) +#define SID_LINE_ARROWS (SID_SD_START+174) +#define SID_LINE_ARROW_CIRCLE (SID_SD_START+175) +#define SID_LINE_CIRCLE_ARROW (SID_SD_START+176) +#define SID_LINE_ARROW_SQUARE (SID_SD_START+177) +#define SID_LINE_SQUARE_ARROW (SID_SD_START+178) +// und noch weitere... + +#define ID_VAL_ENDINTENS (SID_SD_START+197) +#define ID_VAL_STARTINTENS (SID_SD_START+198) +#define ID_VAL_BORDER (SID_SD_START+199) +#define ID_VAL_MOUSESTART_X (SID_SD_START+200) +#define ID_VAL_MOUSESTART_Y (SID_SD_START+201) +#define ID_VAL_LENGTH_X (SID_SD_START+202) +#define ID_VAL_LENGTH_Y (SID_SD_START+203) +#define ID_VAL_MOUSEEND_X (SID_SD_START+204) +#define ID_VAL_MOUSEEND_Y (SID_SD_START+205) +#define ID_VAL_AXIS_X (SID_SD_START+206) +#define ID_VAL_AXIS_Y (SID_SD_START+207) +#define ID_VAL_ANGLESTART (SID_SD_START+208) +#define ID_VAL_ANGLEEND (SID_SD_START+209) +#define ID_VAL_CENTER_X (SID_SD_START+210) +#define ID_VAL_CENTER_Y (SID_SD_START+211) +#define ID_VAL_WHATPAGE (SID_SD_START+212) +#define ID_VAL_WHATLAYER (SID_SD_START+213) +#define ID_VAL_ANGLE (SID_SD_START+214) +#define ID_VAL_MIRRORVERT (SID_SD_START+215) +#define ID_VAL_ISACTIVE (SID_SD_START+216) +#define ID_VAL_WHATKIND (SID_SD_START+217) +#define ID_VAL_PAGEWIDTH (SID_SD_START+218) +#define ID_VAL_PAGEMARGIN (SID_SD_START+219) +#define ID_VAL_PAGETOP (SID_SD_START+220) +#define ID_VAL_PAGEBOTTOM (SID_SD_START+221) +#define ID_VAL_PAGELEFT (SID_SD_START+222) +#define ID_VAL_PAGERIGHT (SID_SD_START+223) +#define ID_VAL_SCALEOBJECTS (SID_SD_START+224) +#define ID_VAL_PAGENAME (SID_SD_START+225) +#define ID_VAL_WHATLAYOUT (SID_SD_START+226) +#define ID_VAL_ISPAGEBACK (SID_SD_START+227) +#define ID_VAL_ISPAGEOBJ (SID_SD_START+228) +#define ID_VAL_LAYERNAME (SID_SD_START+229) +#define ID_VAL_ISVISIBLE (SID_SD_START+230) +#define ID_VAL_ISLOCKED (SID_SD_START+231) +#define ID_VAL_ISPRINTABLE (SID_SD_START+232) +#define ID_VAL_PAGEHEIGHT (SID_SD_START+233) +#define ID_VAL_ZOOM (SID_SD_START+234) +#define ID_VAL_ANCHOR_X (SID_SD_START+235) +#define ID_VAL_ANCHOR_Y (SID_SD_START+236) +#define ID_VAL_RED (SID_SD_START+237) +#define ID_VAL_GREEN (SID_SD_START+238) +#define ID_VAL_BLUE (SID_SD_START+239) +#define ID_VAL_STYLE (SID_SD_START+240) +#define ID_VAL_DOTS (SID_SD_START+241) +#define ID_VAL_DOTLEN (SID_SD_START+242) +#define ID_VAL_DASHES (SID_SD_START+243) +#define ID_VAL_DASHLEN (SID_SD_START+244) +#define ID_VAL_DISTANCE (SID_SD_START+245) +#define ID_VAL_INDEX (SID_SD_START+246) +#define ID_VAL_WIDTH (SID_SD_START+247) +#define ID_VAL_HEIGHT (SID_SD_START+248) +#define ID_VAL_PANEL_INDEX (SID_SD_START+249) + +// nur zum austesten, um nicht jedesmal APP:HRC ff. durchbuilden zu muessen +#define ID_VAL_DUMMY0 (SID_SD_START+230) +#define ID_VAL_DUMMY1 (SID_SD_START+231) +#define ID_VAL_DUMMY2 (SID_SD_START+232) +#define ID_VAL_DUMMY3 (SID_SD_START+233) +#define ID_VAL_DUMMY4 (SID_SD_START+234) +#define ID_VAL_DUMMY5 (SID_SD_START+235) +#define ID_VAL_DUMMY6 (SID_SD_START+236) +#define ID_VAL_DUMMY7 (SID_SD_START+237) +#define ID_VAL_DUMMY8 (SID_SD_START+238) +#define ID_VAL_DUMMY9 (SID_SD_START+239) + +#define SID_MOVETO (SID_SD_START+250) +#define SID_LINETO (SID_SD_START+251) +#define SID_BEZIERTO (SID_SD_START+252) +#define SID_PAGESIZE (SID_SD_START+253) +#define SID_PAGEMARGIN (SID_SD_START+254) +#define SID_ZOOMING (SID_SD_START+255) +#define SID_SELECTAT (SID_SD_START+256) +#define SID_COLORVIEW (SID_SD_START+257) + +#define SID_GETRED (SID_SD_START+259) +#define SID_GETBLUE (SID_SD_START+260) +#define SID_GETGREEN (SID_SD_START+261) +#define SID_SETFILLSTYLE (SID_SD_START+262) +#define SID_SETFILLCOLOR (SID_SD_START+263) +#define SID_GRADIENT (SID_SD_START+264) +#define SID_SETLINESTYLE (SID_SD_START+265) +#define SID_SETLINEWIDTH (SID_SD_START+266) +#define SID_DASH (SID_SD_START+267) +#define SID_RENAMEPAGE (SID_SD_START+268) +#define SID_RENAMELAYER (SID_SD_START+269) +#define SID_HATCH (SID_SD_START+270) +#define SID_GETFILLSTYLE (SID_SD_START+271) +#define SID_GETLINESTYLE (SID_SD_START+272) +#define SID_GETLINEWIDTH (SID_SD_START+273) +#define SID_SETLINECOLOR (SID_SD_START+274) +#define SID_SETHATCHCOLOR (SID_SD_START+275) +#define SID_SETGRADSTARTCOLOR (SID_SD_START+276) +#define SID_SETGRADENDCOLOR (SID_SD_START+277) +#define SID_SELECTGRADIENT (SID_SD_START+278) +#define SID_SELECTHATCH (SID_SD_START+279) +#define SID_UNSELECT (SID_SD_START+280) +#define SID_TEXTATTR_DLG (SID_SD_START+281) +#define SID_ORIGINAL_SIZE (SID_SD_START+282) +#define SID_PAGES_PER_ROW (SID_SD_START+284) +#define SID_TEXT_FITTOSIZE (SID_SD_START+285) +#define SID_TEXT_FITTOSIZE_VERTICAL (SID_SD_START+286) +#define SID_NAVIGATOR_PAGENAME (SID_SD_START+287) +#define SID_NAVIGATOR_STATE (SID_SD_START+288) +#define SID_NAVIGATOR_INIT (SID_SD_START+289) +#define SID_NAVIGATOR_PEN (SID_SD_START+291) +#define SID_NAVIGATOR_PAGE (SID_SD_START+292) +#define SID_NAVIGATOR_OBJECT (SID_SD_START+293) +#define SID_ANIMATOR_INIT (SID_SD_START+294) +#define SID_DRAWTBX_3D_OBJECTS (SID_SD_START+295) +#define SID_3D_CUBE (SID_SD_START+296) +#define SID_3D_SPHERE (SID_SD_START+297) +#define SID_3D_CYLINDER (SID_SD_START+298) +#define SID_3D_CONE (SID_SD_START+299) +#define SID_3D_PYRAMID (SID_SD_START+300) +#define SID_GLUE_EDITMODE (SID_SD_START+301) +#define SID_GLUE_INSERT_POINT (SID_SD_START+302) +#define SID_GLUE_PERCENT (SID_SD_START+303) +#define SID_GLUE_ESCDIR (SID_SD_START+304) +#define SID_GLUE_HORZALIGN_CENTER (SID_SD_START+305) +#define SID_GLUE_HORZALIGN_LEFT (SID_SD_START+306) +#define SID_GLUE_HORZALIGN_RIGHT (SID_SD_START+307) +#define SID_GLUE_VERTALIGN_CENTER (SID_SD_START+308) +#define SID_GLUE_VERTALIGN_TOP (SID_SD_START+309) +#define SID_GLUE_VERTALIGN_BOTTOM (SID_SD_START+310) +#define SID_3D_SHELL (SID_SD_START+311) +#define SID_3D_TORUS (SID_SD_START+312) +#define SID_3D_HALF_SPHERE (SID_SD_START+313) +#define SID_GLUE_ESCDIR_LEFT (SID_SD_START+314) +#define SID_GLUE_ESCDIR_RIGHT (SID_SD_START+315) +#define SID_GLUE_ESCDIR_TOP (SID_SD_START+316) +#define SID_GLUE_ESCDIR_BOTTOM (SID_SD_START+317) +#define SID_DRAWTBX_INSERT (SID_SD_START+318) +#define SID_POLYGON_MORPHING (SID_SD_START+319) +#define SID_MEASURE_DLG (SID_SD_START+320) +#define SID_EXPORT (SID_SD_START+321) +#define SID_GRID_VISIBLE (SID_SD_START+322) +#define SID_GRID_FRONT (SID_SD_START+323) +#define SID_HELPLINES_VISIBLE (SID_SD_START+324) +#define SID_HELPLINES_FRONT (SID_SD_START+325) +#define SID_BEFORE_OBJ (SID_SD_START+326) +#define SID_PREVIEW_WIN (SID_SD_START+327) +#define SID_CUSTOM_ANIMATION_PANEL (SID_SD_START+328) +#define SID_PREVIEW_STATE (SID_SD_START+329) +#define SID_CUSTOM_ANIMATION_SCHEMES_PANEL (SID_SD_START+333) +#define SID_SLIDE_TRANSITIONS_PANEL (SID_SD_START+334) +// free +#define SID_CONNECTION_DLG (SID_SD_START+338) +#define SID_PRESENTATION_DLG (SID_SD_START+339) +#define SID_HYPHENATION (SID_SD_START+340) +#define SID_CONNECTION_NEW_ROUTING (SID_SD_START+341) +#define SID_DUPLICATE_PAGE (SID_SD_START+342) +#define SID_EXPAND_PAGE (SID_SD_START+343) +#define SID_SUMMARY_PAGE (SID_SD_START+344) +#define SID_LEAVE_ALL_GROUPS (SID_SD_START+345) +#define SID_PARASPACE_INCREASE (SID_SD_START+346) +#define SID_PARASPACE_DECREASE (SID_SD_START+347) +#define SID_SLIDE_MASTERPAGE (SID_SD_START+348) +#define SID_HANDOUT_MASTERPAGE (SID_SD_START+349) +#define SID_NOTES_MASTERPAGE (SID_SD_START+350) +#define SID_TITLE_MASTERPAGE (SID_SD_START+351) +#define SID_INSERTPAGE_QUICK (SID_SD_START+352) +#define SID_SAVEGRAPHIC (SID_SD_START+353) +// free +#define SID_INSERT_FLD_DATE_VAR (SID_SD_START+357) +#define SID_INSERT_FLD_DATE_FIX (SID_SD_START+358) +#define SID_INSERT_FLD_TIME_VAR (SID_SD_START+359) +#define SID_INSERT_FLD_TIME_FIX (SID_SD_START+360) +#define SID_INSERT_FLD_PAGE (SID_SD_START+361) +#define SID_MODIFY_FIELD (SID_SD_START+362) +#define SID_INSERT_FLD_FILE (SID_SD_START+363) +#define SID_INSERT_FLD_AUTHOR (SID_SD_START+364) +#define SID_CUSTOMSHOW_DLG (SID_SD_START+365) + +#define SID_OUTPUT_QUALITY_COLOR (SID_SD_START+366) +#define SID_OUTPUT_QUALITY_GRAYSCALE (SID_SD_START+367) +#define SID_OUTPUT_QUALITY_BLACKWHITE (SID_SD_START+368) +#define SID_PREVIEW_QUALITY_COLOR (SID_SD_START+369) +#define SID_PREVIEW_QUALITY_GRAYSCALE (SID_SD_START+370) +#define SID_PREVIEW_QUALITY_BLACKWHITE (SID_SD_START+371) +#define SID_VECTORIZE (SID_SD_START+372) + +#define SID_INSERT_FLD_PAGES (SID_SD_START+373) + +#define SID_CONVERT_TO_BITMAP (SID_SD_START+378) +#define SID_CONVERT_TO_METAFILE (SID_SD_START+379) + +#define SID_PACKNGO (SID_SD_START+380) + +#define SID_CONVERT_TO_CONTOUR (SID_SD_START+381) + +#define SID_EDIT_HYPERLINK (SID_SD_START+382) + +#define SID_GRAFFILTER_SOBEL (SID_SD_START+390) +#define SID_GRAFFILTER_MOSAIC (SID_SD_START+391) +#define SID_GRAFFILTER_EMBOSS (SID_SD_START+392) +#define SID_GRAFFILTER_POSTER (SID_SD_START+393) +#define SID_GRAFFILTER_POPART (SID_SD_START+394) +#define SID_GRAFFILTER_SEPIA (SID_SD_START+395) +#define SID_GRAFFILTER_SOLARIZE (SID_SD_START+396) + +#define SID_OUTPUT_QUALITY_CONTRAST (SID_SD_START+400) +#define SID_PREVIEW_QUALITY_CONTRAST (SID_SD_START+401) + +#define SID_RENAMEPAGE_QUICK (SID_SD_START+405) + +#define SID_SWITCH_SHELL (SID_SD_START+406) + +#define SID_HEADER_AND_FOOTER (SID_SD_START+407) +#define SID_MASTER_LAYOUTS (SID_SD_START+408) +/* +#define SID_MASTER_LAYOUTS_NOTES (SID_SD_START+409) +#define SID_MASTER_LAYOUTS_HANDOUTS (SID_SD_START+410) +*/ +#define SID_INSERT_PAGE_NUMBER (SID_SD_START+411) +#define SID_INSERT_DATE_TIME (SID_SD_START+412) + +#define SID_SDMODE_FLAG (SID_SD_START+413) +#define SD_DRAW_MODE 1 +#define SD_IMPRESS_MODE 2 + +#define SID_LEFT_PANE_IMPRESS (SID_SD_START+414) +#define SID_LEFT_PANE_DRAW (SID_SD_START+415) + // FREE +#define SID_NOTES_WINDOW (SID_SD_START+417) +#define SID_SWITCH_SHELL_PANE (SID_SD_START+418) +#define SID_LAYER_DIALOG_WIN (SID_SD_START+419) +#define SID_NORMAL_MULTI_PANE_GUI (SID_SD_START+420) +#define SID_SLIDE_SORTER_MULTI_PANE_GUI (SID_SD_START+421) + +#define SID_SELECT_BACKGROUND (SID_SD_START+422) +#define SID_OBJECT_CROP (SID_SD_START+423) + +// Slots for the tool pane popup +#define SID_TP_APPLY_TO_ALL_SLIDES (SID_SD_START+425) +#define SID_TP_APPLY_TO_SELECTED_SLIDES (SID_SD_START+426) +#define SID_TP_USE_FOR_NEW_PRESENTATIONS (SID_SD_START+427) +#define SID_TP_SHOW_LARGE_PREVIEW (SID_SD_START+428) +#define SID_TP_SHOW_SMALL_PREVIEW (SID_SD_START+429) +#define SID_SHOW_TOOL_PANEL (SID_SD_START+430) +#define SID_INSERT_MASTER_PAGE (SID_SD_START+431) +#define SID_DELETE_MASTER_PAGE (SID_SD_START+432) +#define SID_RENAME_MASTER_PAGE (SID_SD_START+433) +#define SID_CLOSE_MASTER_VIEW (SID_SD_START+434) +#define SID_ASSIGN_LAYOUT (SID_SD_START+435) +#define SID_DISPLAY_MASTER_BACKGROUND (SID_SD_START+436) +#define SID_DISPLAY_MASTER_OBJECTS (SID_SD_START+437) +#define SID_INSERTPAGE_LAYOUT_MENU (SID_SD_START+438) +#define SID_TP_EDIT_MASTER (SID_SD_START+439) +#define SID_OUTLINE_TEXT_AUTOFIT (SID_SD_START+440) + +// Add companion for the SID_HIDE_SLIDE (that is defined in svx) +#define SID_SHOW_SLIDE (SID_SD_START+441) + +#define SID_ADD_MOTION_PATH (SID_SD_START+442) +#define SID_TABLE_TOOLBOX (SID_SD_START+443) + +#endif diff --git a/sd/inc/app.hxx b/sd/inc/app.hxx new file mode 100644 index 000000000000..e44485a9c2c5 --- /dev/null +++ b/sd/inc/app.hxx @@ -0,0 +1,31 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ +#define _SD_DLL // fuer SD_MOD() +#include "sdmod.hxx" + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/cusshow.hxx b/sd/inc/cusshow.hxx new file mode 100644 index 000000000000..1f981e9a770e --- /dev/null +++ b/sd/inc/cusshow.hxx @@ -0,0 +1,81 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_CUSSHOW_HXX +#define _SD_CUSSHOW_HXX + +#include <tools/list.hxx> +#include <tools/stream.hxx> +#include <tools/string.hxx> +#include <cppuhelper/weakref.hxx> +#include "sddllapi.h" + +class SdDrawDocument; +class SdPage; + +/************************************************************************* +|* +|* CustomShow +|* +\************************************************************************/ +class SD_DLLPUBLIC SdCustomShow : public List +{ +private: + String aName; + SdDrawDocument* pDoc; + + // this is a weak reference to a possible living api wrapper for this custom show + ::com::sun::star::uno::WeakReference< ::com::sun::star::uno::XInterface > mxUnoCustomShow; + + // forbidden and not implemented + SdCustomShow(); + +public: + // single argument ctors shall be explicit + explicit SdCustomShow(SdDrawDocument* pDrawDoc); + SdCustomShow(SdDrawDocument* pDrawDoc, ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > xShow ); + + virtual ~SdCustomShow(); + + // @@@ copy ctor, but no copy assignment? @@@ + SdCustomShow( const SdCustomShow& rShow ); + + void SetName(const String& rName); + String GetName() const; + + SdDrawDocument* GetDoc() const { return pDoc; } + + void ReplacePage( const SdPage* pOldPage, const SdPage* pNewPage ); + void RemovePage( const SdPage* pPage ); + + ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > getUnoCustomShow(); +}; + +#endif // _SD_CUSSHOW_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/diadef.h b/sd/inc/diadef.h new file mode 100644 index 000000000000..df5296f6e4ce --- /dev/null +++ b/sd/inc/diadef.h @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_DIADEF_H +#define _SD_DIADEF_H + +enum PresChange +{ + PRESCHANGE_MANUAL = 0, + PRESCHANGE_AUTO = 1, + PRESCHANGE_SEMIAUTO = 2 +}; + +// muss angepasst werden! +#define PRESCHANGE_COUNT 3 + +#endif // _SD_DIADEF_H + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/drawdoc.hxx b/sd/inc/drawdoc.hxx new file mode 100644 index 000000000000..7c74a3dc6524 --- /dev/null +++ b/sd/inc/drawdoc.hxx @@ -0,0 +1,702 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _DRAWDOC_HXX +#define _DRAWDOC_HXX + +#include <com/sun/star/lang/Locale.hpp> +#include <com/sun/star/text/WritingMode.hpp> +#include <com/sun/star/frame/XModel.hdl> +#include <vcl/print.hxx> +#include <svx/fmmodel.hxx> +#include "pres.hxx" +#include <svx/pageitem.hxx> +#include <unotools/charclass.hxx> +#include <sot/storage.hxx> +#include <rsc/rscsfx.hxx> +#include <com/sun/star/lang/Locale.hpp> +#include <com/sun/star/text/WritingMode.hpp> + +#include <svx/svdundo.hxx> + +#include <vector> + +#ifndef INCLUDED_MEMORY +#include <memory> +#define INCLUDED_MEMORY +#endif +#include "sddllapi.h" +#include "sdpage.hxx" + +namespace com +{ + namespace sun + { + namespace star + { + namespace embed + { + class XStorage; + } + namespace io + { + class XStream; + } + namespace presentation + { + class XPresentation2; + } + } + } +} + +namespace sd +{ + class FrameView; + class Outliner; +} + + +class Timer; +class SfxObjectShell; +class SdDrawDocShell; +class SdPage; +class SdAnimationInfo; +class SdIMapInfo; +class IMapObject; +class SdStyleSheetPool; +class SfxMedium; +class SvxSearchItem; +class SdrOle2Obj; +class EditStatus; +class Graphic; +class Point; +class Window; +class SdTransferable; +struct SpellCallbackInfo; +struct StyleRequestData; +class SdDrawDocument; + +namespace sd +{ +#ifndef SV_DECL_DRAW_DOC_SHELL_DEFINED +#define SV_DECL_DRAW_DOC_SHELL_DEFINED +SV_DECL_REF(DrawDocShell) +#endif +class DrawDocShell; +class UndoManager; +class ShapeList; +} + +class ImpDrawPageListWatcher; +class ImpMasterPageListWatcher; + +struct StyleReplaceData +{ + SfxStyleFamily nFamily; + SfxStyleFamily nNewFamily; + String aName; + String aNewName; +}; + +enum DocCreationMode +{ + NEW_DOC, + DOC_LOADED +}; + +namespace sd +{ + struct PresentationSettings + { + rtl::OUString maPresPage; + sal_Bool mbAll; + sal_Bool mbEndless; + sal_Bool mbCustomShow; + sal_Bool mbManual; + sal_Bool mbMouseVisible; + sal_Bool mbMouseAsPen; + sal_Bool mbLockedPages; + sal_Bool mbAlwaysOnTop; + sal_Bool mbFullScreen; + sal_Bool mbAnimationAllowed; + sal_Int32 mnPauseTimeout; + sal_Bool mbShowPauseLogo; + sal_Bool mbStartWithNavigator; + + PresentationSettings(); + PresentationSettings( const PresentationSettings& r ); + }; +} + +// ------------------ +// - SdDrawDocument - +// ------------------ + +class SdDrawDocument : public FmFormModel +{ +private: + ::sd::Outliner* mpOutliner; // local outliner for outline mode + ::sd::Outliner* mpInternalOutliner; // internal outliner for creation of text objects + Timer* mpWorkStartupTimer; + Timer* mpOnlineSpellingTimer; + sd::ShapeList* mpOnlineSpellingList; + SvxSearchItem* mpOnlineSearchItem; + List* mpFrameViewList; + List* mpCustomShowList; + ::sd::DrawDocShell* mpDocSh; + SdTransferable * mpCreatingTransferable; + sal_Bool mbHasOnlineSpellErrors; + sal_Bool mbInitialOnlineSpellingEnabled; + String maBookmarkFile; + ::sd::DrawDocShellRef mxBookmarkDocShRef; + + sd::PresentationSettings maPresentationSettings; + + ::com::sun::star::uno::Reference< ::com::sun::star::presentation::XPresentation2 > mxPresentation; + + sal_Bool mbNewOrLoadCompleted; + + sal_Bool mbOnlineSpell; + sal_Bool mbSummationOfParagraphs; + bool mbStartWithPresentation; // is set to true when starting with command line parameter -start + LanguageType meLanguage; + LanguageType meLanguageCJK; + LanguageType meLanguageCTL; + SvxNumType mePageNumType; + ::sd::DrawDocShellRef mxAllocedDocShRef; // => AllocModel() + sal_Bool mbAllocDocSh; // => AllocModel() + DocumentType meDocType; + CharClass* mpCharClass; + ::com::sun::star::lang::Locale* mpLocale; + + ::std::auto_ptr<ImpDrawPageListWatcher> mpDrawPageListWatcher; + ::std::auto_ptr<ImpMasterPageListWatcher> mpMasterPageListWatcher; + + void UpdatePageObjectsInNotes(sal_uInt16 nStartPos); + void UpdatePageRelativeURLs(SdPage* pPage, sal_uInt16 nPos, sal_Int32 nIncrement); + void FillOnlineSpellingList(SdPage* pPage); + void SpellObject(SdrTextObj* pObj); + + DECL_LINK(WorkStartupHdl, Timer*); + DECL_LINK(OnlineSpellingHdl, Timer*); + DECL_LINK(OnlineSpellEventHdl, EditStatus*); + + std::vector< rtl::OUString > maAnnotationAuthors; + +protected: + + virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > createUnoModel(); + +public: + + class InsertBookmarkAsPage_PageFunctorBase; + + TYPEINFO(); + + SdDrawDocument(DocumentType eType, SfxObjectShell* pDocSh); + ~SdDrawDocument(); + + virtual SdrModel* AllocModel() const; + virtual SdrPage* AllocPage(bool bMasterPage); + virtual const SdrModel* LoadModel(const String& rFileName); + virtual void DisposeLoadedModels(); + virtual bool IsReadOnly() const; + virtual void SetChanged(sal_Bool bFlag = sal_True); + virtual SvStream* GetDocumentStream(SdrDocumentStreamInfo& rStreamInfo) const; + + SfxItemPool& GetPool() { return( *pItemPool ); } + + ::sd::Outliner* GetOutliner(sal_Bool bCreateOutliner=sal_True); + SD_DLLPUBLIC ::sd::Outliner* GetInternalOutliner(sal_Bool bCreateOutliner=sal_True); + + ::sd::DrawDocShell* GetDocSh() const { return mpDocSh; } + + LanguageType GetLanguage( const sal_uInt16 nId ) const; + void SetLanguage( const LanguageType eLang, const sal_uInt16 nId ); + + SvxNumType GetPageNumType() const; + void SetPageNumType(SvxNumType eType) { mePageNumType = eType; } + SD_DLLPUBLIC String CreatePageNumValue(sal_uInt16 nNum) const; + + DocumentType GetDocumentType() const { return meDocType; } + + void SetAllocDocSh(sal_Bool bAlloc); + + void CreatingDataObj( SdTransferable* pTransferable ) { mpCreatingTransferable = pTransferable; } + + /** if the document does not contain at least one handout, one slide and one notes page with + at least one master each this methods creates them. + If a reference document is given, the sizes and border settings of that document are used + for newly created slides. + */ + SD_DLLPUBLIC void CreateFirstPages( SdDrawDocument* pRefDocument = 0 ); + SD_DLLPUBLIC sal_Bool CreateMissingNotesAndHandoutPages(); + + void MovePage(sal_uInt16 nPgNum, sal_uInt16 nNewPos); + void InsertPage(SdrPage* pPage, sal_uInt16 nPos=0xFFFF); + void DeletePage(sal_uInt16 nPgNum); + SdrPage* RemovePage(sal_uInt16 nPgNum); + + virtual void InsertMasterPage(SdrPage* pPage, sal_uInt16 nPos=0xFFFF); + virtual SdrPage* RemoveMasterPage(sal_uInt16 nPgNum); + + void RemoveUnnecessaryMasterPages( SdPage* pMaster=NULL, sal_Bool bOnlyDuplicatePages=sal_False, sal_Bool bUndo=sal_True ); + SD_DLLPUBLIC void SetMasterPage(sal_uInt16 nSdPageNum, const String& rLayoutName, + SdDrawDocument* pSourceDoc, sal_Bool bMaster, sal_Bool bCheckMasters); + + SD_DLLPUBLIC SdDrawDocument* OpenBookmarkDoc(const String& rBookmarkFile); + SdDrawDocument* OpenBookmarkDoc(SfxMedium& rMedium); + sal_Bool InsertBookmark(List* pBookmarkList, List* pExchangeList, sal_Bool bLink, + sal_Bool bReplace, sal_uInt16 nPgPos, sal_Bool bNoDialogs, + ::sd::DrawDocShell* pBookmarkDocSh, sal_Bool bCopy, + Point* pObjPos); + + bool IsStartWithPresentation() const; + void SetStartWithPresentation( bool bStartWithPresentation ); + + /** Insert pages into this document + + This method inserts whole pages into this document, either + selected ones (specified via pBookmarkList/pExchangeList), or + all from the source document. + + @attention Beware! This method in it's current state does not + handle all combinations of their input parameters + correctly. For example, for pBookmarkList=NULL, bReplace=sal_True + is ignored (no replace happens). + + @param pBookmarkList + A list of strings, denoting the names of the pages to be copied + + @param pExchangeList + A list of strings, denoting the names of the pages to be renamed + + @param bLink + Whether the inserted pages should be links to the bookmark document + + @param bReplace + Whether the pages should not be inserted, but replace the pages in + the destination document + + @param nPgPos + Insertion point/start of replacement + + @param bNoDialogs + Whether query dialogs are allowed (e.g. for page scaling) + + @param pBookmarkDocSh + DocShell of the source document (used e.g. to extract the filename + for linked pages) + + @param bCopy + Whether the source document should be treated as immutable (i.e. + inserted pages are not removed from it, but cloned) + + @param bMergeMasterPages + Whether the source document's master pages should be copied, too. + + @param bPreservePageNames + Whether the replace operation should take the name from the new + page, or preserve the old name + */ + sal_Bool InsertBookmarkAsPage(List* pBookmarkList, List* pExchangeList, + sal_Bool bLink, sal_Bool bReplace, sal_uInt16 nPgPos, + sal_Bool bNoDialogs, ::sd::DrawDocShell* pBookmarkDocSh, + sal_Bool bCopy, sal_Bool bMergeMasterPages, + sal_Bool bPreservePageNames); + sal_Bool InsertBookmarkAsObject(List* pBookmarkList, List* pExchangeListL, + sal_Bool bLink, ::sd::DrawDocShell* pBookmarkDocSh, + Point* pObjPos); + void IterateBookmarkPages( SdDrawDocument* pBookmarkDoc, List* pBookmarkList, + sal_uInt16 nBMSdPageCount, + InsertBookmarkAsPage_PageFunctorBase& rPageIterator ); + SD_DLLPUBLIC void CloseBookmarkDoc(); + + SdrObject* GetObj(const String& rObjName) const; + + /** Return the first page that has the given name. Regular pages and + notes pages are searched first. When not found then the master + pages are searched. + @param rPgName + Name of the page to return. + @param rbIsMasterPage + Is set by the method to indicate whether the returned index + belongs to a master page (<TRUE/>) or a regular or notes page + (<FALSE/>). The given value is ignored. + @return + Returns the index of the page with the given name or + SDRPAGE_NOTFOUND (=0xffff) when such a page does not exist. + */ + sal_uInt16 GetPageByName(const String& rPgName, sal_Bool& rbIsMasterPage ) const; + SD_DLLPUBLIC SdPage*GetSdPage(sal_uInt16 nPgNum, PageKind ePgKind) const; + SD_DLLPUBLIC sal_uInt16 GetSdPageCount(PageKind ePgKind) const; + + void SetSelected(SdPage* pPage, sal_Bool bSelect); + sal_Bool MovePages(sal_uInt16 nTargetPage); + + SD_DLLPUBLIC SdPage*GetMasterSdPage(sal_uInt16 nPgNum, PageKind ePgKind); + SD_DLLPUBLIC sal_uInt16 GetMasterSdPageCount(PageKind ePgKind) const; + + sal_uInt16 GetMasterPageUserCount(SdrPage* pMaster) const; + + const sd::PresentationSettings& getPresentationSettings() const { return maPresentationSettings; } + sd::PresentationSettings& getPresentationSettings() { return maPresentationSettings; } + + const ::com::sun::star::uno::Reference< ::com::sun::star::presentation::XPresentation2 >& getPresentation() const; + + void SetSummationOfParagraphs( sal_Bool bOn = sal_True ) { mbSummationOfParagraphs = bOn; } + sal_Bool IsSummationOfParagraphs() const { return mbSummationOfParagraphs; } + + /** Set the mode that controls whether (and later how) the formatting of the document + depends on the current printer metrics. + @param nMode + Use <const + scope="com::sun::star::document::PrinterIndependentLayout">ENABLED</const> + to make formatting printer-independent and <const + scope="com::sun::star::document::PrinterIndependentLayout">DISABLED</const> + to make formatting depend on the current printer metrics. + */ + void SetPrinterIndependentLayout (sal_Int32 nMode); + + /** Get the flag that controls whether the formatting of the document + depends on the current printer metrics. + @return + Use <const + scope="com::sun::star::document::PrinterIndependentLayout">ENABLED</const> + when formatting is printer-independent and <const + scope="com::sun::star::document::PrinterIndependentLayout">DISABLED</const> + when formatting depends on the current printer metrics. + */ + sal_Int32 GetPrinterIndependentLayout (void); + + void SetOnlineSpell( sal_Bool bIn ); + sal_Bool GetOnlineSpell() const { return mbOnlineSpell; } + void StopOnlineSpelling(); + void StartOnlineSpelling(sal_Bool bForceSpelling=sal_True); + + void ImpOnlineSpellCallback(SpellCallbackInfo* pInfo, SdrObject* pObj, SdrOutliner* pOutl); + + void InsertObject(SdrObject* pObj, SdPage* pPage); + void RemoveObject(SdrObject* pObj, SdPage* pPage); + + sal_uLong GetLinkCount(); + + List* GetFrameViewList() const { return mpFrameViewList; } + SD_DLLPUBLIC List* GetCustomShowList(sal_Bool bCreate = sal_False); + + void NbcSetChanged(sal_Bool bFlag = sal_True); + + void SetTextDefaults() const; + + void CreateLayoutTemplates(); + void RenameLayoutTemplate(const String& rOldLayoutName, const String& rNewName); + + void CreateDefaultCellStyles(); + + SD_DLLPUBLIC void StopWorkStartupDelay(); + + void NewOrLoadCompleted(DocCreationMode eMode); + void NewOrLoadCompleted( SdPage* pPage, SdStyleSheetPool* pSPool ); + sal_Bool IsNewOrLoadCompleted() const {return mbNewOrLoadCompleted; } + + ::sd::FrameView* GetFrameView(sal_uLong nPos) { + return static_cast< ::sd::FrameView*>( + mpFrameViewList->GetObject(nPos));} + + /** deprecated*/ + SdAnimationInfo* GetAnimationInfo(SdrObject* pObject) const; + + SD_DLLPUBLIC static SdAnimationInfo* GetShapeUserData(SdrObject& rObject, bool bCreate = false ); + + SdIMapInfo* GetIMapInfo( SdrObject* pObject ) const; + IMapObject* GetHitIMapObject( SdrObject* pObject, const Point& rWinPoint, const ::Window& rCmpWnd ); + + CharClass* GetCharClass() const { return mpCharClass; } + + void RestoreLayerNames(); + + void UpdateAllLinks(); + + void CheckMasterPages(); + + void Merge(SdrModel& rSourceModel, + sal_uInt16 nFirstPageNum=0, sal_uInt16 nLastPageNum=0xFFFF, + sal_uInt16 nDestPos=0xFFFF, + bool bMergeMasterPages = false, bool bAllMasterPages = false, + bool bUndo = true, bool bTreadSourceAsConst = false); + + SD_DLLPUBLIC ::com::sun::star::text::WritingMode GetDefaultWritingMode() const; + void SetDefaultWritingMode( ::com::sun::star::text::WritingMode eMode ); + + /** replacespOldPage from all custom shows with pNewPage or removes pOldPage from + all custom shows if pNewPage is 0. + */ + void ReplacePageInCustomShows( const SdPage* pOldPage, const SdPage* pNewPage ); + +public: + + static SdDrawDocument* pDocLockedInsertingLinks; // static to prevent recursions while resolving links + + /** Create and insert a set of two new pages: a standard (draw) page and + the associated notes page. The new pages are inserted direclty + after the specified page set. + @param pCurrentPage + This page is used to retrieve the layout for the page to + create. + @param ePageKind + This specifies whether <argument>pCurrentPage</argument> is a + standard (draw) page or a notes page. + @param sStandardPageName + Name of the standard page. An empty string leads to using an + automatically created name. + @param sNotesPageName + Name of the standard page. An empty string leads to using an + automatically created name. + @param eStandardLayout + Layout to use for the new standard page. Note that this layout + is not used when the given <argument>pCurrentPage</argument> is + not a standard page. In this case the layout is taken from the + standard page associated with <argument>pCurrentPage</argument>. + @param eNotesLayout + Layout to use for the new notes page. Note that this layout + is not used when the given <argument>pCurrentPage</argument> is + not a notes page. In this case the layout is taken from the + notes page associated with <argument>pCurrentPage</argument>. + @param bIsPageBack + This flag indicates whether to show the background shape. + @param bIsPageObj + This flag indicates whether to show the shapes on the master page. + @param nInsertPosition + Position where to insert the standard page. When -1 then the + new page set is inserted after the current page. + + @return + Returns an index of the inserted pages that can be used with the + <member>GetSdPage()</member> method. + */ + sal_uInt16 CreatePage ( + SdPage* pCurrentPage, + PageKind ePageKind, + const String& sStandardPageName, + const String& sNotesPageName, + AutoLayout eStandardLayout, + AutoLayout eNotesLayout, + sal_Bool bIsPageBack, + sal_Bool bIsPageObj, + const sal_Int32 nInsertPosition = -1); + + /** This method acts as a simplified front end for the more complex + <member>DuplicatePage()</member> method. + @param nPageNum + The page number as passed to the <member>GetSdPage()</member> + method for which the standard page and the notes page are to be + copied. + @return + Returns an index of the inserted pages that can be used with the + <member>GetSdPage()</member> method. + */ + sal_uInt16 DuplicatePage (sal_uInt16 nPageNum); + + /** Create and insert a set of two new pages that are copies of the + given <argument>pCurrentPage</argument> and its associated notes + resp. standard page. The copies are inserted directly after the + specified page set. + @param pCurrentPage + This page and its associated notes/standard page is copied. + @param ePageKind + This specifies whether <argument>pCurrentPage</argument> is a + standard (draw) page or a notes page. + @param sStandardPageName + Name of the standard page. An empty string leads to using an + automatically created name. + @param sNotesPageName + Name of the standard page. An empty string leads to using an + automatically created name. + @param eStandardLayout + Layout to use for the new standard page. Note that this layout + is not used when the given <argument>pCurrentPage</argument> is + not a standard page. In this case the layout is taken from the + standard page associated with <argument>pCurrentPage</argument>. + @param eNotesLayout + Layout to use for the new notes page. Note that this layout + is not used when the given <argument>pCurrentPage</argument> is + not a notes page. In this case the layout is taken from the + notes page associated with <argument>pCurrentPage</argument>. + @param bIsPageBack + This flag indicates whether to show the background shape. + @param bIsPageObj + This flag indicates whether to show the shapes on the master page. + @param nInsertPosition + Position where to insert the standard page. When -1 then the + new page set is inserted after the current page. + + @return + Returns an index of the inserted pages that can be used with the + <member>GetSdPage()</member> method. + */ + sal_uInt16 DuplicatePage ( + SdPage* pCurrentPage, + PageKind ePageKind, + const String& sStandardPageName, + const String& sNotesPageName, + AutoLayout eStandardLayout, + AutoLayout eNotesLayout, + sal_Bool bIsPageBack, + sal_Bool bIsPageObj, + const sal_Int32 nInsertPosition = -1); + + /** return the document fonts for latin, cjk and ctl according to the current + languages set at this document */ + void getDefaultFonts( Font& rLatinFont, Font& rCJKFont, Font& rCTLFont ); + + sd::UndoManager* GetUndoManager() const; + + /* converts the given western font height to a corresponding ctl font height, deppending on the system language */ + static sal_uInt32 convertFontHeightToCTL( sal_uInt32 nWesternFontHeight ); + + /** Get the style sheet pool if it was a SdStyleSheetPool. + */ + SD_DLLPUBLIC SdStyleSheetPool* GetSdStyleSheetPool() const; + + void UpdatePageRelativeURLs(const String& rOldName, const String& rNewName); + + void SetCalcFieldValueHdl( ::Outliner* pOutliner); + + sal_uInt16 GetAnnotationAuthorIndex( const rtl::OUString& rAuthor ); + +private: + /** This member stores the printer independent layout mode. Please + refer to <member>SetPrinterIndependentLayout()</member> for its + values. + */ + sal_Int32 mnPrinterIndependentLayout; + + /** Insert a given set of standard and notes page after the given <argument>pCurrentPage</argument>. + @param pCurrentPage + This page and its associated notes/standard page is copied. + @param ePageKind + This specifies whether <argument>pCurrentPage</argument> is a + standard (draw) page or a notes page. + @param sStandardPageName + Name of the standard page. An empty string leads to using an + automatically created name. + @param sNotesPageName + Name of the standard page. An empty string leads to using an + automatically created name. + @param eStandardLayout + Layout to use for the new standard page. Note that this layout + is not used when the given <argument>pCurrentPage</argument> is + not a standard page. In this case the layout is taken from the + standard page associated with <argument>pCurrentPage</argument>. + @param eNotesLayout + Layout to use for the new notes page. Note that this layout + is not used when the given <argument>pCurrentPage</argument> is + not a notes page. In this case the layout is taken from the + notes page associated with <argument>pCurrentPage</argument>. + @param bIsPageBack + This flag indicates whether to show the background shape. + @param bIsPageObj + This flag indicates whether to show the shapes on the master page. + @param pStandardPage + The standard page to insert. + @param pNotesPage + The notes page to insert. + @param nInsertPosition + Position where to insert the standard page. When -1 then the + new page set is inserted after the current page. + + @return + Returns an index of the inserted pages that can be used with the + <member>GetSdPage()</member> method. + */ + sal_uInt16 InsertPageSet ( + SdPage* pCurrentPage, + PageKind ePageKind, + const String& sStandardPageName, + const String& sNotesPageName, + AutoLayout eStandardLayout, + AutoLayout eNotesLayout, + sal_Bool bIsPageBack, + sal_Bool bIsPageObj, + SdPage* pStandardPage, + SdPage* pNotesPage, + sal_Int32 nInsertPosition = -1); + + /** Set up a newly created page and insert it into the list of pages. + @param pPreviousPage + A page to take the size and border geometry from. + @param pPage + This is the page to set up and insert. + @param sPageName + The name of the new page. + @param nInsertionPoint + Index of the page before which the new page will be inserted. + @param bIsPageBack + This flag indicates whether to show the background shape. + @param bIsPageObj + This flag indicates whether to show the shapes on the master + page. + */ + void SetupNewPage ( + SdPage* pPreviousPage, + SdPage* pPage, + const String& sPageName, + sal_uInt16 nInsertionPoint, + sal_Bool bIsPageBack, + sal_Bool bIsPageObj); + + virtual void PageListChanged(); + virtual void MasterPageListChanged(); +}; + +namespace sd +{ + +// an instance of this guard disables modification of a document +// during its lifetime +class ModifyGuard +{ +public: + ModifyGuard( SdDrawDocument* pDoc ); + ~ModifyGuard(); + +private: + void init(); + + DrawDocShell* mpDocShell; + SdDrawDocument* mpDoc; + sal_Bool mbIsEnableSetModified; + sal_Bool mbIsDocumentChanged; +}; + +} + +#endif // _DRAWDOC_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/eetext.hxx b/sd/inc/eetext.hxx new file mode 100644 index 000000000000..59e7b3e35a83 --- /dev/null +++ b/sd/inc/eetext.hxx @@ -0,0 +1,36 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ +#ifndef _EETEXT_HXX +#define _EETEXT_HXX + +#include <editeng/outliner.hxx> + +#endif // EETEXT_HXX + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/fadedef.h b/sd/inc/fadedef.h new file mode 100644 index 000000000000..732c68baa6bd --- /dev/null +++ b/sd/inc/fadedef.h @@ -0,0 +1,46 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_FADEDEF_H +#define _SD_FADEDEF_H + +// muss angepasst werden! +#define FADE_EFFECT_COUNT 57 + +enum FadeSpeed +{ + FADE_SPEED_SLOW, + FADE_SPEED_MEDIUM, + FADE_SPEED_FAST +}; +// muss angepasst werden! +#define FADE_SPEED_COUNT 3 + +#endif // _SD_FADEDEF_H + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/glob.hrc b/sd/inc/glob.hrc new file mode 100755 index 000000000000..89b2b670adf9 --- /dev/null +++ b/sd/inc/glob.hrc @@ -0,0 +1,160 @@ +/************************************************************************* + * + * 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. + * + ************************************************************************/ +#ifndef _SFX_HRC +#include <sfx2/sfx.hrc> +#endif + +#define RID_GLOB_START RID_APP_START+750 + +#define STR_LAYER_BCKGRND RID_GLOB_START +#define STR_LAYER_BCKGRNDOBJ RID_GLOB_START+1 +#define STR_LAYER_LAYOUT RID_GLOB_START+2 +#define STR_LAYER_CONTROLS RID_GLOB_START+3 +#define STR_PAGE RID_GLOB_START+4 +#define STR_PRESOBJ_TITLE RID_GLOB_START+5 +#define STR_PRESOBJ_OUTLINE RID_GLOB_START+6 +#define STR_PRESOBJ_TEXT RID_GLOB_START+7 +#define STR_PRESOBJ_GRAPHIC RID_GLOB_START+8 +#define STR_PRESOBJ_OBJECT RID_GLOB_START+9 +#define STR_PRESOBJ_CHART RID_GLOB_START+10 +#define STR_PRESOBJ_ORGCHART RID_GLOB_START+11 +#define STR_PRESOBJ_TABLE RID_GLOB_START+12 +#define STR_PRESOBJ_IMAGE RID_GLOB_START+13 +#define BMP_PRESOBJ_GRAPHIC RID_GLOB_START+14 +#define BMP_PRESOBJ_OBJECT RID_GLOB_START+15 +#define BMP_PRESOBJ_CHART RID_GLOB_START+16 +#define BMP_PRESOBJ_ORGCHART RID_GLOB_START+17 +#define BMP_PRESOBJ_TABLE RID_GLOB_START+18 +#define BMP_PRESOBJ_IMAGE RID_GLOB_START+19 +#define STR_OUTLINEVIEWSHELL RID_GLOB_START+21 +#define STR_DRAWVIEWSHELL RID_GLOB_START+22 +#define STR_TEXTOBJECTBARSHELL RID_GLOB_START+23 +#define STR_STDOBJECTBARSHELL RID_GLOB_START+24 +#define STR_BEZIEROBJECTBARSHELL RID_GLOB_START+25 +#define STR_APPLICATIONOBJECTBAR RID_GLOB_START+26 +#define STR_LAYOUT_TITLE RID_GLOB_START+27 +#define STR_LAYOUT_OUTLINE RID_GLOB_START+28 +#define STR_LAYOUT_BACKGROUNDOBJECTS RID_GLOB_START+29 +#define STR_LAYOUT_BACKGROUND RID_GLOB_START+30 +#define STR_LAYOUT_NOTES RID_GLOB_START+31 +#define STR_PRESOBJ_MPTITLE RID_GLOB_START+32 +#define STR_PRESOBJ_MPOUTLINE RID_GLOB_START+33 +#define STR_PRESOBJ_MPOUTLLAYER2 RID_GLOB_START+34 +#define STR_PRESOBJ_MPOUTLLAYER3 RID_GLOB_START+35 +#define STR_PRESOBJ_MPOUTLLAYER4 RID_GLOB_START+36 +#define STR_PRESOBJ_MPOUTLLAYER5 RID_GLOB_START+37 +#define STR_PRESOBJ_MPOUTLLAYER6 RID_GLOB_START+38 +#define STR_PRESOBJ_MPOUTLLAYER7 RID_GLOB_START+39 +#define STR_PRESOBJ_MPOUTLLAYER8 RID_GLOB_START+40 +#define STR_PRESOBJ_MPOUTLLAYER9 RID_GLOB_START+41 +#define STR_PRESOBJ_MPNOTESTITLE RID_GLOB_START+42 +#define STR_PRESOBJ_MPNOTESTEXT RID_GLOB_START+43 +#define STR_PRESOBJ_NOTESTEXT RID_GLOB_START+44 +#define STR_LAYOUT_DEFAULT_NAME RID_GLOB_START+45 +#define STR_STANDARD_STYLESHEET_NAME RID_GLOB_START+46 +#define STR_NOTES RID_GLOB_START+47 +#define STR_HANDOUT RID_GLOB_START+48 +#define STR_MASTERPAGE RID_GLOB_START+49 +#define STR_PRESOBJNOTESTEXT RID_GLOB_START+50 +#define STR_BAD_PASSWORD_OR_FILE_CORRUPTED RID_GLOB_START+51 +#define STR_UNDO_MOVEPAGES RID_GLOB_START+52 +#define STR_NOT_ENOUGH_MEMORY RID_GLOB_START+53 +#define STR_LAYOUT_SUBTITLE RID_GLOB_START+54 +#define STR_POOLSHEET_OBJWITHARROW RID_GLOB_START+55 +#define STR_POOLSHEET_OBJWITHSHADOW RID_GLOB_START+56 +#define STR_POOLSHEET_OBJWITHOUTFILL RID_GLOB_START+57 +#define STR_POOLSHEET_TEXT RID_GLOB_START+58 +#define STR_POOLSHEET_TEXTBODY RID_GLOB_START+59 +#define STR_POOLSHEET_TEXTBODY_JUSTIFY RID_GLOB_START+60 +#define STR_POOLSHEET_TEXTBODY_INDENT RID_GLOB_START+61 +#define STR_POOLSHEET_TITLE RID_GLOB_START+62 +#define STR_POOLSHEET_TITLE1 RID_GLOB_START+63 +#define STR_POOLSHEET_TITLE2 RID_GLOB_START+64 +#define STR_POOLSHEET_HEADLINE RID_GLOB_START+65 +#define STR_POOLSHEET_HEADLINE1 RID_GLOB_START+66 +#define STR_POOLSHEET_HEADLINE2 RID_GLOB_START+67 +#define STR_POOLSHEET_MEASURE RID_GLOB_START+68 +#define STR_POOLSHEET_ARROW RID_GLOB_START+69 +// +#define STR_POOLSHEET_BANDED_CELL RID_GLOB_START+70 +#define STR_POOLSHEET_HEADER RID_GLOB_START+71 +#define STR_POOLSHEET_TOTAL RID_GLOB_START+72 +#define STR_POOLSHEET_FIRST_COLUMN RID_GLOB_START+73 +#define STR_POOLSHEET_LAST_COLUMN RID_GLOB_START+74 +// +#define STR_PSEUDOSHEET_TITLE RID_GLOB_START+80 +#define STR_PSEUDOSHEET_OUTLINE RID_GLOB_START+81 +#define STR_PSEUDOSHEET_BACKGROUNDOBJECTS RID_GLOB_START+82 +#define STR_PSEUDOSHEET_BACKGROUND RID_GLOB_START+83 +#define STR_PSEUDOSHEET_NOTES RID_GLOB_START+84 +#define STR_PSEUDOSHEET_SUBTITLE RID_GLOB_START+85 +#define STR_GLUEPOINTSOBJECTBARSHELL RID_GLOB_START+90 +#define STR_EMPTY_STYLESHEET_NAME RID_GLOB_START+91 +#define STR_LAYER_MEASURELINES RID_GLOB_START+92 +#define STR_LAYOUT_DEFAULT_TITLE_NAME RID_GLOB_START+93 +#define STR_GRAFOBJECTBARSHELL RID_GLOB_START+94 +#define STR_POWERPOINT_IMPORT RID_GLOB_START+95 +#define STR_STAROFFICE_XML_DRAW RID_GLOB_START+96 +#define STR_STAROFFICE_XML_IMPRESS RID_GLOB_START+97 +#define STR_PRESVIEWSHELL RID_GLOB_START+98 +#define STR_LOAD_DOC RID_GLOB_START+99 +#define STR_SAVE_DOC RID_GLOB_START+100 +#define STR_PREVIEWVIEWSHELL RID_GLOB_START+101 +#define RID_SD_ERRHDL RID_GLOB_START+102 +#define STR_VIEWSHELLBASE RID_GLOB_START+103 +#define STR_3DOBJECTBARSHELL RID_GLOB_START+104 +#define STR_FONTWORKOBJECTBARSHELL RID_GLOB_START+105 +#define STR_SLIDESORTERVIEWSHELL RID_GLOB_START+106 +#define STR_TASKPANEVIEWSHELL RID_GLOB_START+107 +#define STR_MASTERPAGESSELECTOR RID_GLOB_START+108 +#define STR_TASKPANELAYOUTMENU RID_GLOB_START+109 +#define STR_MEDIAOBJECTBARSHELL RID_GLOB_START+110 +#define STR_PAGE_NAME RID_GLOB_START+111 +#define STR_SLIDE_NAME RID_GLOB_START+112 +#define STR_LEFT_IMPRESS_PANE_SHELL RID_GLOB_START+113 +#define STR_LEFT_DRAW_PANE_SHELL RID_GLOB_START+114 +#define STR_RIGHT_PANE_SHELL RID_GLOB_START+115 +#define STR_TOOL_PANEL_SHELL RID_GLOB_START+116 + +#define RID_CUSTOMANIMATION_START RID_GLOB_START+120 +#define RID_CUSTOMANIMATION_END RID_GLOB_START+199 +#define RID_ANNOTATIONS_START RID_GLOB_START+200 +#define RID_ANNOTATIONS_END RID_GLOB_START+220 +#define STR_UNDO_ANIMATION RID_GLOB_START+221 +#define STR_UNDO_SLIDE_PARAMS RID_GLOB_START+222 +#define RID_SLIDESHOW_CONTEXTMENU RID_GLOB_START+223 + +#define DLG_TABLEDESIGNPANE RID_GLOB_START+224 +#define STR_TABLEOBJECTBARSHELL RID_GLOB_START+225 +#define RID_TABPAGE_PARA_NUMBERING RID_GLOB_START+226 +#define STR_CUSTOMANIMATIONPANE RID_GLOB_START+227 +#define STR_SLIDE_TRANSITION_PANE RID_GLOB_START+228 + +#define RID_SLIDESORTER_ICONS RID_GLOB_START+227 + + + diff --git a/sd/inc/glob.hxx b/sd/inc/glob.hxx new file mode 100644 index 000000000000..20b264651847 --- /dev/null +++ b/sd/inc/glob.hxx @@ -0,0 +1,101 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef SD_GLOB_HXX +#define SD_GLOB_HXX + +#include <tools/solar.h> + +#include <rsc/rscsfx.hxx> + +//------------------------------------------------------------------ + +#define DIA_SLOW 0 +#define DIA_MEDIUM 1 +#define DIA_FAST 2 + +#define SD_IF_SDAPP SFX_INTERFACE_SD_START + 0 +#define SD_IF_SDDRAWDOCSHELL SFX_INTERFACE_SD_START + 1 +#define SD_IF_SDVIEWSHELL SFX_INTERFACE_SD_START + 2 +#define SD_IF_SDDRAWVIEWSHELL SFX_INTERFACE_SD_START + 3 +#define SD_IF_SDOUTLINEVIEWSHELL SFX_INTERFACE_SD_START + 5 +#define SD_IF_SDDRAWSTDOBJECTBAR SFX_INTERFACE_SD_START + 6 +#define SD_IF_SDDRAWTEXTOBJECTBAR SFX_INTERFACE_SD_START + 7 +#define SD_IF_SDDRAWBEZIEROBJECTBAR SFX_INTERFACE_SD_START + 8 +#define SD_IF_SDDRAWGLUEPOINTSOBJECTBAR SFX_INTERFACE_SD_START + 9 +#define SD_IF_SDGRAPHICDOCSHELL SFX_INTERFACE_SD_START + 10 +#define SD_IF_SDGRAPHICVIEWSHELL SFX_INTERFACE_SD_START + 11 +#define SD_IF_SDGRAPHICSTDOBJECTBAR SFX_INTERFACE_SD_START + 12 +#define SD_IF_SDDRAWGRAFOBJECTBAR SFX_INTERFACE_SD_START + 13 +#define SD_IF_SDPRESVIEWSHELL SFX_INTERFACE_SD_START + 14 +#define SD_IF_SDPREVIEWVIEWSHELL SFX_INTERFACE_SD_START + 15 +#define SD_IF_SDVIEWSHELLBASE SFX_INTERFACE_SD_START + 16 +#define SD_IF_SD3DOBJECTBAR SFX_INTERFACE_SD_START + 17 +#define SD_IF_SDFONTWORKOBJECTBAR SFX_INTERFACE_SD_START + 18 +#define SD_IF_SDSLIDESORTERVIEWSHELL SFX_INTERFACE_SD_START + 19 +#define SD_IF_SDTASKPANEVIEWSHELL SFX_INTERFACE_SD_START + 20 +#define SD_IF_SDMASTERPAGESSELECTOR SFX_INTERFACE_SD_START + 21 +#define SD_IF_SDLAYOUTMENU SFX_INTERFACE_SD_START + 22 +#define SD_IF_SDDRAWMEDIAOBJECTBAR SFX_INTERFACE_SD_START + 23 +#define SD_IF_SDLEFTIMPRESSPANESHELL SFX_INTERFACE_SD_START + 24 +#define SD_IF_SDLEFTDRAWPANESHELL SFX_INTERFACE_SD_START + 25 +#define SD_IF_SDRIGHTPANESHELL SFX_INTERFACE_SD_START + 26 +#define SD_IF_SDDRAWTABLEOBJECTBAR SFX_INTERFACE_SD_START + 27 +#define SD_IF_SDANNOTATIONSHELL SFX_INTERFACE_SD_START + 28 +#define SD_IF_SDTOOLPANELPANESHELL SFX_INTERFACE_SD_START + 29 +#define SD_IF_SDTOOLPANELSHELL SFX_INTERFACE_SD_START + 30 + +// Inventor-Id fuer StarDraw UserData +const sal_uInt32 SdUDInventor=sal_uInt32('S')*0x00000001+ + sal_uInt32('D')*0x00000100+ + sal_uInt32('U')*0x00010000+ + sal_uInt32('D')*0x01000000; + +// Object-Ids fuer StarDraw UserData +#define SD_ANIMATIONINFO_ID 1 +#define SD_IMAPINFO_ID 2 + +// FamilyId der Praesentationsvorlagen +#define SD_STYLE_FAMILY_GRAPHICS SFX_STYLE_FAMILY_PARA +#define SD_STYLE_FAMILY_PSEUDO SFX_STYLE_FAMILY_PSEUDO +#define SD_STYLE_FAMILY_CELL SFX_STYLE_FAMILY_FRAME +#define SD_STYLE_FAMILY_MASTERPAGE SFX_STYLE_FAMILY_PAGE // ex LT_FAMILY + +// Trennzeichen zwischen Layoutname und Vorlagenname der Praesentationsvorlagen +#define SD_LT_SEPARATOR "~LT~" + +// Optionsstream-Identifier +#define SD_OPTION_MORPHING "Morph" +#define SD_OPTION_VECTORIZE "Vectorize" + +//------------------------------------------------------------------ + +#endif // _SD_GLOB_HXX + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/helper/simplereferencecomponent.hxx b/sd/inc/helper/simplereferencecomponent.hxx new file mode 100644 index 000000000000..45194d8b8153 --- /dev/null +++ b/sd/inc/helper/simplereferencecomponent.hxx @@ -0,0 +1,118 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_SIMPLEREFERENCECOMPONENT_HXX_ +#define _SD_SIMPLEREFERENCECOMPONENT_HXX_ + +#include "osl/interlck.h" +#include "sal/types.h" + +#include <cstddef> +#include <new> + +#include <sddllapi.h> + +namespace sd { + +/** A simple base implementation for reference-counted components. + acts like sal::SimpleReferenceObject but calls the virtual disposing() + methods before the ref count switches from 1 to zero. + */ +class SimpleReferenceComponent +{ +public: + SimpleReferenceComponent(); + + /** @ATTENTION + The results are undefined if, for any individual instance of + SimpleReferenceComponent, the total number of calls to acquire() exceeds + the total number of calls to release() by a plattform dependent amount + (which, hopefully, is quite large). + */ + SD_DLLPUBLIC void acquire(); + SD_DLLPUBLIC void release(); + + void Dispose(); + + bool isDisposed() const { return mbDisposed; } + + /** see general class documentation + */ + static void * operator new(std::size_t nSize) SAL_THROW((std::bad_alloc)); + + /** see general class documentation + */ + static void * operator new(std::size_t nSize, + std::nothrow_t const & rNothrow) + ; + + /** see general class documentation + */ + static void operator delete(void * pPtr); + + /** see general class documentation + */ + static void operator delete(void * pPtr, std::nothrow_t const & rNothrow) + ; + +protected: + virtual void disposing(); + + virtual ~SimpleReferenceComponent(); + +private: + oslInterlockedCount m_nCount; + + /** not implemented + @internal + */ + SimpleReferenceComponent(SimpleReferenceComponent &); + + /** not implemented + @internal + */ + void operator =(SimpleReferenceComponent); + + /** not implemented (see general class documentation) + @internal + */ + static void * operator new[](std::size_t); + + /** not implemented (see general class documentation) + @internal + */ + static void operator delete[](void * pPtr); + + bool mbDisposed; +}; + +} + +#endif // _SALHELPER_SimpleReferenceComponent_HXX_ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/helpids.h b/sd/inc/helpids.h new file mode 100755 index 000000000000..9056d9eb2051 --- /dev/null +++ b/sd/inc/helpids.h @@ -0,0 +1,254 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ +#include <sfx2/sfxcommands.h> +#include <svx/svxcommands.h> +#include "sdcommands.h" + +#define HID_SDDRAWVIEWSHELL "SD_HID_SDDRAWVIEWSHELL" +#define HID_SDGRAPHICVIEWSHELL "SD_HID_SDGRAPHICVIEWSHELL" +#define HID_SDOUTLINEVIEWSHELL "SD_HID_SDOUTLINEVIEWSHELL" +#define HID_SD_PRINT_OPTIONS "SD_HID_SD_PRINT_OPTIONS" +#define HID_SD_OPTIONS_SNAP "SD_HID_SD_OPTIONS_SNAP" +#define HID_SD_OPTIONS_VIEW "SD_HID_SD_OPTIONS_VIEW" +#define HID_SD_AUTOPILOT_PAGE1 "SD_HID_SD_AUTOPILOT_PAGE1" +#define HID_SD_AUTOPILOT_PAGE2 "SD_HID_SD_AUTOPILOT_PAGE2" +#define HID_SD_AUTOPILOT_PAGE3 "SD_HID_SD_AUTOPILOT_PAGE3" +#define HID_SD_AUTOPILOT_PAGE4 "SD_HID_SD_AUTOPILOT_PAGE4" +#define HID_SD_AUTOPILOT_PAGE5 "SD_HID_SD_AUTOPILOT_PAGE5" +#define HID_SD_AUTOPILOT_PAGE6 "SD_HID_SD_AUTOPILOT_PAGE6" +#define HID_SD_CBX_ONLYSELECTED "SD_HID_SD_CBX_ONLYSELECTED" +#define HID_SD_BTN_FILTERDIALOG "SD_HID_SD_BTN_FILTERDIALOG" +#define HID_SD_BTN_PAGE "SD_HID_SD_BTN_PAGE" +#define HID_SD_BTN_MASTERPAGE "SD_HID_SD_BTN_MASTERPAGE" +#define HID_SD_BTN_LAYER "SD_HID_SD_BTN_LAYER" +#define HID_SD_BTN_DRAW "SD_HID_SD_BTN_DRAW" +#define HID_SD_BTN_SLIDE "SD_HID_SD_BTN_SLIDE" +#define HID_SD_BTN_OUTLINE "SD_HID_SD_BTN_OUTLINE" +#define HID_SD_BTN_NOTES "SD_HID_SD_BTN_NOTES" +#define HID_SD_BTN_HANDOUT "SD_HID_SD_BTN_HANDOUT" +#define HID_SD_WIN_DOCUMENT "SD_HID_SD_WIN_DOCUMENT" +#define HID_SD_OPTIONS_LAYOUT "SD_HID_SD_OPTIONS_LAYOUT" +#define HID_SD_OPTIONS_CONTENTS "SD_HID_SD_OPTIONS_CONTENTS" +#define HID_SD_OPTIONS_MISC "SD_HID_SD_OPTIONS_MISC" +#define HID_SD_EFFECT_PREVIEW "SD_HID_SD_EFFECT_PREVIEW" +#define HID_SD_CTL_NEWFOIL "SD_HID_SD_CTL_NEWFOIL" +#define HID_SD_NAVIGATOR_TLB "SD_HID_SD_NAVIGATOR_TLB" +#define HID_SD_NAVIGATOR "SD_HID_SD_NAVIGATOR" +#define HID_SD_CTL_EFFECTS "SD_HID_SD_CTL_EFFECTS" +#define HID_SD_CTL_TEXT_EFFECTS "SD_HID_SD_CTL_TEXT_EFFECTS" +#define HID_SD_CTL_SLIDE_CHANGE "SD_HID_SD_CTL_SLIDE_CHANGE" +#define HID_SD_NAVIGATOR_TBX "SD_HID_SD_NAVIGATOR_TBX" +#define HID_SD_NAVIGATOR_LB "SD_HID_SD_NAVIGATOR_LB" +#define HID_SD_NAVIGATOR_TBI_PEN "SD_HID_SD_NAVIGATOR_TBI_PEN" +#define HID_SD_NAVIGATOR_TBI_FIRST "SD_HID_SD_NAVIGATOR_TBI_FIRST" +#define HID_SD_NAVIGATOR_TBI_PREV "SD_HID_SD_NAVIGATOR_TBI_PREV" +#define HID_SD_NAVIGATOR_TBI_NEXT "SD_HID_SD_NAVIGATOR_TBI_NEXT" +#define HID_SD_NAVIGATOR_TBI_LAST "SD_HID_SD_NAVIGATOR_TBI_LAST" +#define HID_SD_NAVIGATOR_TBI_DRAGTYPE "SD_HID_SD_NAVIGATOR_TBI_DRAGTYPE" +#define HID_SD_NAVIGATOR_TBI_SHAPE_FILTER "SD_HID_SD_NAVIGATOR_TBI_SHAPE_FILTER" + +// Toolboxen +#define HID_SD_DRAW_DEFAULTTOOLBOX "SD_HID_SD_DRAW_DEFAULTTOOLBOX" +#define HID_SD_PLUGINTOOLBOX "SD_HID_SD_PLUGINTOOLBOX" +#define HID_SD_DRAW_TOOLBOX "SD_HID_SD_DRAW_TOOLBOX" +#define HID_SD_SLIDE_TOOLBOX "SD_HID_SD_SLIDE_TOOLBOX" +#define HID_SD_OUTLINE_TOOLBOX "SD_HID_SD_OUTLINE_TOOLBOX" +#define HID_SD_DRAW_OBJ_TOOLBOX "SD_HID_SD_DRAW_OBJ_TOOLBOX" +#define HID_SD_DRAW_OPTIONS_TOOLBOX "SD_HID_SD_DRAW_OPTIONS_TOOLBOX" +#define HID_SD_DRAW_COMMONTASK_TOOLBOX "SD_HID_SD_DRAW_COMMONTASK_TOOLBOX" +#define HID_SD_BEZIER_TOOLBOX "SD_HID_SD_BEZIER_TOOLBOX" +#define HID_SD_TEXT_TOOLBOX "SD_HID_SD_TEXT_TOOLBOX" +#define HID_SD_GLUEPOINTS_TOOLBOX "SD_HID_SD_GLUEPOINTS_TOOLBOX" +#define HID_SD_SLIDE_OBJ_TOOLBOX "SD_HID_SD_SLIDE_OBJ_TOOLBOX" + +// FloatingWindows +#define HID_SD_FW_ALIGNMENT "SD_HID_SD_FW_ALIGNMENT" +#define HID_SD_FW_ZOOM "SD_HID_SD_FW_ZOOM" +#define HID_SD_FW_CHOOSE_MODE "SD_HID_SD_FW_CHOOSE_MODE" +#define HID_SD_FW_TEXT "SD_HID_SD_FW_TEXT" +#define HID_SD_FW_RECTANGLES "SD_HID_SD_FW_RECTANGLES" +#define HID_SD_FW_ELLIPSES "SD_HID_SD_FW_ELLIPSES" +#define HID_SD_FW_LINES "SD_HID_SD_FW_LINES" +#define HID_SD_FW_ARROWS "SD_HID_SD_FW_ARROWS" +#define HID_SD_FW_3D_OBJECTS "SD_HID_SD_FW_3D_OBJECTS" +#define HID_SD_FW_CONNECTORS "SD_HID_SD_FW_CONNECTORS" +#define HID_SD_FW_INSERT "SD_HID_SD_FW_INSERT" +#define HID_SD_FW_POSITION "SD_HID_SD_FW_POSITION" + +#define HID_SD_BTN_PREVIEW "SD_HID_SD_BTN_PREVIEW" + +#define HID_SD_NAVIGATOR_MENU1 "SD_HID_SD_NAVIGATOR_MENU1" +#define HID_SD_NAVIGATOR_MENU2 "SD_HID_SD_NAVIGATOR_MENU2" +#define HID_SD_NAVIGATOR_MENU3 "SD_HID_SD_NAVIGATOR_MENU3" + +#define HID_SD_WIN_PRESENTATION "SD_HID_SD_WIN_PRESENTATION" + +#define HID_DLG_DEFINE_CUSTOMSHOW "SD_HID_DLG_DEFINE_CUSTOMSHOW" +#define HID_DLG_DEFINE_CUSTOMSHOW_CTL "SD_HID_DLG_DEFINE_CUSTOMSHOW_CTL" + +#define HID_CTL_ACTION_DLG_1 "SD_HID_CTL_ACTION_DLG_1" +#define HID_CTL_ACTION_DLG_2 "SD_HID_CTL_ACTION_DLG_2" + +#define HID_SD_BTN_PRESENTATION "SD_HID_SD_BTN_PRESENTATION" + +#define HID_SD_HTMLEXPORT_PAGE1 "SD_HID_SD_HTMLEXPORT_PAGE1" +#define HID_SD_HTMLEXPORT_PAGE2 "SD_HID_SD_HTMLEXPORT_PAGE2" +#define HID_SD_HTMLEXPORT_PAGE3 "SD_HID_SD_HTMLEXPORT_PAGE3" +#define HID_SD_HTMLEXPORT_PAGE4 "SD_HID_SD_HTMLEXPORT_PAGE4" +#define HID_SD_HTMLEXPORT_PAGE5 "SD_HID_SD_HTMLEXPORT_PAGE5" +#define HID_SD_HTMLEXPORT_PAGE6 "SD_HID_SD_HTMLEXPORT_PAGE6" + +#define HID_SD_CHGFOIL_LAYOUT "SD_HID_SD_CHGFOIL_LAYOUT" +#define HID_SD_CHGFOIL_BACKGROUND "SD_HID_SD_CHGFOIL_BACKGROUND" +#define HID_SD_CHGFOIL_OBJECTS "SD_HID_SD_CHGFOIL_OBJECTS" +#define HID_SD_CHGFOIL_NAME "SD_HID_SD_CHGFOIL_NAME" + +#define HID_SD_HTMLEXPORT_DLG_DNAME "SD_HID_SD_HTMLEXPORT_DLG_DNAME" + +#define HID_FM_CTL_SELECTION "SD_HID_FM_CTL_SELECTION" + +#define HID_SD_AUTOPILOT_REGION "SD_HID_SD_AUTOPILOT_REGION" +#define HID_SD_AUTOPILOT_TEMPLATES "SD_HID_SD_AUTOPILOT_TEMPLATES" +#define HID_SD_AUTOPILOT_OPEN "SD_HID_SD_AUTOPILOT_OPEN" +#define HID_SD_AUTOPILOT_PAGETEMPLATES "SD_HID_SD_AUTOPILOT_PAGETEMPLATES" + +#define HID_SD_DRAW_GRAF_TOOLBOX "SD_HID_SD_DRAW_GRAF_TOOLBOX" + +#define HID_SD_FW_GRAFFILTERS "SD_HID_SD_FW_GRAFFILTERS" + +#define HID_SD_TABBAR_PAGES "SD_HID_SD_TABBAR_PAGES" +#define HID_SD_TABBAR_LAYERS "SD_HID_SD_TABBAR_LAYERS" + +#define HID_SD_UNDODELETEWARNING_DLG "SD_HID_SD_UNDODELETEWARNING_DLG" +#define HID_SD_UNDODELETEWARNING_CBX "SD_HID_SD_UNDODELETEWARNING_CBX" + +#define HID_SD_PAGEOBJSTLB "SD_HID_SD_PAGEOBJSTLB" + +#define HID_SD_NAMEDIALOG_OBJECT "SD_HID_SD_NAMEDIALOG_OBJECT" +#define HID_SD_NAMEDIALOG_PAGE "SD_HID_SD_NAMEDIALOG_PAGE" +#define HID_SD_NAMEDIALOG_LINEEND "SD_HID_SD_NAMEDIALOG_LINEEND" + +#define HID_SD_DRAW_3D_TOOLBOX "SD_HID_SD_DRAW_3D_TOOLBOX" +#define HID_SD_DRAW_FONTWORK_TOOLBOX "SD_HID_SD_DRAW_FONTWORK_TOOLBOX" + +#define HID_SD_TABPAGE_HEADERFOOTER_SLIDE "SD_HID_SD_TABPAGE_HEADERFOOTER_SLIDE" +#define HID_SD_TABPAGE_HEADERFOOTER_NOTESHANDOUT "SD_HID_SD_TABPAGE_HEADERFOOTER_NOTESHANDOUT" + +#define HID_SD_DRAW_MEDIA_TOOLBOX "SD_HID_SD_DRAW_MEDIA_TOOLBOX" + +#define HID_SD_TASK_PANE "SD_HID_SD_TASK_PANE" +#define HID_SD_SLIDE_DESIGNS "SD_HID_SD_SLIDE_DESIGNS" +#define HID_SD_CURRENT_MASTERS "SD_HID_SD_CURRENT_MASTERS" +#define HID_SD_RECENT_MASTERS "SD_HID_SD_RECENT_MASTERS" +#define HID_SD_ALL_MASTERS "SD_HID_SD_ALL_MASTERS" +#define HID_SD_SLIDE_LAYOUTS "SD_HID_SD_SLIDE_LAYOUTS" +#define HID_SD_CUSTOM_ANIMATIONS "SD_HID_SD_CUSTOM_ANIMATIONS" +#define HID_SD_SLIDE_TRANSITIONS "SD_HID_SD_SLIDE_TRANSITIONS" + +#define HID_SD_CUSTOMANIMATIONPANE_PB_ADD_EFFECT "SD_HID_SD_CUSTOMANIMATIONPANE_PB_ADD_EFFECT" +#define HID_SD_CUSTOMANIMATIONPANE_PB_CHANGE_EFFECT "SD_HID_SD_CUSTOMANIMATIONPANE_PB_CHANGE_EFFECT" +#define HID_SD_CUSTOMANIMATIONPANE_PB_REMOVE_EFFECT "SD_HID_SD_CUSTOMANIMATIONPANE_PB_REMOVE_EFFECT" +#define HID_SD_CUSTOMANIMATIONPANE_LB_START "SD_HID_SD_CUSTOMANIMATIONPANE_LB_START" +#define HID_SD_CUSTOMANIMATIONPANE_LB_PROPERTY "SD_HID_SD_CUSTOMANIMATIONPANE_LB_PROPERTY" +#define HID_SD_CUSTOMANIMATIONPANE_PB_PROPERTY_MORE "SD_HID_SD_CUSTOMANIMATIONPANE_PB_PROPERTY_MORE" +#define HID_SD_CUSTOMANIMATIONPANE_CB_SPEED "SD_HID_SD_CUSTOMANIMATIONPANE_CB_SPEED" +#define HID_SD_CUSTOMANIMATIONPANE_CT_CUSTOM_ANIMATION_LIST "SD_HID_SD_CUSTOMANIMATIONPANE_CT_CUSTOM_ANIMATION_LIST" +#define HID_SD_CUSTOMANIMATIONPANE_PB_MOVE_UP "SD_HID_SD_CUSTOMANIMATIONPANE_PB_MOVE_UP" +#define HID_SD_CUSTOMANIMATIONPANE_PB_MOVE_DOWN "SD_HID_SD_CUSTOMANIMATIONPANE_PB_MOVE_DOWN" +#define HID_SD_CUSTOMANIMATIONPANE_PB_PLAY "SD_HID_SD_CUSTOMANIMATIONPANE_PB_PLAY" +#define HID_SD_CUSTOMANIMATIONPANE_PB_SLIDE_SHOW "SD_HID_SD_CUSTOMANIMATIONPANE_PB_SLIDE_SHOW" +#define HID_SD_CUSTOMANIMATIONPANE_CB_AUTOPREVIEW "SD_HID_SD_CUSTOMANIMATIONPANE_CB_AUTOPREVIEW" + +#define HID_SD_ANIMATIONSCHEMESPANE_LB_ANIMATION_SCHEMES "SD_HID_SD_ANIMATIONSCHEMESPANE_LB_ANIMATION_SCHEMES" +#define HID_SD_ANIMATIONSCHEMESPANE_PB_APPLY_TO_ALL "SD_HID_SD_ANIMATIONSCHEMESPANE_PB_APPLY_TO_ALL" +#define HID_SD_ANIMATIONSCHEMESPANE_PB_PLAY "SD_HID_SD_ANIMATIONSCHEMESPANE_PB_PLAY" +#define HID_SD_ANIMATIONSCHEMESPANE_PB_SLIDE_SHOW "SD_HID_SD_ANIMATIONSCHEMESPANE_PB_SLIDE_SHOW" +#define HID_SD_ANIMATIONSCHEMESPANE_CB_AUTO_PREVIEW "SD_HID_SD_ANIMATIONSCHEMESPANE_CB_AUTO_PREVIEW" + +#define HID_SD_SLIDETRANSITIONPANE_LB_SLIDE_TRANSITIONS "SD_HID_SD_SLIDETRANSITIONPANE_LB_SLIDE_TRANSITIONS" +#define HID_SD_SLIDETRANSITIONPANE_LB_SPEED "SD_HID_SD_SLIDETRANSITIONPANE_LB_SPEED" +#define HID_SD_SLIDETRANSITIONPANE_LB_SOUND "SD_HID_SD_SLIDETRANSITIONPANE_LB_SOUND" +#define HID_SD_SLIDETRANSITIONPANE_CB_LOOP_SOUND "SD_HID_SD_SLIDETRANSITIONPANE_CB_LOOP_SOUND" +#define HID_SD_SLIDETRANSITIONPANE_RB_ADVANCE_ON_MOUSE "SD_HID_SD_SLIDETRANSITIONPANE_RB_ADVANCE_ON_MOUSE" +#define HID_SD_SLIDETRANSITIONPANE_RB_ADVANCE_AUTO "SD_HID_SD_SLIDETRANSITIONPANE_RB_ADVANCE_AUTO" +#define HID_SD_SLIDETRANSITIONPANE_MF_ADVANCE_AUTO_AFTER "SD_HID_SD_SLIDETRANSITIONPANE_MF_ADVANCE_AUTO_AFTER" +#define HID_SD_SLIDETRANSITIONPANE_PB_APPLY_TO_ALL "SD_HID_SD_SLIDETRANSITIONPANE_PB_APPLY_TO_ALL" +#define HID_SD_SLIDETRANSITIONPANE_PB_PLAY "SD_HID_SD_SLIDETRANSITIONPANE_PB_PLAY" +#define HID_SD_SLIDETRANSITIONPANE_PB_SLIDE_SHOW "SD_HID_SD_SLIDETRANSITIONPANE_PB_SLIDE_SHOW" +#define HID_SD_SLIDETRANSITIONPANE_CB_AUTO_PREVIEW "SD_HID_SD_SLIDETRANSITIONPANE_CB_AUTO_PREVIEW" + +#define HID_SD_TASK_PANE_VIEW_MENU "SD_HID_SD_TASK_PANE_VIEW_MENU" +#define HID_SD_TASK_PANE_PREVIEW_CURRENT "SD_HID_SD_TASK_PANE_PREVIEW_CURRENT" +#define HID_SD_TASK_PANE_PREVIEW_RECENT "SD_HID_SD_TASK_PANE_PREVIEW_RECENT" +#define HID_SD_TASK_PANE_PREVIEW_ALL "SD_HID_SD_TASK_PANE_PREVIEW_ALL" +#define HID_SD_TASK_PANE_PREVIEW_LAYOUTS "SD_HID_SD_TASK_PANE_PREVIEW_LAYOUTS" + +#define HID_SD_CUSTOMANIMATIONDIALOG_ENTRANCE "SD_HID_SD_CUSTOMANIMATIONDIALOG_ENTRANCE" +#define HID_SD_CUSTOMANIMATIONDIALOG_EMPHASIS "SD_HID_SD_CUSTOMANIMATIONDIALOG_EMPHASIS" +#define HID_SD_CUSTOMANIMATIONDIALOG_EXIT "SD_HID_SD_CUSTOMANIMATIONDIALOG_EXIT" +#define HID_SD_CUSTOMANIMATIONDIALOG_MOTIONPATH "SD_HID_SD_CUSTOMANIMATIONDIALOG_MOTIONPATH" +#define HID_SD_CUSTOMANIMATIONDIALOG_MISCEFFECTS "SD_HID_SD_CUSTOMANIMATIONDIALOG_MISCEFFECTS" + +#define HID_SD_CUSTOMANIMATIONPANE_PRESETPROPERTYBOX "SD_HID_SD_CUSTOMANIMATIONPANE_PRESETPROPERTYBOX" +#define HID_SD_CUSTOMANIMATIONPANE_COLORPROPERTYBOX "SD_HID_SD_CUSTOMANIMATIONPANE_COLORPROPERTYBOX" +#define HID_SD_CUSTOMANIMATIONPANE_FONTPROPERTYBOX "SD_HID_SD_CUSTOMANIMATIONPANE_FONTPROPERTYBOX" +#define HID_SD_CUSTOMANIMATIONPANE_CHARHEIGHTPROPERTYBOX "SD_HID_SD_CUSTOMANIMATIONPANE_CHARHEIGHTPROPERTYBOX" +#define HID_SD_CUSTOMANIMATIONPANE_ROTATIONPROPERTYBOX "SD_HID_SD_CUSTOMANIMATIONPANE_ROTATIONPROPERTYBOX" +#define HID_SD_CUSTOMANIMATIONPANE_TRANSPARENCYPROPERTYBOX "SD_HID_SD_CUSTOMANIMATIONPANE_TRANSPARENCYPROPERTYBOX" +#define HID_SD_CUSTOMANIMATIONPANE_SCALEPROPERTYBOX "SD_HID_SD_CUSTOMANIMATIONPANE_SCALEPROPERTYBOX" +#define HID_SD_CUSTOMANIMATIONPANE_FONTSTYLEPROPERTYBOX "SD_HID_SD_CUSTOMANIMATIONPANE_FONTSTYLEPROPERTYBOX" + +#define HID_SD_SLIDESHOW_DISPLAY "SD_HID_SD_SLIDESHOW_DISPLAY" + +#define HID_SD_RULER_HORIZONTAL "SD_HID_SD_RULER_HORIZONTAL" +#define HID_SD_RULER_VERTICAL "SD_HID_SD_RULER_VERTICAL" + +#define HID_SD_TABLE_DESIGN "SD_HID_SD_TABLE_DESIGN" +#define HID_SD_ANNOTATIONS "SD_HID_SD_ANNOTATIONS" + +#define HID_DLG_INSERT_PAGES_OBJS "SD_HID_DLG_INSERT_PAGES_OBJS" +#define HID_TABPAGE_PARA_NUMBERING "SD_HID_TABPAGE_PARA_NUMBERING" +#define HID_VECTORIZE_DLG "SD_HID_VECTORIZE_DLG" +#define HID_UNDO_DELETE_WARNING "SD_HID_UNDO_DELETE_WARNING" + +#define HID_MN_SUB_GROUP "SD_HID_MN_SUB_GROUP" +#define HID_MN_SUB_GRAPHIC "SD_HID_MN_SUB_GRAPHIC" +#define HID_MN_SUB_SEND "SD_HID_MN_SUB_SEND" +#define HID_MN_SUB_MASTER_LAYOUTS "SD_HID_MN_SUB_MASTER_LAYOUTS" +#define HID_MN_SUB_VIEW "SD_HID_MN_SUB_VIEW" +#define HID_MN_SUB_MASTERPAGE "SD_HID_MN_SUB_MASTERPAGE" +#define HID_MN_SUB_FIELD "SD_HID_MN_SUB_FIELD" +#define HID_MN_SUB_TEMPLATES "SD_HID_MN_SUB_TEMPLATES" +#define HID_MN_SUB_SPELLING "SD_HID_MN_SUB_SPELLING" +#define HID_MN_SUB_POSITION "SD_HID_MN_SUB_POSITION" +#define HID_MN_SUB_OUTPUT_QUALITY "SD_HID_MN_SUB_OUTPUT_QUALITY" +#define HID_MN_SUB_PREVIEW_OUTPUT_QUALITY "SD_HID_MN_SUB_PREVIEW_OUTPUT_QUALITY" +#define HID_MN_SUB_CONVERT "SD_HID_MN_SUB_CONVERT" +#define HID_MN_SUB_MIRROR "SD_HID_MN_SUB_MIRROR" + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
\ No newline at end of file diff --git a/sd/inc/imapinfo.hxx b/sd/inc/imapinfo.hxx new file mode 100644 index 000000000000..c50740cd04e2 --- /dev/null +++ b/sd/inc/imapinfo.hxx @@ -0,0 +1,73 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_IMAPINFO_HXX +#define _SD_IMAPINFO_HXX + +#include "sdiocmpt.hxx" +#include "glob.hxx" +#include <svx/svdobj.hxx> +#include <svtools/imap.hxx> + + +/************************************************************************* +|* +|* +|* +\************************************************************************/ + +class SdIMapInfo : public SdrObjUserData, public SfxListener +{ + + ImageMap aImageMap; + +public: + SdIMapInfo() : + SdrObjUserData( SdUDInventor, SD_IMAPINFO_ID, 0 ) {}; + + SdIMapInfo( const ImageMap& rImageMap ) : + SdrObjUserData( SdUDInventor, SD_IMAPINFO_ID, 0 ), + aImageMap( rImageMap ) {}; + + SdIMapInfo( const SdIMapInfo& rIMapInfo ) : + SdrObjUserData( SdUDInventor, SD_IMAPINFO_ID, 0 ), + SfxListener(), + aImageMap( rIMapInfo.aImageMap ) {}; + + virtual ~SdIMapInfo() {}; + + virtual SdrObjUserData* Clone( SdrObject* ) const { return new SdIMapInfo( *this ); } + + void SetImageMap( const ImageMap& rIMap ) { aImageMap = rIMap; } + const ImageMap& GetImageMap() const { return aImageMap; } +}; + +#endif // _SD_IMAPINFO_HXX + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/makefile.mk b/sd/inc/makefile.mk new file mode 100644 index 000000000000..1101f31d8025 --- /dev/null +++ b/sd/inc/makefile.mk @@ -0,0 +1,48 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* +PRJ=.. + +PRJNAME=sd +TARGET=inc + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk +.INCLUDE : $(PRJ)$/util$/makefile.pmk + +# --- Files -------------------------------------------------------- +# --- Targets ------------------------------------------------------- + +.INCLUDE : target.mk + +.IF "$(ENABLE_PCH)"!="" +ALLTAR : \ + $(SLO)$/precompiled.pch \ + $(SLO)$/precompiled_ex.pch + +.ENDIF # "$(ENABLE_PCH)"!="" + diff --git a/sd/inc/misc/scopelock.hxx b/sd/inc/misc/scopelock.hxx new file mode 100644 index 000000000000..a0bef3a1004f --- /dev/null +++ b/sd/inc/misc/scopelock.hxx @@ -0,0 +1,61 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_SCOPELOCK_HXX +#define _SD_SCOPELOCK_HXX + +namespace sd +{ + +class ScopeLock +{ + friend class ScopeLockGuard; +public: + ScopeLock() : mnLock(0) {} + bool isLocked() const { return mnLock != 0; } +private: + void lock() { mnLock++; } + void unlock() { mnLock--; } + + sal_Int32 mnLock; +}; + +class ScopeLockGuard +{ +public: + ScopeLockGuard( ScopeLock& rScopeLock ) : mrScopeLock( rScopeLock ) { mrScopeLock.lock(); } + ~ScopeLockGuard() { mrScopeLock.unlock(); } +private: + ScopeLock& mrScopeLock; +}; + +} // namespace sd + +#endif // _SD_UNDOMANAGER_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/movedef.hxx b/sd/inc/movedef.hxx new file mode 100644 index 000000000000..b9ee484363f7 --- /dev/null +++ b/sd/inc/movedef.hxx @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_MOVEDEF_HXX +#define _SD_MOVEDEF_HXX + +enum MoveSpeed +{ + MOVE_SPEED_SLOW, + MOVE_SPEED_MEDIUM, + MOVE_SPEED_FAST +}; + +// muss angepasst werden! +#define MOVE_SPEED_COUNT 3 + +#endif // _SD_MOVEDEF_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/pch/precompiled_sd.cxx b/sd/inc/pch/precompiled_sd.cxx new file mode 100644 index 000000000000..4251e9bbd7c5 --- /dev/null +++ b/sd/inc/pch/precompiled_sd.cxx @@ -0,0 +1,31 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#include "precompiled_sd.hxx" + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/pch/precompiled_sd.hxx b/sd/inc/pch/precompiled_sd.hxx new file mode 100644 index 000000000000..8c8f7f0feba6 --- /dev/null +++ b/sd/inc/pch/precompiled_sd.hxx @@ -0,0 +1,913 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************cherex + * + * 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): Generated on 2006-09-01 17:49:59.201789 + +#ifdef PRECOMPILED_HEADERS + +//---MARKER--- + +// required for soiurce/ui/slideshow +// #i73256# +#ifdef WNT +#pragma warning (disable:4505) +#endif + +#include "sal/config.h" +#include "sal/types.h" + +#include "avmedia/mediaitem.hxx" +#include "avmedia/mediaplayer.hxx" +#include "avmedia/mediatoolbox.hxx" +#include "avmedia/mediawindow.hxx" + +#include "basegfx/matrix/b2dhommatrix.hxx" +#include "basegfx/polygon/b2dpolygon.hxx" +#include "basegfx/polygon/b2dpolygontools.hxx" +#include "basegfx/tools/canvastools.hxx" + +#include "basic/basmgr.hxx" +#include "basic/sberrors.hxx" +#include "basic/sbmeth.hxx" +#include "basic/sbmod.hxx" +#include "basic/sbstar.hxx" +#include "basic/sbx.hxx" + +#include "boost/function.hpp" +#include "boost/limits.hpp" +#include "boost/scoped_ptr.hpp" +#include "boost/shared_ptr.hpp" +#include "boost/weak_ptr.hpp" + +#include "canvas/elapsedtime.hxx" +#include "canvas/prioritybooster.hxx" + +#include "com/sun/star/accessibility/AccessibleEventId.hpp" +#include "com/sun/star/accessibility/AccessibleRole.hpp" +#include "com/sun/star/accessibility/AccessibleStateType.hpp" +#include "com/sun/star/accessibility/XAccessible.hpp" +#include "com/sun/star/accessibility/XAccessibleComponent.hpp" +#include "com/sun/star/accessibility/XAccessibleContext.hpp" +#include "com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp" +#include "com/sun/star/accessibility/XAccessibleEventListener.hpp" +#include "com/sun/star/accessibility/XAccessibleExtendedComponent.hpp" +#include "com/sun/star/accessibility/XAccessibleSelection.hpp" +#include "com/sun/star/animations/AnimationAdditiveMode.hpp" +#include "com/sun/star/animations/AnimationCalcMode.hpp" +#include "com/sun/star/animations/AnimationColorSpace.hpp" +#include "com/sun/star/animations/AnimationEndSync.hpp" +#include "com/sun/star/animations/AnimationFill.hpp" +#include "com/sun/star/animations/AnimationNodeType.hpp" +#include "com/sun/star/animations/AnimationRestart.hpp" +#include "com/sun/star/animations/AnimationTransformType.hpp" +#include "com/sun/star/animations/AnimationValueType.hpp" +#include "com/sun/star/animations/Event.hpp" +#include "com/sun/star/animations/EventTrigger.hpp" +#include "com/sun/star/animations/Timing.hpp" +#include "com/sun/star/animations/TransitionSubType.hpp" +#include "com/sun/star/animations/TransitionType.hpp" +#include "com/sun/star/animations/ValuePair.hpp" +#include "com/sun/star/animations/XAnimate.hpp" +#include "com/sun/star/animations/XAnimateColor.hpp" +#include "com/sun/star/animations/XAnimateMotion.hpp" +#include "com/sun/star/animations/XAnimateSet.hpp" +#include "com/sun/star/animations/XAnimateTransform.hpp" +#include "com/sun/star/animations/XAnimationNode.hpp" +#include "com/sun/star/animations/XAnimationNodeSupplier.hpp" +#include "com/sun/star/animations/XAudio.hpp" +#include "com/sun/star/animations/XCommand.hpp" +#include "com/sun/star/animations/XIterateContainer.hpp" +#include "com/sun/star/animations/XTimeContainer.hpp" +#include "com/sun/star/animations/XTransitionFilter.hpp" +#include "com/sun/star/awt/CharSet.hpp" +#include "com/sun/star/awt/FontDescriptor.hpp" +#include "com/sun/star/awt/FontFamily.hpp" +#include "com/sun/star/awt/FontPitch.hpp" +#include "com/sun/star/awt/FontSlant.hpp" +#include "com/sun/star/awt/FontUnderline.hpp" +#include "com/sun/star/awt/FontWeight.hpp" +#include "com/sun/star/awt/MouseEvent.hdl" +#include "com/sun/star/awt/MouseEvent.hpp" +#include "com/sun/star/awt/Rectangle.hpp" +#include "com/sun/star/awt/SystemPointer.hpp" +#include "com/sun/star/awt/WindowEvent.hpp" +#include "com/sun/star/awt/XControlModel.hpp" +#include "com/sun/star/awt/XDevice.hpp" +#include "com/sun/star/awt/XFocusListener.hpp" +#include "com/sun/star/awt/XFont.hpp" +#include "com/sun/star/awt/XGraphics.hpp" +#include "com/sun/star/awt/XMouseListener.hpp" +#include "com/sun/star/awt/XMouseMotionListener.hpp" +#include "com/sun/star/awt/XPaintListener.hpp" +#include "com/sun/star/awt/XPointer.hpp" +#include "com/sun/star/awt/XWindow.hpp" +#include "com/sun/star/awt/XWindowListener.hpp" +#include "com/sun/star/awt/XWindowPeer.hpp" +#include "com/sun/star/beans/NamedValue.hpp" +#include "com/sun/star/beans/Property.hpp" +#include "com/sun/star/beans/PropertyAttribute.hpp" +#include "com/sun/star/beans/PropertyChangeEvent.hpp" +#include "com/sun/star/beans/PropertyState.hpp" +#include "com/sun/star/beans/PropertyValue.hdl" +#include "com/sun/star/beans/PropertyValue.hpp" +#include "com/sun/star/beans/PropertyValues.hpp" +#include "com/sun/star/beans/XMultiPropertySet.hpp" +#include "com/sun/star/beans/XPropertyAccess.hpp" +#include "com/sun/star/beans/XPropertyChangeListener.hpp" +#include "com/sun/star/beans/XPropertySet.hpp" +#include "com/sun/star/beans/XPropertySetInfo.hpp" +#include "com/sun/star/beans/XPropertyState.hpp" +#include "com/sun/star/container/XChild.hpp" +#include "com/sun/star/container/XEnumerationAccess.hpp" +#include "com/sun/star/container/XHierarchicalNameAccess.hpp" +#include "com/sun/star/container/XIndexAccess.hpp" +#include "com/sun/star/container/XIndexContainer.hpp" +#include "com/sun/star/container/XIndexReplace.hpp" +#include "com/sun/star/container/XNameAccess.hpp" +#include "com/sun/star/container/XNameContainer.hpp" +#include "com/sun/star/container/XNameReplace.hpp" +#include "com/sun/star/container/XNamed.hpp" +#include "com/sun/star/document/PrinterIndependentLayout.hpp" +#include "com/sun/star/document/XDocumentInfoSupplier.hpp" +#include "com/sun/star/document/XEventBroadcaster.hpp" +#include "com/sun/star/document/XEventListener.hpp" +#include "com/sun/star/document/XEventsSupplier.hpp" +#include "com/sun/star/document/XExporter.hpp" +#include "com/sun/star/document/XExtendedFilterDetection.hpp" +#include "com/sun/star/document/XFilter.hpp" +#include "com/sun/star/document/XGraphicObjectResolver.hpp" +#include "com/sun/star/document/XImporter.hpp" +#include "com/sun/star/document/XLinkTargetSupplier.hpp" +#include "com/sun/star/document/XViewDataSupplier.hpp" +#include "com/sun/star/drawing/Alignment.hpp" +#include "com/sun/star/drawing/BezierPoint.hpp" +#include "com/sun/star/drawing/BitmapMode.hpp" +#include "com/sun/star/drawing/CircleKind.hpp" +#include "com/sun/star/drawing/DashStyle.hpp" +#include "com/sun/star/drawing/FillStyle.hpp" +#include "com/sun/star/drawing/FlagSequence.hpp" +#include "com/sun/star/drawing/Hatch.hpp" +#include "com/sun/star/drawing/HatchStyle.hpp" +#include "com/sun/star/drawing/LineDash.hpp" +#include "com/sun/star/drawing/LineEndType.hpp" +#include "com/sun/star/drawing/LineStyle.hpp" +#include "com/sun/star/drawing/PointSequence.hpp" +#include "com/sun/star/drawing/PolyPolygonBezierCoords.hpp" +#include "com/sun/star/drawing/PolygonFlags.hpp" +#include "com/sun/star/drawing/PolygonKind.hpp" +#include "com/sun/star/drawing/TextAdjust.hpp" +#include "com/sun/star/drawing/XConnectorShape.hpp" +#include "com/sun/star/drawing/XControlShape.hpp" +#include "com/sun/star/drawing/XDrawPage.hpp" +#include "com/sun/star/drawing/XDrawPageDuplicator.hpp" +#include "com/sun/star/drawing/XDrawPageSummarizer.hpp" +#include "com/sun/star/drawing/XDrawPages.hpp" +#include "com/sun/star/drawing/XDrawPagesSupplier.hpp" +#include "com/sun/star/drawing/XDrawView.hpp" +#include "com/sun/star/drawing/XLayer.hpp" +#include "com/sun/star/drawing/XLayerManager.hpp" +#include "com/sun/star/drawing/XLayerSupplier.hpp" +#include "com/sun/star/drawing/XMasterPageTarget.hpp" +#include "com/sun/star/drawing/XMasterPagesSupplier.hpp" +#include "com/sun/star/drawing/XShape.hpp" +#include "com/sun/star/drawing/XShapeDescriptor.hpp" +#include "com/sun/star/drawing/XShapeGrouper.hpp" +#include "com/sun/star/drawing/XShapes.hpp" +#include "com/sun/star/drawing/XUniversalShapeDescriptor.hpp" +#include "com/sun/star/embed/Aspects.hpp" +#include "com/sun/star/embed/ElementModes.hpp" +#include "com/sun/star/embed/EmbedMisc.hpp" +#include "com/sun/star/embed/EmbedStates.hpp" +#include "com/sun/star/embed/NoVisualAreaSizeException.hpp" +#include "com/sun/star/embed/VerbAttributes.hpp" +#include "com/sun/star/embed/VerbDescriptor.hpp" +#include "com/sun/star/embed/XEmbedObjectClipboardCreator.hpp" +#include "com/sun/star/embed/XEmbedPersist.hpp" +#include "com/sun/star/embed/XTransactedObject.hpp" +#include "com/sun/star/embed/XVisualObject.hpp" +#include "com/sun/star/form/FormButtonType.hpp" +#include "com/sun/star/frame/DispatchDescriptor.hpp" +#include "com/sun/star/frame/DispatchResultState.hpp" +#include "com/sun/star/frame/FeatureStateEvent.hpp" +#include "com/sun/star/frame/FrameAction.hpp" +#include "com/sun/star/frame/FrameActionEvent.hpp" +#include "com/sun/star/frame/LayoutManagerEvents.hpp" +#include "com/sun/star/frame/XComponentLoader.hpp" +#include "com/sun/star/frame/XController.hpp" +#include "com/sun/star/frame/XDesktop.hpp" +#include "com/sun/star/frame/XDispatch.hpp" +#include "com/sun/star/frame/XDispatchProvider.hpp" +#include "com/sun/star/frame/XDocumentTemplates.hpp" +#include "com/sun/star/frame/XFrame.hdl" +#include "com/sun/star/frame/XFrame.hpp" +#include "com/sun/star/frame/XFrameActionListener.hpp" +#include "com/sun/star/frame/XLayoutManager.hpp" +#include "com/sun/star/frame/XLayoutManagerEventBroadcaster.hpp" +#include "com/sun/star/frame/XModel.hdl" +#include "com/sun/star/frame/XModel.hpp" +#include "com/sun/star/frame/XModuleManager.hpp" +#include "com/sun/star/frame/XNotifyingDispatch.hpp" +#include "com/sun/star/frame/XStatusListener.hpp" +#include "com/sun/star/frame/XStorable.hpp" +#include "com/sun/star/geometry/AffineMatrix2D.hdl" +#include "com/sun/star/geometry/AffineMatrix2D.hpp" +#include "com/sun/star/graphic/GraphicType.hpp" +#include "com/sun/star/graphic/XGraphicProvider.hpp" +#include "com/sun/star/i18n/CharacterIteratorMode.hdl" +#include "com/sun/star/i18n/CharacterIteratorMode.hpp" +#include "com/sun/star/i18n/ScriptType.hdl" +#include "com/sun/star/i18n/ScriptType.hpp" +#include "com/sun/star/i18n/TextConversionOption.hpp" +#include "com/sun/star/i18n/TransliterationModules.hdl" +#include "com/sun/star/i18n/WordType.hpp" +#include "com/sun/star/i18n/XBreakIterator.hpp" +#include "com/sun/star/i18n/XCollator.hpp" +#include "com/sun/star/i18n/XForbiddenCharacters.hpp" +#include "com/sun/star/io/XActiveDataControl.hpp" +#include "com/sun/star/io/XActiveDataSource.hpp" +#include "com/sun/star/io/XInputStream.hpp" +#include "com/sun/star/io/XStream.hpp" +#include "com/sun/star/lang/DisposedException.hpp" +#include "com/sun/star/lang/EventObject.hpp" +#include "com/sun/star/lang/IllegalArgumentException.hpp" +#include "com/sun/star/lang/IndexOutOfBoundsException.hpp" +#include "com/sun/star/lang/Locale.hpp" +#include "com/sun/star/lang/NoSupportException.hpp" +#include "com/sun/star/lang/ServiceNotRegisteredException.hpp" +#include "com/sun/star/lang/WrappedTargetRuntimeException.hpp" +#include "com/sun/star/lang/XComponent.hpp" +#include "com/sun/star/lang/XEventListener.hdl" +#include "com/sun/star/lang/XEventListener.hpp" +#include "com/sun/star/lang/XInitialization.hpp" +#include "com/sun/star/lang/XMultiServiceFactory.hpp" +#include "com/sun/star/lang/XServiceInfo.hpp" +#include "com/sun/star/lang/XSingleServiceFactory.hpp" +#include "com/sun/star/lang/XTypeProvider.hpp" +#include "com/sun/star/lang/XUnoTunnel.hpp" +#include "com/sun/star/linguistic2/XHyphenator.hpp" +#include "com/sun/star/linguistic2/XSpellChecker1.hpp" +#include "com/sun/star/linguistic2/XThesaurus.hpp" +#include "com/sun/star/media/XManager.hpp" +#include "com/sun/star/media/XPlayer.hpp" +#include "com/sun/star/packages/zip/ZipIOException.hpp" +#include "com/sun/star/presentation/AnimationEffect.hpp" +#include "com/sun/star/presentation/AnimationSpeed.hpp" +#include "com/sun/star/presentation/ClickAction.hpp" +#include "com/sun/star/presentation/EffectCommands.hpp" +#include "com/sun/star/presentation/EffectNodeType.hpp" +#include "com/sun/star/presentation/EffectPresetClass.hpp" +#include "com/sun/star/presentation/FadeEffect.hpp" +#include "com/sun/star/presentation/ParagraphTarget.hpp" +#include "com/sun/star/presentation/PresentationRange.hpp" +#include "com/sun/star/presentation/ShapeAnimationSubType.hpp" +#include "com/sun/star/presentation/TextAnimationType.hpp" +#include "com/sun/star/presentation/XCustomPresentationSupplier.hpp" +#include "com/sun/star/presentation/XHandoutMasterSupplier.hpp" +#include "com/sun/star/presentation/XPresentation.hpp" +#include "com/sun/star/presentation/XPresentationPage.hpp" +#include "com/sun/star/presentation/XPresentationSupplier.hpp" +#include "com/sun/star/registry/XRegistryKey.hpp" +#include "com/sun/star/rendering/XSpriteCanvas.hpp" +#include "com/sun/star/scanner/XScannerManager.hpp" +#include "com/sun/star/sdbc/XResultSet.hpp" +#include "com/sun/star/sdbc/XRow.hpp" +#include "com/sun/star/style/LineSpacing.hpp" +#include "com/sun/star/style/LineSpacingMode.hpp" +#include "com/sun/star/style/ParagraphAdjust.hpp" +#include "com/sun/star/style/TabStop.hpp" +#include "com/sun/star/style/VerticalAlignment.hpp" +#include "com/sun/star/style/XStyle.hpp" +#include "com/sun/star/style/XStyleFamiliesSupplier.hpp" +#include "com/sun/star/task/XInteractionHandler.hpp" +#include "com/sun/star/task/XStatusIndicator.hpp" +#include "com/sun/star/task/XStatusIndicatorFactory.hpp" +#include "com/sun/star/task/XStatusIndicatorSupplier.hpp" +#include "com/sun/star/text/FontRelief.hpp" +#include "com/sun/star/text/WritingMode.hpp" +#include "com/sun/star/text/XSimpleText.hpp" +#include "com/sun/star/text/XText.hpp" +#include "com/sun/star/text/XTextField.hpp" +#include "com/sun/star/text/XTextFieldsSupplier.hpp" +#include "com/sun/star/text/XTextRange.hpp" +#include "com/sun/star/text/XTextRangeCompare.hpp" +#include "com/sun/star/text/XTextViewCursor.hpp" +#include "com/sun/star/ucb/CommandAbortedException.hpp" +#include "com/sun/star/ucb/InteractiveAppException.hpp" +#include "com/sun/star/ucb/XAnyCompareFactory.hpp" +#include "com/sun/star/ucb/XCommandEnvironment.hpp" +#include "com/sun/star/ucb/XContent.hpp" +#include "com/sun/star/ucb/XContentAccess.hpp" +#include "com/sun/star/ucb/XSimpleFileAccess.hpp" +#include "com/sun/star/ucb/XSimpleFileAccess2.hpp" +#include "com/sun/star/ui/UIElementType.hpp" +#include "com/sun/star/ui/XImageManager.hpp" +#include "com/sun/star/ui/XModuleUIConfigurationManagerSupplier.hpp" +#include "com/sun/star/ui/dialogs/CommonFilePickerElementIds.hpp" +#include "com/sun/star/ui/dialogs/ExecutableDialogResults.hpp" +#include "com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.hpp" +#include "com/sun/star/ui/dialogs/ListboxControlActions.hpp" +#include "com/sun/star/ui/dialogs/TemplateDescription.hpp" +#include "com/sun/star/ui/dialogs/XExecutableDialog.hpp" +#include "com/sun/star/ui/dialogs/XFilePicker.hpp" +#include "com/sun/star/ui/dialogs/XFilePickerControlAccess.hpp" +#include "com/sun/star/ui/dialogs/XFilePickerListener.hpp" +#include "com/sun/star/ui/dialogs/XFilePickerNotifier.hpp" +#include "com/sun/star/ui/dialogs/XFilterManager.hpp" +#include "com/sun/star/uno/Any.h" +#include "com/sun/star/uno/Any.hxx" +#include "com/sun/star/uno/Exception.hpp" +#include "com/sun/star/uno/Reference.h" +#include "com/sun/star/uno/Reference.hxx" +#include "com/sun/star/uno/RuntimeException.hdl" +#include "com/sun/star/uno/RuntimeException.hpp" +#include "com/sun/star/uno/Sequence.h" +#include "com/sun/star/uno/Sequence.hxx" +#include "com/sun/star/uno/Type.hxx" +#include "com/sun/star/uno/XInterface.hdl" +#include "com/sun/star/uno/XInterface.hpp" +#include "com/sun/star/uri/XUriReferenceFactory.hpp" +#include "com/sun/star/uri/XVndSunStarScriptUrl.hpp" +#include "com/sun/star/util/MeasureUnit.hpp" +#include "com/sun/star/util/XArchiver.hpp" +#include "com/sun/star/util/XChangesListener.hpp" +#include "com/sun/star/util/XChangesNotifier.hpp" +#include "com/sun/star/util/XCloneable.hpp" +#include "com/sun/star/util/XCloseable.hpp" +#include "com/sun/star/util/XModifyListener.hpp" +#include "com/sun/star/util/XReplaceDescriptor.hpp" +#include "com/sun/star/util/XReplaceable.hpp" +#include "com/sun/star/util/XSearchDescriptor.hpp" +#include "com/sun/star/util/XSearchable.hpp" +#include "com/sun/star/util/XURLTransformer.hpp" +#include "com/sun/star/view/DocumentZoomType.hpp" +#include "com/sun/star/view/PaperFormat.hpp" +#include "com/sun/star/view/PaperOrientation.hpp" +#include "com/sun/star/view/XRenderable.hpp" +#include "com/sun/star/view/XScreenCursor.hpp" +#include "com/sun/star/view/XSelectionSupplier.hpp" +#include "com/sun/star/xml/sax/InputSource.hpp" +#include "com/sun/star/xml/sax/SAXParseException.hdl" +#include "com/sun/star/xml/sax/SAXParseException.hpp" +#include "com/sun/star/xml/sax/XDTDHandler.hpp" +#include "com/sun/star/xml/sax/XDocumentHandler.hpp" +#include "com/sun/star/xml/sax/XEntityResolver.hpp" +#include "com/sun/star/xml/sax/XErrorHandler.hpp" +#include "com/sun/star/xml/sax/XParser.hpp" + +#include "comphelper/accessibleeventnotifier.hxx" +#include "comphelper/anytostring.hxx" +#include "comphelper/broadcasthelper.hxx" +#include "comphelper/documentconstants.hxx" +#include "comphelper/implementationreference.hxx" +#include "comphelper/listenernotification.hxx" +#include "comphelper/processfactory.hxx" +#include "comphelper/propertysethelper.hxx" +#include "comphelper/sequence.hxx" +#include "comphelper/stl_types.hxx" +#include "comphelper/storagehelper.hxx" +#include "comphelper/uno3.hxx" + +#include "cppcanvas/basegfxfactory.hxx" +#include "cppcanvas/spritecanvas.hxx" +#include "cppcanvas/vclfactory.hxx" + +#include "cppu/macros.hxx" +#include "cppu/unotype.hxx" + +#include "cppuhelper/bootstrap.hxx" +#include "cppuhelper/exc_hlp.hxx" +#include "cppuhelper/factory.hxx" +#include "cppuhelper/interfacecontainer.h" +#include "cppuhelper/propshlp.hxx" +#include "cppuhelper/weak.hxx" +#include "cppuhelper/weakref.hxx" + + +#include "svtools/grfmgr.hxx" + +#include "helper/simplereferencecomponent.hxx" + +#include "i18npool/mslangid.hxx" + +#include "misc/scopelock.hxx" + +#include "osl/diagnose.h" +#include "osl/doublecheckedlocking.h" +#include "osl/endian.h" +#include "osl/file.hxx" +#include "osl/getglobalmutex.hxx" +#include "osl/interlck.h" +#include "osl/module.hxx" +#include "osl/mutex.hxx" +#include "osl/thread.hxx" + +#include "rsc/rscsfx.hxx" + +#include "rtl/crc.h" +#include "rtl/logfile.hxx" +#include "rtl/math.hxx" +#include "rtl/memory.h" +#include "rtl/tencinfo.h" +#include "rtl/textenc.h" +#include "rtl/ustrbuf.hxx" +#include "rtl/ustring.h" +#include "rtl/ustring.hxx" +#include "rtl/uuid.h" + +#include "sfx2/app.hxx" +#include "sfx2/basedlgs.hxx" +#include "sfx2/bindings.hxx" +#include "sfx2/childwin.hxx" +#include "sfx2/ctrlitem.hxx" +#include "sfx2/dispatch.hxx" +#include "sfx2/docfac.hxx" +#include "sfx2/docfilt.hxx" +#include "sfx2/dockwin.hxx" +#include "sfx2/doctempl.hxx" +#include "sfx2/event.hxx" +#include "sfx2/fcontnr.hxx" +#include "sfx2/filedlghelper.hxx" +#include "sfx2/frame.hxx" +#include "sfx2/imagemgr.hxx" +#include "sfx2/imgmgr.hxx" +#include "sfx2/ipclient.hxx" +#include "sfx2/lnkbase.hxx" +#include "sfx2/mnumgr.hxx" +#include "sfx2/module.hxx" +#include "sfx2/msg.hxx" +#include "sfx2/new.hxx" +#include "sfx2/objface.hxx" +#include "sfx2/objsh.hxx" +#include "sfx2/printer.hxx" +#include "sfx2/progress.hxx" +#include "sfx2/request.hxx" +#include "sfx2/sfx.hrc" +#include "sfx2/sfxbasecontroller.hxx" +#include "sfx2/sfxbasemodel.hxx" +#include "sfx2/sfxdefs.hxx" +#include "sfx2/sfxdlg.hxx" +#include "sfx2/sfxsids.hrc" +#include "sfx2/sfxuno.hxx" +#include "sfx2/shell.hxx" +#include "sfx2/styledlg.hxx" +#include "sfx2/tabdlg.hxx" +#include "sfx2/tbxctrl.hxx" +#include "sfx2/templdlg.hxx" +#include "sfx2/tplpitem.hxx" +#include "sfx2/viewfac.hxx" +#include "sfx2/viewfrm.hxx" +#include "sfx2/viewsh.hxx" + +#include "sot/clsids.hxx" +#include "sot/exchange.hxx" +#include "sot/filelist.hxx" +#include "sot/formats.hxx" +#include "sot/object.hxx" +#include "sot/storage.hxx" +#include "sot/storinfo.hxx" + +#include "svtools/FilterConfigItem.hxx" +#include "svl/aeitem.hxx" +#include "svl/brdcst.hxx" +#include "svtools/colorcfg.hxx" +#include "svtools/colrdlg.hxx" +#include "svtools/controldims.hrc" +#include "svl/ctloptions.hxx" +#include "svtools/ctrlbox.hxx" +#include "svtools/ctrltool.hxx" +#include "svtools/ehdl.hxx" +#include "svl/eitem.hxx" +#include "svtools/filedlg.hxx" +#include "svtools/filter.hxx" +#include "svl/flagitem.hxx" +#include "svtools/fltcall.hxx" +#include "unotools/fltrcfg.hxx" +#include "svl/globalnameitem.hxx" +#include "svl/hint.hxx" +#include "unotools/historyoptions.hxx" +#include "svtools/htmlout.hxx" +#include "svtools/imap.hxx" +#include "svtools/imapcirc.hxx" +#include "svtools/imapobj.hxx" +#include "svtools/imappoly.hxx" +#include "svtools/imaprect.hxx" +#include "svl/inethist.hxx" +#include "svl/intitem.hxx" +#include "svl/itemiter.hxx" +#include "svl/itempool.hxx" +#include "svl/itemset.hxx" +#include "svl/languageoptions.hxx" +#include "svl/lckbitem.hxx" +#include "unotools/lingucfg.hxx" +#include "unotools/linguprops.hxx" +#include "svl/listener.hxx" +#include "svl/lstner.hxx" +#include "unotools/misccfg.hxx" +#include "unotools/pathoptions.hxx" +#include "svl/poolitem.hxx" +#include "svtools/prgsbar.hxx" +#include "svl/ptitem.hxx" +#include "svl/rectitem.hxx" +#include "unotools/saveopt.hxx" +#include "svtools/sfxecode.hxx" +#include "svl/slstitm.hxx" +#include "svl/smplhint.hxx" +#include "svtools/soerr.hxx" +#include "svl/solar.hrc" +#include "svtools/sores.hxx" +#include "svtools/stdctrl.hxx" +#include "svl/stritem.hxx" +#include "svl/style.hrc" +#include "svl/style.hxx" +#include "svtools/svmedit.hxx" +#include "svl/svstdarr.hxx" +#include "unotools/syslocale.hxx" +#include "svtools/tabbar.hxx" +#include "svtools/treelist.hxx" +#include "svl/undo.hxx" +#include "svtools/unoimap.hxx" +#include "svl/urihelper.hxx" +#include "svl/urlbmk.hxx" +#include "unotools/useroptions.hxx" +#include "svtools/valueset.hxx" +#include "unotools/viewoptions.hxx" +#include "svl/visitem.hxx" +#include "svl/whiter.hxx" +#include "svtools/wmf.hxx" +#include "svl/zforlist.hxx" + + +#include "svx/SpellDialogChildWindow.hxx" +#include "editeng/SpellPortions.hxx" +#include "svx/UnoNamespaceMap.hxx" +#include "editeng/adjitem.hxx" +#include "svx/algitem.hxx" +#include "svx/bmpmask.hxx" +#include "editeng/boxitem.hxx" +#include "editeng/brshitem.hxx" +#include "editeng/bulitem.hxx" +#include "svx/camera3d.hxx" +#include "editeng/charreliefitem.hxx" +#include "svx/clipboardctl.hxx" +#include "svx/clipfmtitem.hxx" +#include "editeng/cntritem.hxx" +#include "editeng/colritem.hxx" +#include "editeng/crsditem.hxx" +#include "svx/cube3d.hxx" +#include "svx/dataaccessdescriptor.hxx" +#include "svx/dbexch.hrc" +#include "svx/dialmgr.hxx" +#include "svx/dialogs.hrc" +#include "svx/dlgctrl.hxx" +#include "svx/e3dundo.hxx" +#include "editeng/editdata.hxx" +#include "editeng/editeng.hxx" +#include "editeng/editobj.hxx" +#include "editeng/editstat.hxx" +#include "editeng/editund2.hxx" +#include "editeng/editview.hxx" +#include "editeng/eeitem.hxx" +#include "filter/msfilter/escherex.hxx" +#include "editeng/escpitem.hxx" +#include "svx/extrusionbar.hxx" +#include "svx/f3dchild.hxx" +#include "editeng/fhgtitem.hxx" +#include "svx/fillctrl.hxx" +#include "svx/flagsdef.hxx" +#include "editeng/flditem.hxx" +#include "editeng/flstitem.hxx" +#include "svx/fmdmod.hxx" +#include "svx/fmglob.hxx" +#include "svx/fmobjfac.hxx" +#include "svx/fmpage.hxx" +#include "svx/fntctl.hxx" +#include "svx/fntszctl.hxx" +#include "editeng/fontitem.hxx" +#include "svx/fontwork.hxx" +#include "svx/fontworkbar.hxx" +#include "svx/fontworkgallery.hxx" +#include "editeng/forbiddencharacterstable.hxx" +#include "svx/formatpaintbrushctrl.hxx" +#include "editeng/frmdiritem.hxx" +#include "svx/galbrws.hxx" +#include "svx/gallery.hxx" +#include "svx/globl3d.hxx" +#include "svx/globlmn.hrc" +#include "svx/grafctrl.hxx" +#include "svx/hlnkitem.hxx" +#include "svx/hyperdlg.hxx" +#include "svx/imapdlg.hxx" +#include "svx/itemwin.hxx" +#include "svx/langbox.hxx" +#include "editeng/langitem.hxx" +#include "svx/lathe3d.hxx" +#include "svx/lboxctrl.hxx" +#include "svx/linectrl.hxx" +#include "sfx2/linkmgr.hxx" +#include "editeng/lrspitem.hxx" +#include "editeng/lspcitem.hxx" +#include "svx/modctrl.hxx" +#include "svx/msdffdef.hxx" +#include "filter/msfilter/msocximex.hxx" +#include "filter/msfilter/msoleexp.hxx" +#include "editeng/numitem.hxx" +#include "svx/obj3d.hxx" +#include "svx/objfac3d.hxx" +#include "svx/ofaitem.hxx" +#include "sfx2/opengrf.hxx" +#include "svx/optgrid.hxx" +#include "editeng/outliner.hxx" +#include "editeng/outlobj.hxx" +#include "editeng/paperinf.hxx" +#include "editeng/pbinitem.hxx" +#include "svx/pfiledlg.hxx" +#include "svx/polysc3d.hxx" +#include "svx/postattr.hxx" +#include "editeng/postitem.hxx" +#include "editeng/protitem.hxx" +#include "svx/prtqry.hxx" +#include "svx/pszctrl.hxx" +#include "svx/rectenum.hxx" +#include "svx/ruler.hxx" +#include "svx/rulritem.hxx" +#include "svx/scene3d.hxx" +#include "editeng/scriptspaceitem.hxx" +#include "editeng/scripttypeitem.hxx" +#include "svx/sdasitm.hxx" +#include "svx/sderitm.hxx" +#include "svx/sdr/contact/displayinfo.hxx" +#include "svx/sdr/contact/objectcontact.hxx" +#include "svx/sdr/contact/objectcontactofobjlistpainter.hxx" +#include "svx/sdr/contact/objectcontactofpageview.hxx" +#include "svx/sdr/contact/viewcontact.hxx" +#include "svx/sdr/contact/viewcontactofpageobj.hxx" +#include "svx/sdr/contact/viewcontactofsdrmediaobj.hxx" +#include "svx/sdr/contact/viewobjectcontact.hxx" +#include "svx/sdrobjectuser.hxx" +#include "svx/sdshcitm.hxx" +#include "svx/sdshitm.hxx" +#include "svx/sdtagitm.hxx" +#include "svx/sdtakitm.hxx" +#include "svx/sdtmfitm.hxx" +#include "editeng/shaditem.hxx" +#include "editeng/shdditem.hxx" +#include "svx/sphere3d.hxx" +#include "svx/srchdlg.hxx" +#include "svx/strarray.hxx" +#include "svx/svdattr.hxx" +#include "svx/svddef.hxx" +#include "svx/svdetc.hxx" +#include "editeng/measfld.hxx" +#include "svx/svdglue.hxx" +#include "svx/svditer.hxx" +#include "svx/svdlayer.hxx" +#include "svx/svdmark.hxx" +#include "svx/svdoashp.hxx" +#include "svx/svdoattr.hxx" +#include "svx/svdobj.hxx" +#include "svx/svdocapt.hxx" +#include "svx/svdocirc.hxx" +#include "svx/svdograf.hxx" +#include "svx/svdogrp.hxx" +#include "svx/svdomeas.hxx" +#include "svx/svdomedia.hxx" +#include "svx/svdoole2.hxx" +#include "svx/svdopage.hxx" +#include "svx/svdopath.hxx" +#include "svx/svdorect.hxx" +#include "svx/svdotext.hxx" +#include "svx/svdouno.hxx" +#include "svx/svdoutl.hxx" +#include "svx/svdpage.hxx" +#include "svx/svdpntv.hxx" +#include "svx/svdpool.hxx" +#include "svx/svdsob.hxx" +#include "svx/svdtypes.hxx" +#include "svx/svdundo.hxx" +#include "svx/svdviter.hxx" +#include "svx/svx3ditems.hxx" +#include "svx/svxdlg.hxx" +#include "editeng/svxenum.hxx" +#include "svx/svxerr.hxx" +#include "editeng/svxfont.hxx" +#include "svx/svxgrahicitem.hxx" +#include "svx/svxids.hrc" +#include "filter/msfilter/svxmsbas.hxx" +#include "svx/sxciaitm.hxx" +#include "svx/sxekitm.hxx" +#include "svx/sxelditm.hxx" +#include "svx/tabarea.hxx" +#include "svx/tabline.hxx" +#include "svx/tbcontrl.hxx" +#include "svx/tbxcolor.hxx" +#include "svx/tbxcustomshapes.hxx" +#include "editeng/tstpitem.hxx" +#include "editeng/udlnitem.hxx" +#include "editeng/ulspitem.hxx" +#include "svx/unoapi.hxx" +#include "editeng/unoedhlp.hxx" +#include "editeng/unoedsrc.hxx" +#include "svx/unofill.hxx" +#include "editeng/unoforou.hxx" +#include "editeng/unoipset.hxx" +#include "editeng/unolingu.hxx" +#include "svx/unomaster.hxx" +#include "svx/unomodel.hxx" +#include "editeng/unonrule.hxx" +#include "editeng/unoviwou.hxx" +#include "svx/verttexttbxctrl.hxx" +#include "editeng/wghtitem.hxx" +#include "editeng/writingmodeitem.hxx" +#include "svx/xbtmpit.hxx" +#include "svx/xcolit.hxx" +#include "svx/xdash.hxx" +#include "svx/xdef.hxx" +#include "svx/xenum.hxx" +#include "svx/xexch.hxx" +#include "svx/xfillit.hxx" +#include "svx/xfillit0.hxx" +#include "svx/xflbmtit.hxx" +#include "svx/xflbstit.hxx" +#include "svx/xflclit.hxx" +#include "svx/xflgrit.hxx" +#include "svx/xflhtit.hxx" +#include "svx/xftadit.hxx" +#include "svx/xftdiit.hxx" +#include "svx/xftmrit.hxx" +#include "svx/xftouit.hxx" +#include "svx/xftsfit.hxx" +#include "svx/xftshcit.hxx" +#include "svx/xftshit.hxx" +#include "svx/xftshxy.hxx" +#include "svx/xftstit.hxx" +#include "svx/xgrad.hxx" +#include "svx/xit.hxx" +#include "svx/xlineit.hxx" +#include "svx/xlineit0.hxx" +#include "svx/xlnclit.hxx" +#include "svx/xlndsit.hxx" +#include "svx/xlnedcit.hxx" +#include "svx/xlnedit.hxx" +#include "svx/xlnedwit.hxx" +#include "svx/xlnstcit.hxx" +#include "svx/xlnstit.hxx" +#include "svx/xlnstwit.hxx" +#include "svx/xlnwtit.hxx" +#include "editeng/xmlcnitm.hxx" +#include "svx/xmlsecctrl.hxx" +#include "svx/xoutbmp.hxx" +#include "svx/xpoly.hxx" +#include "svx/xtable.hxx" +#include "svx/xtextit0.hxx" +#include "svx/zoom_def.hxx" +#include "svx/zoomctrl.hxx" +#include "svx/zoomitem.hxx" + +#include "toolkit/awt/vclxdevice.hxx" +#include "toolkit/helper/vclunohelper.hxx" +#include "toolkit/unohlp.hxx" + +#include "tools/bigint.hxx" +#include "tools/color.hxx" +#include "tools/config.hxx" +#include "tools/contnr.hxx" +#include "tools/datetime.hxx" +#include "tools/debug.hxx" +#include "tools/errcode.hxx" +#include "tools/errinf.hxx" +#include "tools/fract.hxx" +#include "tools/fsys.hxx" +#include "tools/gen.hxx" +#include "tools/globname.hxx" +#include "tools/link.hxx" +#include "tools/multisel.hxx" +#include "tools/poly.hxx" +#include "tools/pstm.hxx" +#include "tools/rc.hxx" +#include "tools/ref.hxx" +#include "tools/resid.hxx" +#include "tools/resmgr.hxx" +#include "tools/rtti.hxx" +#include "tools/shl.hxx" +#include "tools/solar.h" +#include "tools/stream.hxx" +#include "tools/string.hxx" +#include "tools/tenccvt.hxx" +#include "tools/time.hxx" +#include "tools/urlobj.hxx" +#include "tools/weakbase.hxx" +#include "tools/zcodec.hxx" + +#include "ucbhelper/content.hxx" +#include "ucbhelper/contentbroker.hxx" + +#include "uno/lbnames.h" + +#include "unotools/charclass.hxx" +#include "unotools/configitem.hxx" +#include "unotools/confignode.hxx" +#include "unotools/localedatawrapper.hxx" +#include "unotools/localfilehelper.hxx" +#include "comphelper/servicehelper.hxx" +#include "unotools/tempfile.hxx" +#include "unotools/ucbstreamhelper.hxx" + +#include "vcl/bitmap.hxx" +#include "vcl/bitmapex.hxx" +#include "vcl/bmpacc.hxx" +#include "vcl/button.hxx" +#include "vcl/canvastools.hxx" +#include "vcl/combobox.hxx" +#include "vcl/ctrl.hxx" +#include "vcl/cursor.hxx" +#include "vcl/cvtgrf.hxx" +#include "vcl/decoview.hxx" +#include "vcl/dialog.hxx" +#include "vcl/dockwin.hxx" +#include "vcl/edit.hxx" +#include "vcl/event.hxx" +#include "vcl/field.hxx" +#include "vcl/fixed.hxx" +#include "vcl/font.hxx" +#include "unotools/fontcvt.hxx" +#include "vcl/gdimtf.hxx" +#include "vcl/gfxlink.hxx" +#include "vcl/gradient.hxx" +#include "vcl/graph.hxx" +#include "vcl/group.hxx" +#include "vcl/help.hxx" +#include "vcl/image.hxx" +#include "vcl/button.hxx" +#include "vcl/jobset.hxx" +#include "vcl/lineinfo.hxx" +#include "vcl/lstbox.hxx" +#include "vcl/mapmod.hxx" +#include "vcl/menu.hxx" +#include "vcl/menubtn.hxx" +#include "vcl/metaact.hxx" +#include "vcl/metric.hxx" +#include "vcl/mnemonic.hxx" +#include "vcl/msgbox.hxx" +#include "vcl/outdev.hxx" +#include "vcl/pdfextoutdevdata.hxx" +#include "vcl/pngread.hxx" +#include "vcl/pngwrite.hxx" +#include "vcl/pointr.hxx" +#include "vcl/print.hxx" +#include "vcl/prntypes.hxx" +#include "vcl/region.hxx" +#include "vcl/salbtype.hxx" +#include "vcl/scrbar.hxx" +#include "vcl/seleng.hxx" +#include "vcl/settings.hxx" +#include "vcl/sound.hxx" +#include "vcl/split.hxx" +#include "vcl/status.hxx" +#include "vcl/svapp.hxx" +#include "vcl/tabctrl.hxx" +#include "vcl/tabdlg.hxx" +#include "vcl/tabpage.hxx" +#include "vcl/taskpanelist.hxx" +#include "vcl/timer.hxx" +#include "vcl/toolbox.hxx" +#include "vcl/vclenum.hxx" +#include "vcl/virdev.hxx" +#include "vcl/waitobj.hxx" +#include "vcl/window.hxx" +#include "tools/wintypes.hxx" +#include "vcl/wrkwin.hxx" + +#include "osl/diagnose.h" +#include "osl/module.hxx" +#include "osl/mutex.hxx" +#include "osl/process.h" +//---MARKER--- + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/pglink.hxx b/sd/inc/pglink.hxx new file mode 100644 index 000000000000..668e59793d2b --- /dev/null +++ b/sd/inc/pglink.hxx @@ -0,0 +1,57 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _PGLINK_HXX +#define _PGLINK_HXX + +#include <sfx2/lnkbase.hxx> + +class SdPage; + + + +class SdPageLink : public ::sfx2::SvBaseLink +{ + SdPage* pPage; + +public: + SdPageLink(SdPage* pPg, const String& rFileName, const String& rBookmarkName); + virtual ~SdPageLink(); + + virtual void Closed(); + virtual void DataChanged( const String& , + const ::com::sun::star::uno::Any & ); + bool Connect() { return 0 != SvBaseLink::GetRealObject(); } +}; + +#endif // _PGLINK_HXX + + + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/pres.hxx b/sd/inc/pres.hxx new file mode 100644 index 000000000000..fc181482a881 --- /dev/null +++ b/sd/inc/pres.hxx @@ -0,0 +1,143 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ +#ifndef _PRESENTATION_HXX +#define _PRESENTATION_HXX + +enum PresObjKind +{ + PRESOBJ_NONE = 0, + PRESOBJ_TITLE, + PRESOBJ_OUTLINE, + PRESOBJ_TEXT, + PRESOBJ_GRAPHIC, + PRESOBJ_OBJECT, + PRESOBJ_CHART, + PRESOBJ_ORGCHART, + PRESOBJ_TABLE, + PRESOBJ_IMAGE, + PRESOBJ_PAGE, + PRESOBJ_HANDOUT, + PRESOBJ_NOTES, + PRESOBJ_HEADER, + PRESOBJ_FOOTER, + PRESOBJ_DATETIME, + PRESOBJ_SLIDENUMBER, + PRESOBJ_CALC, + PRESOBJ_MEDIA, + + PRESOBJ_MAX +}; + +enum AutoLayout +{ + // new layouts with enum/text/chart/org/clip merged to content + AUTOLAYOUT__START = 0, + AUTOLAYOUT_TITLE = 0, // Title Slide + AUTOLAYOUT_TITLE_CONTENT = 1, // Title, Content + AUTOLAYOUT_TITLE_2CONTENT = 3, // Title and 2 Content + AUTOLAYOUT_TITLE_ONLY = 19, // Title Only + AUTOLAYOUT_NONE = 20, // Blank Slide + AUTOLAYOUT_ONLY_TEXT = 32, // Centered Text + AUTOLAYOUT_TITLE_CONTENT_2CONTENT = 12, // Title, Content and 2 Content + AUTOLAYOUT_TITLE_2CONTENT_CONTENT = 15, // Title, 2 Content and Content + AUTOLAYOUT_TITLE_2CONTENT_OVER_CONTENT = 16,// Title, 2 Content over Content + AUTOLAYOUT_TITLE_CONTENT_OVER_CONTENT = 14, // Title, Content over Content + AUTOLAYOUT_TITLE_4CONTENT = 18, // Title, 4 Content + AUTOLAYOUT_TITLE_6CONTENT = 34, // Title, 6 Content + AUTOLAYOUT_VTITLE_VCONTENT_OVER_VCONTENT = 27, // Vertical Title, Vertical Content over Vertical Content + AUTOLAYOUT_VTITLE_VCONTENT = 28, // Vertical Title, Vertical Content over Vertical Content + AUTOLAYOUT_TITLE_VCONTENT = 29, // Title, Vertical Content + AUTOLAYOUT_TITLE_2VTEXT = 30, // Title, 2 Vertical Content + + // deprecated + AUTOLAYOUT_ENUM = 1, + AUTOLAYOUT_CHART = 2, + AUTOLAYOUT_2TEXT = 3, + AUTOLAYOUT_TEXTCHART = 4, + AUTOLAYOUT_ORG = 5, + AUTOLAYOUT_TEXTCLIP = 6, + AUTOLAYOUT_CHARTTEXT = 7, + AUTOLAYOUT_TAB = 8, + AUTOLAYOUT_CLIPTEXT = 9, + AUTOLAYOUT_TEXTOBJ = 10, + AUTOLAYOUT_OBJ = 11, + AUTOLAYOUT_TEXT2OBJ = 12, + AUTOLAYOUT_OBJTEXT = 13, + AUTOLAYOUT_OBJOVERTEXT = 14, + AUTOLAYOUT_2OBJTEXT = 15, + AUTOLAYOUT_2OBJOVERTEXT = 16, + AUTOLAYOUT_TEXTOVEROBJ = 17, + AUTOLAYOUT_4OBJ = 18, + AUTOLAYOUT_ONLY_TITLE = 19, + AUTOLAYOUT_NOTES = 21, + AUTOLAYOUT_HANDOUT1 = 22, + AUTOLAYOUT_HANDOUT2 = 23, + AUTOLAYOUT_HANDOUT3 = 24, + AUTOLAYOUT_HANDOUT4 = 25, + AUTOLAYOUT_HANDOUT6 = 26, + AUTOLAYOUT_VERTICAL_TITLE_TEXT_CHART = 27, + AUTOLAYOUT_VERTICAL_TITLE_VERTICAL_OUTLINE = 28, + AUTOLAYOUT_TITLE_VERTICAL_OUTLINE = 29, + AUTOLAYOUT_TITLE_VERTICAL_OUTLINE_CLIPART = 30, + AUTOLAYOUT_HANDOUT9 = 31, + AUTOLAYOUT_4CLIPART = 33, + AUTOLAYOUT_6CLIPART = 34, + AUTOLAYOUT__END +}; + +enum PageKind +{ + PK_STANDARD, + PK_NOTES, + PK_HANDOUT +}; + +enum EditMode +{ + EM_PAGE, + EM_MASTERPAGE +}; + +enum DocumentType +{ + DOCUMENT_TYPE_IMPRESS, + DOCUMENT_TYPE_DRAW +}; + +enum NavigatorDragType +{ + NAVIGATOR_DRAGTYPE_NONE, + NAVIGATOR_DRAGTYPE_URL, + NAVIGATOR_DRAGTYPE_LINK, + NAVIGATOR_DRAGTYPE_EMBEDDED +}; +#define NAVIGATOR_DRAGTYPE_COUNT 4 + +#endif // _PRESENTATION_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/prlayout.hxx b/sd/inc/prlayout.hxx new file mode 100644 index 000000000000..be02ec67e3c3 --- /dev/null +++ b/sd/inc/prlayout.hxx @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +/************************************************************************* +|* Enthielt frueher auch die Klasse SdPresentationLayoutDlg (wird jetzt nicht +|* mehr benoetigt). Dieses File ist auf ungeklaerte Weise aus dem PVCS +|* verschwunden und wird jetzt neu eingecheckt und enthaelt nur noch den enum. +\************************************************************************/ + +#ifndef _SD_PRLAYOUT_HXX_ +#define _SD_PRLAYOUT_HXX_ + +enum PresentationObjects +{ + PO_TITLE, + PO_BACKGROUND, + PO_BACKGROUNDOBJECTS, + PO_OUTLINE_1, + PO_OUTLINE_2, + PO_OUTLINE_3, + PO_OUTLINE_4, + PO_OUTLINE_5, + PO_OUTLINE_6, + PO_OUTLINE_7, + PO_OUTLINE_8, + PO_OUTLINE_9, + PO_NOTES, + PO_SUBTITLE +}; + +#endif // _SD_PRLAYOUT_HXX_ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/resltn.hxx b/sd/inc/resltn.hxx new file mode 100644 index 000000000000..27645db0ca48 --- /dev/null +++ b/sd/inc/resltn.hxx @@ -0,0 +1,54 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_RESLTN_HXX +#define _SD_RESLTN_HXX + +enum PublishingResolution +{ + RESOLUTION_HIGH, + RESOLUTION_MEDIUM, + RESOLUTION_LOW +}; + +enum PublishingFormat +{ + FORMAT_GIF, + FORMAT_JPG, + FORMAT_PNG +}; + +enum PublishingScript +{ + SCRIPT_ASP, + SCRIPT_PERL +}; + +#endif // _SD_RESLTN_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/sd_primitivetypes2d.hxx b/sd/inc/sd_primitivetypes2d.hxx new file mode 100644 index 000000000000..bf2667e7de7a --- /dev/null +++ b/sd/inc/sd_primitivetypes2d.hxx @@ -0,0 +1,50 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef INCLUDED_SD_PRIMITIVETYPES2D_HXX +#define INCLUDED_SD_PRIMITIVETYPES2D_HXX + +#include <drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx> + +////////////////////////////////////////////////////////////////////////////// + +#define PRIMITIVE2D_ID_SDPAGEOBJECTFOCUSPRIMITIVE (PRIMITIVE2D_ID_RANGE_SD| 0) +#define PRIMITIVE2D_ID_SDPAGEOBJECTSELECTPRIMITIVE (PRIMITIVE2D_ID_RANGE_SD| 1) +#define PRIMITIVE2D_ID_SDPAGEOBJECTPAGEBITMAPPRIMITIVE (PRIMITIVE2D_ID_RANGE_SD| 2) +#define PRIMITIVE2D_ID_SDPAGEOBJECTBORDERPRIMITIVE (PRIMITIVE2D_ID_RANGE_SD| 3) +#define PRIMITIVE2D_ID_SDPAGEOBJECTFADENAMENUMBERPRIMITIVE (PRIMITIVE2D_ID_RANGE_SD| 4) +#define PRIMITIVE2D_ID_SDMOUSEOVEREFFECTPRIMITIVE (PRIMITIVE2D_ID_RANGE_SD| 5) + +////////////////////////////////////////////////////////////////////////////// + +#endif // INCLUDED_SD_PRIMITIVETYPES2D_HXX + +////////////////////////////////////////////////////////////////////////////// +// eof + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/sdabstdlg.hxx b/sd/inc/sdabstdlg.hxx new file mode 100644 index 000000000000..0fb8f600113c --- /dev/null +++ b/sd/inc/sdabstdlg.hxx @@ -0,0 +1,227 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ +#ifndef _SD_ABSTDLG_HXX +#define _SD_ABSTDLG_HXX + +// include --------------------------------------------------------------- + +#include <tools/solar.h> +#include <tools/string.hxx> +#include <sfx2/sfxdlg.hxx> +#include <com/sun/star/uno/Sequence.h> +#include <com/sun/star/beans/XPropertyAccess.hpp> +#include "prlayout.hxx" +#include "sdenumdef.hxx" +#include "pres.hxx" + +namespace sd { + class View; + class DrawDocShell; + class ViewShell; + class DrawView; +} + +class SfxTabPage; +class SfxViewFrame; +class SfxBindings; +class ResId; +class String; +class SfxItemPool; +class SfxObjectShell; +class SfxObjectShellLock; +class SvxFieldData; +class GDIMetaFile; +class XColorTable; +class SdDrawDocument; +class SfxMedium; +class SdrObject; +class SfxStyleSheetBasePool; +class SfxStyleSheetBase; +class SdrModel; +class SdrView; +class Bitmap; +class List; +class SdResId; +class Window; +class SdPage; +class TabPage; +class ViewShell; + +class AbstractCopyDlg : public VclAbstractDialog //add for CopyDlg +{ +public: + virtual void GetAttr( SfxItemSet& rOutAttrs ) = 0; +}; + +class AbstractSdCustomShowDlg : public VclAbstractDialog //add for SdCustomShowDlg +{ +public: + virtual sal_Bool IsModified() const = 0; + virtual sal_Bool IsCustomShow() const = 0; +}; + +class AbstractAssistentDlg : public VclAbstractDialog //add for AssistentDlg +{ +public: + virtual SfxObjectShellLock GetDocument() = 0; + virtual OutputType GetOutputMedium() const = 0; + virtual sal_Bool IsSummary() const = 0; + virtual StartType GetStartType() const = 0; + virtual String GetDocPath() const = 0; + virtual sal_Bool GetStartWithFlag() const = 0; + virtual sal_Bool IsDocEmpty() const = 0; + virtual String GetPassword() = 0; +}; + +class AbstractSdModifyFieldDlg : public VclAbstractDialog //add for SdModifyFieldDlg +{ +public: + virtual SvxFieldData* GetField() = 0; + virtual SfxItemSet GetItemSet() = 0; +}; + +class AbstractSdSnapLineDlg : public VclAbstractDialog //add for SdSnapLineDlg +{ +public: + virtual void GetAttr(SfxItemSet& rOutAttrs) = 0; + virtual void HideRadioGroup() = 0; + virtual void HideDeleteBtn() = 0; + virtual void SetInputFields(sal_Bool bEnableX, sal_Bool bEnableY) = 0; + //from class ::Window + virtual void SetText( const XubString& rStr ) = 0; +}; + +class AbstractSdInsertLayerDlg : public VclAbstractDialog //add for SdInsertLayerDlg +{ +public: + virtual void GetAttr( SfxItemSet& rOutAttrs ) = 0; + //from class ::Window + virtual void SetHelpId( const rtl::OString& rHelpId ) = 0; +}; + +class AbstractSdInsertPasteDlg : public VclAbstractDialog //add for SdInsertPasteDlg +{ +public: + virtual sal_Bool IsInsertBefore() const = 0; +}; + +class AbstractSdInsertPagesObjsDlg : public VclAbstractDialog //add for SdInsertPagesObjsDlg +{ +public: + virtual ::Window* GetWindow() = 0; //this method is added for return a ::Window type pointer + virtual List* GetList( sal_uInt16 nType ) = 0; + virtual sal_Bool IsLink() = 0; + virtual sal_Bool IsRemoveUnnessesaryMasterPages() const = 0; +}; + +class AbstractMorphDlg : public VclAbstractDialog //add for MorphDlg +{ +public: + virtual void SaveSettings() const = 0; + virtual sal_uInt16 GetFadeSteps() const = 0; + virtual sal_Bool IsAttributeFade() const = 0; + virtual sal_Bool IsOrientationFade() const = 0; +}; + +class AbstractSdStartPresDlg : public VclAbstractDialog //add for SdStartPresentationDlg +{ +public: + virtual void GetAttr( SfxItemSet& rOutAttrs ) = 0; +}; + +class AbstractSdPresLayoutDlg : public VclAbstractDialog //add for SdPresLayoutDlg +{ +public: + virtual void GetAttr(SfxItemSet& rOutAttrs) = 0; +}; + +class AbstractSdVectorizeDlg : public VclAbstractDialog //add for SdVectorizeDlg +{ +public: + virtual const GDIMetaFile& GetGDIMetaFile() const = 0; +}; + +class AbstractSdPublishingDlg : public VclAbstractDialog //add for SdPublishingDlg +{ +public: + virtual void GetParameterSequence( ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& rParams ) = 0; +}; + +class AbstractHeaderFooterDialog : public VclAbstractDialog // add for HeaderFooterDialog +{ +public: + virtual void ApplyToAll( TabPage* pPage ) = 0; + virtual void Apply( TabPage* pPage ) = 0; + virtual void Cancel( TabPage* pPage ) = 0; +}; + +//--------------------------------------------------------- +class SdAbstractDialogFactory +{ +public: + static SdAbstractDialogFactory* Create(); + + virtual VclAbstractDialog* CreateBreakDlg(::Window* pWindow, ::sd::DrawView* pDrView, ::sd::DrawDocShell* pShell, sal_uLong nSumActionCount, sal_uLong nObjCount ) = 0; + virtual AbstractCopyDlg* CreateCopyDlg( ::Window* pWindow, const SfxItemSet& rInAttrs, XColorTable* pColTab, ::sd::View* pView ) = 0; + virtual AbstractSdCustomShowDlg* CreateSdCustomShowDlg( ::Window* pWindow, SdDrawDocument& rDrawDoc ) = 0; + virtual SfxAbstractTabDialog* CreateSdTabCharDialog( ::Window* pParent, const SfxItemSet* pAttr, SfxObjectShell* pDocShell ) = 0; + virtual SfxAbstractTabDialog* CreateSdTabPageDialog( ::Window* pParent, const SfxItemSet* pAttr, SfxObjectShell* pDocShell, sal_Bool bAreaPage = sal_True ) = 0; + virtual AbstractAssistentDlg* CreateAssistentDlg( ::Window* pParent, sal_Bool bAutoPilot) = 0; + virtual AbstractSdModifyFieldDlg* CreateSdModifyFieldDlg( ::Window* pWindow, const SvxFieldData* pInField, const SfxItemSet& rSet ) = 0; + virtual AbstractSdSnapLineDlg* CreateSdSnapLineDlg( ::Window* pWindow, const SfxItemSet& rInAttrs, ::sd::View* pView) = 0; + virtual AbstractSdInsertLayerDlg* CreateSdInsertLayerDlg( ::Window* pWindow, const SfxItemSet& rInAttrs, bool bDeletable, String aStr ) = 0; + virtual AbstractSdInsertPasteDlg* CreateSdInsertPasteDlg( ::Window* pWindow ) = 0; + virtual AbstractSdInsertPagesObjsDlg* CreateSdInsertPagesObjsDlg( ::Window* pParent, const SdDrawDocument* pDoc, SfxMedium* pSfxMedium, const String& rFileName ) = 0; + virtual AbstractMorphDlg* CreateMorphDlg( ::Window* pParent, const SdrObject* pObj1, const SdrObject* pObj2) = 0; + virtual SfxAbstractTabDialog* CreateSdOutlineBulletTabDlg ( ::Window* pParent, const SfxItemSet* pAttr, ::sd::View* pView = NULL ) = 0; + virtual SfxAbstractTabDialog* CreateSdParagraphTabDlg ( ::Window* pParent, const SfxItemSet* pAttr ) = 0; + virtual AbstractSdStartPresDlg* CreateSdStartPresentationDlg( ::Window* pWindow, const SfxItemSet& rInAttrs, List& rPageNames, List* pCSList ) = 0; + virtual SfxAbstractTabDialog* CreateSdPresLayoutTemplateDlg( SfxObjectShell* pDocSh, ::Window* pParent, SdResId DlgId, SfxStyleSheetBase& rStyleBase, PresentationObjects ePO, SfxStyleSheetBasePool* pSSPool ) = 0; + virtual AbstractSdPresLayoutDlg* CreateSdPresLayoutDlg( ::sd::DrawDocShell* pDocShell, ::sd::ViewShell* pViewShell, ::Window* pWindow, const SfxItemSet& rInAttrs) = 0; + virtual SfxAbstractTabDialog* CreateSdTabTemplateDlg( ::Window* pParent, const SfxObjectShell* pDocShell, SfxStyleSheetBase& rStyleBase, SdrModel* pModel, SdrView* pView ) = 0; + virtual SfxAbstractDialog* CreatSdActionDialog( ::Window* pParent, const SfxItemSet* pAttr, ::sd::View* pView ) = 0; + virtual AbstractSdVectorizeDlg* CreateSdVectorizeDlg( ::Window* pParent, const Bitmap& rBmp, ::sd::DrawDocShell* pDocShell ) = 0; + virtual AbstractSdPublishingDlg* CreateSdPublishingDlg( ::Window* pWindow, DocumentType eDocType) = 0; + + virtual VclAbstractDialog* CreateMasterLayoutDialog( ::Window* pParent, + SdDrawDocument* pDoc, + SdPage* ) = 0; // add for MasterLayoutDialog + + virtual AbstractHeaderFooterDialog* CreateHeaderFooterDialog( ViewShell* pViewShell, + ::Window* pParent, + SdDrawDocument* pDoc, + SdPage* pCurrentPage ) = 0; // add for HeaderFooterDialog + + virtual CreateTabPage GetSdOptionsContentsTabPageCreatorFunc() = 0; + virtual CreateTabPage GetSdPrintOptionsTabPageCreatorFunc() = 0; + virtual CreateTabPage GetSdOptionsMiscTabPageCreatorFunc() = 0; + virtual CreateTabPage GetSdOptionsSnapTabPageCreatorFunc() = 0; +}; +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/sdattr.hrc b/sd/inc/sdattr.hrc new file mode 100644 index 000000000000..29ef8f128248 --- /dev/null +++ b/sd/inc/sdattr.hrc @@ -0,0 +1,245 @@ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SDATTR_HRC +#define _SDATTR_HRC + +#ifndef _SFX_HRC +#include <sfx2/sfx.hrc> +#endif + +// Anfang Page-Attribute +#define ATTR_PAGE_START SID_SD_START + 1234 +#define ATTR_PAGE_NAME ATTR_PAGE_START +#define ATTR_PAGE_BACKGROUND ATTR_PAGE_START + 1 +#define ATTR_PAGE_OBJECTS ATTR_PAGE_START + 2 +#define ATTR_PAGE_LAYOUT ATTR_PAGE_START + 3 +#define ATTR_PAGE_END ATTR_PAGE_LAYOUT + +// Layer-Attribute +#define ATTR_LAYER_START ATTR_PAGE_END + 1 +#define ATTR_LAYER_NAME ATTR_LAYER_START +#define ATTR_LAYER_VISIBLE ATTR_LAYER_START + 1 +#define ATTR_LAYER_PRINTABLE ATTR_LAYER_START + 2 +#define ATTR_LAYER_LOCKED ATTR_LAYER_START + 3 +#define ATTR_LAYER_THISPAGE ATTR_LAYER_START + 4 +#define ATTR_LAYER_TITLE ATTR_LAYER_START + 5 +#define ATTR_LAYER_DESC ATTR_LAYER_START + 6 +#define ATTR_LAYER_END ATTR_LAYER_DESC + +// Anfang Dia-Attribute +#define ATTR_DIA_START ATTR_LAYER_END + 1 +#define ATTR_DIA_EFFECT ATTR_DIA_START +#define ATTR_DIA_SPEED ATTR_DIA_START + 1 +#define ATTR_DIA_AUTO ATTR_DIA_START + 2 +#define ATTR_DIA_TIME ATTR_DIA_START + 3 +#define ATTR_DIA_SOUND ATTR_DIA_START + 4 +#define ATTR_DIA_SOUNDFILE ATTR_DIA_START + 5 +#define ATTR_DIA_END ATTR_DIA_SOUNDFILE + +// Praesentations-Attribute +#define ATTR_PRESENT_START ATTR_DIA_END + 1 +#define ATTR_PRESENT_ALL ATTR_PRESENT_START +#define ATTR_PRESENT_CUSTOMSHOW ATTR_PRESENT_START + 1 +#define ATTR_PRESENT_DIANAME ATTR_PRESENT_START + 2 +#define ATTR_PRESENT_ENDLESS ATTR_PRESENT_START + 3 +#define ATTR_PRESENT_MANUEL ATTR_PRESENT_START + 4 +#define ATTR_PRESENT_MOUSE ATTR_PRESENT_START + 5 +#define ATTR_PRESENT_PEN ATTR_PRESENT_START + 6 +#define ATTR_PRESENT_NAVIGATOR ATTR_PRESENT_START + 7 +#define ATTR_PRESENT_CHANGE_PAGE ATTR_PRESENT_START + 8 +#define ATTR_PRESENT_ALWAYS_ON_TOP ATTR_PRESENT_START + 9 +#define ATTR_PRESENT_FULLSCREEN ATTR_PRESENT_START + 10 +#define ATTR_PRESENT_START_ACTUAL_PAGE ATTR_PRESENT_START + 11 +#define ATTR_PRESENT_ANIMATION_ALLOWED ATTR_PRESENT_START + 12 +#define ATTR_PRESENT_PAUSE_TIMEOUT ATTR_PRESENT_START + 13 +#define ATTR_PRESENT_SHOW_PAUSELOGO ATTR_PRESENT_START + 14 +#define ATTR_PRESENT_DISPLAY ATTR_PRESENT_START + 15 +#define ATTR_PRESENT_END ATTR_PRESENT_DISPLAY + +// Transformations-Attribute +#define ATTR_TRANSF_START ATTR_PRESENT_END + 1 +#define ATTR_TRANSF_POS_X ATTR_TRANSF_START +#define ATTR_TRANSF_POS_Y ATTR_TRANSF_START + 1 +#define ATTR_TRANSF_WIDTH ATTR_TRANSF_START + 2 +#define ATTR_TRANSF_HEIGHT ATTR_TRANSF_START + 3 +#define ATTR_TRANSF_SIZE_POINT ATTR_TRANSF_START + 4 +#define ATTR_TRANSF_ROT_X ATTR_TRANSF_START + 5 +#define ATTR_TRANSF_ROT_Y ATTR_TRANSF_START + 6 +#define ATTR_TRANSF_ANGLE ATTR_TRANSF_START + 7 +#define ATTR_TRANSF_END ATTR_TRANSF_ANGLE + +// Raster-Attribute +#define ATTR_GRID_START ATTR_TRANSF_END + 1 +#define ATTR_GRID_USE ATTR_GRID_START +#define ATTR_GRID_DRAW_X ATTR_GRID_START + 1 +#define ATTR_GRID_DRAW_Y ATTR_GRID_START + 2 +#define ATTR_GRID_DIVISION_X ATTR_GRID_START + 3 +#define ATTR_GRID_DIVISION_Y ATTR_GRID_START + 4 +#define ATTR_GRID_SNAP_X ATTR_GRID_START + 5 +#define ATTR_GRID_SNAP_Y ATTR_GRID_START + 6 +#define ATTR_GRID_ORIGIN_X ATTR_GRID_START + 7 +#define ATTR_GRID_ORIGIN_Y ATTR_GRID_START + 8 +#define ATTR_GRID_END ATTR_GRID_ORIGIN_Y + +// Bildschirm-Attribute +#define ATTR_DISPLAY_START ATTR_GRID_END + 1 +#define ATTR_DISPLAY_FUNCTIONBAR ATTR_DISPLAY_START +#define ATTR_DISPLAY_OBJECTBAR ATTR_DISPLAY_START + 1 +#define ATTR_DISPLAY_STATUSBAR ATTR_DISPLAY_START + 2 +#define ATTR_DISPLAY_TOOLBAR ATTR_DISPLAY_START + 3 +#define ATTR_DISPLAY_GRID ATTR_DISPLAY_START + 4 +#define ATTR_DISPLAY_RULER ATTR_DISPLAY_START + 5 +#define ATTR_DISPLAY_HELPLINES ATTR_DISPLAY_START + 6 +#define ATTR_DISPLAY_STRANGE_GRAPHIC ATTR_DISPLAY_START + 7 +#define ATTR_DISPLAY_ADJUSTLINES ATTR_DISPLAY_START + 8 +#define ATTR_DISPLAY_END ATTR_DISPLAY_ADJUSTLINES + +#define ATTR_TBX_DUMMY ATTR_DISPLAY_END + 1 + +// Animations-Attribute +#define ATTR_ANIMATION_START ATTR_TBX_DUMMY + 1 +#define ATTR_ANIMATION_ACTIVE ATTR_ANIMATION_START +#define ATTR_ANIMATION_EFFECT ATTR_ANIMATION_START + 1 +#define ATTR_ANIMATION_SPEED ATTR_ANIMATION_START + 2 +#define ATTR_ANIMATION_INVISIBLE ATTR_ANIMATION_START + 3 +#define ATTR_ANIMATION_FADEOUT ATTR_ANIMATION_START + 4 +#define ATTR_ANIMATION_COLOR ATTR_ANIMATION_START + 5 +#define ATTR_ANIMATION_SOUNDON ATTR_ANIMATION_START + 6 +#define ATTR_ANIMATION_SOUNDFILE ATTR_ANIMATION_START + 7 +#define ATTR_ANIMATION_PLAYFULL ATTR_ANIMATION_START + 8 +#define ATTR_ANIMATION_TRANSPCOLOR ATTR_ANIMATION_START + 9 +#define ATTR_ANIMATION_TEXTEFFECT ATTR_ANIMATION_START + 10 +#define ATTR_ANIMATION_END ATTR_ANIMATION_TEXTEFFECT + +#define ATTR_ACTION_START ATTR_ANIMATION_END + 1 +#define ATTR_ACTION ATTR_ACTION_START +#define ATTR_ACTION_EFFECT ATTR_ACTION_START + 1 +#define ATTR_ACTION_EFFECTSPEED ATTR_ACTION_START + 2 +#define ATTR_ACTION_FILENAME ATTR_ACTION_START + 3 +#define ATTR_ACTION_SOUNDON ATTR_ACTION_START + 4 +#define ATTR_ACTION_PLAYFULL ATTR_ACTION_START + 5 +#define ATTR_ACTION_END ATTR_ACTION_PLAYFULL + +#define ATTR_PRINTOPTIONS_START ATTR_ACTION_END + 1 +#define ATTR_PRINTOPTIONS_PRINT ATTR_PRINTOPTIONS_START +#define ATTR_PRINTOPTIONS_PAGESIZE ATTR_PRINTOPTIONS_START + 1 +#define ATTR_PRINTOPTIONS_FADEOUT ATTR_PRINTOPTIONS_START + 2 +#define ATTR_PRINTOPTIONS_DATE ATTR_PRINTOPTIONS_START + 3 +#define ATTR_PRINTOPTIONS_TIME ATTR_PRINTOPTIONS_START + 4 +#define ATTR_PRINTOPTIONS_PAGENAME ATTR_PRINTOPTIONS_START + 5 +#define ATTR_PRINTOPTIONS_END ATTR_PRINTOPTIONS_PAGENAME + +#define ATTR_COPY_START ATTR_PRINTOPTIONS_END + 1 +#define ATTR_COPY_NUMBER ATTR_COPY_START +#define ATTR_COPY_MOVE_X ATTR_COPY_START + 1 +#define ATTR_COPY_MOVE_Y ATTR_COPY_START + 2 +#define ATTR_COPY_ANGLE ATTR_COPY_START + 3 +#define ATTR_COPY_WIDTH ATTR_COPY_START + 4 +#define ATTR_COPY_HEIGHT ATTR_COPY_START + 5 +#define ATTR_COPY_START_COLOR ATTR_COPY_START + 6 +#define ATTR_COPY_END_COLOR ATTR_COPY_START + 7 +#define ATTR_COPY_END ATTR_COPY_END_COLOR + +#define ATTR_SNAPLINE_START ATTR_COPY_END + 1 +#define ATTR_SNAPLINE_KIND ATTR_SNAPLINE_START +#define ATTR_SNAPLINE_X ATTR_SNAPLINE_START + 1 +#define ATTR_SNAPLINE_Y ATTR_SNAPLINE_START + 2 +#define ATTR_SNAPLINE_END ATTR_SNAPLINE_Y + +#define ATTR_OPTIONS_START ATTR_SNAPLINE_END + 1 +#define ATTR_OPTIONS ATTR_OPTIONS_START +#define ATTR_OPTIONS_LAYOUT ATTR_OPTIONS_START + 1 +#define ATTR_OPTIONS_CONTENTS ATTR_OPTIONS_START + 2 +#define ATTR_OPTIONS_MISC ATTR_OPTIONS_START + 3 +#define ATTR_OPTIONS_SNAP ATTR_OPTIONS_START + 4 +#define ATTR_OPTIONS_PRINT ATTR_OPTIONS_START + 5 +#define ATTR_OPTIONS_END ATTR_OPTIONS_PRINT + +#define ATTR_OPTIONS_SCALE_START ATTR_OPTIONS_END + 1 +#define ATTR_OPTIONS_SCALE_X ATTR_OPTIONS_SCALE_START +#define ATTR_OPTIONS_SCALE_Y ATTR_OPTIONS_SCALE_START + 1 +#define ATTR_OPTIONS_SCALE_WIDTH ATTR_OPTIONS_SCALE_START + 2 +#define ATTR_OPTIONS_SCALE_HEIGHT ATTR_OPTIONS_SCALE_START + 3 +#define ATTR_OPTIONS_SCALE_END ATTR_OPTIONS_SCALE_HEIGHT + +#define ATTR_PUBLISH_START ATTR_OPTIONS_SCALE_END + 1 +#define ATTR_PUBLISH_LOCATION ATTR_PUBLISH_START +#define ATTR_PUBLISH_WITHCONTENTSPAGE ATTR_PUBLISH_START + 1 +#define ATTR_PUBLISH_RESOLUTION ATTR_PUBLISH_START + 2 +#define ATTR_PUBLISH_MODE ATTR_PUBLISH_START + 3 +#define ATTR_PUBLISH_FORMAT ATTR_PUBLISH_START + 4 +#define ATTR_PUBLISH_COMPRESSION ATTR_PUBLISH_START + 5 +#define ATTR_PUBLISH_WITHNOTES ATTR_PUBLISH_START + 6 +#define ATTR_PUBLISH_AUTHOR ATTR_PUBLISH_START + 9 +#define ATTR_PUBLISH_EMAIL ATTR_PUBLISH_START + 10 +#define ATTR_PUBLISH_WWW ATTR_PUBLISH_START + 11 +#define ATTR_PUBLISH_INFO ATTR_PUBLISH_START + 12 +#define ATTR_PUBLISH_WITHDOWNLOAD ATTR_PUBLISH_START + 13 +#define ATTR_PUBLISH_WITHSTAROFFICE ATTR_PUBLISH_START + 14 +#define ATTR_PUBLISH_BUTTONS ATTR_PUBLISH_START + 15 +#define ATTR_PUBLISH_USERATTR ATTR_PUBLISH_START + 16 +#define ATTR_PUBLISH_BACKCOLOR ATTR_PUBLISH_START + 17 +#define ATTR_PUBLISH_TEXTCOLOR ATTR_PUBLISH_START + 18 +#define ATTR_PUBLISH_LINKCOLOR ATTR_PUBLISH_START + 19 +#define ATTR_PUBLISH_VLINKCOLOR ATTR_PUBLISH_START + 20 +#define ATTR_PUBLISH_ALINKCOLOR ATTR_PUBLISH_START + 21 +#define ATTR_PUBLISH_USEATTRIBS ATTR_PUBLISH_START + 22 +#define ATTR_PUBLISH_USECOLOR ATTR_PUBLISH_START + 23 +#define ATTR_PUBLISH_WEBSHOW ATTR_PUBLISH_START + 24 +#define ATTR_PUBLISH_SCRIPT ATTR_PUBLISH_START + 25 +#define ATTR_PUBLISH_URLPATH ATTR_PUBLISH_START + 26 +#define ATTR_PUBLISH_CGIPATH ATTR_PUBLISH_START + 27 +#define ATTR_PUBLISH_INDEX ATTR_PUBLISH_START + 28 +#define ATTR_PUBLISH_SLIDECHG ATTR_PUBLISH_START + 29 +#define ATTR_PUBLISH_SLIDEDURATION ATTR_PUBLISH_START + 30 +#define ATTR_PUBLISH_ENDLESS ATTR_PUBLISH_START + 31 +#define ATTR_PUBLISH_SLIDESOUND ATTR_PUBLISH_START + 32 +#define ATTR_PUBLISH_END ATTR_PUBLISH_SLIDESOUND + +#define ATTR_PRESLAYOUT_START ATTR_PUBLISH_END + 1 +#define ATTR_PRESLAYOUT_NAME ATTR_PRESLAYOUT_START +#define ATTR_PRESLAYOUT_LOAD ATTR_PRESLAYOUT_START + 1 +#define ATTR_PRESLAYOUT_MASTER_PAGE ATTR_PRESLAYOUT_START + 2 +#define ATTR_PRESLAYOUT_CHECK_MASTERS ATTR_PRESLAYOUT_START + 3 +#define ATTR_PRESLAYOUT_END ATTR_PRESLAYOUT_CHECK_MASTERS + +// Pack & Go Attribute +#define ATTR_PACKNGO_START ATTR_PRESLAYOUT_END + 1 +#define ATTR_PACKNGO_UNLINK ATTR_PACKNGO_START +#define ATTR_PACKNGO_COMPRESS ATTR_PACKNGO_START + 1 +#define ATTR_PACKNGO_SPANNING ATTR_PACKNGO_START + 2 +#define ATTR_PACKNGO_MEDIUMSIZE ATTR_PACKNGO_START + 3 +#define ATTR_PACKNGO_END ATTR_PACKNGO_MEDIUMSIZE + +// paragraph numbering attributes +#define ATTR_PARANUMBERING_START ATTR_PACKNGO_MEDIUMSIZE + 1 +#define ATTR_NUMBER_NEWSTART ATTR_PARANUMBERING_START +#define ATTR_NUMBER_NEWSTART_AT ATTR_PARANUMBERING_START + 1 +#define ATTR_PARANUMBERING_END ATTR_NUMBER_NEWSTART_AT + +#endif // _SDATTR_HRC diff --git a/sd/inc/sdattr.hxx b/sd/inc/sdattr.hxx new file mode 100644 index 000000000000..3f9b927fd567 --- /dev/null +++ b/sd/inc/sdattr.hxx @@ -0,0 +1,175 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SDATTR_HXX +#define _SDATTR_HXX + +#include <com/sun/star/presentation/FadeEffect.hpp> +#include <svl/intitem.hxx> +#include <svl/eitem.hxx> +#include <svl/stritem.hxx> +#include <sfx2/sfx.hrc> + +#include "sdattr.hrc" +#include "glob.hxx" +#include "fadedef.h" +#include "diadef.h" + +//------------------------------------------------------------------ + + +//================================================================== +// Layer-Attribute +//================================================================== + +class SdAttrLayerName : public SfxStringItem +{ +public: + SdAttrLayerName() : + SfxStringItem( ATTR_LAYER_NAME, String( RTL_CONSTASCII_USTRINGPARAM( "neue Ebene" ))) {} + SdAttrLayerName( const String& aStr ) : + SfxStringItem( ATTR_LAYER_NAME, aStr ) {} +}; + +//------------------------------------------------------------------ + +class SdAttrLayerTitle : public SfxStringItem +{ +public: + SdAttrLayerTitle() : SfxStringItem( ATTR_LAYER_TITLE, XubString()) {} + SdAttrLayerTitle( const String& aStr ) : SfxStringItem( ATTR_LAYER_TITLE, aStr ) {} +}; + +//------------------------------------------------------------------ + +class SdAttrLayerDesc : public SfxStringItem +{ +public: + SdAttrLayerDesc() : SfxStringItem( ATTR_LAYER_DESC, XubString()) {} + SdAttrLayerDesc( const String& aStr ) : SfxStringItem( ATTR_LAYER_DESC, aStr ) {} +}; + +//------------------------------------------------------------------ + +class SdAttrLayerVisible : public SfxBoolItem +{ +public: + SdAttrLayerVisible( sal_Bool bValue = sal_True ) : + SfxBoolItem( ATTR_LAYER_VISIBLE, bValue ) {} +}; + +//------------------------------------------------------------------ + +class SdAttrLayerPrintable : public SfxBoolItem +{ +public: + SdAttrLayerPrintable( sal_Bool bValue = sal_True ) : + SfxBoolItem( ATTR_LAYER_PRINTABLE, bValue ) {} +}; + +//------------------------------------------------------------------ + +class SdAttrLayerLocked : public SfxBoolItem +{ +public: + SdAttrLayerLocked( sal_Bool bValue = sal_False ) : + SfxBoolItem( ATTR_LAYER_LOCKED, bValue ) {} +}; + +//------------------------------------------------------------------ + +class SdAttrLayerThisPage : public SfxBoolItem +{ +public: + SdAttrLayerThisPage( sal_Bool bValue = sal_False ) : + SfxBoolItem( ATTR_LAYER_THISPAGE, bValue ) {} +}; + +//------------------------------------------------------------------ + +class DiaEffectItem : public SfxEnumItem +{ +public: + TYPEINFO(); + DiaEffectItem( ::com::sun::star::presentation::FadeEffect eFade = com::sun::star::presentation::FadeEffect_NONE ); + DiaEffectItem( SvStream& rIn ); + + virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const; + virtual SfxPoolItem* Create( SvStream& rIn, sal_uInt16 nVer ) const; + sal_uInt16 GetValueCount() const { return FADE_EFFECT_COUNT; } + ::com::sun::star::presentation::FadeEffect GetValue() const + { return (::com::sun::star::presentation::FadeEffect) SfxEnumItem::GetValue(); } +}; + +//------------------------------------------------------------------ + +class DiaSpeedItem : public SfxEnumItem +{ +public: + TYPEINFO(); + DiaSpeedItem( FadeSpeed = FADE_SPEED_MEDIUM ); + DiaSpeedItem( SvStream& rIn ); + + virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const; + virtual SfxPoolItem* Create( SvStream& rIn, sal_uInt16 nVer ) const; + sal_uInt16 GetValueCount() const { return FADE_SPEED_COUNT; } + FadeSpeed GetValue() const + { return (FadeSpeed) SfxEnumItem::GetValue(); } +}; + +//------------------------------------------------------------------ + +class DiaAutoItem : public SfxEnumItem +{ +public: + TYPEINFO(); + DiaAutoItem( PresChange = PRESCHANGE_MANUAL ); + DiaAutoItem( SvStream& rIn ); + + virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const; + virtual SfxPoolItem* Create( SvStream& rIn, sal_uInt16 nVer ) const; + sal_uInt16 GetValueCount() const { return PRESCHANGE_COUNT; } + PresChange GetValue() const { return (PresChange) SfxEnumItem::GetValue(); } +}; + +//------------------------------------------------------------------ + +class DiaTimeItem : public SfxUInt32Item +{ +public: + TYPEINFO(); + DiaTimeItem( sal_uInt32 nValue = 0L ); + + virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const; + virtual int operator==( const SfxPoolItem& ) const; +}; + +#endif // _SDATTR_HXX + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/sdcgmfilter.hxx b/sd/inc/sdcgmfilter.hxx new file mode 100644 index 000000000000..b960249751e2 --- /dev/null +++ b/sd/inc/sdcgmfilter.hxx @@ -0,0 +1,53 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_SDCGMFILTER_HXX +#define _SD_SDCGMFILTER_HXX + +#include "sdfilter.hxx" + +// --------------- +// - SdCGMFilter - +// --------------- + +class SdCGMFilter : public SdFilter +{ +public: + SdCGMFilter ( + SfxMedium& rMedium, + ::sd::DrawDocShell& rDocShell, + sal_Bool bShowProgress ); + virtual ~SdCGMFilter (void); + + sal_Bool Import(); + sal_Bool Export(); +}; + +#endif // _SD_SDCGMFILTER_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/sdcommands.h b/sd/inc/sdcommands.h new file mode 100644 index 000000000000..439461de2f06 --- /dev/null +++ b/sd/inc/sdcommands.h @@ -0,0 +1,311 @@ +/************************************************************************* + * + * 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. + * + ************************************************************************/ +#ifndef SD_SDCOMMANDS_HRC +#define SD_SDCOMMANDS_HRC + +#define CMD_SID_OBJECT_MIRROR ".uno:Mirror" +#define CMD_SID_OBJECT_CHOOSE_MODE ".uno:AdvancedMode" +#define CMD_SID_ANIMATION_EFFECTS ".uno:AnimationEffects" +#define CMD_SID_ANIMATION_OBJECTS ".uno:AnimationObjects" +#define CMD_SID_ANIMATOR_ADD ".uno:AnimatorAddObject" +#define CMD_SID_ANIMATOR_CREATE ".uno:AnimatorCreateObject" +#define CMD_SID_ANIMATOR_INIT ".uno:AnimatorInit" +#define CMD_SID_ANIMATOR_STATE ".uno:AnimatorState" +#define CMD_SID_DRAWTBX_ARROWS ".uno:ArrowsToolbox" +#define CMD_SID_MOREBACK ".uno:Backward" +#define CMD_SID_BEFORE_OBJ ".uno:BeforeObject" +#define CMD_SID_BEHIND_OBJ ".uno:BehindObject" +#define CMD_SID_BIG_HANDLES ".uno:BigHandles" +#define CMD_SID_BREAK ".uno:Break" +#define CMD_SID_CAPTUREPOINT ".uno:CapturePoint" +#define CMD_SID_CHANGEBEZIER ".uno:ChangeBezier" +#define CMD_SID_CHANGEPOLYGON ".uno:ChangePolygon" +#define CMD_SID_CLICK_CHANGE_ROTATION ".uno:ClickChangeRotation" +#define CMD_SID_OBJECT_CLOSE ".uno:CloseObject" +#define CMD_SID_COLORVIEW ".uno:ColorView" +#define CMD_SID_COMBINE ".uno:Combine" +#define CMD_SID_3D_CONE ".uno:Cone" +#define CMD_SID_CONNECT ".uno:Connect" +#define CMD_SID_TOOL_CONNECTOR ".uno:Connector" +#define CMD_SID_CONNECTOR_ARROW_END ".uno:ConnectorArrowEnd" +#define CMD_SID_CONNECTOR_ARROWS ".uno:ConnectorArrows" +#define CMD_SID_CONNECTOR_ARROW_START ".uno:ConnectorArrowStart" +#define CMD_SID_CONNECTION_DLG ".uno:ConnectorAttributes" +#define CMD_SID_CONNECTOR_CIRCLE_END ".uno:ConnectorCircleEnd" +#define CMD_SID_CONNECTOR_CIRCLES ".uno:ConnectorCircles" +#define CMD_SID_CONNECTOR_CIRCLE_START ".uno:ConnectorCircleStart" +#define CMD_SID_CONNECTOR_CURVE ".uno:ConnectorCurve" +#define CMD_SID_CONNECTOR_CURVE_ARROW_END ".uno:ConnectorCurveArrowEnd" +#define CMD_SID_CONNECTOR_CURVE_ARROWS ".uno:ConnectorCurveArrows" +#define CMD_SID_CONNECTOR_CURVE_ARROW_START ".uno:ConnectorCurveArrowStart" +#define CMD_SID_CONNECTOR_CURVE_CIRCLE_END ".uno:ConnectorCurveCircleEnd" +#define CMD_SID_CONNECTOR_CURVE_CIRCLES ".uno:ConnectorCurveCircles" +#define CMD_SID_CONNECTOR_CURVE_CIRCLE_START ".uno:ConnectorCurveCircleStart" +#define CMD_SID_CONNECTOR_LINE ".uno:ConnectorLine" +#define CMD_SID_CONNECTOR_LINE_ARROW_END ".uno:ConnectorLineArrowEnd" +#define CMD_SID_CONNECTOR_LINE_ARROWS ".uno:ConnectorLineArrows" +#define CMD_SID_CONNECTOR_LINE_ARROW_START ".uno:ConnectorLineArrowStart" +#define CMD_SID_CONNECTOR_LINE_CIRCLE_END ".uno:ConnectorLineCircleEnd" +#define CMD_SID_CONNECTOR_LINE_CIRCLES ".uno:ConnectorLineCircles" +#define CMD_SID_CONNECTOR_LINE_CIRCLE_START ".uno:ConnectorLineCircleStart" +#define CMD_SID_CONNECTOR_LINES ".uno:ConnectorLines" +#define CMD_SID_CONNECTOR_LINES_ARROW_END ".uno:ConnectorLinesArrowEnd" +#define CMD_SID_CONNECTOR_LINES_ARROWS ".uno:ConnectorLinesArrows" +#define CMD_SID_CONNECTOR_LINES_ARROW_START ".uno:ConnectorLinesArrowStart" +#define CMD_SID_CONNECTOR_LINES_CIRCLE_END ".uno:ConnectorLinesCircleEnd" +#define CMD_SID_CONNECTOR_LINES_CIRCLES ".uno:ConnectorLinesCircles" +#define CMD_SID_CONNECTOR_LINES_CIRCLE_START ".uno:ConnectorLinesCircleStart" +#define CMD_SID_DRAWTBX_CONNECTORS ".uno:ConnectorToolbox" +#define CMD_SID_CONVERT_TO_CONTOUR ".uno:convert_to_contour" +#define CMD_SID_CONVERT_TO_3D ".uno:ConvertInto3D" +#define CMD_SID_CONVERT_TO_3D_LATHE ".uno:ConvertInto3DLathe" +#define CMD_SID_CONVERT_TO_3D_LATHE_FAST ".uno:ConvertInto3DLatheFast" +#define CMD_SID_CONVERT_TO_BITMAP ".uno:ConvertIntoBitmap" +#define CMD_SID_CONVERT_TO_METAFILE ".uno:ConvertIntoMetaFile" +#define CMD_SID_CONVERT_TO_1BIT_MATRIX ".uno:ConvertTo1BitMatrix" +#define CMD_SID_CONVERT_TO_1BIT_THRESHOLD ".uno:ConvertTo1BitThreshold" +#define CMD_SID_CONVERT_TO_4BIT_COLORS ".uno:ConvertTo4BitColors" +#define CMD_SID_CONVERT_TO_4BIT_GRAYS ".uno:ConvertTo4BitGrays" +#define CMD_SID_CONVERT_TO_8BIT_COLORS ".uno:ConvertTo8BitColors" +#define CMD_SID_CONVERT_TO_8BIT_GRAYS ".uno:ConvertTo8BitGrays" +#define CMD_SID_CONVERT_TO_24BIT ".uno:ConvertToTrueColor" +#define CMD_SID_COPYOBJECTS ".uno:CopyObjects" +#define CMD_SID_OBJECT_CROOK_ROTATE ".uno:CrookRotate" +#define CMD_SID_OBJECT_CROOK_SLANT ".uno:CrookSlant" +#define CMD_SID_OBJECT_CROOK_STRETCH ".uno:CrookStretch" +#define CMD_SID_3D_CUBE ".uno:Cube" +#define CMD_SID_CUSTOMSHOW_DLG ".uno:CustomShowDialog" +#define CMD_SID_3D_CYLINDER ".uno:Cylinder" +#define CMD_SID_3D_PYRAMID ".uno:Cyramid" +#define CMD_SID_DELETE_LAYER ".uno:DeleteLayer" +#define CMD_SID_DELETE_PAGE ".uno:DeletePage" +#define CMD_SID_DELETE_SNAPITEM ".uno:DeleteSnapItem" +#define CMD_SID_UNSELECT ".uno:DeSelect" +#define CMD_SID_DIAMODE ".uno:DiaMode" +#define CMD_SID_DISMANTLE ".uno:Dismantle" +#define CMD_SID_DOUBLECLICK_TEXTEDIT ".uno:DoubleClickTextEdit" +#define CMD_SID_DRAWINGMODE ".uno:DrawingMode" +#define CMD_SID_DUPLICATE_PAGE ".uno:DuplicatePage" +#define CMD_SID_EDIT_HYPERLINK ".uno:EditHyperlink" +#define CMD_SID_EDIT_OUTLINER ".uno:EditOutline" +#define CMD_SID_CUSTOM_ANIMATION_PANEL ".uno:CustomAnimation" +#define CMD_SID_CUSTOM_ANIMATION_SCHEMES_PANEL ".uno:CustomAnimationSchemes" +#define CMD_SID_DRAWTBX_ELLIPSES ".uno:EllipseToolbox" +#define CMD_SID_EXPAND_PAGE ".uno:ExpandPage" +#define CMD_SID_SETFILLCOLOR ".uno:SetFillColor" +#define CMD_SID_MOREFRONT ".uno:Forward" +#define CMD_SID_GETBLUE ".uno:GetBlue" +#define CMD_SID_GETFILLSTYLE ".uno:GetFillStyle" +#define CMD_SID_GETGREEN ".uno:GetGreen" +#define CMD_SID_GETLINESTYLE ".uno:GetLineStyle" +#define CMD_SID_GETLINEWIDTH ".uno:GetLineWidth" +#define CMD_SID_GETRED ".uno:GetRed" +#define CMD_SID_GLUE_EDITMODE ".uno:GlueEditMode" +#define CMD_SID_GLUE_ESCDIR ".uno:GlueEscapeDirection" +#define CMD_SID_GLUE_ESCDIR_BOTTOM ".uno:GlueEscapeDirectionBottom" +#define CMD_SID_GLUE_ESCDIR_LEFT ".uno:GlueEscapeDirectionLeft" +#define CMD_SID_GLUE_ESCDIR_RIGHT ".uno:GlueEscapeDirectionRight" +#define CMD_SID_GLUE_ESCDIR_TOP ".uno:GlueEscapeDirectionTop" +#define CMD_SID_GLUE_HORZALIGN_CENTER ".uno:GlueHorzAlignCenter" +#define CMD_SID_GLUE_HORZALIGN_LEFT ".uno:GlueHorzAlignLeft" +#define CMD_SID_GLUE_HORZALIGN_RIGHT ".uno:GlueHorzAlignRight" +#define CMD_SID_GLUE_INSERT_POINT ".uno:GlueInsertPoint" +#define CMD_SID_GLUE_PERCENT ".uno:GluePercent" +#define CMD_SID_GLUE_VERTALIGN_BOTTOM ".uno:GlueVertAlignBottom" +#define CMD_SID_GLUE_VERTALIGN_CENTER ".uno:GlueVertAlignCenter" +#define CMD_SID_GLUE_VERTALIGN_TOP ".uno:GlueVertAlignTop" +#define CMD_SID_GRADIENT ".uno:Gradient" +#define CMD_SID_SETGRADENDCOLOR ".uno:GradientEndColor" +#define CMD_SID_SETGRADSTARTCOLOR ".uno:GradientStartColor" +#define CMD_SID_GRAPHIC_EXPORT ".uno:GraphicExport" +#define CMD_SID_GRID_FRONT ".uno:GridFront" +#define CMD_SID_3D_HALF_SPHERE ".uno:HalfSphere" +#define CMD_SID_HANDLES_DRAFT ".uno:HandlesDraft" +#define CMD_SID_HANDOUT_MASTERPAGE ".uno:HandoutMasterPage" +#define CMD_SID_HANDOUTMODE ".uno:HandoutMode" +#define CMD_SID_HATCH ".uno:Hatch" +#define CMD_SID_SETHATCHCOLOR ".uno:HatchColor" +#define CMD_SID_HELPLINES_FRONT ".uno:HelplinesFront" +#define CMD_SID_HELPLINES_USE ".uno:HelplinesUse" +#define CMD_SID_HELPLINES_VISIBLE ".uno:HelplinesVisible" +#define CMD_SID_HIDE_SLIDE ".uno:HideSlide" +#define CMD_SID_SHOW_SLIDE ".uno:ShowSlide" +#define CMD_SID_HYPHENATION ".uno:Hyphenation" +#define CMD_SID_INSERTFILE ".uno:ImportFromFile" +#define CMD_SID_INSERT_FLD_AUTHOR ".uno:InsertAuthorField" +#define CMD_SID_INSERT_FLD_DATE_FIX ".uno:InsertDateFieldFix" +#define CMD_SID_INSERT_FLD_DATE_VAR ".uno:InsertDateFieldVar" +#define CMD_SID_INSERT_FLD_FILE ".uno:InsertFileField" +#define CMD_SID_INSERTLAYER ".uno:InsertLayer" +#define CMD_SID_INSERTPAGE ".uno:InsertPage" +#define CMD_SID_INSERT_FLD_PAGE ".uno:InsertPageField" +#define CMD_SID_INSERT_FLD_PAGES ".uno:InsertPagesField" +#define CMD_SID_INSERTPAGE_QUICK ".uno:InsertPageQuick" +#define CMD_SID_INSERT_FLD_TIME_FIX ".uno:InsertTimeFieldFix" +#define CMD_SID_INSERT_FLD_TIME_VAR ".uno:InsertTimeFieldVar" +#define CMD_SID_DRAWTBX_INSERT ".uno:InsertToolbox" +#define CMD_SID_OBJECT_GRADIENT ".uno:InteractiveGradient" +#define CMD_SID_OBJECT_TRANSPARENCE ".uno:InteractiveTransparence" +#define CMD_SID_LAYERMODE ".uno:LayerMode" +#define CMD_SID_STATUS_LAYOUT ".uno:LayoutStatus" +#define CMD_SID_LEAVE_ALL_GROUPS ".uno:LeaveAllGroups" +#define CMD_SID_LINE_ARROW_CIRCLE ".uno:LineArrowCircle" +#define CMD_SID_LINE_ARROW_END ".uno:LineArrowEnd" +#define CMD_SID_LINE_ARROWS ".uno:LineArrows" +#define CMD_SID_LINE_ARROW_SQUARE ".uno:LineArrowSquare" +#define CMD_SID_LINE_ARROW_START ".uno:LineArrowStart" +#define CMD_SID_LINE_CIRCLE_ARROW ".uno:LineCircleArrow" +#define CMD_SID_SETLINECOLOR ".uno:LineColor" +#define CMD_SID_LINEEND_POLYGON ".uno:LineEndPolygon" +#define CMD_SID_LINE_SQUARE_ARROW ".uno:LineSquareArrow" +#define CMD_SID_LINETO ".uno:LineTo" +#define CMD_SID_DRAWTBX_LINES ".uno:LineToolbox" +#define CMD_SID_MANAGE_LINKS ".uno:ManageLinks" +#define CMD_SID_MASTERPAGE ".uno:MasterPage" +#define CMD_SID_MEASURE_DLG ".uno:MeasureAttributes" +#define CMD_SID_DRAW_MEASURELINE ".uno:MeasureLine" +#define CMD_SID_HORIZONTAL ".uno:MirrorHorz" +#define CMD_SID_VERTICAL ".uno:MirrorVert" +#define CMD_SID_MODIFY_FIELD ".uno:ModifyField" +#define CMD_SID_MODIFYLAYER ".uno:ModifyLayer" +#define CMD_SID_MODIFYPAGE ".uno:ModifyPage" +#define CMD_SID_ASSIGN_LAYOUT ".uno:AssignLayout" +#define CMD_SID_PRESENTATIONOBJECT ".uno:ModifyPresentationObject" +#define CMD_SID_POLYGON_MORPHING ".uno:Morphing" +#define CMD_SID_MOVETO ".uno:MoveTo" +#define CMD_SID_NAME_GROUP ".uno:NameGroup" +#define CMD_SID_OBJECT_TITLE_DESCRIPTION ".uno:ObjectTitleDescription" +#define CMD_SID_NAVIGATOR_INIT ".uno:NavigatorInit" +#define CMD_SID_NAVIGATOR_OBJECT ".uno:NavigatorObject" +#define CMD_SID_NAVIGATOR_PAGE ".uno:NavigatorPage" +#define CMD_SID_NAVIGATOR_PAGENAME ".uno:NavigatorPageName" +#define CMD_SID_NAVIGATOR_PEN ".uno:NavigatorPen" +#define CMD_SID_NAVIGATOR_STATE ".uno:NavigatorState" +#define CMD_SID_CONNECTION_NEW_ROUTING ".uno:NewRouting" +#define CMD_SID_NOTES_MASTERPAGE ".uno:NotesMasterPage" +#define CMD_SID_NOTESMODE ".uno:NotesMode" +#define CMD_SID_POSITION ".uno:ObjectPosition" +#define CMD_SID_DRAWTBX_3D_OBJECTS ".uno:Objects3DToolbox" +#define CMD_SID_ORIGINAL_SIZE ".uno:OriginalSize" +#define CMD_SID_SAVEGRAPHIC ".uno:SaveGraphic" +#define CMD_SID_OUTLINEMODE ".uno:OutlineMode" +#define CMD_SID_OUTLINE_TEXT_AUTOFIT ".uno.OutlineTextAutofit" +#define CMD_SID_OUTPUT_QUALITY_BLACKWHITE ".uno:OutputQualityBlackWhite" +#define CMD_SID_OUTPUT_QUALITY_COLOR ".uno:OutputQualityColor" +#define CMD_SID_OUTPUT_QUALITY_CONTRAST ".uno:OutputQualityContrast" +#define CMD_SID_OUTPUT_QUALITY_GRAYSCALE ".uno:OutputQualityGrayscale" +#define CMD_SID_PACKNGO ".uno:PackAndGo" +#define CMD_SID_PAGEMARGIN ".uno:PageMargin" +#define CMD_SID_PAGEMODE ".uno:PageMode" +#define CMD_SID_PAGESETUP ".uno:PageSetup" +#define CMD_SID_PAGESIZE ".uno:PageSize" +#define CMD_SID_PAGES_PER_ROW ".uno:PagesPerRow" +#define CMD_SID_STATUS_PAGE ".uno:PageStatus" +#define CMD_SID_PARASPACE_DECREASE ".uno:ParaspaceDecrease" +#define CMD_SID_PARASPACE_INCREASE ".uno:ParaspaceIncrease" +#define CMD_SID_PICK_THROUGH ".uno:PickThrough" +#define CMD_SID_DRAW_POLYGON ".uno:Polygon" +#define CMD_SID_PRESENTATION ".uno:Presentation" +#define CMD_SID_PRESENTATION_DLG ".uno:PresentationDialog" +#define CMD_SID_PRESENTATION_END ".uno:PresentationEnd" +#define CMD_SID_CLEAR_UNDO_STACK ".uno:ClearUndoStack" +#define CMD_SID_PRESENTATION_LAYOUT ".uno:PresentationLayout" +#define CMD_SID_PREVIEW_STATE ".uno:PreviewState" +#define CMD_SID_PREVIEW_WIN ".uno:PreviewWindow" +#define CMD_SID_QUICKEDIT ".uno:QuickEdit" +#define CMD_SID_DRAWTBX_RECTANGLES ".uno:RectangleToolbox" +#define CMD_SID_REHEARSE_TIMINGS ".uno:RehearseTimings" +#define CMD_SID_RENAMELAYER ".uno:RenameLayer" +#define CMD_SID_RENAMEPAGE ".uno:RenamePage" +#define CMD_SID_RENAMEPAGE_QUICK ".uno:RenamePageQuick" +#define CMD_SID_REVERSE_ORDER ".uno:ReverseOrder" +#define CMD_SID_RULER_OBJECT ".uno:RulerObject" +#define CMD_SID_SELECTAT ".uno:SelectAt" +#define CMD_SID_SELECTGRADIENT ".uno:SelectGradient" +#define CMD_SID_SELECTHATCH ".uno:SelectHatch" +#define CMD_SID_SETFILLSTYLE ".uno:SetFillStyle" +#define CMD_SID_SETLINESTYLE ".uno:SetLineStyle" +#define CMD_SID_SETLINEWIDTH ".uno:SetLineWidth" +#define CMD_SID_SET_SNAPITEM ".uno:SetSnapItem" +#define CMD_SID_OBJECT_SHEAR ".uno:Shear" +#define CMD_SID_3D_SHELL ".uno:Shell3D" +#define CMD_SID_SLIDE_TRANSITIONS_PANEL ".uno:SlideChangeWindow" +#define CMD_SID_SLIDE_MASTERPAGE ".uno:SlideMasterPage" +#define CMD_SID_SNAP_BORDER ".uno:SnapBorder" +#define CMD_SID_SNAP_FRAME ".uno:SnapFrame" +#define CMD_SID_SNAP_POINTS ".uno:SnapPoints" +#define CMD_SID_SOLID_CREATE ".uno:SolidCreate" +#define CMD_SID_3D_SPHERE ".uno:Sphere" +#define CMD_SID_STARTAPP ".uno:StartApplication" +#define CMD_SID_SUMMARY_PAGE ".uno:SummaryPage" +#define CMD_SID_SWITCHLAYER ".uno:SwitchLayer" +#define CMD_SID_SWITCHPAGE ".uno:SwitchPage" +#define CMD_SID_SWITCH_POINTEDIT ".uno:SwitchPointEdit" +#define CMD_SID_TEXTALIGNMENT ".uno:TextAlignment" +#define CMD_SID_TEXTATTR_DLG ".uno:TextAttributes" +#define CMD_SID_TEXT_FITTOSIZE ".uno:TextFitToSizeTool" +#define CMD_SID_DRAWTBX_TEXT ".uno:TextToolbox" +#define CMD_SID_TITLE_MASTERPAGE ".uno:TitleMasterPage" +#define CMD_SID_3D_TORUS ".uno:Torus" +#define CMD_SID_TEXT_FITTOSIZE_VERTICAL ".uno:VerticalTextFitToSizeTool" +#define CMD_SID_ZOOM_PANNING ".uno:ZoomPanning" +#define CMD_SID_OBJECT_CROP ".uno:Crop" +#define CMD_SID_HEADER_AND_FOOTER ".uno:HeaderAndFooter" +#define CMD_SID_INSERT_PAGE_NUMBER ".uno:InsertPageNumber" +#define CMD_SID_INSERT_DATE_TIME ".uno:InsertDateAndTime" +#define CMD_SID_MASTER_LAYOUTS ".uno:MasterLayouts" +#define CMD_SID_DRAW_FONTWORK ".uno:DrawFontwork" +#define CMD_SID_DRAW_FONTWORK_VERTICAL ".uno:DrawFontworkVertical" +#define CMD_SID_LAYER_DIALOG_WIN ".uno:LayerDialogChildWindow" +#define CMD_SID_INSERT_MASTER_PAGE ".uno:InsertMasterPage" +#define CMD_SID_DELETE_MASTER_PAGE ".uno:DeleteMasterPage" +#define CMD_SID_RENAME_MASTER_PAGE ".uno:RenameMasterPage" +#define CMD_SID_CLOSE_MASTER_VIEW ".uno:CloseMasterView" +#define CMD_SID_SELECT_BACKGROUND ".uno:SelectBackground" +#define CMD_SID_DISPLAY_MASTER_BACKGROUND ".uno:DisplayMasterBackground" +#define CMD_SID_DISPLAY_MASTER_OBJECTS ".uno:DisplayMasterObjects" +#define CMD_SID_TABLE_TOOLBOX ".uno:TableToolBox" +#define CMD_SID_TABLE_DISTRIBUTE_COLUMNS ".uno:DistributeColumns" +#define CMD_SID_TABLE_DISTRIBUTE_ROWS ".uno:DistributeRows" +#define CMD_SID_TP_APPLY_TO_ALL_SLIDES ".uno:TaskPaneApplyToAllSlides" +#define CMD_SID_TP_APPLY_TO_SELECTED_SLIDES ".uno:TaskPaneApplyToSelectedSlides" +#define CMD_SID_TP_USE_FOR_NEW_PRESENTATIONS ".uno:TaskPaneUseForNewPresentations" +#define CMD_SID_TP_SHOW_SMALL_PREVIEW ".uno:TaskPaneShowSmallPreview" +#define CMD_SID_TP_SHOW_LARGE_PREVIEW ".uno:TaskPaneShowLargePreview" +#define CMD_SID_TP_EDIT_MASTER ".uno:TaskPaneEditMaster" +#define CMD_SID_INSERTPAGE_LAYOUT_MENU ".uno:TaskPaneInsertPage" +#define CMD_SID_SWITCH_SHELL ".uno:SwitchViewShell" +#define CMD_SID_SWITCH_SHELL_PANE ".uno:SwitchViewShellPane" +#define CMD_SID_LEFT_PANE_IMPRESS ".uno:LeftPaneImpress" +#define CMD_SID_LEFT_PANE_DRAW ".uno:LeftPaneDraw" +#define CMD_SID_RIGHT_PANE ".uno:RightPane" +#define CMD_SID_NOTES_WINDOW ".uno:NotesChildWindow" +#define CMD_SID_NORMAL_MULTI_PANE_GUI ".uno:NormalMultiPaneGUI" +#define CMD_SID_SLIDE_SORTER_MULTI_PANE_GUI ".uno:SlideSorterMultiPaneGUI" +#define CMD_SID_TASK_PANE ".uno:TaskPaneShowPanel" + +#endif diff --git a/sd/inc/sddll.hxx b/sd/inc/sddll.hxx new file mode 100644 index 000000000000..b59114de95c3 --- /dev/null +++ b/sd/inc/sddll.hxx @@ -0,0 +1,81 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SDDLL_HXX +#define _SDDLL_HXX + +#include "sdmod.hxx" +#include <sfx2/module.hxx> +#include <sfx2/sfxdefs.hxx> + +class SvFactory; +class SotFactory; +class SfxMedium; +class SfxFilter; + + +/************************************************************************* +|* +|* This class is a wrapper for a Load-On-Demand-DLL. One instance +|* per SfxApplication will be created for the runtime of +|* SfxApplication-subclass::Main(). +|* +|* Remember: Do export this class! It is used by the application. +|* +\************************************************************************/ + +class SdDLL +{ +protected: + static void RegisterFactorys(); + static void RegisterInterfaces(); + static void RegisterControllers(); + +public: + // Ctor/Dtor must be linked to the application + SdDLL(); + ~SdDLL(); + + // static-init/exit-code must be linked to the application + static void LibInit(); // called from SfxApplication-subclass::Init() + static void LibExit(); // called from SfxApplication-subclass::Exit() + + // DLL-init/exit-code must be linked to the DLL only + static void Init(); // called directly after loading the DLL + static void Exit(); // called directly befor unloading the DLL +}; + + + +#ifndef _SD_DLL // Das define muss im Draw gesetzt werden +#define SD_MOD() ( *(SdModule**) GetAppData(SHL_DRAW) ) +#endif + +#endif // _SDDLL_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/sddllapi.h b/sd/inc/sddllapi.h new file mode 100644 index 000000000000..c07c4792e6f1 --- /dev/null +++ b/sd/inc/sddllapi.h @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef INCLUDED_SDDLLAPI_H +#define INCLUDED_SDDLLAPI_H + +#include "sal/types.h" + +#if defined(SD_DLLIMPLEMENTATION) +#define SD_DLLPUBLIC SAL_DLLPUBLIC_EXPORT +#else +#define SD_DLLPUBLIC SAL_DLLPUBLIC_IMPORT +#endif +#define SD_DLLPRIVATE SAL_DLLPRIVATE + +#endif /* INCLUDED_SDDLLAPI_H */ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/sdenumdef.hxx b/sd/inc/sdenumdef.hxx new file mode 100644 index 000000000000..38563d720fb4 --- /dev/null +++ b/sd/inc/sdenumdef.hxx @@ -0,0 +1,40 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_ENUMDEF_HXX +#define _SD_ENUMDEF_HXX + +enum OutputType { OUTPUT_PAGE, OUTPUT_OVERHEAD, OUTPUT_SLIDE, OUTPUT_PRESENTATION, OUTPUT_ORIGINAL }; +enum StartType { ST_EMPTY, ST_TEMPLATE, ST_OPEN }; + +#define RET_SNAP_DELETE 111 +enum SnapKind { SK_HORIZONTAL, SK_VERTICAL, SK_POINT }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/sderror.hxx b/sd/inc/sderror.hxx new file mode 100644 index 000000000000..e98f419b73b6 --- /dev/null +++ b/sd/inc/sderror.hxx @@ -0,0 +1,68 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SDSWERROR_H +#define _SDSWERROR_H + +#include <tools/errcode.hxx> + +#define ERROR_SD_BASE (ERRCODE_AREA_SD) +#define ERROR_SD_READ_BASE (ERROR_SD_BASE | ERRCODE_CLASS_READ) +#define ERROR_SD_WRITE_BASE (ERROR_SD_BASE | ERRCODE_CLASS_WRITE) + +#define WARN_SD_BASE (ERRCODE_AREA_SD | ERRCODE_WARNING_MASK) +#define WARN_SD_READ_BASE (WARN_SD_BASE | ERRCODE_CLASS_READ ) +#define WARN_SD_WRITE_BASE (WARN_SD_BASE | ERRCODE_CLASS_WRITE ) + + +// Import errors +#define ERR_FORMAT_ROWCOL (ERROR_SD_READ_BASE | 1) +#define ERR_FORMAT_FILE_ROWCOL (ERROR_SD_READ_BASE | 2) + +// ----- Warnings --------------------------- + +#define WARN_FORMAT_FILE_ROWCOL (WARN_SD_READ_BASE | 100) + +#ifndef __RSC + +inline bool IsWarning( sal_uLong nErr ) +{ + return 0 != ( nErr & ERRCODE_WARNING_MASK & nErr ); +} + +inline bool IsError( sal_uLong nErr ) +{ + return nErr && 0 == ( ERRCODE_WARNING_MASK & nErr ); +} + +#endif + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/sdfilter.hxx b/sd/inc/sdfilter.hxx new file mode 100644 index 000000000000..7e649ba99085 --- /dev/null +++ b/sd/inc/sdfilter.hxx @@ -0,0 +1,82 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_SDFILTER_HXX +#define _SD_SDFILTER_HXX + +#include <tools/gen.hxx> +#include <rtl/ustring.hxx> +#include <com/sun/star/frame/XModel.hpp> +#include <com/sun/star/task/XStatusIndicator.hpp> +#include <com/sun/star/task/XStatusIndicatorSupplier.hpp> + +// ------------ +// - SdFilter - +// ------------ + +class SfxMedium; +namespace sd { +class DrawDocShell; +} +class SdDrawDocument; +class SfxProgress; +namespace osl { class Module; } + +class SdFilter +{ +public: + SdFilter( SfxMedium& rMedium, ::sd::DrawDocShell& rDocShell, sal_Bool bShowProgress ); + virtual ~SdFilter(); + + sal_Bool IsProgress() const { return mbShowProgress; } + sal_Bool IsDraw() const { return mbIsDraw; } + sal_Bool IsImpress() const { return !mbIsDraw; } + virtual sal_Bool Export() = 0; + +protected: + ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > mxModel; + ::com::sun::star::uno::Reference< ::com::sun::star::task::XStatusIndicator > mxStatusIndicator; + + SfxMedium& mrMedium; + ::sd::DrawDocShell& mrDocShell; + SdDrawDocument& mrDocument; + sal_Bool mbIsDraw : 1; + sal_Bool mbShowProgress : 1; + + ::osl::Module* OpenLibrary( const ::rtl::OUString& rLibraryName ) const; + void CreateStatusIndicator(); + +private: + + ::rtl::OUString ImplGetFullLibraryName( const ::rtl::OUString& rLibraryName ) const; + +}; + +#endif // _SD_SDFILTER_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/sdgrffilter.hxx b/sd/inc/sdgrffilter.hxx new file mode 100644 index 000000000000..d9c0446cc98e --- /dev/null +++ b/sd/inc/sdgrffilter.hxx @@ -0,0 +1,59 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_SDGRFFILTER_HXX +#define _SD_SDGRFFILTER_HXX + +#include <com/sun/star/drawing/XShape.hpp> + +#include <tools/errinf.hxx> +#include "sdfilter.hxx" + +class Graphic; + +// --------------- +// - SdCGMFilter - +// --------------- + +class SdGRFFilter : public SdFilter +{ +public: + SdGRFFilter ( SfxMedium& rMedium, ::sd::DrawDocShell& rDocShell ); + + virtual ~SdGRFFilter (void); + + sal_Bool Import(); + sal_Bool Export(); + + static void SaveGraphic( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >& xShape ); + static void HandleGraphicFilterError( sal_uInt16 nFilterError, sal_uLong nStreamError = ERRCODE_NONE ); +}; + +#endif // _SD_SDGRFFILTER_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/sdhtmlfilter.hxx b/sd/inc/sdhtmlfilter.hxx new file mode 100644 index 000000000000..e2c52c1655d6 --- /dev/null +++ b/sd/inc/sdhtmlfilter.hxx @@ -0,0 +1,57 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_SDHTMLFILTER_HXX +#define _SD_SDHTMLFILTER_HXX + +#include "sdfilter.hxx" + +// ---------------- +// - SdHTMLFilter - +// ---------------- + +class SdHTMLFilter + : public SdFilter +{ +public: + SdHTMLFilter ( + SfxMedium& rMedium, + ::sd::DrawDocShell& rDocShell, + sal_Bool bShowProgress); + virtual ~SdHTMLFilter (void); + + virtual sal_Bool Export(); + +private: + DECL_LINK( IOProgressHdl, sal_uInt16* ); + +}; + +#endif // _SD_SDHTMLFILTER_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/sdiocmpt.hxx b/sd/inc/sdiocmpt.hxx new file mode 100644 index 000000000000..7c25924ff009 --- /dev/null +++ b/sd/inc/sdiocmpt.hxx @@ -0,0 +1,78 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_SDIOCMPT_HXX +#define _SD_SDIOCMPT_HXX + +#include <tools/stream.hxx> + +////////////////////////////////////////////////////////////////////////////// +class SvStream; + +class old_SdrDownCompat +{ +protected: + SvStream& rStream; + sal_uInt32 nSubRecSiz; + sal_uInt32 nSubRecPos; + sal_uInt16 nMode; + sal_Bool bOpen; + +protected: + void Read(); + void Write(); + +public: + old_SdrDownCompat(SvStream& rNewStream, sal_uInt16 nNewMode); + ~old_SdrDownCompat(); + void OpenSubRecord(); + void CloseSubRecord(); +}; +////////////////////////////////////////////////////////////////////////////// +#include "sddllapi.h" + +#define SDIOCOMPAT_VERSIONDONTKNOW (sal_uInt16)0xffff + +class SD_DLLPUBLIC SdIOCompat : public old_SdrDownCompat +{ +private: + sal_uInt16 nVersion; + +public: + // nNewMode: STREAM_READ oder STREAM_WRITE + // nVer: nur beim Schreiben angeben + SdIOCompat(SvStream& rNewStream, sal_uInt16 nNewMode, + sal_uInt16 nVer = SDIOCOMPAT_VERSIONDONTKNOW); + ~SdIOCompat(); + sal_uInt16 GetVersion() const { return nVersion; } +}; + +#endif // _SD_SDIOCMPT_HXX + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/sdmod.hxx b/sd/inc/sdmod.hxx new file mode 100644 index 000000000000..f133e9320317 --- /dev/null +++ b/sd/inc/sdmod.hxx @@ -0,0 +1,218 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SDMOD_HXX +#define _SDMOD_HXX + + +#ifndef _SDDLL_HXX +#define _SD_DLL // fuer SD_MOD() +#include "sddll.hxx" // fuer SdModuleDummy +#endif +#include "glob.hxx" +#include "pres.hxx" + +#include <sot/storage.hxx> +#include <tools/shl.hxx> +#include "sddllapi.h" +#include <svl/lstner.hxx> +#include <com/sun/star/text/WritingMode.hpp> +#include <sfx2/module.hxx> +#include <vcl/vclevent.hxx> + +#ifndef INCLUDED_MEMORY +#include <memory> +#define INCLUDED_MEMORY +#endif + +class SdOptions; +class BasicIDE; +class SvxSearchItem; +class SdAppLinkHdl; +class SvxErrorHandler; +class EditFieldInfo; +class SvFactory; +class SdTransferable; +class SvNumberFormatter; +class SfxErrorHandler; +class OutputDevice; +class SdPage; +class SdDrawDocument; +class SfxFrame; + +namespace sd { +class DrawDocShell; +class SdGlobalResourceContainer; +} + +namespace com { namespace sun { namespace star { namespace frame { + class XFrame; +} } } } + + +// ---------------------- +// - SdOptionStreamMode - +// ---------------------- + +enum SdOptionStreamMode +{ + SD_OPTION_LOAD = 0, + SD_OPTION_STORE = 1 +}; + +/************************************************************************* +|* +|* This subclass of <SfxModule> (which is a subclass of <SfxShell>) is +|* linked to the DLL. One instance of this class exists while the DLL is +|* loaded. +|* +|* SdModule is like to be compared with the <SfxApplication>-subclass. +|* +|* Remember: Don`t export this class! It uses DLL-internal symbols. +|* +\************************************************************************/ + +class SdModule : public SfxModule, public SfxListener +{ +public: + + TYPEINFO(); + SFX_DECL_INTERFACE(SD_IF_SDAPP) + DECL_LINK( CalcFieldValueHdl, EditFieldInfo* ); + + SdModule(SfxObjectFactory* pDrawObjFact, SfxObjectFactory* pGraphicObjFact); + virtual ~SdModule(); + + SdTransferable* pTransferClip; + SdTransferable* pTransferDrag; + SdTransferable* pTransferSelection; + + void Execute(SfxRequest& rReq); + void GetState(SfxItemSet&); + + SdOptions* GetSdOptions(DocumentType eDocType); + SD_DLLPUBLIC SvStorageStreamRef GetOptionStream( const String& rOptionName, SdOptionStreamMode eMode ); + + sal_Bool GetWaterCan() const { return bWaterCan; } + void SetWaterCan( sal_Bool bWC ) { bWaterCan = bWC; } + + SvxSearchItem* GetSearchItem() { return (pSearchItem); } + void SetSearchItem(SvxSearchItem* pItem) { pSearchItem = pItem; } + + /** Return the virtual device that can be used for printer independent + layout. + @return + The returned pointer is NULL when the device could not be + created when this modules was instantiated. + */ + OutputDevice* GetVirtualRefDevice (void); + + /** Deprecated alias to <member>GetVirtualRefDevice</member>. + @param rDocShell + Unused dummy parameter. + */ + OutputDevice* GetRefDevice (::sd::DrawDocShell& rDocShell); + + SD_DLLPUBLIC SvNumberFormatter* GetNumberFormatter(); + + //virtuelle Methoden fuer den Optionendialog + virtual SfxItemSet* CreateItemSet( sal_uInt16 nId ); + virtual void ApplyItemSet( sal_uInt16 nId, const SfxItemSet& rSet ); + virtual SfxTabPage* CreateTabPage( sal_uInt16 nId, Window* pParent, const SfxItemSet& rSet ); + +protected: + + SdOptions* pImpressOptions; + SdOptions* pDrawOptions; + SvxSearchItem* pSearchItem; + SvNumberFormatter* pNumberFormatter; + SvStorageRef xOptionStorage; + sal_Bool bAutoSave; + sal_Bool bWaterCan; + SfxErrorHandler* mpErrorHdl; + /** This device is used for printer independent layout. It is virtual + in the sense that it does not represent a printer. The pointer may + be NULL when the virtual device could not be created. + */ + OutputDevice* mpVirtualRefDevice; + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + +private: + SfxFrame* ExecuteNewDocument( SfxRequest& rReq ); + + static void ChangeMedium( ::sd::DrawDocShell* pDocShell, SfxViewFrame* pViewFrame, const sal_Int32 eMedium ); + static SfxFrame* CreateEmptyDocument( DocumentType eDocType, const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& i_rFrame ); + static SfxFrame* CreateFromTemplate( const String& rTemplatePath, const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& i_rFrame ); + + /** The resource container controls the lifetime of some singletons. + */ + ::std::auto_ptr< ::sd::SdGlobalResourceContainer> mpResourceContainer; + + /** Create a new summary page. When the document has been created in + the kiosk mode with automatical transitions then this method adds + this kind of transition to the new summary page. + @param pViewFrame + The view frame that is used to execute the slot for creating the + summary page. + @param pDocument + The document which will contain the summary page and from which + the information about the default transition is retrieved. + */ + void AddSummaryPage (SfxViewFrame* pViewFrame, SdDrawDocument* pDocument); + + /** Take an outline from a text document and create a new impress + document according to the structure of the outline. + @param rRequest + This typically is the unmodified request from a execute() + function from where this function is called. + */ + void OutlineToImpress (SfxRequest& rRequest); + + /** Add an eventlistener as soon as possible in sd, allows to use + remote devices to start the slideshow elegantly, and respecting + portability + @EventListenerHdl + The event listener handler + @VclSimpleEvent * + a poiter to a VCLSimpleEvent (see vcl/vclevent.hxx ) + */ + DECL_LINK( EventListenerHdl, VclSimpleEvent* ); + +}; + + + + +#ifndef SD_MOD +#define SD_MOD() ( *(SdModule**) GetAppData(SHL_DRAW) ) +#endif + +#endif // _SDMOD_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/sdobjfac.hxx b/sd/inc/sdobjfac.hxx new file mode 100644 index 000000000000..7c31d3a542bb --- /dev/null +++ b/sd/inc/sdobjfac.hxx @@ -0,0 +1,61 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SDOBJFAC_HXX +#define _SDOBJFAC_HXX + + +#include <tools/link.hxx> + +//----------------------- +// class SdObjectFactory +//----------------------- +class SdrObjFactory; + +class SdObjectFactory +{ +protected: + Link aOldMakeObjLink; + Link aOldMakeUserDataLink; + +public: + SdObjectFactory() {} + + void SetOldMakeUserDataHdl( const Link& rLink ) + { aOldMakeUserDataLink = rLink; } + Link GetOldMakeUserDataHdl() const { return aOldMakeUserDataLink; } + + DECL_LINK( MakeUserData, SdrObjFactory * ); +}; + +extern SdObjectFactory aSdObjectFactory; + + +#endif // _SDOBJFAC_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/sdpage.hxx b/sd/inc/sdpage.hxx new file mode 100644 index 000000000000..68431d0c82d4 --- /dev/null +++ b/sd/inc/sdpage.hxx @@ -0,0 +1,412 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SDPAGE_HXX +#define _SDPAGE_HXX + +#include <boost/shared_ptr.hpp> + +#ifndef INCLUDED_FUNCTIONAL +#include <functional> +#define INCLUDED_FUNCTIONAL +#endif +#include <com/sun/star/drawing/XDrawPage.hpp> +#include <com/sun/star/presentation/FadeEffect.hpp> +#include <com/sun/star/office/XAnnotation.hpp> + +#include <list> +#include <functional> +#include <vector> +#include <svx/svdobj.hxx> +#include <svx/fmpage.hxx> +#include "fadedef.h" +#include "diadef.h" +#ifndef _PRESENTATION +#include "pres.hxx" +#endif +#include "shapelist.hxx" +#include "misc/scopelock.hxx" +#include "sddllapi.h" + +namespace com { namespace sun { namespace star { namespace animations { + class XAnimationNode; +} } } } + +class SfxStyleSheet; +class SdDrawDocument; +class SdrTextObj; +class SdPageLink; +class StarBASIC; +class SfxItemSet; +struct StyleRequestData; +class SdPage; +class Paragraph; +class Outliner; +class SdStyleSheet; + +namespace sd +{ + class MainSequence; +} + +namespace boost +{ + template<class X> class shared_ptr; +} + +namespace sd { + + struct SD_DLLPUBLIC HeaderFooterSettings + { + bool mbHeaderVisible; + String maHeaderText; + + bool mbFooterVisible; + String maFooterText; + + bool mbSlideNumberVisible; + + bool mbDateTimeVisible; + bool mbDateTimeIsFixed; + String maDateTimeText; + int meDateTimeFormat; + + HeaderFooterSettings(); + + bool operator==( const HeaderFooterSettings& rSettings ) const; + }; + + typedef std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::office::XAnnotation > > AnnotationVector; +} + +namespace sd { + class UndoAnimation; + class UndoTransition; + class UndoGeoObject; + class UndoAttrObject; +} + +class SD_DLLPUBLIC SdPage : public FmFormPage, public SdrObjUserCall +{ +friend class SdGenericDrawPage; +friend class SdDrawPage; +friend class sd::UndoAnimation; +friend class sd::UndoTransition; +friend class ModifyPageUndoAction; +friend class sd::UndoGeoObject; +friend class sd::UndoAttrObject; + +protected: + PageKind mePageKind; // Seitentyp + AutoLayout meAutoLayout; // AutoLayout + sd::ShapeList maPresentationShapeList; // Praesentationsobjekte + sd::ScopeLock maLockAutoLayoutArrangement; + sal_Bool mbSelected; // Selektionskennung + PresChange mePresChange; // manuell/automatisch/halbautomatisch + sal_uInt32 mnTime; // Anzeigedauer in Sekunden + sal_Bool mbSoundOn; // mit/ohne Sound (sal_True/sal_False) + sal_Bool mbExcluded; // wird in der Show nicht/doch + // angezeigt (sal_True/sal_False) + String maLayoutName; // Name des Layouts + String maSoundFile; // Pfad zum Soundfile (MSDOS-Notation) + bool mbLoopSound; + bool mbStopSound; + String maCreatedPageName; // von GetPageName erzeugter Seitenname + String maFileName; // Filename + String maBookmarkName; // Bookmarkname + sal_Bool mbScaleObjects; // Objekte sollen skaliert werden + sal_Bool mbBackgroundFullSize; // Hintergrundobjekt auf ganze Seite darstellen + rtl_TextEncoding meCharSet; // Text-Encoding + sal_uInt16 mnPaperBin; // PaperBin + Orientation meOrientation; // Print-Orientation + SdPageLink* mpPageLink; // PageLink (nur bei gelinkten Seiten) + + sd::AnnotationVector maAnnotations; + + /** holds the smil animation sequences for this page */ + ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode > mxAnimationNode; + + /** a helper class to manipulate effects inside the main sequence */ + boost::shared_ptr< sd::MainSequence > mpMainSequence; + + virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > createUnoPage(); + + SfxItemSet* mpItems; + + SfxItemSet* getOrCreateItems(); + + sd::HeaderFooterSettings maHeaderFooterSettings; + + // new transition settings + sal_Int16 mnTransitionType; + sal_Int16 mnTransitionSubtype; + sal_Bool mbTransitionDirection; + sal_Int32 mnTransitionFadeColor; + double mfTransitionDuration; + +public: + TYPEINFO(); + + SdPage(SdDrawDocument& rNewDoc, StarBASIC* pBasic, sal_Bool bMasterPage=sal_False); + SdPage(const SdPage& rSrcPage); + ~SdPage(); + virtual SdrPage* Clone() const; + virtual SdrPage* Clone(SdrModel* pNewModel) const; + + virtual void SetSize(const Size& aSize); + virtual void SetBorder(sal_Int32 nLft, sal_Int32 nUpp, sal_Int32 nRgt, sal_Int32 Lwr); + virtual void SetLftBorder(sal_Int32 nBorder); + virtual void SetRgtBorder(sal_Int32 nBorder); + virtual void SetUppBorder(sal_Int32 nBorder); + virtual void SetLwrBorder(sal_Int32 nBorder); + virtual void SetModel(SdrModel* pNewModel); + virtual bool IsReadOnly() const; + + sd::ShapeList& GetPresentationShapeList() { return maPresentationShapeList; } + + void EnsureMasterPageDefaultBackground(); + SdrObject* CreatePresObj(PresObjKind eObjKind, sal_Bool bVertical, const Rectangle& rRect, sal_Bool bInsert=sal_False); + SdrObject* CreateDefaultPresObj(PresObjKind eObjKind, bool bInsert); + SdrObject* GetPresObj(PresObjKind eObjKind, int nIndex = 1, bool bFuzzySearch = false ); + PresObjKind GetPresObjKind(SdrObject* pObj) const; + String GetPresObjText(PresObjKind eObjKind) const; + SfxStyleSheet* GetStyleSheetForMasterPageBackground() const; + SfxStyleSheet* GetStyleSheetForPresObj(PresObjKind eObjKind) const; + bool RestoreDefaultText( SdrObject* pObj ); + + /** returns true if the given SdrObject is inside the presentation object list */ + bool IsPresObj(const SdrObject* pObj); + + /** removes the given SdrObject from the presentation object list */ + void RemovePresObj(const SdrObject* pObj); + + /** inserts the given SdrObject into the presentation object list */ + void InsertPresObj(SdrObject* pObj, PresObjKind eKind ); + + void SetAutoLayout(AutoLayout eLayout, sal_Bool bInit=sal_False, sal_Bool bCreate=sal_False); + AutoLayout GetAutoLayout() const { return meAutoLayout; } + void CreateTitleAndLayout(sal_Bool bInit=sal_False, sal_Bool bCreate=sal_False); + SdrObject* InsertAutoLayoutShape(SdrObject* pObj, PresObjKind eObjKind, bool bVertical, Rectangle aRect, bool bInit ); + + virtual void NbcInsertObject(SdrObject* pObj, sal_uLong nPos=CONTAINER_APPEND, + const SdrInsertReason* pReason=NULL); + virtual SdrObject* NbcRemoveObject(sal_uLong nObjNum); + virtual SdrObject* RemoveObject(sal_uLong nObjNum); + + // Also overload ReplaceObject methods to realize when + // objects are removed with this mechanism instead of RemoveObject + virtual SdrObject* NbcReplaceObject(SdrObject* pNewObj, sal_uLong nObjNum); + virtual SdrObject* ReplaceObject(SdrObject* pNewObj, sal_uLong nObjNum); + + virtual void SetLinkData(const String& rLinkName, const String& rLinkData); + + void SetObjText(SdrTextObj* pObj, SdrOutliner* pOutliner, PresObjKind eObjKind, const String& rStr ); + + void SetPageKind(PageKind ePgType) { mePageKind = ePgType; } + PageKind GetPageKind() const { return mePageKind; } + + void SetSelected(sal_Bool bSel) { mbSelected = bSel; } + sal_Bool IsSelected() const { return mbSelected; } + + void SetFadeEffect(::com::sun::star::presentation::FadeEffect eNewEffect); + ::com::sun::star::presentation::FadeEffect GetFadeEffect() const; + + void SetPresChange(PresChange eChange) { mePresChange = eChange; } + PresChange GetPresChange() const { return mePresChange; } + + void SetTime(sal_uInt32 nNewTime) { mnTime = nNewTime; } + sal_uInt32 GetTime() const { return mnTime; } + + void SetSound(sal_Bool bNewSoundOn) { mbSoundOn = bNewSoundOn; } + sal_Bool IsSoundOn() const { return mbSoundOn; } + + void SetExcluded(sal_Bool bNewExcluded) { mbExcluded = bNewExcluded; } + sal_Bool IsExcluded() const { return mbExcluded; } + + void SetScaleObjects(sal_Bool bScale) { mbScaleObjects = bScale; } + sal_Bool IsScaleObjects() const { return mbScaleObjects; } + + void SetSoundFile(const String& rStr) { maSoundFile = rStr; } + String GetSoundFile() const { return maSoundFile; } + + void SetLoopSound( bool bLoopSound ) { mbLoopSound = bLoopSound; } + bool IsLoopSound() const { return mbLoopSound; } + + void SetStopSound( bool bStopSound ) { mbStopSound = bStopSound; } + bool IsStopSound() const { return mbStopSound; } + + sal_Int16 getTransitionType() const; + void setTransitionType( sal_Int16 nTransitionType ); + + sal_Int16 getTransitionSubtype() const; + void setTransitionSubtype( sal_Int16 nTransitionSubtype ); + + sal_Bool getTransitionDirection() const; + void setTransitionDirection( sal_Bool bTransitionbDirection ); + + sal_Int32 getTransitionFadeColor() const; + void setTransitionFadeColor( sal_Int32 nTransitionFadeColor ); + + double getTransitionDuration() const; + void setTransitionDuration( double fTranstionDuration ); + + // Virtuelle Methoden von SdrObjUserCall + virtual void Changed(const SdrObject& rObj, SdrUserCallType eType, + const Rectangle& rOldBoundRect); + + void SetLayoutName(String aName); + virtual String GetLayoutName() const { return maLayoutName; } + + void SetFileName(const String& aName) { maFileName = aName; } + virtual String GetFileName() const { return maFileName; } + void SetBookmarkName(const String& aName) { maBookmarkName = aName; } + virtual String GetBookmarkName() const { return maBookmarkName; } + SdPageLink* GetLink() { return mpPageLink; } + + void ConnectLink(); + void DisconnectLink(); + + void ScaleObjects(const Size& rNewPageSize, const Rectangle& rNewBorderRect, + sal_Bool bScaleAllObj); + + const String& GetName() const; + String GetRealName() const { return FmFormPage::GetName(); }; + + void SetPresentationLayout(const String& rLayoutName, + sal_Bool bReplaceStyleSheets = sal_True, + sal_Bool bSetMasterPage = sal_True, + sal_Bool bReverseOrder = sal_False); + void EndListenOutlineText(); + + void SetBackgroundFullSize( sal_Bool bIn ); + sal_Bool IsBackgroundFullSize() const { return mbBackgroundFullSize; } + + rtl_TextEncoding GetCharSet() { return(meCharSet); } + + void SetPaperBin(sal_uInt16 nBin) { mnPaperBin = nBin; } + sal_uInt16 GetPaperBin() const { return mnPaperBin; } + virtual void SetOrientation(Orientation eOrient); + virtual Orientation GetOrientation() const; + + virtual SfxStyleSheet* GetTextStyleSheetForObject( SdrObject* pObj ) const; + + sal_Bool setAlienAttributes( const com::sun::star::uno::Any& rAttributes ); + void getAlienAttributes( com::sun::star::uno::Any& rAttributes ); + + /** returns the main animation node */ + ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode > getAnimationNode() throw (::com::sun::star::uno::RuntimeException); + + /** sets the main animation node */ + void setAnimationNode( ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xNode ) throw (::com::sun::star::uno::RuntimeException); + + /** returns a helper class to manipulate effects inside the main sequence */ + boost::shared_ptr< sd::MainSequence > getMainSequence(); + + /** quick check if this slide has an animation node. + This can be used to have a cost free check if there are no animations ad this slide. + If it returns true this does not mean that there are animations available. + */ + bool hasAnimationNode() const; + + /** returns the SdPage implementation for the given XDrawPage or 0 if not available */ + static SdPage* getImplementation( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage >& xPage ); + + /** removes all custom animations for the given shape */ + void removeAnimations( const SdrObject* pObj ); + + /** Set the name of the page and broadcast a model change. + */ + virtual void SetName (const String& rName); + + const sd::HeaderFooterSettings& getHeaderFooterSettings() const; + void setHeaderFooterSettings( const sd::HeaderFooterSettings& rNewSettings ); + + /** this method returns true if the object from the ViewObjectContact should + be visible on this page while rendering. + bEdit selects if visibility test is for an editing view or a final render, + like printing. + */ + virtual bool checkVisibility( + const sdr::contact::ViewObjectContact& rOriginal, + const sdr::contact::DisplayInfo& rDisplayInfo, + bool bEdit ); + + /** callback from the sd::View when a new paragraph for one object on this page is created */ + void onParagraphInserted( ::Outliner* pOutliner, Paragraph* pPara, SdrObject* pObj ); + + /** callback from the sd::View when a paragraph from one object on this page is removed */ + void onParagraphRemoving( ::Outliner* pOutliner, Paragraph* pPara, SdrObject* pObj ); + + /** callback from the sd::View when an object just left text edit mode */ + void onEndTextEdit( SdrObject* pObj ); + + /** returns the presentation style with the given helpid from this masterpage or this + slides masterpage */ + SdStyleSheet* getPresentationStyle( sal_uInt32 nHelpId ) const; + + /** removes all empty presentation objects from this slide */ + void RemoveEmptyPresentationObjects(); + + Rectangle GetTitleRect() const; + Rectangle GetLayoutRect() const; + + static void CalculateHandoutAreas( SdDrawDocument& rModel, AutoLayout eLayout, bool bHorizontal, std::vector< Rectangle >& rAreas ); + + /** Set the "precious" flag to the given value. + */ + void SetPrecious (const bool bIsPrecious); + + /** The "precious" flag is used for master pages to prevent some unused + master pages from being deleted automatically. For pages + other than master pages this flag can be ignored. + @return + When this method returns <TRUE/> for a master page then this + master page should not be deleted automatically. + */ + bool IsPrecious (void) const; + + void createAnnotation( ::com::sun::star::uno::Reference< ::com::sun::star::office::XAnnotation >& xAnnotation ); + void addAnnotation( const ::com::sun::star::uno::Reference< ::com::sun::star::office::XAnnotation >& xAnnotation, int nIndex = -1 ); + void removeAnnotation( const ::com::sun::star::uno::Reference< ::com::sun::star::office::XAnnotation >& xAnnotation ); + const sd::AnnotationVector& getAnnotations() const { return maAnnotations; } + bool hasAnnotations() const { return !maAnnotations.empty(); } + +private: + bool mbIsPrecious; + + /** clone the animations from this and set them to rTargetPage + */ + void cloneAnimations( SdPage& rTargetPage ) const; + + /** called before a shape is removed or replaced from this slide */ + void onRemoveObject( SdrObject* pObject ); +}; + +#endif // _SDPAGE_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/sdpptwrp.hxx b/sd/inc/sdpptwrp.hxx new file mode 100644 index 000000000000..b2f9925651cd --- /dev/null +++ b/sd/inc/sdpptwrp.hxx @@ -0,0 +1,59 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_PPTWRP_HXX +#define _SD_PPTWRP_HXX + +#include "sdfilter.hxx" + +// --------------- +// - SdPPTFilter - +// --------------- + +class SdPPTFilter : public SdFilter +{ +public: + SdPPTFilter ( + SfxMedium& rMedium, + ::sd::DrawDocShell& rDocShell, + sal_Bool bShowProgress); + virtual ~SdPPTFilter (void); + + sal_Bool Import(); + sal_Bool Export(); + + // these methods are necassary for the export to PowerPoint + void PreSaveBasic(); // restaures the original basic storage + +private: + SvMemoryStream* pBas; +}; + +#endif // _SD_PPTWRP_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/sdresid.hxx b/sd/inc/sdresid.hxx new file mode 100644 index 000000000000..b764fc289c71 --- /dev/null +++ b/sd/inc/sdresid.hxx @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef SD_RESID_HXX +#define SD_RESID_HXX + +#include <tools/resid.hxx> +#include "sddllapi.h" + +class SD_DLLPUBLIC SdResId : public ResId +{ +public: + SdResId(sal_uInt16 nId); +}; + +#endif /* _SD_SDRESID_HXX */ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/sduiks.hrc b/sd/inc/sduiks.hrc new file mode 100644 index 000000000000..6904cc2999d1 --- /dev/null +++ b/sd/inc/sduiks.hrc @@ -0,0 +1,73 @@ +/************************************************************************* + * + * 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. + * + ************************************************************************/ +#ifndef _SDUIKS_HRC +#define _SDUIKS_HRC + +#include <usr/uiks.hrc> + +#define SD_UIK_SHAPE_FACTORY UIK_DRAWING(00) +#define SD_UIK_POLYGON_FACTORY UIK_DRAWING(01) +#define SD_UIK_3D_SHAPE_FACTORY UIK_DRAWING(02) +#define SD_UIK_TEXT_FACTORY UIK_DRAWING(03) +#define SD_UIK_SNAP_FACTORY UIK_DRAWING(04) + +#define SD_UIK_DRAW_PAGES UIK_DRAWING(10) +#define SD_UIK_DRAW_PAGE_MANIPULATOR UIK_DRAWING(11) + +#define SD_UIK_SHAPE UIK_DRAWING(20) +#define SD_UIK_CONNECTOR UIK_DRAWING(21) +#define SD_UIK_CONNECTABLE UIK_DRAWING(22) +#define SD_UIK_SHAPE_3D UIK_DRAWING(23) +#define SD_UIK_SHAPE_GROUP UIK_DRAWING(24) +#define SD_UIK_SHAPE_MIRRORER UIK_DRAWING(25) +#define SD_UIK_SHAPE_ALIGNER UIK_DRAWING(26) +#define SD_UIK_SHAPE_ARRANGER UIK_DRAWING(27) +#define SD_UIK_SHAPE_CONVERTER UIK_DRAWING(28) +#define SD_UIK_ANIMATOR UIK_DRAWING(29) + +#define SD_UIK_DRAW_PAGE UIK_DRAWING(30) +#define SD_UIK_SHAPES UIK_DRAWING(31) +#define SD_UIK_GROUP UIK_DRAWING(32) +#define SD_UIK_COMBINE UIK_DRAWING(33) +#define SD_UIK_CONNECT UIK_DRAWING(34) +#define SD_UIK_CONNECT UIK_DRAWING(35) + +#define SD_UIK_PRESENTATION UIK_DRAWING(40) +#define SD_UIK_PRESENTATION_NAVIGATION UIK_DRAWING(41) +#define SD_UIK_CUSTOM_PRESENTATION UIK_DRAWING(42) +#define SD_UIK_CUSTOM_PRESENTATIONS UIK_DRAWING(43) +#define SD_UIK_CUSTOM_PRESENTATIONS UIK_DRAWING(44) + +#define SD_UIK_ZOOM UIK_DRAWING(50) +#define SD_UIK_DRAW_VIEW UIK_DRAWING(51) +#define SD_UIK_OUTLINE_VIEW UIK_DRAWING(52) +#define SD_UIK_SLIDE_VIEW UIK_DRAWING(53) +#define SD_UIK_SLIDE_VIEW UIK_DRAWING(53) + +#define SD_UIK_PRESENTATION_STYLES UIK_DRAWING(60) + +#endif diff --git a/sd/inc/sdundo.hxx b/sd/inc/sdundo.hxx new file mode 100644 index 000000000000..bbf39e2076b0 --- /dev/null +++ b/sd/inc/sdundo.hxx @@ -0,0 +1,56 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_SDUNDO_HXX +#define _SD_SDUNDO_HXX + +#include <svl/undo.hxx> +#include "sddllapi.h" + +class SdDrawDocument; + +class SD_DLLPUBLIC SdUndoAction : public SfxUndoAction +{ +public: + TYPEINFO(); + SdUndoAction(SdDrawDocument* pSdDrawDocument) + : mpDoc(pSdDrawDocument) {} + virtual ~SdUndoAction() {} + + void SetComment(String& rStr) { maComment = rStr; } + virtual String GetComment() const { return maComment; } + virtual SdUndoAction* Clone() const { return NULL; } + +protected: + SdDrawDocument* mpDoc; + String maComment; +}; + +#endif // _SD_SDUNDO_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/sdxmlwrp.hxx b/sd/inc/sdxmlwrp.hxx new file mode 100644 index 000000000000..1b8c00acff77 --- /dev/null +++ b/sd/inc/sdxmlwrp.hxx @@ -0,0 +1,66 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ +#ifndef _SDXMLWRP_HXX +#define _SDXMLWRP_HXX + +#include <tools/errcode.hxx> +#include "sdfilter.hxx" + +// --------------- +// - SdXMLFilter - +// --------------- + +enum SdXMLFilterMode +{ + SDXMLMODE_Normal, // standard load and save of the complete document + SDXMLMODE_Preview, // only for import, only the first draw page and its master page is loaded + SDXMLMODE_Organizer // only for import, only the styles are loaded +}; + +class SdXMLFilter : public SdFilter +{ +public: + SdXMLFilter( + SfxMedium& rMedium, + ::sd::DrawDocShell& rDocShell, + sal_Bool bShowProgress, + SdXMLFilterMode eFilterMode = SDXMLMODE_Normal, + sal_uLong nStoreVer = SOFFICE_FILEFORMAT_8 ); + virtual ~SdXMLFilter (void); + + sal_Bool Import( ErrCode& nError ); + sal_Bool Export(); + +private: + SdXMLFilterMode meFilterMode; + sal_uLong mnStoreVer; +}; + +#endif // _SDXMLWRP_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/shapelist.hxx b/sd/inc/shapelist.hxx new file mode 100644 index 000000000000..680d95cd2710 --- /dev/null +++ b/sd/inc/shapelist.hxx @@ -0,0 +1,89 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SHAPELIST_HXX +#define _SHAPELIST_HXX + +#include <svx/sdrobjectuser.hxx> + +#include <list> + +namespace sd +{ + class ShapeList : public sdr::ObjectUser + { + public: + ShapeList(); + virtual ~ShapeList(); + + /** adds the given shape to this list */ + void addShape( SdrObject& rObject ); + + /** removes the shape from this list and returns + a pointer to the next shape in list or 0*/ + SdrObject* removeShape( SdrObject& rObject ); + + /** removes all shapes from this list */ + void clear(); + + /** returns true if this list is empty */ + bool isEmpty() const; + + /** returns true if given shape is part of this list */ + bool hasShape( SdrObject& rObject ) const; + + /** returns the shape following the given shape in the list or 0 + returns the first shape if pObj is 0 */ + SdrObject* getNextShape(SdrObject* pObj) const; + + /** + */ + SdrObject* getNextShape(); + + /** + */ + void seekShape( sal_uInt32 nIndex ); + + /** + */ + bool hasMore() const; + + const std::list< SdrObject* >& getList() const { return maShapeList; } + + private: + virtual void ObjectInDestruction(const SdrObject& rObject); + + typedef std::list< SdrObject* > ListImpl; + ListImpl maShapeList; + ListImpl::iterator maIter; + }; +} + +#endif // _SHAPELIST_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/stlfamily.hxx b/sd/inc/stlfamily.hxx new file mode 100644 index 000000000000..9f1d21b2713a --- /dev/null +++ b/sd/inc/stlfamily.hxx @@ -0,0 +1,129 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_STLFAMILY_HXX +#define _SD_STLFAMILY_HXX + +#include <com/sun/star/uno/Any.hxx> +#include <com/sun/star/style/XStyle.hpp> +#include <com/sun/star/beans/XPropertySet.hpp> +#include <com/sun/star/lang/XServiceInfo.hpp> +#include <com/sun/star/beans/XPropertyState.hpp> +#include <com/sun/star/lang/XComponent.hpp> +#include <com/sun/star/lang/XSingleServiceFactory.hpp> +#include <com/sun/star/container/XIndexAccess.hpp> +#include <com/sun/star/container/XNameContainer.hpp> +#include <com/sun/star/container/XNamed.hpp> + +#include <rtl/ref.hxx> + +#include <cppuhelper/implbase7.hxx> + +#include <svl/style.hxx> + +#include <editeng/unoipset.hxx> + +class SdStyleSheet; +class SdPage; +struct SdStyleFamilyImpl; + +namespace css = ::com::sun::star; + +class SdStyleFamily : public ::cppu::WeakImplHelper7< css::container::XNameContainer, css::container::XNamed, css::container::XIndexAccess, css::lang::XSingleServiceFactory, css::lang::XServiceInfo, css::lang::XComponent, css::beans::XPropertySet > +{ +public: + /// creates the style family for the given SfxStyleFamily + SdStyleFamily( const rtl::Reference< SfxStyleSheetPool >& xPool, SfxStyleFamily nFamily ); + + /// creates the presentation family for the given masterpage + SdStyleFamily( const rtl::Reference< SfxStyleSheetPool >& xPool, const SdPage* pMasterPage ); + + virtual ~SdStyleFamily(); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() throw(css::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(css::uno::RuntimeException); + virtual css::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(css::uno::RuntimeException); + + // XNamed + virtual ::rtl::OUString SAL_CALL getName( ) throw (css::uno::RuntimeException); + virtual void SAL_CALL setName( const ::rtl::OUString& aName ) throw (css::uno::RuntimeException); + + // XNameAccess + virtual css::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw(css::container::NoSuchElementException, css::lang::WrappedTargetException, css::uno::RuntimeException); + virtual css::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() throw(css::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw(css::uno::RuntimeException); + + // XElementAccess + virtual css::uno::Type SAL_CALL getElementType() throw(css::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(css::uno::RuntimeException); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(css::uno::RuntimeException) ; + virtual css::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) throw(css::lang::IndexOutOfBoundsException, css::lang::WrappedTargetException, css::uno::RuntimeException); + + // XNameContainer + virtual void SAL_CALL insertByName( const ::rtl::OUString& aName, const css::uno::Any& aElement ) throw(css::lang::IllegalArgumentException, css::container::ElementExistException, css::lang::WrappedTargetException, css::uno::RuntimeException); + virtual void SAL_CALL removeByName( const ::rtl::OUString& Name ) throw(css::container::NoSuchElementException, css::lang::WrappedTargetException, css::uno::RuntimeException); + + // XNameReplace + virtual void SAL_CALL replaceByName( const ::rtl::OUString& aName, const css::uno::Any& aElement ) throw(css::lang::IllegalArgumentException, css::container::NoSuchElementException, css::lang::WrappedTargetException, css::uno::RuntimeException); + + // XSingleServiceFactory + virtual css::uno::Reference< css::uno::XInterface > SAL_CALL createInstance( ) throw(css::uno::Exception, css::uno::RuntimeException); + virtual css::uno::Reference< css::uno::XInterface > SAL_CALL createInstanceWithArguments( const css::uno::Sequence< css::uno::Any >& aArguments ) throw(css::uno::Exception, css::uno::RuntimeException); + + // XComponent + virtual void SAL_CALL dispose( ) throw (css::uno::RuntimeException); + virtual void SAL_CALL addEventListener( const css::uno::Reference< css::lang::XEventListener >& xListener ) throw (css::uno::RuntimeException); + virtual void SAL_CALL removeEventListener( const css::uno::Reference< css::lang::XEventListener >& aListener ) throw (css::uno::RuntimeException); + + // XPropertySet + virtual css::uno::Reference<css::beans::XPropertySetInfo> SAL_CALL getPropertySetInfo() throw (css::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const css::uno::Any& aValue ) throw (css::beans::UnknownPropertyException, css::beans::PropertyVetoException, css::lang::IllegalArgumentException, css::lang::WrappedTargetException, css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) throw (css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException); + virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const css::uno::Reference<css::beans::XPropertyChangeListener>& xListener ) throw (css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException); + virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const css::uno::Reference<css::beans::XPropertyChangeListener>& aListener ) throw (css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException); + virtual void SAL_CALL addVetoableChangeListener(const ::rtl::OUString& PropertyName, const css::uno::Reference<css::beans::XVetoableChangeListener>& aListener ) throw (css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException); + virtual void SAL_CALL removeVetoableChangeListener(const ::rtl::OUString& PropertyName,const css::uno::Reference<css::beans::XVetoableChangeListener>&aListener ) throw (css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException); + +private: + void throwIfDisposed() const throw(css::uno::RuntimeException); + SdStyleSheet* GetValidNewSheet( const css::uno::Any& rElement ) throw(css::lang::IllegalArgumentException); + SdStyleSheet* GetSheetByName( const ::rtl::OUString& rName ) throw(css::container::NoSuchElementException, css::lang::WrappedTargetException ); + + SfxStyleFamily mnFamily; + rtl::Reference< SfxStyleSheetPool > mxPool; + SdStyleFamilyImpl* mpImpl; +}; + +typedef rtl::Reference< SdStyleFamily > SdStyleFamilyRef; + +#endif // _SD_STLFAMILY_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/stlpool.hxx b/sd/inc/stlpool.hxx new file mode 100644 index 000000000000..2a7f82ad5f2e --- /dev/null +++ b/sd/inc/stlpool.hxx @@ -0,0 +1,155 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_STLPOOL_HXX +#define _SD_STLPOOL_HXX + +#include <com/sun/star/lang/XServiceInfo.hpp> +#include <com/sun/star/container/XIndexAccess.hpp> +#include <com/sun/star/container/XNameContainer.hpp> +#include <com/sun/star/container/XNamed.hpp> +#include <com/sun/star/beans/XPropertySet.hpp> +#include <com/sun/star/lang/XComponent.hpp> +#include <com/sun/star/lang/XSingleServiceFactory.hpp> + +#include <cppuhelper/implbase4.hxx> +#include <cppuhelper/implbase7.hxx> +#include <map> +#include <vector> + +#include <stlfamily.hxx> +#include <stlsheet.hxx> + +#include <sddllapi.h> + +class SdStyleSheet; +class SdDrawDocument; +class SdPage; +class SfxStyleSheetBase; + +typedef std::map< const SdPage*, SdStyleFamilyRef > SdStyleFamilyMap; + +typedef ::cppu::ImplInheritanceHelper4< SfxStyleSheetPool, + ::com::sun::star::lang::XServiceInfo, + ::com::sun::star::container::XIndexAccess, + ::com::sun::star::container::XNameAccess, + ::com::sun::star::lang::XComponent > SdStyleSheetPoolBase; + +class SdStyleSheetPool : public SdStyleSheetPoolBase, public SfxListener +{ + friend class SdDrawDocument; +public: + SdStyleSheetPool(SfxItemPool const& rPool, SdDrawDocument* pDocument); + + void SetActualStyleSheet(SfxStyleSheetBase* pActStyleSheet) { mpActualStyleSheet = pActStyleSheet; } + SfxStyleSheetBase* GetActualStyleSheet() { return mpActualStyleSheet; } + + SfxStyleSheetBase* GetTitleSheet(const String& rLayoutName); + + // Caller muss Liste loeschen + void CreateOutlineSheetList(const String& rLayoutName, std::vector<SfxStyleSheetBase*> &rOutlineStyles); + + /** creates all layout style sheets for the givin layout name if they + don't exist yet. + + @param rLayoutName Must be the name of a master page + @param bCheck If set to true, the debug version will assert if a style + had to be created. This is used to assert errors in documents + when styles are missing. + */ + SD_DLLPUBLIC void CreateLayoutStyleSheets(const String& rLayoutName, sal_Bool bCheck = sal_False ); + void CreateLayoutSheetNames(const String& rLayoutName, std::vector<String> &aNameList) const; + void CreateLayoutSheetList(const String& rLayoutName, SdStyleSheetVector& rLayoutSheets); + void CopyLayoutSheets(const String& rLayoutName, SdStyleSheetPool& rSourcePool, SdStyleSheetVector& rCreatedSheets ); + void CopyGraphicSheets(SdStyleSheetPool& rSourcePool); + void CopyCellSheets(SdStyleSheetPool& rSourcePool); + void CopyTableStyles(SdStyleSheetPool& rSourcePool); + + void CreatePseudosIfNecessary(); + void UpdateStdNames(); + static void PutNumBulletItem( SfxStyleSheetBase* pSheet, Font& rBulletFont ); + Font GetBulletFont() const; + + SdDrawDocument* GetDoc() const { return mpDoc; } + + static SdStyleSheetVector CreateChildList( SdStyleSheet* pSheet ); + + +public: + void throwIfDisposed() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException); + + // XNameAccess + virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw(::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException) ; + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) throw(::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); + + // XComponent + virtual void SAL_CALL dispose( ) throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException); + + virtual void SAL_CALL acquire (void) throw (); + virtual void SAL_CALL release (void) throw (); +protected: + void CopySheets(SdStyleSheetPool& rSourcePool, SfxStyleFamily eFamily ); + + virtual SfxStyleSheetBase* Create(const String& rName, SfxStyleFamily eFamily, sal_uInt16 nMask); + virtual SfxStyleSheetBase* Create(const SdStyleSheet& rStyle); + + using SfxStyleSheetPool::Create; + virtual ~SdStyleSheetPool(); + + void AddStyleFamily( const SdPage* pPage ); + void RemoveStyleFamily( const SdPage* pPage ); + +private: + SfxStyleSheetBase* mpActualStyleSheet; + SdDrawDocument* mpDoc; + SdStyleFamilyRef mxGraphicFamily; + SdStyleFamilyRef mxCellFamily; + SdStyleFamilyMap maStyleFamilyMap; + ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > mxTableFamily; + rtl::OUString msTableFamilyName; +}; + +#endif // _SD_STLPOOL_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/stlsheet.hxx b/sd/inc/stlsheet.hxx new file mode 100644 index 000000000000..cae4bbdb1066 --- /dev/null +++ b/sd/inc/stlsheet.hxx @@ -0,0 +1,163 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_STLSHEET_HXX +#define _SD_STLSHEET_HXX + +#include <rtl/ref.hxx> + +#include <com/sun/star/style/XStyle.hpp> +#include <com/sun/star/beans/XPropertySet.hpp> +#include <com/sun/star/lang/XServiceInfo.hpp> +#include <com/sun/star/beans/XPropertyState.hpp> +#include <com/sun/star/lang/XComponent.hpp> +#include <com/sun/star/util/XModifyBroadcaster.hpp> + +#include <cppuhelper/interfacecontainer.h> +#include <cppuhelper/implbase5.hxx> +#include <cppuhelper/basemutex.hxx> + +#include <svl/style.hxx> + +#include <editeng/unoipset.hxx> + +#include <boost/scoped_ptr.hpp> + +class ModifyListenerForewarder; + +typedef cppu::ImplInheritanceHelper5< SfxUnoStyleSheet, + ::com::sun::star::beans::XPropertySet, + ::com::sun::star::lang::XServiceInfo, + ::com::sun::star::beans::XPropertyState, + ::com::sun::star::util::XModifyBroadcaster, + ::com::sun::star::lang::XComponent > SdStyleSheetBase ; + +class SdStyleSheet : public SdStyleSheetBase, private ::cppu::BaseMutex +{ +public: + SdStyleSheet( const rtl::OUString& rDisplayName, SfxStyleSheetBasePool& rPool, SfxStyleFamily eFamily, sal_uInt16 nMask ); + SdStyleSheet( const SdStyleSheet& ); + + virtual sal_Bool SetParent (const String& rParentName); + virtual SfxItemSet& GetItemSet(); + virtual sal_Bool IsUsed() const; + virtual sal_Bool HasFollowSupport() const; + virtual sal_Bool HasParentSupport() const; + virtual sal_Bool HasClearParentSupport() const; + virtual sal_Bool SetName( const UniString& ); + virtual void SetHelpId( const String& r, sal_uLong nId ); + + void AdjustToFontHeight(SfxItemSet& rSet, sal_Bool bOnlyMissingItems = sal_True); + + SdStyleSheet* GetRealStyleSheet() const; + SdStyleSheet* GetPseudoStyleSheet() const; + + void SetApiName( const ::rtl::OUString& rApiName ); + rtl::OUString GetApiName() const; + + static rtl::OUString GetFamilyString( SfxStyleFamily eFamily ); + + static SdStyleSheet* CreateEmptyUserStyle( SfxStyleSheetBasePool& rPool, SfxStyleFamily eFamily ); + + // XInterface + virtual void SAL_CALL release( ) throw (); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException); + + // XNamed + virtual ::rtl::OUString SAL_CALL getName( ) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setName( const ::rtl::OUString& aName ) throw(::com::sun::star::uno::RuntimeException); + + // XStyle + virtual sal_Bool SAL_CALL isUserDefined( ) throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL isInUse( ) throw(::com::sun::star::uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getParentStyle( ) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setParentStyle( const ::rtl::OUString& aParentStyle ) throw(::com::sun::star::container::NoSuchElementException, ::com::sun::star::uno::RuntimeException); + + // XPropertySet + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); + + // XPropertyState + virtual ::com::sun::star::beans::PropertyState SAL_CALL getPropertyState( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyState > SAL_CALL getPropertyStates( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPropertyToDefault( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getPropertyDefault( const ::rtl::OUString& aPropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); + + // XModifyBroadcaster + virtual void SAL_CALL addModifyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ) throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeModifyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ) throw (::com::sun::star::uno::RuntimeException); + + // XComponent + virtual void SAL_CALL dispose( ) throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException); + + void notifyModifyListener(); + +protected: + const SfxItemPropertySimpleEntry* getPropertyMapEntry( const ::rtl::OUString& rPropertyName ) const throw(); + + virtual void Load (SvStream& rIn, sal_uInt16 nVersion); + virtual void Store(SvStream& rOut); + + virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint); + virtual ~SdStyleSheet(); + + void throwIfDisposed() throw (::com::sun::star::uno::RuntimeException); + + virtual void disposing(); + + rtl::OUString msApiName; + rtl::Reference< SfxStyleSheetBasePool > mxPool; + + /** boradcast helper for events */ + ::cppu::OBroadcastHelper mrBHelper; + + boost::scoped_ptr< ModifyListenerForewarder > mpModifyListenerForewarder; + +private: + SdStyleSheet& operator=( const SdStyleSheet& ); // not implemented +}; + +typedef rtl::Reference< SdStyleSheet > SdStyleSheetRef; +typedef std::vector< SdStyleSheetRef > SdStyleSheetVector; + +#endif // _SD_STLSHEET_HXX + + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/strmname.h b/sd/inc/strmname.h new file mode 100644 index 000000000000..04de56085f19 --- /dev/null +++ b/sd/inc/strmname.h @@ -0,0 +1,54 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_STRMNAME_H +#define _SD_STRMNAME_H + +// Alter Name des Dokument-Streams +static const String pStarDrawDoc( RTL_CONSTASCII_USTRINGPARAM( "StarDrawDocument" )); + +// Name des Dokument-Streams +static const String pStarDrawDoc3( RTL_CONSTASCII_USTRINGPARAM( "StarDrawDocument3" )); + +// Sonstige +static const String pSfxStyleSheets( RTL_CONSTASCII_USTRINGPARAM( "SfxStyleSheets" )); +static const String pVCItemPoolName( RTL_CONSTASCII_USTRINGPARAM( "VCPool" )); +static const String pPreviewName( RTL_CONSTASCII_USTRINGPARAM( "StarDrawTemplatePreview" )); + +// PowerPoint-Filter +static const String pFilterPowerPoint97( RTL_CONSTASCII_USTRINGPARAM( "MS PowerPoint 97" )); +static const String pFilterPowerPoint97Template( RTL_CONSTASCII_USTRINGPARAM( "MS PowerPoint 97 Vorlage" )); +static const String pFilterPowerPoint97AutoPlay( RTL_CONSTASCII_USTRINGPARAM( "MS PowerPoint 97 AutoPlay" )); + +// XML content stream +static const String pStarDrawXMLContent( RTL_CONSTASCII_USTRINGPARAM( "content.xml" )); +static const String pStarDrawOldXMLContent( RTL_CONSTASCII_USTRINGPARAM( "Content.xml" )); + +#endif // _SD_STRMNAME_H + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/textapi.hxx b/sd/inc/textapi.hxx new file mode 100644 index 000000000000..e3691ff3f837 --- /dev/null +++ b/sd/inc/textapi.hxx @@ -0,0 +1,72 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_TEXTAPI_HXX_ +#define _SD_TEXTAPI_HXX_ + +#include <editeng/unoedsrc.hxx> +#include <editeng/unotext.hxx> +#include <editeng/eeitem.hxx> +#include <rtl/ref.hxx> +#include <editeng/outliner.hxx> +#include <editeng/unoprnms.hxx> +#include <editeng/unoforou.hxx> +#include <editeng/unoipset.hxx> + +class SdDrawDocument; + +namespace sd { + +class TextAPIEditSource; + +class TextApiObject : public SvxUnoText +{ +public: + static rtl::Reference< TextApiObject > create( SdDrawDocument* pDoc ); + + virtual ~TextApiObject() throw(); + + virtual void SAL_CALL dispose() throw(::com::sun::star::uno::RuntimeException); + + OutlinerParaObject* CreateText(); + void SetText( OutlinerParaObject& rText ); + String GetText(); + + static TextApiObject* getImplementation( const ::com::sun::star::uno::Reference< ::com::sun::star::text::XText >& ); + +private: + TextAPIEditSource* mpSource; + TextApiObject( TextAPIEditSource* pEditSource ); +}; + +} // namespace sd + + +#endif // _SD_TEXTAPI_HXX_ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/undo/undofactory.hxx b/sd/inc/undo/undofactory.hxx new file mode 100644 index 000000000000..6ac774ce8f50 --- /dev/null +++ b/sd/inc/undo/undofactory.hxx @@ -0,0 +1,53 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_UNDOFACTORY_HXX +#define _SD_UNDOFACTORY_HXX + +#include <svx/svdundo.hxx> + +namespace sd +{ + +class UndoFactory : public SdrUndoFactory +{ +public: + virtual SdrUndoAction* CreateUndoRemoveObject( SdrObject& rObject, bool bOrdNumDirect = false); + virtual SdrUndoAction* CreateUndoDeleteObject( SdrObject& rObject, bool bOrdNumDirect = false); + virtual SdrUndoAction* CreateUndoObjectSetText( SdrObject& rNewObj, sal_Int32 nText ); + virtual SdrUndoAction* CreateUndoReplaceObject( SdrObject& rOldObject, SdrObject& rNewObject, bool bOrdNumDirect = false ); + virtual SdrUndoAction* CreateUndoGeoObject( SdrObject& rObject ); + virtual SdrUndoAction* CreateUndoAttrObject( SdrObject& rObject, bool bStyleSheet1 = false, bool bSaveText = false ); +}; + + +} + +#endif // _SD_UNDOMANAGER_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/undo/undomanager.hxx b/sd/inc/undo/undomanager.hxx new file mode 100644 index 000000000000..68437afe6703 --- /dev/null +++ b/sd/inc/undo/undomanager.hxx @@ -0,0 +1,74 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_UNDOMANAGER_HXX +#define _SD_UNDOMANAGER_HXX + +#include "misc/scopelock.hxx" +#include <svl/undo.hxx> + +namespace sd +{ + +class UndoManager : public SfxUndoManager +{ +public: + UndoManager( sal_uInt16 nMaxUndoActionCount = 20 ); + + virtual void EnterListAction(const UniString &rComment, const UniString& rRepeatComment, sal_uInt16 nId=0); + + virtual void AddUndoAction( SfxUndoAction *pAction, sal_Bool bTryMerg=sal_False ); + + /** Set or reset the undo manager linked with the called undo manager. + */ + void SetLinkedUndoManager (::svl::IUndoManager* pLinkedUndoManager); + +private: + using SfxUndoManager::Undo; + using SfxUndoManager::Redo; + + /** Used when the outline view is visible as a last resort to + synchronize the undo managers. + */ + ::svl::IUndoManager* mpLinkedUndoManager; + + /** Call ClearRedo() at the linked undo manager, when present. + + It should not be necessary to call ClearRedo() explicitly, but the + synchronization between the under managers of the document and the + outline view seems to have a bug. Therefore this method is called + whenever a new undo action is added. + */ + void ClearLinkedRedoActions (void); +}; + +} + +#endif // _SD_UNDOMANAGER_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/undo/undoobjects.hxx b/sd/inc/undo/undoobjects.hxx new file mode 100644 index 000000000000..6b53e4b2f3ed --- /dev/null +++ b/sd/inc/undo/undoobjects.hxx @@ -0,0 +1,205 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_UNDOOBJECTS_HXX +#define _SD_UNDOOBJECTS_HXX + +#include <svx/svdundo.hxx> +#include <svx/svdpage.hxx> +#include <svx/svdobj.hxx> +#include "pres.hxx" + +class SdrObjUserCall; +class SdPage; + +namespace sd +{ + class UndoManager; + +/////////////////////////////////////////////////////////////////////// + +class UndoRemovePresObjectImpl +{ +protected: + UndoRemovePresObjectImpl( SdrObject& rObject ); + virtual ~UndoRemovePresObjectImpl(); + + virtual void Undo(); + virtual void Redo(); + +private: + SfxUndoAction* mpUndoUsercall; + SfxUndoAction* mpUndoAnimation; + SfxUndoAction* mpUndoPresObj; +}; + +/////////////////////////////////////////////////////////////////////// + +class UndoRemoveObject : public SdrUndoRemoveObj, public UndoRemovePresObjectImpl +{ +public: + UndoRemoveObject( SdrObject& rObject, bool bOrdNumDirect ); + + virtual void Undo(); + virtual void Redo(); + +private: + SdrObjectWeakRef mxSdrObject; +}; + +/////////////////////////////////////////////////////////////////////// + +class UndoDeleteObject : public SdrUndoDelObj, public UndoRemovePresObjectImpl +{ +public: + UndoDeleteObject( SdrObject& rObject, bool bOrdNumDirect ); + + virtual void Undo(); + virtual void Redo(); + +private: + SdrObjectWeakRef mxSdrObject; +}; + +/////////////////////////////////////////////////////////////////////// + +class UndoReplaceObject : public SdrUndoReplaceObj, public UndoRemovePresObjectImpl +{ +public: + UndoReplaceObject( SdrObject& rOldObject, SdrObject& rNewObject, bool bOrdNumDirect ); + + virtual void Undo(); + virtual void Redo(); + +private: + SdrObjectWeakRef mxSdrObject; +}; + +/////////////////////////////////////////////////////////////////////// + +class UndoObjectSetText : public SdrUndoObjSetText +{ +public: + UndoObjectSetText( SdrObject& rNewObj, sal_Int32 nText ); + virtual ~UndoObjectSetText(); + + virtual void Undo(); + virtual void Redo(); + +private: + SfxUndoAction* mpUndoAnimation; + bool mbNewEmptyPresObj; + SdrObjectWeakRef mxSdrObject; +}; + +////////////////////////////////////////////////////////////////////////////// +// Undo for SdrObject::SetUserCall() + +class UndoObjectUserCall : public SdrUndoObj +{ +public: + UndoObjectUserCall(SdrObject& rNewObj); + + virtual void Undo(); + virtual void Redo(); + +protected: + SdrObjUserCall* mpOldUserCall; + SdrObjUserCall* mpNewUserCall; + SdrObjectWeakRef mxSdrObject; +}; + +////////////////////////////////////////////////////////////////////////////// +// Undo for SdPage::InsertPresObj() and SdPage::RemovePresObj() + +class UndoObjectPresentationKind : public SdrUndoObj +{ +public: + UndoObjectPresentationKind(SdrObject& rObject); + + virtual void Undo(); + virtual void Redo(); + +protected: + PresObjKind meOldKind; + PresObjKind meNewKind; + SdrPageWeakRef mxPage; + SdrObjectWeakRef mxSdrObject; +}; + +////////////////////////////////////////////////////////////////////////////// +// Restores correct position and size for presentation shapes with user call +// on undo + +class UndoAutoLayoutPosAndSize : public SfxUndoAction +{ +public: + UndoAutoLayoutPosAndSize( SdPage& rPage ); + + virtual void Undo(); + virtual void Redo(); + +protected: + SdrPageWeakRef mxPage; +}; + +////////////////////////////////////////////////////////////////////////////// + +class UndoGeoObject : public SdrUndoGeoObj +{ +public: + UndoGeoObject( SdrObject& rNewObj ); + + virtual void Undo(); + virtual void Redo(); + +protected: + SdrPageWeakRef mxPage; + SdrObjectWeakRef mxSdrObject; +}; + +////////////////////////////////////////////////////////////////////////////// + +class UndoAttrObject : public SdrUndoAttrObj +{ +public: + UndoAttrObject( SdrObject& rObject, bool bStyleSheet1, bool bSaveText ); + + virtual void Undo(); + virtual void Redo(); + +protected: + SdrPageWeakRef mxPage; + SdrObjectWeakRef mxSdrObject; +}; + +} // namespace sd + +#endif // _SD_UNDOOBJECTS_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/inc/undoanim.hxx b/sd/inc/undoanim.hxx new file mode 100644 index 000000000000..9af802794671 --- /dev/null +++ b/sd/inc/undoanim.hxx @@ -0,0 +1,97 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SD_UNDO_ANIM_HXX +#define _SD_UNDO_ANIM_HXX + +#include <com/sun/star/uno/Any.hxx> +#include <com/sun/star/animations/XAnimationNode.hpp> +#include <svx/svdundo.hxx> + +#include "sdundo.hxx" + +class SdPage; + +namespace sd +{ + +struct UndoAnimationImpl; + +class UndoAnimation : public SdrUndoAction +{ +public: + UndoAnimation( SdDrawDocument* pDoc, SdPage* pThePage ); + virtual ~UndoAnimation(); + + virtual void Undo(); + virtual void Redo(); + + virtual String GetComment() const; + +private: + UndoAnimationImpl* mpImpl; +}; + +struct UndoAnimationPathImpl; +class UndoAnimationPath : public SdrUndoAction +{ +public: + UndoAnimationPath( SdDrawDocument* pDoc, SdPage* pThePage, const com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xNode ); + virtual ~UndoAnimationPath(); + + virtual void Undo(); + virtual void Redo(); + + virtual String GetComment() const; + +private: + UndoAnimationPathImpl* mpImpl; +}; + +struct UndoTransitionImpl; + +class UndoTransition : public SdUndoAction +{ +public: + UndoTransition( SdDrawDocument* pDoc, SdPage* pThePage ); + virtual ~UndoTransition(); + + virtual void Undo(); + virtual void Redo(); + + virtual String GetComment() const; + +private: + UndoTransitionImpl* mpImpl; +}; + +} + +#endif // _SD_UNDO_ANIM_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |