1. mst
  2. ooo340

Commits

hr  committed a70e553

CWS-TOOLING: integrate CWS impress169
2009-05-13 17:37:21 +0200 sj r271865 : #i100942# applied patch, removed oversafe buffer check (now without warnings on 64 bit platform)
2009-05-13 12:27:18 +0200 sj r271855 : #i101769# fixed line/fill attributes for graphic objects
2009-05-12 10:25:17 +0200 cl r271799 : report correct minimum cell hight for empty cells
2009-04-28 17:29:46 +0200 cl r271334 : fixed merge error
2009-04-28 16:18:01 +0200 cl r271330 : fixed build error
2009-04-28 12:38:09 +0200 cl r271320 : #i100129# images for new layouts
2009-04-27 19:12:06 +0200 cl r271302 : CWS-TOOLING: rebase CWS impress169 to trunk@270723 (milestone: DEV300:m46)
2009-04-20 19:13:28 +0200 sj r271012 : #i100942# applied patch, removed oversafe buffer check
2009-04-09 18:00:01 +0200 sj r270719 : #158488# added rectangular gradient support
2009-04-09 17:49:52 +0200 sj r270718 : #158488# added rectangular gradient support
2009-04-09 17:46:24 +0200 sj r270717 : #158488# added rectangular gradient support
2009-03-26 18:16:34 +0100 cl r270098 : #i99867# applied patch from jlcheng to correctly register table design pane
2009-03-26 18:12:11 +0100 cl r270097 : #i100220# leave some items default so they are not overridden if a new table style is set
2009-03-26 18:11:10 +0100 cl r270096 : #i100220# clear only those items that are also in the style when assigning a new table layout
2009-03-26 15:56:24 +0100 cl r270085 : #i99977# listen to outliner and dispose if outliner dies
2009-03-26 15:47:29 +0100 cl r270084 : #i99977# made the Outliner a SfxBroadcaster so others can listen for its death
2009-03-24 19:10:05 +0100 sj r269991 : #i100490# fixed text resize problem
2009-03-23 14:31:11 +0100 sj r269872 : #i96083# added patch, (dubious && and ||)
2009-03-19 17:55:11 +0100 sj r269764 : #i100275# applied patch, row height is now correct even for rows containing no text
2009-03-18 18:10:52 +0100 sj r269701 : #i93616# solved performance problem when loading document
2009-03-18 16:20:40 +0100 sj r269688 : removing unused code
2009-03-18 16:19:22 +0100 sj r269687 : removing unused code
2009-03-18 16:17:54 +0100 sj r269686 : removing unused code
2009-03-18 10:28:07 +0100 cl r269643 : #i100029# let cells be disposed as soon as the table model is disposed
2009-03-17 15:56:50 +0100 cl r269614 : #i99984# new impress photo layouts 3x2 and 2x2
2009-03-17 15:36:35 +0100 cl r269611 : #i99984# adding new impress photo layouts 3x2 and 2x2
2009-03-16 18:43:48 +0100 cl r269564 : #i55224# correct internal links if pages are changed
2009-03-16 16:40:38 +0100 cl r269559 : #i55224# correct internal hyperlinks if slides are changed/renamed
2009-03-16 15:34:12 +0100 cl r269553 : #i99427# invalidate slots after promote/demote
2009-03-13 18:18:20 +0100 sj r269492 : #i92421# fixed loop if loading encrypted ppt file
2009-03-13 14:51:58 +0100 sj r269481 : #i93002# fixed crash if saving presentation without master title placeholder
2009-03-13 12:26:21 +0100 sj r269468 : #i100147# do not exceed the max point count if creating simple polygon via ::GetSimple
2009-03-12 17:00:45 +0100 sj r269427 : #i82518# justifying rectangles for arc/pie and chord actions, fixed round rectangle problem

  • Participants
  • Parent commits 8c13369
  • Branches default

Comments (0)

Files changed (56)

File default_images/sd/res/foil26.png

Added
New image

File default_images/sd/res/foil26_h.png

Added
New image

File default_images/sd/res/foil27.png

Added
New image

File default_images/sd/res/foil27_h.png

Added
New image

File goodies/source/filter.vcl/eps/eps.cxx

View file
 			BOOL	bNegative = FALSE;
 			BOOL	bValid = TRUE;
 
-			while ( ( --nSecurityCount ) && ( *pDest == ' ' ) || ( *pDest == 0x9 ) ) pDest++;
+			while ( ( --nSecurityCount ) && ( ( *pDest == ' ' ) || ( *pDest == 0x9 ) ) )
+				pDest++;
 			BYTE nByte = *pDest;
 			while ( nSecurityCount && ( nByte != ' ' ) && ( nByte != 0x9 ) && ( nByte != 0xd ) && ( nByte != 0xa ) )
 			{

File goodies/source/filter.vcl/ieps/ieps.cxx

View file
 	BOOL	bValid = TRUE;
 	BOOL	bNegative = FALSE;
 	long	nRetValue = 0;
-	while ( ( --nSecurityCount ) && ( **pBuf == ' ' ) || ( **pBuf == 0x9 ) ) (*pBuf)++;
+	while ( ( --nSecurityCount ) && ( ( **pBuf == ' ' ) || ( **pBuf == 0x9 ) ) )
+		(*pBuf)++;
 	BYTE nByte = **pBuf;
 	while ( nSecurityCount && ( nByte != ' ' ) && ( nByte != 0x9 ) && ( nByte != 0xd ) && ( nByte != 0xa ) )
 	{

File goodies/source/graphic/grfmgr2.cxx

View file
         rBmpEx.Crop( rCropRect );
 
         // #104115# Negative crop sizes mean: enlarge bitmap and pad
-        if( bEnlarge &&
+        if( bEnlarge && (
             rCropLeftTop.Width() < 0 ||
             rCropLeftTop.Height() < 0 ||
             rCropRightBottom.Width() < 0 ||
-            rCropRightBottom.Height() < 0 )
+            rCropRightBottom.Height() < 0 ) )
         {
             Size aBmpSize( rBmpEx.GetSizePixel() );
             sal_Int32 nPadLeft( rCropLeftTop.Width() < 0 ? -rCropLeftTop.Width() : 0 );

File sc/source/filter/excel/xiescher.cxx

View file
     SvxMSDffManager( rDffStrm, rRoot.GetBasePath(), 0, 0, rRoot.GetDoc().GetDrawLayer(), 1440, COL_DEFAULT, 24, 0, &rRoot.GetTracer().GetBaseTracer() ),
     XclImpRoot( rRoot )
 {
-    SetSvxMSDffSettings( SVXMSDFF_SETTINGS_CROP_BITMAPS | SVXMSDFF_SETTINGS_IMPORT_EXCEL | SVXMSDFF_SETTINGS_IMPORT_IAS );
+    SetSvxMSDffSettings( SVXMSDFF_SETTINGS_CROP_BITMAPS | SVXMSDFF_SETTINGS_IMPORT_EXCEL );
 }
 
 XclImpSimpleDffManager::~XclImpSimpleDffManager()

File sd/inc/anminfo.hxx

View file
 	String					maSecondSoundFile; // fuer Objekt ausblenden
 	BOOL					mbSecondSoundOn;	// fuer Objekt ausblenden
 	BOOL					mbSecondPlayFull;// fuer Objekt ausblenden
-	String					maBookmark;		// Sprung zu Objekt/Seite
+//	String					maBookmark;		// Sprung zu Objekt/Seite
 	USHORT					mnVerb;			// fuer OLE-Objekt
 	ULONG					mnPresOrder;
+    SdrObject&              mrObject;
 
+    void                    SetBookmark( const String& rBookmark );
+    String                  GetBookmark();
 public:
-							SdAnimationInfo();
-							SdAnimationInfo(const SdAnimationInfo& rAnmInfo);
+							SdAnimationInfo(SdrObject& rObject);
+							SdAnimationInfo(const SdAnimationInfo& rAnmInfo, SdrObject& rObject);
 	virtual					~SdAnimationInfo();
 
-	virtual SdrObjUserData*	Clone(SdrObject* pObj) const;
+	virtual SdrObjUserData*	Clone(SdrObject* pObject) const;
 };
 
 #endif // _SD_ANMINFO_HXX

File sd/inc/drawdoc.hxx

View file
 	::std::auto_ptr<ImpMasterPageListWatcher> mpMasterPageListWatcher;
 
 	void                UpdatePageObjectsInNotes(USHORT nStartPos);
+    void                UpdatePageRelativeURLs(SdPage* pPage, USHORT nPos, sal_Int32 nIncrement);
 	void                FillOnlineSpellingList(SdPage* pPage);
 	void                SpellObject(SdrTextObj* pObj);
 
 	/* converts the given western font height to a corresponding ctl font height, deppending on the system language */
 	static sal_uInt32 convertFontHeightToCTL( sal_uInt32 nWesternFontHeight );
 
+   	void UpdatePageRelativeURLs(const String& rOldName, const String& rNewName);
+
 private:
     /** This member stores the printer independent layout mode.  Please
         refer to <member>SetPrinterIndependentLayout()</member> for its

File sd/inc/pres.hxx

View file
 	AUTOLAYOUT_TITLE_VERTICAL_OUTLINE_CLIPART,
 	AUTOLAYOUT_HANDOUT9,
     AUTOLAYOUT_ONLY_TEXT,
+    AUTOLAYOUT_4CLIPART,
+    AUTOLAYOUT_6CLIPART,
     AUTOLAYOUT__END
 };
 

File sd/source/core/anminfo.cxx

View file
 #include "svx/xtable.hxx"
 #include <svx/svdopath.hxx>
 #include <svtools/urihelper.hxx>
-
+#include <svx/flditem.hxx>
+#include <svx/eeitem.hxx>
 
 #include "anminfo.hxx"
 #include "glob.hxx"
 
 using namespace ::com::sun::star;
 
-SdAnimationInfo::SdAnimationInfo()
+SdAnimationInfo::SdAnimationInfo(SdrObject& rObject)
 			   : SdrObjUserData(SdUDInventor, SD_ANIMATIONINFO_ID, 0),
 				 mePresObjKind				(PRESOBJ_NONE),
 				 meEffect					(presentation::AnimationEffect_NONE),
 				 mbSecondSoundOn			(FALSE),
 				 mbSecondPlayFull			(FALSE),
 				 mnVerb						(0),
-				 mnPresOrder				(LIST_APPEND)
+				 mnPresOrder				(LIST_APPEND),
+                 mrObject                   (rObject)
 {
 	maBlueScreen = RGB_Color(COL_LIGHTMAGENTA);
 	maDimColor = RGB_Color(COL_LIGHTGRAY);
 }
 
-SdAnimationInfo::SdAnimationInfo(const SdAnimationInfo& rAnmInfo)
+SdAnimationInfo::SdAnimationInfo(const SdAnimationInfo& rAnmInfo, SdrObject& rObject)
 			   : SdrObjUserData				(rAnmInfo),
    				 mePresObjKind				(PRESOBJ_NONE),
 				 meEffect					(rAnmInfo.meEffect),
 				 maSecondSoundFile          (rAnmInfo.maSecondSoundFile),
 				 mbSecondSoundOn			(rAnmInfo.mbSecondSoundOn),
 				 mbSecondPlayFull			(rAnmInfo.mbSecondPlayFull),
-				 maBookmark					(rAnmInfo.maBookmark),
+//				 maBookmark					(rAnmInfo.maBookmark),
 				 mnVerb						(rAnmInfo.mnVerb),
-				 mnPresOrder				(LIST_APPEND)
+				 mnPresOrder				(LIST_APPEND),
+                 mrObject                   (rObject)
 {
 	// can not be copied
 	if(meEffect == presentation::AnimationEffect_PATH)
 {
 }
 
-SdrObjUserData* SdAnimationInfo::Clone(SdrObject*) const
+SdrObjUserData* SdAnimationInfo::Clone(SdrObject* pObject) const
 {
-	return new SdAnimationInfo(*this);
+    DBG_ASSERT( pObject, "SdAnimationInfo::Clone(), pObject must not be null!" );
+    if( pObject == 0 )
+        pObject = &mrObject;
+
+    return new SdAnimationInfo(*this, *pObject );
 }
+
+void SdAnimationInfo::SetBookmark( const String& rBookmark )
+{
+    if( meClickAction == ::com::sun::star::presentation::ClickAction_BOOKMARK )
+    {
+        String sURL( '#' );
+        sURL += rBookmark;
+        SvxFieldItem aURLItem( SvxURLField( sURL, sURL ), EE_FEATURE_FIELD );
+        mrObject.SetMergedItem( aURLItem );
+    }
+    else
+    {
+        SvxFieldItem aURLItem( SvxURLField( rBookmark, rBookmark ), EE_FEATURE_FIELD );
+        mrObject.SetMergedItem( aURLItem );
+    }
+}
+
+String SdAnimationInfo::GetBookmark()
+{
+    String sBookmark;
+
+    const SvxFieldItem* pFldItem = dynamic_cast< const SvxFieldItem* >( &mrObject.GetMergedItem( EE_FEATURE_FIELD ) );
+    if( pFldItem )
+    {
+        SvxURLField* pURLField = const_cast< SvxURLField* >( dynamic_cast<const SvxURLField*>( pFldItem->GetField() ) );
+        if( pURLField )
+            sBookmark = pURLField->GetURL();
+    }
+
+    if( (meClickAction == ::com::sun::star::presentation::ClickAction_BOOKMARK) && sBookmark.Len() && (sBookmark.GetChar(0) == '#') )
+        sBookmark = sBookmark.Copy( 1 );
+
+    return sBookmark;
+}

File sd/source/core/drawdoc2.cxx

View file
 #include <svx/eeitem.hxx>
 #include <svx/langitem.hxx>
 #include <svtools/itempool.hxx>
-
+#include <svx/svdpool.hxx>
+#include <svx/flditem.hxx>
 
 #include <svx/linkmgr.hxx>
 #include <svx/editdata.hxx>
 	}
 }
 
+void SdDrawDocument::UpdatePageRelativeURLs(const String& rOldName, const String& rNewName)
+{
+    if (rNewName.Len() == 0)
+        return;
+
+    SfxItemPool& pPool(GetPool());
+    USHORT nCount = pPool.GetItemCount(EE_FEATURE_FIELD);
+    for (USHORT nOff = 0; nOff < nCount; nOff++)
+    {
+        const SfxPoolItem *pItem = pPool.GetItem(EE_FEATURE_FIELD, nOff);
+        const SvxFieldItem* pFldItem = dynamic_cast< const SvxFieldItem * > (pItem);
+
+        if(pFldItem)
+        {
+            SvxURLField* pURLField = const_cast< SvxURLField* >( dynamic_cast<const SvxURLField*>( pFldItem->GetField() ) );
+
+            if(pURLField)
+            {
+                XubString aURL = pURLField->GetURL();
+
+                if (aURL.Len() && (aURL.GetChar(0) == 35) && (aURL.Search(rOldName, 1) == 1))
+                {
+                    if (aURL.Len() == rOldName.Len() + 1) // standard page name
+                    {
+                        aURL.Erase (1, aURL.Len() - 1);
+                        aURL += rNewName;
+                        pURLField->SetURL(aURL);
+                    }
+                    else
+                    {
+                        const XubString sNotes = SdResId(STR_NOTES);
+                        if (aURL.Len() == rOldName.Len() + 2 + sNotes.Len() && aURL.Search(sNotes, rOldName.Len() + 2) == rOldName.Len() + 2)
+                        {
+                            aURL.Erase (1, aURL.Len() - 1);
+                            aURL += rNewName;
+                            aURL += ' ';
+                            aURL += sNotes;
+                            pURLField->SetURL(aURL);
+                        }
+                    }
+                }
+            }
+        }
+	}
+}
+
+void SdDrawDocument::UpdatePageRelativeURLs(SdPage* pPage, USHORT nPos, sal_Int32 nIncrement)
+{
+    bool bNotes = (pPage->GetPageKind() == PK_NOTES);
+
+    SfxItemPool& pPool(GetPool());
+    USHORT nCount = pPool.GetItemCount(EE_FEATURE_FIELD);
+    for (USHORT nOff = 0; nOff < nCount; nOff++)
+    {
+        const SfxPoolItem *pItem = pPool.GetItem(EE_FEATURE_FIELD, nOff);
+        const SvxFieldItem* pFldItem;
+
+        if ((pFldItem = dynamic_cast< const SvxFieldItem * > (pItem)) != 0)
+        {
+            SvxURLField* pURLField = const_cast< SvxURLField* >( dynamic_cast<const SvxURLField*>( pFldItem->GetField() ) );
+
+            if(pURLField)
+            {
+                XubString aURL = pURLField->GetURL();
+
+                if (aURL.Len() && (aURL.GetChar(0) == 35))
+                {
+                    XubString aHashSlide('#');
+                    aHashSlide += SdResId(STR_PAGE);
+
+                    if (aURL.CompareTo(aHashSlide, aHashSlide.Len()) == COMPARE_EQUAL)
+                    {
+                        XubString aURLCopy = aURL;
+                        const XubString sNotes = SdResId(STR_NOTES);
+
+                        aURLCopy.Erase(0, aHashSlide.Len());
+
+                        bool bNotesLink = (aURLCopy.Len() >= sNotes.Len() + 3 && aURLCopy.Search(sNotes, aURLCopy.Len() - sNotes.Len()) == aURLCopy.Len() - sNotes.Len());
+
+                        if (bNotesLink ^ bNotes)
+                            continue; // no compatible link and page
+
+                        if (bNotes)
+                            aURLCopy.Erase(aURLCopy.Len() - sNotes.Len(), sNotes.Len());
+
+                        sal_Int32 number = aURLCopy.ToInt32();
+                        USHORT realPageNumber = (nPos + 1)/ 2;
+
+                        if ( number >= realPageNumber )
+                        {
+                            // update link page number
+                            number += nIncrement;
+                            aURL.Erase (aHashSlide.Len() + 1, aURL.Len() - aHashSlide.Len() - 1);
+                            aURL += XubString::CreateFromInt32(number);
+                            if (bNotes)
+                            {
+                                aURL += ' ';
+                                aURL += sNotes;
+                            }
+                            pURLField->SetURL(aURL);
+                        }
+                    }
+                }
+            }
+        }
+	}
+}
+
 /*************************************************************************
 |*
 |*	Seite verschieben
 
 void SdDrawDocument::InsertPage(SdrPage* pPage, USHORT nPos)
 {
+    bool bLast = (nPos == GetPageCount());
+
 	FmFormModel::InsertPage(pPage, nPos);
 
 	((SdPage*)pPage)->ConnectLink();
 
 	UpdatePageObjectsInNotes(nPos);
+
+    if (!bLast)
+        UpdatePageRelativeURLs(static_cast<SdPage*>( pPage ), nPos, 1);
+
 }
 
 /*************************************************************************
 SdrPage* SdDrawDocument::RemovePage(USHORT nPgNum)
 {
 	SdrPage* pPage = FmFormModel::RemovePage(nPgNum);
+    
+    bool bLast = ((nPgNum+1)/2 == (GetPageCount()+1)/2);
 
 	((SdPage*)pPage)->DisconnectLink();
 	ReplacePageInCustomShows( dynamic_cast< SdPage* >( pPage ), 0 );
 	UpdatePageObjectsInNotes(nPgNum);
 
+    if (!bLast)
+        UpdatePageRelativeURLs((SdPage*)pPage, nPgNum, -1);
+
 	return pPage;
 }
 
 
 	if( (pRet == 0) && bCreate )
 	{
-		pRet = new SdAnimationInfo;
-		rObject.InsertUserData( pRet );
+		pRet = new SdAnimationInfo( rObject );
+		rObject.InsertUserData( pRet);
 	}
 
 	return pRet;

File sd/source/core/drawdoc4.cxx

View file
 	rISet.Put( SvxFontHeightItem( 635, 100, EE_CHAR_FONTHEIGHT_CJK ) ); // 18 pt
 	rISet.Put( SvxFontHeightItem( convertFontHeightToCTL( 635 ), 100, EE_CHAR_FONTHEIGHT_CTL ) ); // 18 pt
 
-	rISet.Put( SvxWeightItem( WEIGHT_NORMAL, EE_CHAR_WEIGHT ) );
-	rISet.Put( SvxWeightItem( WEIGHT_NORMAL, EE_CHAR_WEIGHT_CJK ) );
-	rISet.Put( SvxWeightItem( WEIGHT_NORMAL, EE_CHAR_WEIGHT_CTL ) );
+//	rISet.Put( SvxWeightItem( WEIGHT_NORMAL, EE_CHAR_WEIGHT ) );
+//	rISet.Put( SvxWeightItem( WEIGHT_NORMAL, EE_CHAR_WEIGHT_CJK ) );
+//	rISet.Put( SvxWeightItem( WEIGHT_NORMAL, EE_CHAR_WEIGHT_CTL ) );
 
-	rISet.Put( SvxPostureItem( ITALIC_NONE, EE_CHAR_ITALIC ) );
-	rISet.Put( SvxPostureItem( ITALIC_NONE, EE_CHAR_ITALIC_CJK ) );
-	rISet.Put( SvxPostureItem( ITALIC_NONE, EE_CHAR_ITALIC_CTL ) );
+//	rISet.Put( SvxPostureItem( ITALIC_NONE, EE_CHAR_ITALIC ) );
+//	rISet.Put( SvxPostureItem( ITALIC_NONE, EE_CHAR_ITALIC_CJK ) );
+//	rISet.Put( SvxPostureItem( ITALIC_NONE, EE_CHAR_ITALIC_CTL ) );
 
-    rISet.Put(SvxContourItem(FALSE, EE_CHAR_OUTLINE ));
-    rISet.Put(SvxShadowedItem(FALSE, EE_CHAR_SHADOW ));
-    rISet.Put(SvxUnderlineItem(UNDERLINE_NONE, EE_CHAR_UNDERLINE));
-    rISet.Put(SvxOverlineItem(UNDERLINE_NONE, EE_CHAR_OVERLINE));
-    rISet.Put(SvxCrossedOutItem(STRIKEOUT_NONE, EE_CHAR_STRIKEOUT ));
-    rISet.Put(SvxEmphasisMarkItem(EMPHASISMARK_NONE, EE_CHAR_EMPHASISMARK));
-    rISet.Put(SvxCharReliefItem(RELIEF_NONE, EE_CHAR_RELIEF));
+//    rISet.Put(SvxContourItem(FALSE, EE_CHAR_OUTLINE ));
+//    rISet.Put(SvxShadowedItem(FALSE, EE_CHAR_SHADOW ));
+//    rISet.Put(SvxUnderlineItem(UNDERLINE_NONE, EE_CHAR_UNDERLINE));
+//    rISet.Put(SvxOverlineItem(UNDERLINE_NONE, EE_CHAR_OVERLINE));
+//    rISet.Put(SvxCrossedOutItem(STRIKEOUT_NONE, EE_CHAR_STRIKEOUT ));
+//    rISet.Put(SvxEmphasisMarkItem(EMPHASISMARK_NONE, EE_CHAR_EMPHASISMARK));
+//    rISet.Put(SvxCharReliefItem(RELIEF_NONE, EE_CHAR_RELIEF));
     rISet.Put(SvxColorItem(Color(COL_AUTO), EE_CHAR_COLOR ));
 
     // Absatzattribute (Edit Engine)

File sd/source/core/sdobjfac.cxx

View file
 		switch( pObjFactory->nIdentifier )
 		{
 			case( SD_ANIMATIONINFO_ID ):
-				pObjFactory->pNewData = new SdAnimationInfo;
+				pObjFactory->pNewData = new SdAnimationInfo( *pObjFactory->pObj );
 			break;
 
 			case( SD_IMAPINFO_ID ):

File sd/source/core/sdpage.cxx

View file
 |*
 \*************************************************************************/
 
-const int MAX_PRESOBJS = 5;	// maximum number of presentation objects per layout
+const int MAX_PRESOBJS = 7;	// maximum number of presentation objects per layout
 const int VERTICAL = 0x8000;
 
 struct LayoutDescriptor
 	PresObjKind meKind[MAX_PRESOBJS];
 	bool mbVertical[MAX_PRESOBJS];
 
-	LayoutDescriptor( int nLayout, int k0 = 0, int k1 = 0, int k2 = 0, int k3 = 0, int k4 = 0 );
+	LayoutDescriptor( int nLayout, int k0 = 0, int k1 = 0, int k2 = 0, int k3 = 0, int k4 = 0, int k5 = 0, int k6 = 0 );
 };
 
-LayoutDescriptor::LayoutDescriptor( int nLayout, int k0, int k1, int k2, int k3, int k4 )
+LayoutDescriptor::LayoutDescriptor( int nLayout, int k0, int k1, int k2, int k3, int k4, int k5, int k6 )
 : mnLayout( nLayout )
 {
 	meKind[0] = static_cast<PresObjKind>(k0 & (~VERTICAL)); mbVertical[0] = (k0 & VERTICAL) == VERTICAL;
 	meKind[2] = static_cast<PresObjKind>(k2 & (~VERTICAL)); mbVertical[2] = (k2 & VERTICAL) == VERTICAL;
 	meKind[3] = static_cast<PresObjKind>(k3 & (~VERTICAL)); mbVertical[3] = (k3 & VERTICAL) == VERTICAL;
 	meKind[4] = static_cast<PresObjKind>(k4 & (~VERTICAL)); mbVertical[4] = (k4 & VERTICAL) == VERTICAL;
+    meKind[5] = static_cast<PresObjKind>(k5 & (~VERTICAL)); mbVertical[5] = (k5 & VERTICAL) == VERTICAL;
+	meKind[6] = static_cast<PresObjKind>(k6 & (~VERTICAL)); mbVertical[6] = (k6	& VERTICAL) == VERTICAL;
 }
 
 static const LayoutDescriptor& GetLayoutDescriptor( AutoLayout eLayout )
 		LayoutDescriptor( 0, PRESOBJ_TITLE, PRESOBJ_OUTLINE|VERTICAL ),						// AUTOLAYOUT_TITLE_VERTICAL_OUTLINE
 		LayoutDescriptor( 9, PRESOBJ_TITLE, PRESOBJ_GRAPHIC, PRESOBJ_OUTLINE|VERTICAL ),	// AUTOLAYOUT_TITLE_VERTICAL_OUTLINE_CLIPART
 		LayoutDescriptor( 0 ),																// AUTOLAYOUT_HANDOUT9
-        LayoutDescriptor( 10, PRESOBJ_TEXT, PRESOBJ_NONE )                                  // AUTOLAYOUT_ONLY_TEXT
+        LayoutDescriptor( 10, PRESOBJ_TEXT, PRESOBJ_NONE ),                                 // AUTOLAYOUT_ONLY_TEXT
+        LayoutDescriptor( 6, PRESOBJ_TITLE, PRESOBJ_GRAPHIC, PRESOBJ_GRAPHIC,			    // AUTOLAYOUT_4CLIPART
+			PRESOBJ_GRAPHIC, PRESOBJ_GRAPHIC ),
+        LayoutDescriptor( 11, PRESOBJ_TITLE, PRESOBJ_GRAPHIC, PRESOBJ_GRAPHIC,				// AUTOLAYOUT_6CLIPART
+            PRESOBJ_GRAPHIC, PRESOBJ_GRAPHIC, PRESOBJ_GRAPHIC, PRESOBJ_GRAPHIC )
 	};
 
 	if( (eLayout < AUTOLAYOUT__START) || (eLayout >= AUTOLAYOUT__END) )
 		rRectangle[0].SetPos( aTitlePos);
 		break;
     }
+    case 11: // title, 6 shapes
+	{
+		ULONG nX = long (aLayoutPos.X());
+
+		aLayoutSize.Height() = long (aLayoutSize.Height() * 0.477);
+		aLayoutSize.Width()  = long (aLayoutSize.Width() * 0.322);
+		rRectangle[1] = Rectangle (aLayoutPos, aLayoutSize);
+
+		aLayoutPos.X() = long (nX + aLayoutSize.Width() * 1.05);
+		rRectangle[2] = Rectangle (aLayoutPos, aLayoutSize);
+
+		aLayoutPos.X() = long (nX + aLayoutSize.Width() * 2 * 1.05);
+		rRectangle[3] = Rectangle (aLayoutPos, aLayoutSize);
+
+		aLayoutPos.Y() = long (aLayoutPos.Y() + aLayoutSize.Height() * 1.095);
+		rRectangle[4] = Rectangle (aLayoutPos, aLayoutSize);
+
+		aLayoutPos.X() = long (nX + aLayoutSize.Width() * 1.05);
+		rRectangle[5] = Rectangle (aLayoutPos, aLayoutSize);
+
+		aLayoutPos.X() = nX;
+		rRectangle[6] = Rectangle (aLayoutPos, aLayoutSize);
+
+		break;
+    }    
+
 	}
 }
 
 
 void SdPage::SetName (const String& rName)
 {
+    String aOldName = GetName();
     FmFormPage::SetName (rName);
+    static_cast<SdDrawDocument*>(pModel)->UpdatePageRelativeURLs(aOldName, rName);
     ActionChanged();
 }
 

File sd/source/filter/eppt/epptso.cxx

View file
 								*mpStrm << (sal_uInt32)( mnTextSize + 1 ) << (sal_uInt32)1 << (sal_uInt16)0;
 								mpPptEscherEx->CloseContainer();    // ESCHER_ClientTextBox
 								mpPptEscherEx->CloseContainer();    // ESCHER_SpContainer
-								continue;
 							}
+							continue;
 						}
 						else
 						{

File sd/source/filter/html/htmlex.cxx

View file
 						case presentation::ClickAction_BOOKMARK:
 						{
 							BOOL		bIsMasterPage;
-                            USHORT      nPgNum = mpDoc->GetPageByName( pInfo->maBookmark, bIsMasterPage );
+                            USHORT      nPgNum = mpDoc->GetPageByName( pInfo->GetBookmark(), bIsMasterPage );
 							SdrObject*  pObj = NULL;
 
 							if( nPgNum == SDRPAGE_NOTFOUND )
 							{
 								// Ist das Bookmark ein Objekt?
-								pObj = mpDoc->GetObj(pInfo->maBookmark);
+								pObj = mpDoc->GetObj(pInfo->GetBookmark());
 								if (pObj)
 									nPgNum = pObj->GetPage()->GetPageNum();
 							}
 						break;
 
 						case presentation::ClickAction_DOCUMENT:
-							aHRef = pInfo->maBookmark;
+							aHRef = pInfo->GetBookmark();
 						break;
 
 						case presentation::ClickAction_PREVPAGE:

File sd/source/filter/pptin.cxx

View file
 
 		InitSvxMSDffManager( nDggContainerOfs, pStData, nSvxMSDffOLEConvFlags2 );
 		SetSvxMSDffSettings( SVXMSDFF_SETTINGS_CROP_BITMAPS
-			| SVXMSDFF_SETTINGS_IMPORT_IAS | SVXMSDFF_SETTINGS_IMPORT_PPT );
+			| SVXMSDFF_SETTINGS_IMPORT_PPT );
 		SetModel( mpDoc, 576 );
 	}
 }
 	// Lokale Informationen in pInfo eintragen
 	if( pIAtom->nSoundRef )
 	{
-		pInfo->maBookmark = ReadSound( pIAtom->nSoundRef );	// Pfad zum Soundfile in MSDOS-Notation
+		pInfo->SetBookmark( ReadSound( pIAtom->nSoundRef ) );	// Pfad zum Soundfile in MSDOS-Notation
 		pInfo->meClickAction = ::com::sun::star::presentation::ClickAction_SOUND;			// RunProgramAction
 	}
 //	if ( nFlags & 0x01 )	// koennen wir nicht ( beim Anklicken markieren )
 		case 0x02 : 										// RunProgramAction
 		{
 			pInfo->meClickAction = ::com::sun::star::presentation::ClickAction_PROGRAM;
-			pInfo->maBookmark = aMacroName;					// Programmname in aBookmark
+			pInfo->SetBookmark( aMacroName );					// Programmname in aBookmark
 		}
 		break;
 		case 0x03 : 										// JumpAction
 					{
 						if ( pPtr->aConvSubString.Len() )
                         {
-							pInfo->maBookmark = pPtr->aConvSubString;
 							pInfo->meClickAction = ::com::sun::star::presentation::ClickAction_BOOKMARK;
+							pInfo->SetBookmark( pPtr->aConvSubString );
 						}
 					}
 					break;

File sd/source/filter/sdpptwrp.cxx

View file
 			aPropValue.Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DocumentURL" ) );
 			aConfigData[ 0 ] = aPropValue;
 
-			MSFilterTracer aTracer( aTraceConfigPath, &aConfigData );
-			aTracer.StartTracing();
-			SdPPTImport* pImport = new SdPPTImport( &mrDocument, *pDocStream, *pStorage, mrMedium, &aTracer );
-			if ( ( bRet = pImport->Import() ) == sal_False )
+			if ( pStorage->IsStream( String( RTL_CONSTASCII_USTRINGPARAM("EncryptedSummary") ) ) )
+				mrMedium.SetError( ERRCODE_SVX_READ_FILTER_PPOINT );
+			else
 			{
-				if ( pStorage->IsStream( String( RTL_CONSTASCII_USTRINGPARAM("EncryptedSummary") ) ) )
-					mrMedium.SetError( ERRCODE_SVX_READ_FILTER_PPOINT );
-				else
+				MSFilterTracer aTracer( aTraceConfigPath, &aConfigData );
+				aTracer.StartTracing();
+
+				SdPPTImport* pImport = new SdPPTImport( &mrDocument, *pDocStream, *pStorage, mrMedium, &aTracer );
+				if ( ( bRet = pImport->Import() ) == sal_False )
 					mrMedium.SetError( SVSTREAM_WRONGVERSION );
+
+				aTracer.EndTracing();
+				delete pImport;
 			}
-			aTracer.EndTracing();
-			delete pImport;
 			delete pDocStream;
 		}
 	}

File sd/source/ui/accessibility/AccessibleOutlineEditSource.cxx

View file
     {       
         // register as listener - need to broadcast state change messages
         rOutliner.SetNotifyHdl( LINK(this, AccessibleOutlineEditSource, NotifyHdl) );
+        StartListening(rOutliner);
     }
 
     AccessibleOutlineEditSource::~AccessibleOutlineEditSource()
         return Point();
     }
 
-    void AccessibleOutlineEditSource::Notify( SfxBroadcaster&, const SfxHint& rHint )
+    void AccessibleOutlineEditSource::Notify( SfxBroadcaster& rBroadcaster, const SfxHint& rHint )
     {
-        const SdrHint* pSdrHint = dynamic_cast< const SdrHint* >( &rHint );
+        bool bDispose = false;
 
-        if( pSdrHint && ( pSdrHint->GetKind() == HINT_MODELCLEARED ) )
-		{
-			// model is dying under us, going defunc
-			if( mpOutliner )
-				mpOutliner->SetNotifyHdl( Link() );
-			mpOutliner = NULL;
-			mpOutlinerView = NULL;
-			Broadcast( TextHint( SFX_HINT_DYING ) );
+        if( &rBroadcaster == mpOutliner )
+        {
+            const SfxSimpleHint* pHint = dynamic_cast< const SfxSimpleHint * >( &rHint );
+            if( pHint && (pHint->GetId() == SFX_HINT_DYING) )
+            {
+                bDispose = true;
+                mpOutliner = NULL;
+            }
+        }
+        else
+        {
+            const SdrHint* pSdrHint = dynamic_cast< const SdrHint* >( &rHint );
+
+            if( pSdrHint && ( pSdrHint->GetKind() == HINT_MODELCLEARED ) )
+		    {
+			    // model is dying under us, going defunc
+                bDispose = true;
+            }
+        }
+
+        if( bDispose )
+        {
+		    if( mpOutliner )
+    		    mpOutliner->SetNotifyHdl( Link() );
+		    mpOutliner = NULL;
+		    mpOutlinerView = NULL;
+		    Broadcast( TextHint( SFX_HINT_DYING ) );
         }
     }
 

File sd/source/ui/app/res_bmp.src

View file
 {
 	File = "foil25_h.bmp" ;
 };
+Bitmap BMP_FOIL_26
+{
+	File = "foil26.bmp" ;
+};
+Bitmap BMP_FOIL_26_H
+{
+	File = "foil26_h.bmp" ;
+};
+Bitmap BMP_FOIL_27
+{
+	File = "foil27.bmp" ;
+};
+Bitmap BMP_FOIL_27_H
+{
+	File = "foil27_h.bmp" ;
+};
 Bitmap BMP_FOILH_01
 {
 	File = "foilh01.bmp" ;

File sd/source/ui/app/strings.src

View file
 {
 	Text [ en-US ] = "Title, 4 Objects" ;
 };
+String STR_AUTOLAYOUT_4CLIPART
+{
+	Text [ en-US ] = "Title, 4 Cliparts" ;
+};
 String STR_AL_TITLE_VERT_OUTLINE
 {
 	Text [ en-US ] = "Title, Vertical Text" ;
 {
 	Text [ en-US ] = "Vertical Title, Vertical Text" ;
 };
+String STR_AUTOLAYOUT_6CLIPART
+{
+	Text [ en-US ] = "Title, 6 Cliparts" ;
+};
 
 String STR_AUTOLAYOUT_HANDOUT1
 {

File sd/source/ui/func/fudraw.cxx

View file
 				// jump to object/page
 				aHelpText = String(SdResId(STR_CLICK_ACTION_BOOKMARK));
 				aHelpText.AppendAscii( RTL_CONSTASCII_STRINGPARAM( ": " ) );
-				aHelpText.Append( String(INetURLObject::decode( pInfo->maBookmark, '%', INetURLObject::DECODE_WITH_CHARSET ) ));
+				aHelpText.Append( String(INetURLObject::decode( pInfo->GetBookmark(), '%', INetURLObject::DECODE_WITH_CHARSET ) ));
 			}
 			break;
 
 				// jump to document (object/page)
 				aHelpText = String(SdResId(STR_CLICK_ACTION_DOCUMENT));
 				aHelpText.AppendAscii( RTL_CONSTASCII_STRINGPARAM( ": " ) );
-				aHelpText.Append( String(INetURLObject::decode( pInfo->maBookmark, '%', INetURLObject::DECODE_WITH_CHARSET ) ));
+				aHelpText.Append( String(INetURLObject::decode( pInfo->GetBookmark(), '%', INetURLObject::DECODE_WITH_CHARSET ) ));
 			}
 			break;
 
 				// execute program
 				aHelpText = String(SdResId(STR_CLICK_ACTION_PROGRAM));
 				aHelpText.AppendAscii( RTL_CONSTASCII_STRINGPARAM( ": " ) );
-				aHelpText.Append( String(INetURLObject::decode( pInfo->maBookmark, '%', INetURLObject::DECODE_WITH_CHARSET ) ));
+				aHelpText.Append( String(INetURLObject::decode( pInfo->GetBookmark(), '%', INetURLObject::DECODE_WITH_CHARSET ) ));
 			}
 			break;
 
 				aHelpText = String(SdResId(STR_CLICK_ACTION_MACRO));
 				aHelpText.AppendAscii( RTL_CONSTASCII_STRINGPARAM( ": " ) );
 
-				if ( SfxApplication::IsXScriptURL( pInfo->maBookmark ) )
+				if ( SfxApplication::IsXScriptURL( pInfo->GetBookmark() ) )
 				{
-					aHelpText.Append( pInfo->maBookmark );
+					aHelpText.Append( pInfo->GetBookmark() );
 				}
 				else
 				{
+                    String sBookmark( pInfo->GetBookmark() );
 					sal_Unicode cToken = '.';
-					aHelpText.Append( pInfo->maBookmark.GetToken( 2, cToken ) );
+					aHelpText.Append( sBookmark.GetToken( 2, cToken ) );
 					aHelpText.Append( cToken );
-					aHelpText.Append( pInfo->maBookmark.GetToken( 1, cToken ) );
+					aHelpText.Append( sBookmark.GetToken( 1, cToken ) );
 					aHelpText.Append( cToken );
-					aHelpText.Append(  pInfo->maBookmark.GetToken( 0, cToken ) );
+					aHelpText.Append( sBookmark.GetToken( 0, cToken ) );
 				}
 			}
 			break;

File sd/source/ui/func/fuoaprms.cxx

View file
 		eClickAction        = pInfo->meClickAction;
 		nClickActionSet     = ATTR_SET;
 
-		aBookmark           = pInfo->maBookmark;
+		aBookmark           = pInfo->GetBookmark();
 		nBookmarkSet        = ATTR_SET;
 
 		eSecondEffect       = pInfo->meSecondEffect;
 			if( eClickAction != pInfo->meClickAction )
 				nClickActionSet = ATTR_MIXED;
 
-			if( aBookmark != pInfo->maBookmark )
+			if( aBookmark != pInfo->GetBookmark() )
 				nBookmarkSet = ATTR_MIXED;
 
 			if( eSecondEffect != pInfo->meSecondEffect )
 			aSound          = pInfo->maSoundFile;       nSoundFileSet       = ATTR_SET;
 			bPlayFull       = pInfo->mbPlayFull;        nPlayFullSet        = ATTR_SET;
 			eClickAction    = pInfo->meClickAction;     nClickActionSet     = ATTR_SET;
-			aBookmark       = pInfo->maBookmark;        nBookmarkSet        = ATTR_SET;
+			aBookmark       = pInfo->GetBookmark();     nBookmarkSet        = ATTR_SET;
 			eSecondEffect   = pInfo->meSecondEffect;    nSecondEffectSet    = ATTR_SET;
 			eSecondSpeed    = pInfo->meSecondSpeed;     nSecondSpeedSet     = ATTR_SET;
 			bSecondSoundOn  = pInfo->mbSecondSoundOn;   nSecondSoundOnSet   = ATTR_SET;
 				pAction->SetPlayFull(pInfo->mbPlayFull, pInfo->mbPlayFull);
 //				pAction->SetPathObj(pInfo->mpPathObj, pInfo->mpPathObj);
 				pAction->SetClickAction(pInfo->meClickAction, pInfo->meClickAction);
-				pAction->SetBookmark(pInfo->maBookmark, pInfo->maBookmark);
+				pAction->SetBookmark(pInfo->GetBookmark(), pInfo->GetBookmark());
 //				pAction->SetInvisibleInPres(pInfo->mbInvisibleInPresentation, TRUE);
 				pAction->SetVerb(pInfo->mnVerb, pInfo->mnVerb);
 				pAction->SetSecondEffect(pInfo->meSecondEffect, pInfo->meSecondEffect);
 				pAction->SetPlayFull(pInfo->mbPlayFull, bPlayFull);
 				pAction->SetPathObj(pInfo->mpPathObj, pPath);
 				pAction->SetClickAction(pInfo->meClickAction, eClickAction);
-				pAction->SetBookmark(pInfo->maBookmark, aBookmark);
+				pAction->SetBookmark(pInfo->GetBookmark(), aBookmark);
 //				pAction->SetInvisibleInPres(pInfo->mbInvisibleInPresentation,
 //											pInfo->mbInvisibleInPresentation);
-				pAction->SetVerb(pInfo->mnVerb, (USHORT)pInfo->maBookmark.ToInt32() );
+				pAction->SetVerb(pInfo->mnVerb, (USHORT)pInfo->GetBookmark().ToInt32() );
 				pAction->SetSecondEffect(pInfo->meSecondEffect, eSecondEffect);
 				pAction->SetSecondSpeed(pInfo->meSecondSpeed, eSecondSpeed);
 				pAction->SetSecondSoundOn(pInfo->mbSecondSoundOn, bSecondSoundOn);
 					pInfo->meClickAction = eClickAction;
 
 				if (nBookmarkSet == ATTR_SET)
-					pInfo->maBookmark = aBookmark;
+					pInfo->SetBookmark( aBookmark );
 
 				if (nSecondEffectSet == ATTR_SET)
 					pInfo->meSecondEffect = eSecondEffect;

File sd/source/ui/func/fusel.cxx

View file
 	            case presentation::ClickAction_BOOKMARK:
 	            {
 	 	    	    // Sprung zu Bookmark (Seite oder Objekt)
-	    	        SfxStringItem aItem(SID_NAVIGATOR_OBJECT, pInfo->maBookmark);
+	    	        SfxStringItem aItem(SID_NAVIGATOR_OBJECT, pInfo->GetBookmark());
 	                mpViewShell->GetViewFrame()->GetDispatcher()->
 	                Execute(SID_NAVIGATOR_OBJECT, SFX_CALLMODE_SLOT | SFX_CALLMODE_RECORD, &aItem, 0L);
                     bAnimated = TRUE;
 
 	            case presentation::ClickAction_DOCUMENT:
 	            {
+                    String sBookmark( pInfo->GetBookmark() );
 	                // Sprung zu Dokument
-	                if (pInfo->maBookmark.Len())
+	                if (sBookmark.Len())
 	                {
 						SfxStringItem aReferer(SID_REFERER, mpDocSh->GetMedium()->GetName());
-	                    SfxStringItem aStrItem(SID_FILE_NAME, pInfo->maBookmark);
+	                    SfxStringItem aStrItem(SID_FILE_NAME, sBookmark);
 	                    SfxViewFrame* pFrame = mpViewShell->GetViewFrame();
 	                    SfxFrameItem aFrameItem(SID_DOCFRAME, pFrame);
 	                    SfxBoolItem aBrowseItem( SID_BROWSE, TRUE );
 	            {
                         try
                         {
-                            mxPlayer.set( avmedia::MediaWindow::createPlayer( pInfo->maBookmark ), uno::UNO_QUERY_THROW );
+                            mxPlayer.set( avmedia::MediaWindow::createPlayer( pInfo->GetBookmark()), uno::UNO_QUERY_THROW );
                             mxPlayer->start();
                         }
                         catch( uno::Exception& e )
 	            case presentation::ClickAction_PROGRAM:
 	            {
                    String aBaseURL = GetDocSh()->GetMedium()->GetBaseURL();
-                   INetURLObject aURL( ::URIHelper::SmartRel2Abs( INetURLObject(aBaseURL), pInfo->maBookmark,
+                   INetURLObject aURL( ::URIHelper::SmartRel2Abs( INetURLObject(aBaseURL), pInfo->GetBookmark(),
                                                 URIHelper::GetMaybeFileHdl(), true, false,
                                                 INetURLObject::WAS_ENCODED, INetURLObject::DECODE_UNAMBIGUOUS ) );
 
 	            case presentation::ClickAction_MACRO:
 	            {
 	                // Execute makro
-	                String aMacro = pInfo->maBookmark;
+	                String aMacro = pInfo->GetBookmark();
 
 					if ( SfxApplication::IsXScriptURL( aMacro ) )
 					{

File sd/source/ui/func/unoaprms.cxx

View file
 		pNewPathObj 	= pOldPathObj	 = pInfo->mpPathObj;
 
 		eNewClickAction		= eOldClickAction	 = pInfo->meClickAction;
-		aNewBookmark		= aOldBookmark 		 = pInfo->maBookmark;
+		aNewBookmark		= aOldBookmark 		 = pInfo->GetBookmark();
 //		bNewInvisibleInPres	= bOldInvisibleInPres= pInfo->mbInvisibleInPresentation;
 		nNewVerb			= nOldVerb			 = pInfo->mnVerb;
 		nNewPresOrder		= nOldPresOrder		 = pInfo->mnPresOrder;
 			pInfo->mbPlayFull    = bOldPlayFull;
 //			pInfo->mSetPath(pOldPathObj);
 			pInfo->meClickAction = eOldClickAction;
-			pInfo->maBookmark    = aOldBookmark;
+			pInfo->SetBookmark( aOldBookmark );
 //			pInfo->mbInvisibleInPresentation = bOldInvisibleInPres;
 			pInfo->mnVerb        = nOldVerb;
 			pInfo->mnPresOrder   = nOldPresOrder;
 	pInfo->mbPlayFull    = bNewPlayFull;
 //	pInfo->mSetPath(pNewPathObj);
 	pInfo->meClickAction = eNewClickAction;
-	pInfo->maBookmark    = aNewBookmark;
+	pInfo->SetBookmark( aNewBookmark );
 //	pInfo->mbInvisibleInPresentation = bNewInvisibleInPres;
 	pInfo->mnVerb        = nNewVerb;
 	pInfo->mnPresOrder   = nNewPresOrder;

File sd/source/ui/inc/res_bmp.hrc

View file
 #define BMP_COLLAPSE			RID_APP_START+52
 #define BMP_GRAPHIC 			RID_APP_START+53
 
+#define BMP_FOIL_26				RID_APP_START+54
+
 // Bimaps fuer ValueSet im EffekteWindow
 #define BMP_EFFECT_NONE						RID_APP_START+105
 #define BMP_TEXTEFFECT_DISCARD_FROM_T		RID_APP_START+106
 
 #define BMP_FOILH_09_H						RID_SD_START+333
 #define BMP_FOIL_25_H						RID_SD_START+334
+#define BMP_FOIL_26_H						RID_SD_START+335
+#define BMP_FOIL_27							RID_SD_START+336
+#define BMP_FOIL_27_H						RID_SD_START+337
 
 // -----------------------------------------------------------------------------
 

File sd/source/ui/inc/strings.hrc

View file
 #define STR_AUTOLAYOUT_NOTES		(RID_APP_START+236)
 #define STR_AUTOLAYOUT_HANDOUT9		(RID_APP_START+237)
 #define STR_AUTOLAYOUT_ONLY_TEXT	(RID_APP_START+238)
-
+#define STR_AUTOLAYOUT_4CLIPART    	(RID_APP_START+239)
 
 #define STR_TRANSFORM				(RID_APP_START+240)
+
+#define STR_AUTOLAYOUT_6CLIPART    	(RID_APP_START+241)
 
 #define STR_EXPORT_HTML_NAME				(RID_APP_START+244)
 #define STR_EXPORT_HTML_FILTER				(RID_APP_START+245)

File sd/source/ui/toolpanel/LayoutMenu.cxx

View file
      AUTOLAYOUT_TEXTOVEROBJ},
     {BMP_FOIL_18, BMP_FOIL_18_H, STR_AUTOLAYOUT_4OBJ, WritingMode_LR_TB,
      AUTOLAYOUT_4OBJ},
+    {BMP_FOIL_26, BMP_FOIL_26_H, STR_AUTOLAYOUT_4CLIPART, WritingMode_LR_TB, AUTOLAYOUT_4CLIPART},
+    {BMP_FOIL_27, BMP_FOIL_27_H, STR_AUTOLAYOUT_6CLIPART, WritingMode_LR_TB, AUTOLAYOUT_6CLIPART},
+
     // vertical
     {BMP_FOIL_21, BMP_FOIL_21_H, STR_AL_VERT_TITLE_TEXT_CHART, 
      WritingMode_TB_RL, AUTOLAYOUT_VERTICAL_TITLE_TEXT_CHART},

File sd/source/ui/unoidl/unoobj.cxx

View file
 					if(!(aValue >>= aString))
 						throw lang::IllegalArgumentException();
 
-					pInfo->maBookmark = SdDrawPage::getUiNameFromPageApiName( aString );
+					pInfo->SetBookmark( SdDrawPage::getUiNameFromPageApiName( aString ) );
 					break;
 				}
 				case WID_CLICKACTION:
 				SdDrawDocument* pDoc = mpModel?mpModel->GetDoc():NULL;
 				// is the bookmark a page?
 				BOOL bIsMasterPage;
-				if(pDoc->GetPageByName( pInfo->maBookmark, bIsMasterPage ) != SDRPAGE_NOTFOUND)
+				if(pDoc->GetPageByName( pInfo->GetBookmark(), bIsMasterPage ) != SDRPAGE_NOTFOUND)
 				{
-					aString = SdDrawPage::getPageApiNameFromUiName( pInfo->maBookmark );
+					aString = SdDrawPage::getPageApiNameFromUiName( pInfo->GetBookmark() );
 				}
 				else
 				{
-					aString = pInfo->maBookmark ;
+					aString = pInfo->GetBookmark() ;
 					sal_Int32 nPos = aString.lastIndexOf( sal_Unicode('#') );
 					if( nPos >= 0 )
 					{
 static void clearEventsInAnimationInfo( SdAnimationInfo* pInfo )
 {
 	const String aEmpty;
-	pInfo->maBookmark = aEmpty;
+	pInfo->SetBookmark( aEmpty );
 	pInfo->mbSecondSoundOn = sal_False;
 	pInfo->mbSecondPlayFull = sal_False;
 	pInfo->meClickAction = presentation::ClickAction_NONE;
 						}
 					}
 
-					pInfo->maBookmark = aStrBookmark;
+					pInfo->SetBookmark( aStrBookmark );
 					bOk = sal_True;
 				}
 				break;
 			case presentation::ClickAction_MACRO:
 				if( nFound & FOUND_MACRO )
 				{
-					pInfo->maBookmark = aStrMacro;
+					pInfo->SetBookmark( aStrMacro );
 					bOk = sal_True;
 				}
 				break;
 			case presentation::ClickAction_SOUND:
 				if( nFound & FOUND_SOUNDURL )
 				{
-					pInfo->maBookmark = aStrSoundURL;
+					pInfo->SetBookmark( aStrSoundURL );
 					if( eClickAction != presentation::ClickAction_SOUND )
 						pInfo->mbSecondSoundOn = aStrSoundURL.getLength() != 0;
 					pInfo->mbSecondPlayFull = nFound & FOUND_PLAYFULL ? bPlayFull : sal_False;
 
 			if ( SfxApplication::IsXScriptURL( aStrMacro ) )
 			{
-				pInfo->maBookmark = aStrMacro;
+				pInfo->SetBookmark( aStrMacro );
 			}
 			else
 			{
 					sBuffer.append( aStrLibrary );
 				}
 			
-				pInfo->maBookmark = sBuffer.makeStringAndClear();
+				pInfo->SetBookmark( sBuffer.makeStringAndClear() );
 			}
 			bOk = sal_True;
 		}
 	case presentation::ClickAction_BOOKMARK:
 	case presentation::ClickAction_DOCUMENT:
 	case presentation::ClickAction_MACRO:
-		if ( !SfxApplication::IsXScriptURL( pInfo->maBookmark ) )
+		if ( !SfxApplication::IsXScriptURL( pInfo->GetBookmark() ) )
 			nPropertyCount += 1;
 		break;
 
 
 	if( eClickAction == presentation::ClickAction_MACRO )
 	{
-		if ( SfxApplication::IsXScriptURL( pInfo->maBookmark ) )
+		if ( SfxApplication::IsXScriptURL( pInfo->GetBookmark() ) )
 		{
 			// Scripting Framework URL
 			aAny <<= maStrScript;;
 			pProperties->State = beans::PropertyState_DIRECT_VALUE;
 			pProperties++;
 
-			aAny <<= OUString( pInfo->maBookmark );
+			aAny <<= OUString( pInfo->GetBookmark() );
 			pProperties->Name = maStrScript;
 			pProperties->Handle = -1;
 			pProperties->Value = aAny;
 			pProperties->State = beans::PropertyState_DIRECT_VALUE;
 			pProperties++;
 
-			String aMacro = pInfo->maBookmark;
+			String aMacro = pInfo->GetBookmark();
 
 			// aMacro has got following format:
 			// "Macroname.Modulname.Libname.Documentname" or
 			break;
 		case presentation::ClickAction_BOOKMARK:
 			{
-				const OUString aStrBookmark( getPageApiNameFromUiName( pInfo->maBookmark ) );
+				const OUString aStrBookmark( getPageApiNameFromUiName( pInfo->GetBookmark()) );
 				pProperties->Name = maStrBookmark;
 				pProperties->Handle = -1;
 				pProperties->Value <<= aStrBookmark;
 		case presentation::ClickAction_DOCUMENT:
 		case presentation::ClickAction_PROGRAM:
 			{
-				OUString aString( pInfo->maBookmark );
+				OUString aString( pInfo->GetBookmark());
 				sal_Int32 nPos = aString.lastIndexOf( sal_Unicode('#') );
 				if( nPos >= 0 )
 				{
 		case presentation::ClickAction_SOUND:
 			if( eClickAction == presentation::ClickAction_SOUND || pInfo->mbSecondSoundOn )
 			{
-				aAny <<= OUString( pInfo->maBookmark );
+				aAny <<= OUString( pInfo->GetBookmark());
 				pProperties->Name = maStrSoundURL;
 				pProperties->Handle = -1;
 				pProperties->Value = aAny;

File sd/source/ui/view/drtxtob1.cxx

View file
 			{
 				pOLV->AdjustDepth( -1 );
 
+                // Ensure bold/italic etc. icon state updates
+				Invalidate();
 				// #96551# trigger preview refresh
 				mpViewShell->GetViewFrame()->GetBindings().Invalidate( SID_PREVIEW_STATE, TRUE, FALSE );
 			}
 			{
 				pOLV->AdjustDepth( 1 );
 
+                // Ensure bold/italic etc. icon state updates
+				Invalidate();
 				// #96551# trigger preview refresh
 				mpViewShell->GetViewFrame()->GetBindings().Invalidate( SID_PREVIEW_STATE, TRUE, FALSE );
 			}

File sd/source/ui/view/drviewse.cxx

View file
 
                 SdAnimationInfo* pInfo = SdDrawDocument::GetShapeUserData(*pMarkedObj, true);
                 pInfo->meClickAction = presentation::ClickAction_DOCUMENT;
-                pInfo->maBookmark = sTargetURL;
+                pInfo->SetBookmark( sTargetURL );
             }
         }
         catch( uno::Exception& )

File sd/source/ui/view/drviewsf.cxx

View file
                 {
                     SdAnimationInfo* pInfo = SdDrawDocument::GetShapeUserData(*pMarkedObj);
                     if( pInfo && (pInfo->meClickAction == presentation::ClickAction_DOCUMENT) )
-                        aHLinkItem.SetURL( pInfo->maBookmark );
+                        aHLinkItem.SetURL( pInfo->GetBookmark());
                     aHLinkItem.SetInsertMode(HLINK_BUTTON);
                 }
 			}

File sd/source/ui/view/sdview2.cxx

View file
 								pAction->SetPlayFull(pInfo->mbPlayFull, pInfo->mbPlayFull);
 								pAction->SetPathObj(pInfo->mpPathObj, pInfo->mpPathObj);
 								pAction->SetClickAction(pInfo->meClickAction, eClickAction);
-								pAction->SetBookmark(pInfo->maBookmark, aBookmark);
+								pAction->SetBookmark(pInfo->GetBookmark(), aBookmark);
 //								pAction->SetInvisibleInPres(pInfo->mbInvisibleInPresentation, TRUE);
 								pAction->SetVerb(pInfo->mnVerb, pInfo->mnVerb);
 								pAction->SetSecondEffect(pInfo->meSecondEffect, pInfo->meSecondEffect);
 								pAction->SetComment(aString);
 								mpDocSh->GetUndoManager()->AddUndoAction(pAction);
 								pInfo->meClickAction = eClickAction;
-								pInfo->maBookmark = aBookmark;
+								pInfo->SetBookmark( aBookmark );
 								mpDoc->SetChanged();
 
 								nRet = nDropAction;

File svtools/source/filter.vcl/wmf/enhwmf.cxx

View file
 							pnPoints[ i ] = (UINT16)nPoints;
 						}
 
-						if ( ( nGesPoints * sizeof(Point) ) <= ( nEndPos - pWMF->Tell() ) )
+						if ( ( nGesPoints * (sizeof(sal_uInt32)+sizeof(sal_uInt32)) ) <= ( nEndPos - pWMF->Tell() ) )
 						{
 							// Polygonpunkte holen:
-							pPtAry  = (Point*) new char[ nGesPoints * sizeof(Point) ];
+							pPtAry  = new Point[ nGesPoints ];
 			
 							for ( i = 0; i < nGesPoints; i++ )
 							{
 							// PolyPolygon Actions erzeugen
 							PolyPolygon aPolyPoly( (UINT16)nPoly, pnPoints, pPtAry );
 							pOut->DrawPolyPolygon( aPolyPoly, bRecordPath );
-							delete[] (char*) pPtAry;
+							delete[] pPtAry;
 						}
 						delete[] pnPoints;
 					}
 							*pWMF >> nPoints;
 							pnPoints[ i ] = (UINT16)nPoints;
 						}
-						if ( ( nGesPoints * sizeof(Point) ) <= ( nEndPos - pWMF->Tell() ) )
+						if ( ( nGesPoints * (sizeof(sal_uInt16)+sizeof(sal_uInt16)) ) <= ( nEndPos - pWMF->Tell() ) )
 						{
 							// Polygonpunkte holen:
-							pPtAry  = (Point*) new char[ nGesPoints * sizeof(Point) ];
+							pPtAry  = new Point[ nGesPoints ];
 							for ( i = 0; i < nGesPoints; i++ )
 							{
 								*pWMF >> nX16 >> nY16;
 							// PolyPolygon Actions erzeugen
 							PolyPolygon aPolyPoly( (UINT16)nPoly, pnPoints, pPtAry );
 							pOut->DrawPolyPolygon( aPolyPoly, bRecordPath );
-							delete[] (char*) pPtAry;
+							delete[] pPtAry;
 						}
 						delete[] pnPoints;
 					}

File svtools/source/filter.vcl/wmf/winwmf.cxx

View file
 		case W_META_ROUNDRECT:
 		{
 			Size aSize( ReadYXExt() );
-			pOut->DrawRoundRect( ReadRectangle(), aSize );
+			pOut->DrawRoundRect( ReadRectangle(), Size( aSize.Width() / 2, aSize.Height() / 2 ) );
 		}
 		break;
 
 		{
 			Point aEnd( ReadYX() );
 			Point aStart( ReadYX() );
-			pOut->DrawArc( ReadRectangle(), aStart, aEnd );
+			Rectangle aRect( ReadRectangle() );
+			aRect.Justify();
+			pOut->DrawArc( aRect, aStart, aEnd );
 		}
 		break;
 
 			Point     aEnd( ReadYX() );
 			Point     aStart( ReadYX() );
             Rectangle aRect( ReadRectangle() );
+			aRect.Justify();
 
             // #i73608# OutputDevice deviates from WMF
             // semantics. start==end means full ellipse here.
 		{
 			Point aEnd( ReadYX() );
 			Point aStart( ReadYX() );
-			pOut->DrawChord( ReadRectangle(), aStart, aEnd );
+			Rectangle aRect( ReadRectangle() );
+			aRect.Justify();
+			pOut->DrawChord( aRect, aStart, aEnd );
 		}
 		break;
 

File svx/inc/svx/msdffdef.hxx

View file
 
 class SfxItemSet;
 class SdrObject;
+struct DffObjData;
 
 class SVX_DLLPUBLIC DffPropertyReader : public DffPropSet
 {
 
 	void		ApplyCustomShapeTextAttributes( SfxItemSet& rSet ) const;
 	void		ApplyCustomShapeAdjustmentAttributes( SfxItemSet& rSet ) const;
-	void		ApplyCustomShapeGeometryAttributes( SvStream& rIn, SfxItemSet& rSet, const MSO_SPT eShapeType, const sal_uInt32 nShapeFlags ) const;
+	void		ApplyCustomShapeGeometryAttributes( SvStream& rIn, SfxItemSet& rSet, const DffObjData& rObjData ) const;
 	void		ApplyLineAttributes( SfxItemSet& rSet, const MSO_SPT eShapeType ) const; // #i28269#
-	void		ApplyFillAttributes( SvStream& rIn, SfxItemSet& rSet, const MSO_SPT eShapeType ) const;
+	void		ApplyFillAttributes( SvStream& rIn, SfxItemSet& rSet, const DffObjData& rObjData ) const;
 
 public:
 
 #endif
 
 	void		SetDefaultPropSet( SvStream& rIn, UINT32 nOffDgg ) const;
-	void		ApplyAttributes( SvStream& rIn, SfxItemSet& rSet, const MSO_SPT = mso_sptNil, const sal_uInt32 nShapeFlags = 0 ) const;
+	void		ApplyAttributes( SvStream& rIn, SfxItemSet& rSet ) const;
+	void		ApplyAttributes( SvStream& rIn, SfxItemSet& rSet, const DffObjData& rObjData ) const;
 };
 
 #endif

File svx/inc/svx/msdffimp.hxx

View file
 #define SVXMSDFF_SETTINGS_CROP_BITMAPS		1
 #define SVXMSDFF_SETTINGS_IMPORT_PPT		2
 #define SVXMSDFF_SETTINGS_IMPORT_EXCEL		4
-#define SVXMSDFF_SETTINGS_IMPORT_IAS		8
 
 #define SP_FGROUP		0x001	// This shape is a group shape
 #define SP_FCHILD		0x002	// Not a top-level shape
 
 struct DffObjData
 {
+	const DffRecordHeader&	rSpHd;
+
+	Rectangle	aBoundRect;
 	Rectangle	aChildAnchor;
 
-	const DffRecordHeader&	rSpHd;
-	Rectangle&				rBoundRect;
-
 	UINT32		nShapeId;
 	UINT32		nSpFlags;
 	MSO_SPT		eShapeType;
 	int nCalledByGroup;
 
 	DffObjData( const DffRecordHeader& rObjHd,
-				Rectangle&		rBdRect,
-				int 			nClByGroup ) :
+				const Rectangle& rBoundRect,
+				int 			 nClByGroup ) :
 		rSpHd( rObjHd ),
-		rBoundRect(	rBdRect ),
+		aBoundRect(	rBoundRect ),
+		nShapeId( 0 ),
+		nSpFlags( 0 ),
+		eShapeType( mso_sptNil ),
+		bShapeType( FALSE ),
+		bClientAnchor( FALSE ),
+		bClientData( FALSE ),
+		bChildAnchor( FALSE ),
+		bOpt( FALSE ),
 		bIsAutoText( FALSE ),
 		nCalledByGroup(	nClByGroup ){}
 };
 
 	FASTBOOL ReadGraphic( SvStream& rSt, ULONG nIndex, Graphic& rGraphic ) const;
 	SdrObject* ImportFontWork( SvStream&, SfxItemSet&, Rectangle& rBoundRect ) const;
-	SdrObject* ImportGraphic( SvStream&, SfxItemSet&, Rectangle& rBoundRect, const DffObjData& ) const;
+	SdrObject* ImportGraphic( SvStream&, SfxItemSet&, const DffObjData& ) const;
     // --> OD 2004-12-14 #i32596# - pass <nCalledByGroup> to method
     // Needed in the Writer Microsoft Word import to avoid import of OLE objects
     // inside groups. Instead a graphic object is created.

File svx/inc/svx/outliner.hxx

View file
 #include <tools/gen.hxx>
 #include <tools/string.hxx>
 #include <tools/debug.hxx>
-#ifndef _EDITDATA_HXX //autogen
+
+#include <svtools/brdcst.hxx>
+
 #include <svx/editdata.hxx>
-#endif
 #include <i18npool/lang.h>
-#ifndef _SV_COLOR_HXX //autogen
 #include <tools/color.hxx>
-#endif
 #include <vcl/graph.hxx>
 #include <tools/list.hxx>
 #include <tools/link.hxx>
 #include <rsc/rscsfx.hxx>
 #include "svx/svxdllapi.h"
 
-#ifndef _GRFMGR_HXX
 #include <goodies/grfmgr.hxx>
-#endif
 
 #include <tools/rtti.hxx>	// wegen typedef TypeId
 #include <vector>
 #define OUTLINERMODE_SUBTITLE		(0x0100|OUTLINERMODE_TEXTOBJECT)
 #define OUTLINERMODE_NOTE			(0x0200|OUTLINERMODE_TEXTOBJECT)
 
-class SVX_DLLPUBLIC Outliner
+class SVX_DLLPUBLIC Outliner : public SfxBroadcaster
 {
 	friend class OutlinerView;
 	friend class OutlinerEditEng;

File svx/source/msfilter/makefile.mk

View file
 	$(SLO)$/msdffimp.obj	\
 	$(SLO)$/msoleexp.obj	\
 	$(SLO)$/msvbasic.obj	\
-	$(SLO)$/msashape.obj	\
 	$(SLO)$/svxmsbas.obj	\
 	$(SLO)$/msocximex.obj	\
-	$(SLO)$/msashape3d.obj	\
 	$(SLO)$/mscodec.obj		\
 	$(SLO)$/msfiltertracer.obj
 
 	$(SLO)$/eschesdo.obj	\
 	$(SLO)$/escherex.obj	\
 	$(SLO)$/msdffimp.obj	\
-	$(SLO)$/msashape3d.obj	\
 	$(SLO)$/msvbasic.obj	\
 	$(SLO)$/msocximex.obj	\
 	$(SLO)$/msoleexp.obj	\

File svx/source/msfilter/msashape.cxx

-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- * 
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: msashape.cxx,v $
- * $Revision: 1.44 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org.  If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svx.hxx"
-#include <osl/endian.h>
-#include <msashape.hxx>
-#include <svx/svdocirc.hxx>
-#include <svx/svdogrp.hxx>
-#include <svx/svdopath.hxx>
-#include <svx/svdpage.hxx>
-#include <svx/xflclit.hxx>
-#include <svx/sdasaitm.hxx>
-#include <svtools/itemset.hxx>
-#include <svx/svdmodel.hxx>
-#include <rtl/crc.h>
-#include <svx/xlnstit.hxx>
-#include <svx/xlnedit.hxx>
-#include <svx/xlnstwit.hxx>
-#include <svx/xlnedwit.hxx>
-#include <svx/xlnstcit.hxx>
-#include <svx/xlnedcit.hxx>
-
-#include <math.h>
-#include <basegfx/polygon/b2dpolypolygon.hxx>
-#include <basegfx/polygon/b2dpolygon.hxx>
-
-struct SvxMSDffVertPair
-{
-	sal_Int32	nValA;
-	sal_Int32	nValB;
-};
-struct SvxMSDffCalculationData
-{
-	sal_uInt16	nFlags;
-	sal_Int16	nVal1;
-	sal_Int16	nVal2;
-	sal_Int16	nVal3;
-};
-struct SvxMSDffTextRectangles
-{
-	SvxMSDffVertPair	nPairA;
-	SvxMSDffVertPair	nPairB;
-};
-
-struct mso_CustomShape
-{
-	SvxMSDffVertPair*			pVertices;
-	sal_uInt32					nVertices;
-	sal_uInt16*					pElements;
-	sal_uInt32					nElements;
-	SvxMSDffCalculationData*	pCalculation;
-	sal_uInt32					nCalculation;
-	sal_Int32*					pDefData;
-	SvxMSDffTextRectangles*		pTextRect;
-	sal_uInt32					nTextRect;
-	sal_Int32					nCoordWidth;
-	sal_Int32					nCoordHeight;
-	sal_Int32					nXRef;
-	sal_Int32					nYRef;
-	SvxMSDffVertPair*			pGluePoints;
-	sal_uInt32					nGluePoints;
-};
-
-#define GEOMETRY_USED_LEFT				1
-#define GEOMETRY_USED_TOP				2
-#define GEOMETRY_USED_RIGHT				4
-#define GEOMETRY_USED_BOTTOM			8
-
-/*
-static const SvxMSDffVertPair Vert[] =
-{
-	{ 0, 0, }
-};
-static const sal_uInt16 Segm[] =
-{
-	0x4000,
-	0x8000
-};
-static const SvxMSDffCalculationData Calc[] =
-{
-	{ 0x0000, 0, 0, 0 }
-};
-static const sal_Int32 Default[] =
-{
-	0
-};
-static const SvxMSDffTextRect TextRect[] =
-{
-	{ { 0, 0 }, { 0, 0 } }
-};
-static const sal_Int32 BoundRect[] =
-{
-	0, 0, 21600, 21600
-};
-static const mso_CustomShape mso =
-{
-	(SvxMSDffVertPair*)mso_sptVert, sizeof( mso_sptVert ) / sizeof( SvxMSDffVertPair ),
-	(sal_uInt16*)mso_sptSegm, sizeof( mso_sptSegm ) >> 1,
-	(SvxMSDffCalculationData*)mso_sptCalc, sizeof( mso_sptCalc ) / sizeof( SvxMSDffCalculationData ),
-	(sal_Int32*)mso_sptDefault,
-	(SvxMSDffTextRectangles*)mso_sptTextRect, sizeof( mso_sptTextRect ) / sizeof( SvxMSDffTextRectangles ),
-	21600, 21600,
-	0x80000000, 0x80000000,
-	(SvxMSDffVertPair*)mso_sptVert, sizeof( mso_sptVert ) / sizeof( SvxMSDffVertPair )
-};
-*/
-
-#define MSO_I | (sal_Int32)0x80000000
-
-static const sal_Int32 mso_sptDefault0[] =
-{
-	1, 0
-};
-static const sal_Int32 mso_sptDefault1400[] = 
-{
-	1, 1400
-};
-static const sal_Int32 mso_sptDefault1800[] = 
-{
-	1, 1800
-};
-static const sal_Int32 mso_sptDefault2500[] = 
-{
-	1, 2500
-};
-static const sal_Int32 mso_sptDefault2700[] = 
-{
-	1, 2700
-};
-static const sal_Int32 mso_sptDefault3600[] = 
-{
-	1, 3600
-};
-static const sal_Int32 mso_sptDefault3700[] = 
-{
-	1, 3700
-};
-static const sal_Int32 mso_sptDefault5400[] = 
-{
-	1, 5400
-};
-static const sal_Int32 mso_sptDefault8100[] = 
-{
-	1, 5400
-};
-static const sal_Int32 mso_sptDefault10800[] = 
-{
-	1, 10800
-};
-static const sal_Int32 mso_sptDefault16200and5400[] =
-{
-	2, 16200, 5400
-};
-
-static const sal_Int32 mso_sptArcDefault[] = 
-{
-	2, 270 << 16, 0
-};
-static const SvxMSDffVertPair mso_sptStandardGluePoints[] =
-{
-	{ 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 21600, 10800 }
-};
-static const mso_CustomShape msoArc = 
-{
-	NULL, 0,
-	NULL, 0,
-	NULL, 0,
-	(sal_Int32*)mso_sptArcDefault,
-	NULL, 0,
-	21600, 21600,
-	0x80000000, 0x80000000,
-	NULL, 0
-};
-
-static const mso_CustomShape msoRectangle = 
-{
-	NULL, 0,
-	NULL, 0,
-	NULL, 0,
-	NULL,
-	NULL, 0,
-	21600, 21600,
-	0x80000000, 0x80000000,
-	NULL, 0
-};
-
-static const SvxMSDffCalculationData mso_sptRoundRectangleCalc[] =	// adjustment1 : 0 - 10800
-{
-	{ 0x2001, DFF_Prop_adjustValue, 1, 3 },
-	{ 0xa000, DFF_Prop_geoRight, 0, 0x400},
-	{ 0xa000, DFF_Prop_geoBottom, 0, 0x400},
-	{ 0x6000, DFF_Prop_geoLeft, 0x400, 0 },
-	{ 0x6000, DFF_Prop_geoTop, 0x400, 0 }
-};
-static const SvxMSDffTextRectangles mso_sptRoundRectangleTextRect[] =
-{
-	{ { 3 MSO_I, 4 MSO_I }, { 1 MSO_I, 2 MSO_I } }
-};
-static const mso_CustomShape msoRoundRectangle = 
-{
-	NULL, 0,
-	NULL, 0,
-	(SvxMSDffCalculationData*)mso_sptRoundRectangleCalc, sizeof( mso_sptRoundRectangleCalc ) / sizeof( SvxMSDffCalculationData ),
-	(sal_Int32*)mso_sptDefault3600,
-	(SvxMSDffTextRectangles*)mso_sptRoundRectangleTextRect, sizeof( mso_sptRoundRectangleTextRect ) / sizeof( SvxMSDffTextRectangles ),
-	21600, 21600,
-	0x80000000, 0x80000000,
-	NULL, 0
-};
-
-static const SvxMSDffVertPair mso_sptRightTriangleVert[] =
-{
-	{ 0, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 }
-};
-static const SvxMSDffTextRectangles mso_sptRightTriangleTextRect[] =
-{
-	{ { 1900, 12700 }, { 12700, 19700 } }
-};
-static const SvxMSDffVertPair mso_sptRightTriangleGluePoints[] =
-{
-	{ 10800, 0 }, { 5400, 10800 }, { 0, 21600 }, { 10800, 21600 }, { 21600, 21600 }, { 16200, 10800 }
-};
-static const mso_CustomShape msoRightTriangle =
-{
-	(SvxMSDffVertPair*)mso_sptRightTriangleVert, sizeof( mso_sptRightTriangleVert ) / sizeof( SvxMSDffVertPair ),
-	NULL, 0, 
-	NULL, 0,
-	NULL,
-	(SvxMSDffTextRectangles*)mso_sptRightTriangleTextRect, sizeof( mso_sptRightTriangleTextRect ) / sizeof( SvxMSDffTextRectangles ),
-	21600, 21600,
-	0x80000000, 0x80000000,
-	(SvxMSDffVertPair*)mso_sptRightTriangleGluePoints, sizeof( mso_sptRightTriangleGluePoints ) / sizeof( SvxMSDffVertPair )
-};
-
-static const SvxMSDffTextRectangles mso_sptEllipseTextRect[] =
-{
-	{ { 3200, 3200 }, { 18400, 18400 } }
-};
-static const SvxMSDffVertPair mso_sptEllipseGluePoints[] =
-{
-	{ 10800, 0 }, { 3160, 3160 }, { 0, 10800 }, { 3160, 18440 }, { 10800, 21600 }, { 18440, 18440 }, { 21600, 10800 }, { 18440, 3160 }
-};
-static const mso_CustomShape msoEllipse =
-{
-	NULL, 0,
-	NULL, 0, 
-	NULL, 0,
-	NULL,
-	(SvxMSDffTextRectangles*)mso_sptEllipseTextRect, sizeof( mso_sptEllipseTextRect ) / sizeof( SvxMSDffTextRectangles ),
-	21600, 21600,
-	0x80000000, 0x80000000,
-	(SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair )
-};
-
-static const SvxMSDffVertPair mso_sptParallelogramVert[] =	// adjustment1 : 0 - 21600
-{
-	{ 0 MSO_I, 0 },	{ 21600, 0 }, { 1 MSO_I, 21600 }, { 0, 21600 }
-};
-static const sal_uInt16 mso_sptParallelogramSegm[] =
-{
-	0x4000,	0x0003,	0x6001,	0x8000
-};
-static const SvxMSDffCalculationData mso_sptParallelogramCalc[] =
-{
-	{ 0x4000, 0, DFF_Prop_adjustValue, 0 },
-	{ 0x8000, 0, 21600, DFF_Prop_adjustValue },
-	{ 0x2001, DFF_Prop_adjustValue, 10, 24 },
-	{ 0x2000, 0x0402, 1750, 0 },
-	{ 0x8000, 21600, 0, 0x0403 },
-	{ 0x2001, 0x400, 1, 2 }, 
-	{ 0x4000, 10800, 0x405, 0 },
-	{ 0x2000, 0x400, 0, 10800 },
-	{ 0x6006, 0x407, 0x40d, 0 },
-	{ 0x8000, 10800, 0, 0x405 },
-	{ 0x6006, 0x407, 0x40c, 21600 },
-	{ 0x8000, 21600, 0, 0x405 },
-	{ 0x8001, 21600, 10800, 0x400 },
-	{ 0x8000, 21600, 0, 0x40c }
-};
-static const SvxMSDffTextRectangles mso_sptParallelogramTextRect[] =
-{
-	{ { 3 MSO_I, 3 MSO_I }, { 4 MSO_I, 4 MSO_I } }
-};
-static const SvxMSDffVertPair mso_sptParallelogramGluePoints[] =
-{
-	{ 6 MSO_I, 0 }, { 10800, 8 MSO_I }, { 11 MSO_I, 10800 }, { 9 MSO_I, 21600 }, { 10800, 10 MSO_I }, { 5 MSO_I, 10800 }
-};
-static const mso_CustomShape msoParallelogram =
-{
-	(SvxMSDffVertPair*)mso_sptParallelogramVert, sizeof( mso_sptParallelogramVert ) / sizeof( SvxMSDffVertPair ),
-	(sal_uInt16*)mso_sptParallelogramSegm, sizeof( mso_sptParallelogramSegm ) >> 1,
-	(SvxMSDffCalculationData*)mso_sptParallelogramCalc, sizeof( mso_sptParallelogramCalc ) / sizeof( SvxMSDffCalculationData ),
-	(sal_Int32*)mso_sptDefault5400,
-	(SvxMSDffTextRectangles*)mso_sptParallelogramTextRect, sizeof( mso_sptParallelogramTextRect ) / sizeof( SvxMSDffTextRectangles ),
-	21600, 21600,
-	0x80000000, 0x80000000,
-	(SvxMSDffVertPair*)mso_sptParallelogramGluePoints, sizeof( mso_sptParallelogramGluePoints ) / sizeof( SvxMSDffVertPair )
-};
-
-static const SvxMSDffVertPair mso_sptDiamondVert[] =
-{
-	{ 10800, 0 }, { 21600, 10800 }, { 10800, 21600 }, {	0, 10800 }, { 10800, 0 }
-};
-static const SvxMSDffTextRectangles mso_sptDiamondTextRect[] = 
-{
-	{ { 5400, 5400 }, { 16200, 16200 } }
-};
-static const mso_CustomShape msoDiamond =
-{
-	(SvxMSDffVertPair*)mso_sptDiamondVert, sizeof( mso_sptDiamondVert ) / sizeof( SvxMSDffVertPair ),
-	NULL, 0,
-	NULL, 0,
-	NULL,
-	(SvxMSDffTextRectangles*)mso_sptDiamondTextRect, sizeof( mso_sptDiamondTextRect ) / sizeof( SvxMSDffTextRectangles ),
-	21600, 21600,
-	0x80000000, 0x80000000,
-	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair )
-};
-
-static const SvxMSDffVertPair mso_sptTrapezoidVert[] =		// adjustment1 : 0 - 10800
-{
-	{ 0, 0 }, { 21600, 0 }, {0 MSO_I, 21600 }, { 1 MSO_I, 21600 }
-};
-static const sal_uInt16 mso_sptTrapezoidSegm[] =
-{
-	0x4000, 0x0003,	0x6001,	0x8000
-};
-static const SvxMSDffCalculationData mso_sptTrapezoidCalc[] =
-{
-	{ 0x8000, 21600, 0, DFF_Prop_adjustValue },
-	{ 0x2000, DFF_Prop_adjustValue, 0, 0 },
-	{ 0x2001, DFF_Prop_adjustValue, 10, 18 },
-	{ 0x2000, 0x0402, 1750, 0 },
-	{ 0x8000, 21600, 0, 0x403 },
-	{ 0x2001, DFF_Prop_adjustValue, 1, 2 },
-	{ 0x8000, 21600, 0, 0x405 }
-};
-static const SvxMSDffTextRectangles mso_sptTrapezoidTextRect[] =
-{
-	{ { 3 MSO_I, 3 MSO_I }, { 4 MSO_I, 4 MSO_I } }
-};
-static const SvxMSDffVertPair mso_sptTrapezoidGluePoints[] =
-{
-	{ 6 MSO_I, 10800 }, { 10800, 21600 }, { 5 MSO_I, 10800 }, { 10800, 0 }
-};
-static const mso_CustomShape msoTrapezoid =
-{
-	(SvxMSDffVertPair*)mso_sptTrapezoidVert, sizeof( mso_sptTrapezoidVert ) / sizeof( SvxMSDffVertPair ),
-	(sal_uInt16*)mso_sptTrapezoidSegm, sizeof( mso_sptTrapezoidSegm ) >> 1,
-	(SvxMSDffCalculationData*)mso_sptTrapezoidCalc, sizeof( mso_sptTrapezoidCalc ) / sizeof( SvxMSDffCalculationData ),
-	(sal_Int32*)mso_sptDefault5400,
-	(SvxMSDffTextRectangles*)mso_sptTrapezoidTextRect, sizeof( mso_sptTrapezoidTextRect ) / sizeof( SvxMSDffTextRectangles ),
-	21600, 21600,
-	0x80000000, 0x80000000,
-	(SvxMSDffVertPair*)mso_sptTrapezoidGluePoints, sizeof( mso_sptTrapezoidGluePoints ) / sizeof( SvxMSDffVertPair )
-};
-
-static const SvxMSDffVertPair mso_sptOctagonVert[] =		// adjustment1 : 0 - 10800
-{
-	{ 0 MSO_I, 0 }, { 2 MSO_I, 0 }, { 21600, 1 MSO_I }, { 21600, 3 MSO_I },
-	{ 2 MSO_I, 21600 }, { 0 MSO_I, 21600 }, { 0, 3 MSO_I }, { 0, 1 MSO_I }
-};
-static const sal_uInt16 mso_sptOctagonSegm[] =
-{
-	0x4000, 0x0007, 0x6001, 0x8000
-};
-static const SvxMSDffCalculationData mso_sptOctagonCalc[] =
-{
-	{ 0x6000, DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 },
-	{ 0x6000, DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 },
-	{ 0xa000, DFF_Prop_geoRight, 0, DFF_Prop_adjustValue },
-	{ 0xa000, DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue },
-	{ 0x2001, DFF_Prop_adjustValue, 1, 2 },
-	{ 0x6000, DFF_Prop_geoLeft, 0x404, 0 },
-	{ 0x6000, DFF_Prop_geoTop, 0x404, 0 },
-	{ 0xa000, DFF_Prop_geoRight, 0, 0x404 },
-	{ 0xa000, DFF_Prop_geoBottom, 0, 0x404 }
-};
-static const sal_Int32 mso_sptOctagonDefault[] =
-{
-	1, 5000
-};
-static const SvxMSDffTextRectangles mso_sptOctagonTextRect[] =
-{
-	{ { 5 MSO_I, 6 MSO_I }, { 7 MSO_I, 8 MSO_I } }
-};
-static const mso_CustomShape msoOctagon =
-{
-	(SvxMSDffVertPair*)mso_sptOctagonVert, sizeof( mso_sptOctagonVert ) / sizeof( SvxMSDffVertPair ),
-	(sal_uInt16*)mso_sptOctagonSegm, sizeof( mso_sptOctagonSegm ) >> 1,
-	(SvxMSDffCalculationData*)mso_sptOctagonCalc, sizeof( mso_sptOctagonCalc ) / sizeof( SvxMSDffCalculationData ),
-	(sal_Int32*)mso_sptOctagonDefault,
-	(SvxMSDffTextRectangles*)mso_sptOctagonTextRect, sizeof( mso_sptOctagonTextRect ) / sizeof( SvxMSDffTextRectangles ),
-	21600, 21600,
-	0x80000000, 0x80000000,
-	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair )
-};
-
-static const SvxMSDffVertPair mso_sptIsocelesTriangleVert[] =	// adjustment1 : 0 - 21600
-{
-	{ 0 MSO_I, 0 }, { 21600, 21600 }, { 0, 21600 }
-};
-static const sal_uInt16 mso_sptIsocelesTriangleSegm[] =
-{
-	0x4000, 0x0002, 0x6001, 0x8000
-};
-static const SvxMSDffCalculationData mso_sptIsocelesTriangleCalc[] =
-{
-	{ 0x4000, 0, DFF_Prop_adjustValue, 0 },
-	{ 0x2001, DFF_Prop_adjustValue, 1, 2 },
-	{ 0x2000, 0x401, 10800, 0 },
-	{ 0x2001, DFF_Prop_adjustValue, 2, 3 },
-	{ 0x2000, 0x403, 7200, 0 },
-	{ 0x8000, 21600, 0, 0x400 },
-	{ 0x2001, 0x405, 1, 2 },
-	{ 0x8000, 21600, 0, 0x406 }
-};
-static const SvxMSDffTextRectangles mso_sptIsocelesTriangleTextRect[] =
-{
-	{ { 1 MSO_I, 10800 }, { 2 MSO_I, 18000 } },
-	{ { 3 MSO_I, 7200 }, { 4 MSO_I, 21600	} }
-};
-static const SvxMSDffVertPair mso_sptIsocelesTriangleGluePoints[] =
-{
-	{ 10800, 0 }, { 1 MSO_I, 10800 }, { 0, 21600 }, { 10800, 21600 }, { 21600, 21600 }, { 7 MSO_I, 10800 }
-};
-static const mso_CustomShape msoIsocelesTriangle =
-{
-	(SvxMSDffVertPair*)mso_sptIsocelesTriangleVert, sizeof( mso_sptIsocelesTriangleVert ) / sizeof( SvxMSDffVertPair ),
-	(sal_uInt16*)mso_sptIsocelesTriangleSegm, sizeof( mso_sptIsocelesTriangleSegm ) >> 1,
-	(SvxMSDffCalculationData*)mso_sptIsocelesTriangleCalc, sizeof( mso_sptIsocelesTriangleCalc ) / sizeof( SvxMSDffCalculationData ),
-	(sal_Int32*)mso_sptDefault10800,
-	(SvxMSDffTextRectangles*)mso_sptIsocelesTriangleTextRect, sizeof( mso_sptIsocelesTriangleTextRect ) / sizeof( SvxMSDffTextRectangles ),
-	21600, 21600,
-	0x80000000, 0x80000000,
-	(SvxMSDffVertPair*)mso_sptIsocelesTriangleGluePoints, sizeof( mso_sptIsocelesTriangleGluePoints ) / sizeof( SvxMSDffVertPair )
-};
-
-static const SvxMSDffVertPair mso_sptHexagonVert[] =				// adjustment1 : 0 - 10800
-{
-	{ 0 MSO_I, 0 }, { 1 MSO_I, 0 }, { 21600, 10800 }, { 1 MSO_I, 21600 },
-	{ 0 MSO_I, 21600 }, { 0, 10800 }
-};
-static const sal_uInt16 mso_sptHexagonSegm[] =
-{
-	0x4000, 0x0005, 0x6001, 0x8000
-};