diff options
author | Michael Stahl <mstahl@redhat.com> | 2012-01-28 20:55:39 +0100 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2012-01-28 20:55:39 +0100 |
commit | 371976860088a3c5c3df9840dcdfd632d9d6f1f5 (patch) | |
tree | 9e9f67205cd5b72f1031721273e1534a3a1e5b0f /svx/source/customshapes | |
parent | 651568afad1a585c485384ab6d7b65780fb02256 (diff) |
replace obsolete "master" branch with README that points at new repoHEADmaster-deletedmaster
Diffstat (limited to 'svx/source/customshapes')
-rw-r--r-- | svx/source/customshapes/EnhancedCustomShape2d.cxx | 2177 | ||||
-rw-r--r-- | svx/source/customshapes/EnhancedCustomShape3d.cxx | 746 | ||||
-rw-r--r-- | svx/source/customshapes/EnhancedCustomShape3d.hxx | 80 | ||||
-rw-r--r-- | svx/source/customshapes/EnhancedCustomShapeEngine.cxx | 473 | ||||
-rw-r--r-- | svx/source/customshapes/EnhancedCustomShapeEngine.hxx | 127 | ||||
-rw-r--r-- | svx/source/customshapes/EnhancedCustomShapeFontWork.cxx | 885 | ||||
-rw-r--r-- | svx/source/customshapes/EnhancedCustomShapeFontWork.hxx | 47 | ||||
-rw-r--r-- | svx/source/customshapes/EnhancedCustomShapeFunctionParser.cxx | 1214 | ||||
-rw-r--r-- | svx/source/customshapes/EnhancedCustomShapeGeometry.cxx | 8276 | ||||
-rw-r--r-- | svx/source/customshapes/EnhancedCustomShapeHandle.cxx | 96 | ||||
-rw-r--r-- | svx/source/customshapes/EnhancedCustomShapeHandle.hxx | 72 | ||||
-rw-r--r-- | svx/source/customshapes/EnhancedCustomShapeTypeNames.cxx | 331 | ||||
-rw-r--r-- | svx/source/customshapes/tbxcustomshapes.cxx | 204 |
13 files changed, 0 insertions, 14728 deletions
diff --git a/svx/source/customshapes/EnhancedCustomShape2d.cxx b/svx/source/customshapes/EnhancedCustomShape2d.cxx deleted file mode 100644 index 4001f7c9ce..0000000000 --- a/svx/source/customshapes/EnhancedCustomShape2d.cxx +++ /dev/null @@ -1,2177 +0,0 @@ -/* -*- 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. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_svx.hxx" -#include "svx/EnhancedCustomShape2d.hxx" -#include "svx/EnhancedCustomShapeGeometry.hxx" -#include "svx/EnhancedCustomShapeTypeNames.hxx" -#include <svx/svdoashp.hxx> -#include <svx/svdtrans.hxx> -#include <svx/svdocirc.hxx> -#include <svx/svdogrp.hxx> -#include <svx/svdopath.hxx> -#include <svx/svdocapt.hxx> -#include <svx/svdpage.hxx> -#include <svx/xflclit.hxx> -#include <svx/sdasaitm.hxx> -#include <svx/svdmodel.hxx> -#include <rtl/crc.h> -#include <rtl/math.hxx> -#include <svx/xfillit0.hxx> -#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 <svx/xflgrit.hxx> -#include <svx/xflhtit.hxx> -#include <svx/xbtmpit.hxx> -#include <svx/xgrad.hxx> -#include <svx/xbitmap.hxx> -#include <svx/xhatch.hxx> -#include <com/sun/star/awt/Size.hpp> -#include <com/sun/star/drawing/EnhancedCustomShapeParameterType.hpp> -#include <com/sun/star/drawing/EnhancedCustomShapeSegmentCommand.hpp> -#include <boost/shared_ptr.hpp> -#include <basegfx/numeric/ftools.hxx> -#include <basegfx/color/bcolortools.hxx> -#include <basegfx/polygon/b2dpolygon.hxx> - -// #i76201# -#include <basegfx/polygon/b2dpolygontools.hxx> -#include <rtl/strbuf.hxx> -#include <math.h> - -using namespace ::com::sun::star::uno; -using namespace ::com::sun::star::drawing; -using namespace ::com::sun::star::drawing::EnhancedCustomShapeSegmentCommand; - -void EnhancedCustomShape2d::SetEnhancedCustomShapeParameter( EnhancedCustomShapeParameter& rParameter, const sal_Int32 nValue ) -{ - sal_uInt32 nDat = (sal_uInt32)nValue; - sal_Int32 nNewValue = nValue; - - // check if this is a special point - if ( ( nDat >> 16 ) == 0x8000 ) - { - nNewValue = (sal_uInt16)nDat; - rParameter.Type = EnhancedCustomShapeParameterType::EQUATION; - } - else - rParameter.Type = EnhancedCustomShapeParameterType::NORMAL; - rParameter.Value <<= nNewValue; -} - -rtl::OUString EnhancedCustomShape2d::GetEquation( const sal_uInt16 nFlags, sal_Int16 nP1, sal_Int16 nP2, sal_Int16 nP3 ) -{ - rtl::OUString aEquation; - sal_Bool b1Special = ( nFlags & 0x2000 ) != 0; - sal_Bool b2Special = ( nFlags & 0x4000 ) != 0; - sal_Bool b3Special = ( nFlags & 0x8000 ) != 0; - switch( nFlags & 0xff ) - { - case 0 : - case 14 : - { - sal_Int32 nOptimize = 0; - if ( nP1 ) - nOptimize |= 1; - if ( nP2 ) - nOptimize |= 2; - if ( b1Special ) - nOptimize |= 4; - if ( b2Special ) - nOptimize |= 8; - switch( nOptimize ) - { - case 0 : - break; - case 1 : - case 4 : - case 5 : - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP1, b1Special ); - break; - case 2 : - case 8 : - case 10: - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP2, b2Special ); - break; - default : - { - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP1, b1Special ); - aEquation += rtl::OUString( (sal_Unicode)'+' ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP2, b2Special ); - } - break; - } - if ( b3Special || nP3 ) - { - aEquation += rtl::OUString( (sal_Unicode)'-' ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP3, b3Special ); - } - } - break; - case 1 : - { - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP1, b1Special ); - if ( b2Special || ( nP2 != 1 ) ) - { - aEquation += rtl::OUString( (sal_Unicode)'*' ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP2, b2Special ); - } - if ( b3Special || ( ( nP3 != 1 ) && ( nP3 != 0 ) ) ) - { - aEquation += rtl::OUString( (sal_Unicode)'/' ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP3, b3Special ); - } - } - break; - case 2 : - { - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "(" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP1, b1Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "+" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP2, b2Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( ")/2" ) ); - } - break; - case 3 : - { - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "abs(" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP1, b1Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( ")" ) ); - } - break; - case 4 : - { - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "min(" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP1, b1Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "," ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP2, b2Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( ")" ) ); - } - break; - case 5 : - { - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "max(" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP1, b1Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "," ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP2, b2Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( ")" ) ); - } - break; - case 6 : - { - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "if(" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP1, b1Special ); - aEquation += rtl::OUString( (sal_Unicode)',' ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP2, b2Special ); - aEquation += rtl::OUString( (sal_Unicode)',' ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP3, b3Special ); - aEquation += rtl::OUString( (sal_Unicode)')' ); - } - break; - case 7 : - { - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "sqrt(" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP1, b1Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "*" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP1, b1Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "+" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP2, b2Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "*" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP2, b2Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "+" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP3, b3Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "*" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP3, b3Special ); - aEquation += rtl::OUString( (sal_Unicode)')' ); - } - break; - case 8 : - { - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "atan2(" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP2, b2Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "," ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP1, b1Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( ")/(pi/180)" ) ); - } - break; - case 9 : - { - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP1, b1Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "*sin(" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP2, b2Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "*(pi/180))" ) ); - } - break; - case 10 : - { - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP1, b1Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "*cos(" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP2, b2Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "*(pi/180))" ) ); - } - break; - case 11 : - { - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP1, b1Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "*" ) ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "cos(atan2(" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP3, b3Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "," ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP2, b2Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "))" ) ); - } - break; - case 12 : - { - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP1, b1Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "*" ) ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "sin(atan2(" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP3, b3Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "," ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP2, b2Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "))" ) ); - } - break; - case 13 : - { - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "sqrt(" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP1, b1Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( ")" ) ); - } - break; - case 15 : - { - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP3, b3Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "*sqrt(1-(" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP1, b1Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "/" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP2, b2Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( ")" ) ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "*(" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP1, b1Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "/" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP2, b2Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "))" ) ); - } - break; - case 16 : - { - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP1, b1Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "*tan(" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP2, b2Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( ")" ) ); - } - break; - case 0x80 : - { - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "sqrt(" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP3, b3Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "*" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP3, b3Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "-" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP1, b1Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "*" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP1, b1Special ); - aEquation += rtl::OUString( (sal_Unicode)')' ); - } - break; - case 0x81 : - { - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "(cos(" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP3, b3Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "*(pi/180))*(" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP1, b1Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "-10800)+sin(" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP3, b3Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "*(pi/180))*(" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP2, b2Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "-10800))+10800" ) ); - } - break; - case 0x82 : - { - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "-(sin(" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP3, b3Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "*(pi/180))*(" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP1, b1Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "-10800)-cos(" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP3, b3Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "*(pi/180))*(" ) ); - EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( aEquation, nP2, b2Special ); - aEquation += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "-10800))+10800" ) ); - } - break; - } - return aEquation; -} - -void EnhancedCustomShape2d::AppendEnhancedCustomShapeEquationParameter( rtl::OUString& rParameter, const sal_Int16 nPara, const sal_Bool bIsSpecialValue ) -{ - if ( bIsSpecialValue ) - { - if ( nPara & 0x400 ) - { - rParameter += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "?" ) ); - rParameter += rtl::OUString::valueOf( (sal_Int32)( nPara & 0xff ) ); - rParameter += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( " " ) ); - } - else - { - switch( nPara ) - { - case DFF_Prop_adjustValue : - case DFF_Prop_adjust2Value : - case DFF_Prop_adjust3Value : - case DFF_Prop_adjust4Value : - case DFF_Prop_adjust5Value : - case DFF_Prop_adjust6Value : - case DFF_Prop_adjust7Value : - case DFF_Prop_adjust8Value : - case DFF_Prop_adjust9Value : - case DFF_Prop_adjust10Value : - { - rParameter += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "$" ) ); - rParameter += rtl::OUString::valueOf( (sal_Int32)( nPara - DFF_Prop_adjustValue ) ); - rParameter += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( " " ) ); - } - break; - case DFF_Prop_geoLeft : - { - rParameter += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "left" ) ); - } - break; - case DFF_Prop_geoTop : - { - rParameter += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "top" ) ); - } - break; - case DFF_Prop_geoRight : - { - rParameter += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "right" ) ); - } - break; - case DFF_Prop_geoBottom : - { - rParameter += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "bottom" ) ); - } - break; - } - } - } - else - { - rParameter += rtl::OUString::valueOf( (sal_Int32)( nPara ) ); - } -} - -void EnhancedCustomShape2d::SetEnhancedCustomShapeHandleParameter( EnhancedCustomShapeParameter& rParameter, const sal_Int32 nPara, const sal_Bool bIsSpecialValue, sal_Bool bHorz ) -{ - sal_Int32 nValue = 0; - if ( bIsSpecialValue ) - { - if ( ( nPara >= 0x100 ) && ( nPara <= 0x107 ) ) - { - nValue = nPara & 0xff; - rParameter.Type = EnhancedCustomShapeParameterType::ADJUSTMENT; - } - else if ( ( nPara >= 3 ) && ( nPara <= 0x82 ) ) - { - nValue = nPara - 3; - rParameter.Type = EnhancedCustomShapeParameterType::EQUATION; - } - else if ( nPara == 0 ) - { - nValue = 0; - if ( bHorz ) - rParameter.Type = EnhancedCustomShapeParameterType::LEFT; - else - rParameter.Type = EnhancedCustomShapeParameterType::TOP; - } - else if ( nPara == 1 ) - { - nValue = 0; - if ( bHorz ) - rParameter.Type = EnhancedCustomShapeParameterType::RIGHT; - else - rParameter.Type = EnhancedCustomShapeParameterType::BOTTOM; - } - else if ( nPara == 2 ) // means to be centered, but should not be - { // used in our implementation - nValue = 5600; - rParameter.Type = EnhancedCustomShapeParameterType::NORMAL; - } - else - { - nValue = nPara; - rParameter.Type = EnhancedCustomShapeParameterType::NORMAL; - } - } - else - { - nValue = nPara; - rParameter.Type = EnhancedCustomShapeParameterType::NORMAL; - } - rParameter.Value <<= nValue; -} - -sal_Bool EnhancedCustomShape2d::ConvertSequenceToEnhancedCustomShape2dHandle( - const com::sun::star::beans::PropertyValues& rHandleProperties, - EnhancedCustomShape2d::Handle& rDestinationHandle ) -{ - sal_Bool bRetValue = sal_False; - sal_uInt32 i, nProperties = rHandleProperties.getLength(); - if ( nProperties ) - { - rDestinationHandle.nFlags = 0; - for ( i = 0; i < nProperties; i++ ) - { - const com::sun::star::beans::PropertyValue& rPropVal = rHandleProperties[ i ]; - - const rtl::OUString sPosition ( RTL_CONSTASCII_USTRINGPARAM( "Position" ) ); - const rtl::OUString sMirroredX ( RTL_CONSTASCII_USTRINGPARAM( "MirroredX" ) ); - const rtl::OUString sMirroredY ( RTL_CONSTASCII_USTRINGPARAM( "MirroredY" ) ); - const rtl::OUString sSwitched ( RTL_CONSTASCII_USTRINGPARAM( "Switched" ) ); - const rtl::OUString sPolar ( RTL_CONSTASCII_USTRINGPARAM( "Polar" ) ); - const rtl::OUString sRefX ( RTL_CONSTASCII_USTRINGPARAM( "RefX" ) ); - const rtl::OUString sRefY ( RTL_CONSTASCII_USTRINGPARAM( "RefY" ) ); - const rtl::OUString sRefAngle ( RTL_CONSTASCII_USTRINGPARAM( "RefAngle" ) ); - const rtl::OUString sRefR ( RTL_CONSTASCII_USTRINGPARAM( "RefR" ) ); - const rtl::OUString sRadiusRangeMinimum ( RTL_CONSTASCII_USTRINGPARAM( "RadiusRangeMinimum" ) ); - const rtl::OUString sRadiusRangeMaximum ( RTL_CONSTASCII_USTRINGPARAM( "RadiusRangeMaximum" ) ); - const rtl::OUString sRangeXMinimum ( RTL_CONSTASCII_USTRINGPARAM( "RangeXMinimum" ) ); - const rtl::OUString sRangeXMaximum ( RTL_CONSTASCII_USTRINGPARAM( "RangeXMaximum" ) ); - const rtl::OUString sRangeYMinimum ( RTL_CONSTASCII_USTRINGPARAM( "RangeYMinimum" ) ); - const rtl::OUString sRangeYMaximum ( RTL_CONSTASCII_USTRINGPARAM( "RangeYMaximum" ) ); - - if ( rPropVal.Name.equals( sPosition ) ) - { - if ( rPropVal.Value >>= rDestinationHandle.aPosition ) - bRetValue = sal_True; - } - else if ( rPropVal.Name.equals( sMirroredX ) ) - { - sal_Bool bMirroredX = sal_Bool(); - if ( rPropVal.Value >>= bMirroredX ) - { - if ( bMirroredX ) - rDestinationHandle.nFlags |= HANDLE_FLAGS_MIRRORED_X; - } - } - else if ( rPropVal.Name.equals( sMirroredY ) ) - { - sal_Bool bMirroredY = sal_Bool(); - if ( rPropVal.Value >>= bMirroredY ) - { - if ( bMirroredY ) - rDestinationHandle.nFlags |= HANDLE_FLAGS_MIRRORED_Y; - } - } - else if ( rPropVal.Name.equals( sSwitched ) ) - { - sal_Bool bSwitched = sal_Bool(); - if ( rPropVal.Value >>= bSwitched ) - { - if ( bSwitched ) - rDestinationHandle.nFlags |= HANDLE_FLAGS_SWITCHED; - } - } - else if ( rPropVal.Name.equals( sPolar ) ) - { - if ( rPropVal.Value >>= rDestinationHandle.aPolar ) - rDestinationHandle.nFlags |= HANDLE_FLAGS_POLAR; - } -/* seems not to be used. - else if ( rPropVal.Name.equals( sMap ) ) - { - com::sun::star::drawing::EnhancedCustomShapeParameterPair aMap; - if ( rPropVal.Value >>= aMap ) - { - if ( GetValueForEnhancedCustomShapeHandleParameter( nXMap, aMap.First ) ) - rDestinationHandle.Flags |= 0x800; - if ( GetValueForEnhancedCustomShapeHandleParameter( nYMap, aMap.Second ) ) - rDestinationHandle.Flags |= 0x1000; - rDestinationHandle.Flags |= 0x10; - } - } -*/ - else if ( rPropVal.Name.equals( sRefX ) ) - { - if ( rPropVal.Value >>= rDestinationHandle.nRefX ) - rDestinationHandle.nFlags |= HANDLE_FLAGS_REFX; - } - else if ( rPropVal.Name.equals( sRefY ) ) - { - if ( rPropVal.Value >>= rDestinationHandle.nRefY ) - rDestinationHandle.nFlags |= HANDLE_FLAGS_REFY; - } - else if ( rPropVal.Name.equals( sRefAngle ) ) - { - if ( rPropVal.Value >>= rDestinationHandle.nRefAngle ) - rDestinationHandle.nFlags |= HANDLE_FLAGS_REFANGLE; - } - else if ( rPropVal.Name.equals( sRefR ) ) - { - if ( rPropVal.Value >>= rDestinationHandle.nRefR ) - rDestinationHandle.nFlags |= HANDLE_FLAGS_REFR; - } - else if ( rPropVal.Name.equals( sRadiusRangeMinimum ) ) - { - if ( rPropVal.Value >>= rDestinationHandle.aRadiusRangeMinimum ) - rDestinationHandle.nFlags |= HANDLE_FLAGS_RADIUS_RANGE_MINIMUM; - } - else if ( rPropVal.Name.equals( sRadiusRangeMaximum ) ) - { - if ( rPropVal.Value >>= rDestinationHandle.aRadiusRangeMaximum ) - rDestinationHandle.nFlags |= HANDLE_FLAGS_RADIUS_RANGE_MAXIMUM; - } - else if ( rPropVal.Name.equals( sRangeXMinimum ) ) - { - if ( rPropVal.Value >>= rDestinationHandle.aXRangeMinimum ) - rDestinationHandle.nFlags |= HANDLE_FLAGS_RANGE_X_MINIMUM; - } - else if ( rPropVal.Name.equals( sRangeXMaximum ) ) - { - if ( rPropVal.Value >>= rDestinationHandle.aXRangeMaximum ) - rDestinationHandle.nFlags |= HANDLE_FLAGS_RANGE_X_MAXIMUM; - } - else if ( rPropVal.Name.equals( sRangeYMinimum ) ) - { - if ( rPropVal.Value >>= rDestinationHandle.aYRangeMinimum ) - rDestinationHandle.nFlags |= HANDLE_FLAGS_RANGE_Y_MINIMUM; - } - else if ( rPropVal.Name.equals( sRangeYMaximum ) ) - { - if ( rPropVal.Value >>= rDestinationHandle.aYRangeMaximum ) - rDestinationHandle.nFlags |= HANDLE_FLAGS_RANGE_Y_MAXIMUM; - } - } - } - return bRetValue; -} - -const sal_Int32* EnhancedCustomShape2d::ApplyShapeAttributes( const SdrCustomShapeGeometryItem& rGeometryItem ) -{ - const sal_Int32* pDefData = NULL; - const mso_CustomShape* pDefCustomShape = GetCustomShapeContent( eSpType ); - if ( pDefCustomShape ) - pDefData = pDefCustomShape->pDefData; - - ////////////////////// - // AdjustmentValues // - ////////////////////// - const rtl::OUString sAdjustmentValues( RTL_CONSTASCII_USTRINGPARAM ( "AdjustmentValues" ) ); - const Any* pAny = ((SdrCustomShapeGeometryItem&)rGeometryItem).GetPropertyValueByName( sAdjustmentValues ); - if ( pAny ) - *pAny >>= seqAdjustmentValues; - - /////////////// - // Coordsize // - /////////////// - const rtl::OUString sViewBox( RTL_CONSTASCII_USTRINGPARAM ( "ViewBox" ) ); - const Any* pViewBox = ((SdrCustomShapeGeometryItem&)rGeometryItem).GetPropertyValueByName( sViewBox ); - com::sun::star::awt::Rectangle aViewBox; - if ( pViewBox && (*pViewBox >>= aViewBox ) ) - { - nCoordLeft = aViewBox.X; - nCoordTop = aViewBox.Y; - nCoordWidth = labs( aViewBox.Width ); - nCoordHeight= labs( aViewBox.Height); - } - const rtl::OUString sPath( RTL_CONSTASCII_USTRINGPARAM ( "Path" ) ); - - ////////////////////// - // Path/Coordinates // - ////////////////////// - const rtl::OUString sCoordinates( RTL_CONSTASCII_USTRINGPARAM ( "Coordinates" ) ); - pAny = ((SdrCustomShapeGeometryItem&)rGeometryItem).GetPropertyValueByName( sPath, sCoordinates ); - if ( pAny ) - *pAny >>= seqCoordinates; - - ///////////////////// - // Path/GluePoints // - ///////////////////// - const rtl::OUString sGluePoints( RTL_CONSTASCII_USTRINGPARAM ( "GluePoints" ) ); - pAny = ((SdrCustomShapeGeometryItem&)rGeometryItem).GetPropertyValueByName( sPath, sGluePoints ); - if ( pAny ) - *pAny >>= seqGluePoints; - - /////////////////// - // Path/Segments // - /////////////////// - const rtl::OUString sSegments( RTL_CONSTASCII_USTRINGPARAM ( "Segments" ) ); - pAny = ((SdrCustomShapeGeometryItem&)rGeometryItem).GetPropertyValueByName( sPath, sSegments ); - if ( pAny ) - *pAny >>= seqSegments; - - /////////////////// - // Path/StretchX // - /////////////////// - const rtl::OUString sStretchX( RTL_CONSTASCII_USTRINGPARAM ( "StretchX" ) ); - pAny = ((SdrCustomShapeGeometryItem&)rGeometryItem).GetPropertyValueByName( sPath, sStretchX ); - if ( pAny ) - { - sal_Int32 nStretchX = 0; - if ( *pAny >>= nStretchX ) - nXRef = nStretchX; - } - - /////////////////// - // Path/StretchY // - /////////////////// - const rtl::OUString sStretchY( RTL_CONSTASCII_USTRINGPARAM ( "StretchY" ) ); - pAny = ((SdrCustomShapeGeometryItem&)rGeometryItem).GetPropertyValueByName( sPath, sStretchY ); - if ( pAny ) - { - sal_Int32 nStretchY = 0; - if ( *pAny >>= nStretchY ) - nYRef = nStretchY; - } - - ///////////////////// - // Path/TextFrames // - ///////////////////// - const rtl::OUString sTextFrames( RTL_CONSTASCII_USTRINGPARAM ( "TextFrames" ) ); - pAny = ((SdrCustomShapeGeometryItem&)rGeometryItem).GetPropertyValueByName( sPath, sTextFrames ); - if ( pAny ) - *pAny >>= seqTextFrames; - - /////////////// - // Equations // - /////////////// - const rtl::OUString sEquations( RTL_CONSTASCII_USTRINGPARAM( "Equations" ) ); - pAny = ((SdrCustomShapeGeometryItem&)rGeometryItem).GetPropertyValueByName( sEquations ); - if ( pAny ) - *pAny >>= seqEquations; - - ///////////// - // Handles // - ///////////// - const rtl::OUString sHandles( RTL_CONSTASCII_USTRINGPARAM( "Handles" ) ); - pAny = ((SdrCustomShapeGeometryItem&)rGeometryItem).GetPropertyValueByName( sHandles ); - if ( pAny ) - *pAny >>= seqHandles; - - return pDefData; -} - -EnhancedCustomShape2d::~EnhancedCustomShape2d() -{ -} - -EnhancedCustomShape2d::EnhancedCustomShape2d( SdrObject* pAObj ) : - SfxItemSet ( pAObj->GetMergedItemSet() ), - pCustomShapeObj ( pAObj ), - eSpType ( mso_sptNil ), - nCoordLeft ( 0 ), - nCoordTop ( 0 ), - nCoordWidth ( 21600 ), - nCoordHeight ( 21600 ), - nXRef ( 0x80000000 ), - nYRef ( 0x80000000 ), - nFlags ( 0 ), - nColorData ( 0 ), - bTextFlow ( sal_False ), - bFilled ( ((const XFillStyleItem&)pAObj->GetMergedItem( XATTR_FILLSTYLE )).GetValue() != XFILL_NONE ), - bStroked ( ((const XLineStyleItem&)pAObj->GetMergedItem( XATTR_LINESTYLE )).GetValue() != XLINE_NONE ), - bFlipH ( sal_False ), - bFlipV ( sal_False ) -{ - // bTextFlow needs to be set before clearing the TextDirection Item - - ClearItem( SDRATTR_TEXTDIRECTION ); //SJ: vertical writing is not required, by removing this item no outliner is created - - // #i105323# For 2D AtoShapes, the shadow attirbute does not need to be applied to any - // of the constucted helper SdrObjects. This would lead to problems since the shadow - // of one helper object would fall on one helper object behind it (e.g. with the - // eyes of the smiley shape). This is not wanted; instead a single shadow 'behind' - // the AutoShape visualisation is wanted. This is done with primitive functionailty - // now in SdrCustomShapePrimitive2D::create2DDecomposition, but only for 2D objects - // (see there and in EnhancedCustomShape3d::Create3DObject to read more). - // This exception may be removed later when AutoShapes will create primitives directly. - // So, currently remove the ShadowAttribute from the ItemSet to not apply it to any - // 2D helper shape. - ClearItem(SDRATTR_SHADOW); - - Point aP( pCustomShapeObj->GetSnapRect().Center() ); - Size aS( pCustomShapeObj->GetLogicRect().GetSize() ); - aP.X() -= aS.Width() / 2; - aP.Y() -= aS.Height() / 2; - aLogicRect = Rectangle( aP, aS ); - - const rtl::OUString sType( RTL_CONSTASCII_USTRINGPARAM ( "Type" ) ); - const rtl::OUString sMirroredX( RTL_CONSTASCII_USTRINGPARAM ( "MirroredX" ) ); - const rtl::OUString sMirroredY( RTL_CONSTASCII_USTRINGPARAM ( "MirroredY" ) ); - - rtl::OUString sShapeType; - SdrCustomShapeGeometryItem& rGeometryItem = (SdrCustomShapeGeometryItem&)(const SdrCustomShapeGeometryItem&)pCustomShapeObj->GetMergedItem( SDRATTR_CUSTOMSHAPE_GEOMETRY ); - Any* pAny = rGeometryItem.GetPropertyValueByName( sType ); - if ( pAny ) - *pAny >>= sShapeType; - eSpType = EnhancedCustomShapeTypeNames::Get( sShapeType ); - - pAny = rGeometryItem.GetPropertyValueByName( sMirroredX ); - if ( pAny ) - *pAny >>= bFlipH; - pAny = rGeometryItem.GetPropertyValueByName( sMirroredY ); - if ( pAny ) - *pAny >>= bFlipV; - - if ( pCustomShapeObj->ISA( SdrObjCustomShape ) ) // should always be a SdrObjCustomShape, but you don't know - nRotateAngle = (sal_Int32)(((SdrObjCustomShape*)pCustomShapeObj)->GetObjectRotation() * 100.0); - else - nRotateAngle = pCustomShapeObj->GetRotateAngle(); - - /*const sal_Int32* pDefData =*/ ApplyShapeAttributes( rGeometryItem ); - switch( eSpType ) - { - case mso_sptCan : nColorData = 0x20400000; break; - case mso_sptCube : nColorData = 0x302e0000; break; - case mso_sptActionButtonBlank : nColorData = 0x502ce400; break; - case mso_sptActionButtonHome : nColorData = 0x702ce4ce; break; - case mso_sptActionButtonHelp : nColorData = 0x602ce4c0; break; - case mso_sptActionButtonInformation : nColorData = 0x702ce4c5; break; - case mso_sptActionButtonBackPrevious : nColorData = 0x602ce4c0; break; - case mso_sptActionButtonForwardNext : nColorData = 0x602ce4c0; break; - case mso_sptActionButtonBeginning : nColorData = 0x602ce4c0; break; - case mso_sptActionButtonEnd : nColorData = 0x602ce4c0; break; - case mso_sptActionButtonReturn : nColorData = 0x602ce4c0; break; - case mso_sptActionButtonDocument : nColorData = 0x702ce4ec; break; - case mso_sptActionButtonSound : nColorData = 0x602ce4c0; break; - case mso_sptActionButtonMovie : nColorData = 0x602ce4c0; break; - case mso_sptBevel : nColorData = 0x502ce400; break; - case mso_sptFoldedCorner : nColorData = 0x20e00000; break; - case mso_sptSmileyFace : nColorData = 0x20e00000; break; - case mso_sptNil : - { - if( sShapeType.getLength() > 4 && - sShapeType.matchAsciiL( RTL_CONSTASCII_STRINGPARAM( "col-" ))) - { - nColorData = sShapeType.copy( 4 ).toInt32( 16 ); - } - } - break; - case mso_sptCurvedLeftArrow : - case mso_sptCurvedRightArrow : - case mso_sptCurvedUpArrow : - case mso_sptCurvedDownArrow : nColorData = 0x2d000000; break; - case mso_sptRibbon2 : nColorData = 0x30ee0000; break; - case mso_sptRibbon : nColorData = 0x30ee0000; break; - - case mso_sptEllipseRibbon2 : nColorData = 0x30ee0000; break; - case mso_sptEllipseRibbon : nColorData = 0x30ee0000; break; - - case mso_sptVerticalScroll : nColorData = 0x30ee0000; break; - case mso_sptHorizontalScroll : nColorData = 0x30ee0000; break; - default: - break; - } - fXScale = nCoordWidth == 0 ? 0.0 : (double)aLogicRect.GetWidth() / (double)nCoordWidth; - fYScale = nCoordHeight == 0 ? 0.0 : (double)aLogicRect.GetHeight() / (double)nCoordHeight; - if ( (sal_uInt32)nXRef != 0x80000000 && aLogicRect.GetHeight() ) - { - fXRatio = (double)aLogicRect.GetWidth() / (double)aLogicRect.GetHeight(); - if ( fXRatio > 1 ) - fXScale /= fXRatio; - else - fXRatio = 1.0; - } - else - fXRatio = 1.0; - if ( (sal_uInt32)nYRef != 0x80000000 && aLogicRect.GetWidth() ) - { - fYRatio = (double)aLogicRect.GetHeight() / (double)aLogicRect.GetWidth(); - if ( fYRatio > 1 ) - fYScale /= fYRatio; - else - fYRatio = 1.0; - } - else - fYRatio = 1.0; - - sal_Int32 i, nLength = seqEquations.getLength(); - - - if ( nLength ) - { - vNodesSharedPtr.resize( nLength ); - for ( i = 0; i < seqEquations.getLength(); i++ ) - { - try - { - vNodesSharedPtr[ i ] = EnhancedCustomShape::FunctionParser::parseFunction( seqEquations[ i ], *this ); - } - catch ( EnhancedCustomShape::ParseError& ) - { - } - } - } -} -double EnhancedCustomShape2d::GetEnumFunc( const EnumFunc eFunc ) const -{ - double fRet = 0.0; - switch( eFunc ) - { - case ENUM_FUNC_PI : fRet = F_PI; break; - case ENUM_FUNC_LEFT : fRet = 0.0; break; - case ENUM_FUNC_TOP : fRet = 0.0; break; - case ENUM_FUNC_RIGHT : fRet = (double)nCoordWidth * fXRatio; break; - case ENUM_FUNC_BOTTOM : fRet = (double)nCoordHeight * fYRatio; break; - case ENUM_FUNC_XSTRETCH : fRet = nXRef; break; - case ENUM_FUNC_YSTRETCH : fRet = nYRef; break; - case ENUM_FUNC_HASSTROKE : fRet = bStroked ? 1.0 : 0.0; break; - case ENUM_FUNC_HASFILL : fRet = bFilled ? 1.0 : 0.0; break; - case ENUM_FUNC_WIDTH : fRet = nCoordWidth; break; - case ENUM_FUNC_HEIGHT : fRet = nCoordHeight; break; - case ENUM_FUNC_LOGWIDTH : fRet = aLogicRect.GetWidth(); break; - case ENUM_FUNC_LOGHEIGHT : fRet = aLogicRect.GetHeight(); break; - } - return fRet; -} -double EnhancedCustomShape2d::GetAdjustValueAsDouble( const sal_Int32 nIndex ) const -{ - double fNumber = 0.0; - if ( nIndex < seqAdjustmentValues.getLength() ) - { - if ( seqAdjustmentValues[ nIndex ].Value.getValueTypeClass() == TypeClass_DOUBLE ) - seqAdjustmentValues[ nIndex ].Value >>= fNumber; - else - { - sal_Int32 nNumber = 0; - seqAdjustmentValues[ nIndex ].Value >>= nNumber; - fNumber = (double)nNumber; - } - } - return fNumber; -} -double EnhancedCustomShape2d::GetEquationValueAsDouble( const sal_Int32 nIndex ) const -{ - double fNumber = 0.0; - if ( nIndex < (sal_Int32)vNodesSharedPtr.size() ) - { - if ( vNodesSharedPtr[ nIndex ].get() ) - try - { - fNumber = (*vNodesSharedPtr[ nIndex ])(); - if ( !rtl::math::isFinite( fNumber ) ) - fNumber = 0.0; - } - catch ( ... ) - { - /* sal_Bool bUps = sal_True; */ - } - } - return fNumber; -} -sal_Int32 EnhancedCustomShape2d::GetAdjustValueAsInteger( const sal_Int32 nIndex, const sal_Int32 nDefault ) const -{ - sal_Int32 nNumber = nDefault; - if ( nIndex < seqAdjustmentValues.getLength() ) - { - if ( seqAdjustmentValues[ nIndex ].Value.getValueTypeClass() == TypeClass_DOUBLE ) - { - double fNumber = 0; - seqAdjustmentValues[ nIndex ].Value >>= fNumber; - nNumber = (sal_Int32)fNumber; - } - else - seqAdjustmentValues[ nIndex ].Value >>= nNumber; - } - return nNumber; -} -sal_Bool EnhancedCustomShape2d::SetAdjustValueAsDouble( const double& rValue, const sal_Int32 nIndex ) -{ - sal_Bool bRetValue = sal_False; - if ( nIndex < seqAdjustmentValues.getLength() ) - { - // updating our local adjustment sequence - seqAdjustmentValues[ nIndex ].Value <<= rValue; - seqAdjustmentValues[ nIndex ].State = com::sun::star::beans::PropertyState_DIRECT_VALUE; - bRetValue = sal_True; - } - return bRetValue; -} - -Point EnhancedCustomShape2d::GetPoint( const com::sun::star::drawing::EnhancedCustomShapeParameterPair& rPair, - const sal_Bool bScale, const sal_Bool bReplaceGeoSize ) const -{ - Point aRetValue; - sal_Bool bExchange = ( nFlags & DFF_CUSTOMSHAPE_EXCH ) != 0; // x <-> y - sal_uInt32 nPass = 0; - do - { - sal_uInt32 nIndex = nPass; - - if ( bExchange ) - nIndex ^= 1; - - double fVal; - const EnhancedCustomShapeParameter& rParameter = nIndex ? rPair.Second : rPair.First; - if ( nPass ) // height - { - GetParameter( fVal, rParameter, sal_False, bReplaceGeoSize ); - fVal -= nCoordTop; - if ( bScale ) - { - fVal *= fYScale; - - if ( nFlags & DFF_CUSTOMSHAPE_FLIP_V ) - fVal = aLogicRect.GetHeight() - fVal; - } - aRetValue.Y() = (sal_Int32)fVal; - } - else // width - { - GetParameter( fVal, rParameter, bReplaceGeoSize, sal_False ); - fVal -= nCoordLeft; - if ( bScale ) - { - fVal *= fXScale; - - if ( nFlags & DFF_CUSTOMSHAPE_FLIP_H ) - fVal = aLogicRect.GetWidth() - fVal; - } - aRetValue.X() = (sal_Int32)fVal; - } - } - while ( ++nPass < 2 ); - return aRetValue; -} - -sal_Bool EnhancedCustomShape2d::GetParameter( double& rRetValue, const EnhancedCustomShapeParameter& rParameter, - const sal_Bool bReplaceGeoWidth, const sal_Bool bReplaceGeoHeight ) const -{ - rRetValue = 0.0; - sal_Bool bRetValue = sal_False; - switch ( rParameter.Type ) - { - case EnhancedCustomShapeParameterType::ADJUSTMENT : - { - sal_Int32 nAdjustmentIndex = 0; - if ( rParameter.Value >>= nAdjustmentIndex ) - { - rRetValue = GetAdjustValueAsDouble( nAdjustmentIndex ); - bRetValue = sal_True; - } - } - break; - case EnhancedCustomShapeParameterType::EQUATION : - { - sal_Int32 nEquationIndex = 0; - if ( rParameter.Value >>= nEquationIndex ) - { - rRetValue = GetEquationValueAsDouble( nEquationIndex ); - bRetValue = sal_True; - } - } - break; - case EnhancedCustomShapeParameterType::NORMAL : - { - if ( rParameter.Value.getValueTypeClass() == TypeClass_DOUBLE ) - { - double fValue(0.0); - if ( rParameter.Value >>= fValue ) - { - rRetValue = fValue; - bRetValue = sal_True; - } - } - else - { - sal_Int32 nValue = 0; - if ( rParameter.Value >>= nValue ) - { - rRetValue = nValue; - bRetValue = sal_True; - if ( bReplaceGeoWidth && ( nValue == nCoordWidth ) ) - rRetValue *= fXRatio; - else if ( bReplaceGeoHeight && ( nValue == nCoordHeight ) ) - rRetValue *= fYRatio; - } - } - } - break; - case EnhancedCustomShapeParameterType::LEFT : - { - rRetValue = 0.0; - bRetValue = sal_True; - } - break; - case EnhancedCustomShapeParameterType::TOP : - { - rRetValue = 0.0; - bRetValue = sal_True; - } - break; - case EnhancedCustomShapeParameterType::RIGHT : - { - rRetValue = nCoordWidth; - bRetValue = sal_True; - } - break; - case EnhancedCustomShapeParameterType::BOTTOM : - { - rRetValue = nCoordHeight; - bRetValue = sal_True; - } - break; - } - return bRetValue; -} - -// nLumDat 28-31 = number of luminance entries in nLumDat -// nLumDat 27-24 = nLumDatEntry 0 -// nLumDat 23-20 = nLumDatEntry 1 ... -// each 4bit entry is to be interpreted as a 10 percent signed luminance changing -sal_Int32 EnhancedCustomShape2d::GetLuminanceChange( sal_uInt32 nIndex ) const -{ - const sal_uInt32 nCount = nColorData >> 28; - if ( !nCount ) - return 0; - - if ( nIndex >= nCount ) - nIndex = nCount - 1; - - const sal_Int32 nLumDat = nColorData << ( ( 1 + nIndex ) << 2 ); - return ( nLumDat >> 28 ) * 10; -} - -Color EnhancedCustomShape2d::GetColorData( const Color& rFillColor, sal_uInt32 nIndex ) const -{ - const sal_Int32 nLuminance = GetLuminanceChange(nIndex); - if( !nLuminance ) - return rFillColor; - - basegfx::BColor aHSVColor= - basegfx::tools::rgb2hsv( - basegfx::BColor(rFillColor.GetRed()/255.0, - rFillColor.GetGreen()/255.0, - rFillColor.GetBlue()/255.0)); - if( nLuminance > 0 ) - { - aHSVColor.setGreen( - aHSVColor.getGreen() * (1.0-nLuminance/100.0)); - aHSVColor.setBlue( - nLuminance/100.0 + - (1.0-nLuminance/100.0)*aHSVColor.getBlue()); - } - else if( nLuminance < 0 ) - { - aHSVColor.setBlue( - (1.0+nLuminance/100.0)*aHSVColor.getBlue()); - } - - aHSVColor = basegfx::tools::hsv2rgb(aHSVColor); - return Color( (sal_uInt8)static_cast< sal_Int32 >( basegfx::clamp(aHSVColor.getRed(),0.0,1.0) * 255.0 + 0.5 ), - (sal_uInt8)static_cast< sal_Int32 >( basegfx::clamp(aHSVColor.getGreen(),0.0,1.0) * 255.0 + 0.5 ), - (sal_uInt8)static_cast< sal_Int32 >( basegfx::clamp(aHSVColor.getBlue(),0.0,1.0) * 255.0 + 0.5 ) ); -} - -Rectangle EnhancedCustomShape2d::GetTextRect() const -{ - sal_Int32 nIndex, nSize = seqTextFrames.getLength(); - if ( !nSize ) - return aLogicRect; - nIndex = 0; - if ( bTextFlow && ( nSize > 1 ) ) - nIndex++; - Point aTopLeft( GetPoint( seqTextFrames[ nIndex ].TopLeft, sal_True, sal_True ) ); - Point aBottomRight( GetPoint( seqTextFrames[ nIndex ].BottomRight, sal_True, sal_True ) ); - if ( bFlipH ) - { - aTopLeft.X() = aLogicRect.GetWidth() - aTopLeft.X(); - aBottomRight.X() = aLogicRect.GetWidth() - aBottomRight.X(); - } - if ( bFlipV ) - { - aTopLeft.Y() = aLogicRect.GetHeight() - aTopLeft.Y(); - aBottomRight.Y() = aLogicRect.GetHeight() - aBottomRight.Y(); - } - Rectangle aRect( aTopLeft, aBottomRight ); - aRect.Move( aLogicRect.Left(), aLogicRect.Top() ); - aRect.Justify(); - return aRect; -} - -sal_uInt32 EnhancedCustomShape2d::GetHdlCount() const -{ - return seqHandles.getLength(); -} - -sal_Bool EnhancedCustomShape2d::GetHandlePosition( const sal_uInt32 nIndex, Point& rReturnPosition ) const -{ - sal_Bool bRetValue = sal_False; - if ( nIndex < GetHdlCount() ) - { - Handle aHandle; - if ( ConvertSequenceToEnhancedCustomShape2dHandle( seqHandles[ nIndex ], aHandle ) ) - { - if ( aHandle.nFlags & HANDLE_FLAGS_POLAR ) - { - Point aReferencePoint( GetPoint( aHandle.aPolar, sal_True, sal_False ) ); - - double fAngle; - double fRadius; - GetParameter( fRadius, aHandle.aPosition.First, sal_False, sal_False ); - GetParameter( fAngle, aHandle.aPosition.Second, sal_False, sal_False ); - - double a = ( 360.0 - fAngle ) * F_PI180; - double dx = fRadius * fXScale; - double fX = dx * cos( a ); - double fY =-dx * sin( a ); - rReturnPosition = - Point( - Round( fX + aReferencePoint.X() ), - basegfx::fTools::equalZero(fXScale) ? aReferencePoint.Y() : - Round( ( fY * fYScale ) / fXScale + aReferencePoint.Y() ) ); - } - else - { - if ( aHandle.nFlags & HANDLE_FLAGS_SWITCHED ) - { - if ( aLogicRect.GetHeight() > aLogicRect.GetWidth() ) - { - com::sun::star::drawing::EnhancedCustomShapeParameter aFirst = aHandle.aPosition.First; - com::sun::star::drawing::EnhancedCustomShapeParameter aSecond = aHandle.aPosition.Second; - aHandle.aPosition.First = aSecond; - aHandle.aPosition.Second = aFirst; - } - } - rReturnPosition = GetPoint( aHandle.aPosition, sal_True, sal_False ); - } - const GeoStat aGeoStat( ((SdrObjCustomShape*)pCustomShapeObj)->GetGeoStat() ); - if ( aGeoStat.nShearWink ) - { - double nTan = aGeoStat.nTan; - if ((bFlipV&&!bFlipH )||(bFlipH&&!bFlipV)) - nTan = -nTan; - ShearPoint( rReturnPosition, Point( aLogicRect.GetWidth() / 2, aLogicRect.GetHeight() / 2 ), nTan ); - } - if ( nRotateAngle ) - { - double a = nRotateAngle * F_PI18000; - RotatePoint( rReturnPosition, Point( aLogicRect.GetWidth() / 2, aLogicRect.GetHeight() / 2 ), sin( a ), cos( a ) ); - } - if ( bFlipH ) - rReturnPosition.X() = aLogicRect.GetWidth() - rReturnPosition.X(); - if ( bFlipV ) - rReturnPosition.Y() = aLogicRect.GetHeight() - rReturnPosition.Y(); - rReturnPosition.Move( aLogicRect.Left(), aLogicRect.Top() ); - bRetValue = sal_True; - } - } - return bRetValue; -} - -sal_Bool EnhancedCustomShape2d::SetHandleControllerPosition( const sal_uInt32 nIndex, const com::sun::star::awt::Point& rPosition ) -{ - sal_Bool bRetValue = sal_False; - if ( nIndex < GetHdlCount() ) - { - Handle aHandle; - if ( ConvertSequenceToEnhancedCustomShape2dHandle( seqHandles[ nIndex ], aHandle ) ) - { - Point aP( rPosition.X, rPosition.Y ); - // apply the negative object rotation to the controller position - - aP.Move( -aLogicRect.Left(), -aLogicRect.Top() ); - if ( bFlipH ) - aP.X() = aLogicRect.GetWidth() - aP.X(); - if ( bFlipV ) - aP.Y() = aLogicRect.GetHeight() - aP.Y(); - if ( nRotateAngle ) - { - double a = -nRotateAngle * F_PI18000; - RotatePoint( aP, Point( aLogicRect.GetWidth() / 2, aLogicRect.GetHeight() / 2 ), sin( a ), cos( a ) ); - } - const GeoStat aGeoStat( ((SdrObjCustomShape*)pCustomShapeObj)->GetGeoStat() ); - if ( aGeoStat.nShearWink ) - { - double nTan = -aGeoStat.nTan; - if ((bFlipV&&!bFlipH )||(bFlipH&&!bFlipV)) - nTan = -nTan; - ShearPoint( aP, Point( aLogicRect.GetWidth() / 2, aLogicRect.GetHeight() / 2 ), nTan ); - } - - double fPos1 = aP.X(); //( bFlipH ) ? aLogicRect.GetWidth() - aP.X() : aP.X(); - double fPos2 = aP.Y(); //( bFlipV ) ? aLogicRect.GetHeight() -aP.Y() : aP.Y(); - fPos1 /= fXScale; - fPos2 /= fYScale; - - if ( aHandle.nFlags & HANDLE_FLAGS_SWITCHED ) - { - if ( aLogicRect.GetHeight() > aLogicRect.GetWidth() ) - { - double fX = fPos1; - double fY = fPos2; - fPos1 = fY; - fPos2 = fX; - } - } - - sal_Int32 nFirstAdjustmentValue = -1, nSecondAdjustmentValue = -1; - - if ( aHandle.aPosition.First.Type == EnhancedCustomShapeParameterType::ADJUSTMENT ) - aHandle.aPosition.First.Value >>= nFirstAdjustmentValue; - if ( aHandle.aPosition.Second.Type == EnhancedCustomShapeParameterType::ADJUSTMENT ) - aHandle.aPosition.Second.Value>>= nSecondAdjustmentValue; - - if ( aHandle.nFlags & HANDLE_FLAGS_POLAR ) - { - double fXRef, fYRef, fAngle; - GetParameter( fXRef, aHandle.aPolar.First, sal_False, sal_False ); - GetParameter( fYRef, aHandle.aPolar.Second, sal_False, sal_False ); - const double fDX = fPos1 - fXRef; - fAngle = -( atan2( -fPos2 + fYRef, ( ( fDX == 0.0L ) ? 0.000000001 : fDX ) ) / F_PI180 ); - double fX = ( fPos1 - fXRef ); - double fY = ( fPos2 - fYRef ); - double fRadius = sqrt( fX * fX + fY * fY ); - if ( aHandle.nFlags & HANDLE_FLAGS_RADIUS_RANGE_MINIMUM ) - { - double fMin; - GetParameter( fMin, aHandle.aRadiusRangeMinimum, sal_False, sal_False ); - if ( fRadius < fMin ) - fRadius = fMin; - } - if ( aHandle.nFlags & HANDLE_FLAGS_RADIUS_RANGE_MAXIMUM ) - { - double fMax; - GetParameter( fMax, aHandle.aRadiusRangeMaximum, sal_False, sal_False ); - if ( fRadius > fMax ) - fRadius = fMax; - } - if ( nFirstAdjustmentValue >= 0 ) - SetAdjustValueAsDouble( fRadius, nFirstAdjustmentValue ); - if ( nSecondAdjustmentValue >= 0 ) - SetAdjustValueAsDouble( fAngle, nSecondAdjustmentValue ); - } - else - { - if ( aHandle.nFlags & HANDLE_FLAGS_REFX ) - { - nFirstAdjustmentValue = aHandle.nRefX; - fPos1 *= 100000.0; - fPos1 /= nCoordWidth; - } - if ( aHandle.nFlags & HANDLE_FLAGS_REFY ) - { - nSecondAdjustmentValue = aHandle.nRefY; - fPos2 *= 100000.0; - fPos2 /= nCoordHeight; - } - if ( nFirstAdjustmentValue >= 0 ) - { - if ( aHandle.nFlags & HANDLE_FLAGS_RANGE_X_MINIMUM ) // check if horizontal handle needs to be within a range - { - double fXMin; - GetParameter( fXMin, aHandle.aXRangeMinimum, sal_False, sal_False ); - if ( fPos1 < fXMin ) - fPos1 = fXMin; - } - if ( aHandle.nFlags & HANDLE_FLAGS_RANGE_X_MAXIMUM ) // check if horizontal handle needs to be within a range - { - double fXMax; - GetParameter( fXMax, aHandle.aXRangeMaximum, sal_False, sal_False ); - if ( fPos1 > fXMax ) - fPos1 = fXMax; - } - SetAdjustValueAsDouble( fPos1, nFirstAdjustmentValue ); - } - if ( nSecondAdjustmentValue >= 0 ) - { - if ( aHandle.nFlags & HANDLE_FLAGS_RANGE_Y_MINIMUM ) // check if vertical handle needs to be within a range - { - double fYMin; - GetParameter( fYMin, aHandle.aYRangeMinimum, sal_False, sal_False ); - if ( fPos2 < fYMin ) - fPos2 = fYMin; - } - if ( aHandle.nFlags & HANDLE_FLAGS_RANGE_Y_MAXIMUM ) // check if vertical handle needs to be within a range - { - double fYMax; - GetParameter( fYMax, aHandle.aYRangeMaximum, sal_False, sal_False ); - if ( fPos2 > fYMax ) - fPos2 = fYMax; - } - SetAdjustValueAsDouble( fPos2, nSecondAdjustmentValue ); - } - } - // and writing them back into the GeometryItem - SdrCustomShapeGeometryItem aGeometryItem((SdrCustomShapeGeometryItem&) - (const SdrCustomShapeGeometryItem&)pCustomShapeObj->GetMergedItem( SDRATTR_CUSTOMSHAPE_GEOMETRY )); - const rtl::OUString sAdjustmentValues( RTL_CONSTASCII_USTRINGPARAM ( "AdjustmentValues" ) ); - com::sun::star::beans::PropertyValue aPropVal; - aPropVal.Name = sAdjustmentValues; - aPropVal.Value <<= seqAdjustmentValues; - aGeometryItem.SetPropertyValue( aPropVal ); - pCustomShapeObj->SetMergedItem( aGeometryItem ); - bRetValue = sal_True; - } - } - return bRetValue; -} - -void EnhancedCustomShape2d::SwapStartAndEndArrow( SdrObject* pObj ) //#108274 -{ - XLineStartItem aLineStart; - aLineStart.SetLineStartValue(((XLineStartItem&)pObj->GetMergedItem( XATTR_LINEEND )).GetLineStartValue()); - XLineStartWidthItem aLineStartWidth(((XLineStartWidthItem&)pObj->GetMergedItem( XATTR_LINEENDWIDTH )).GetValue()); - XLineStartCenterItem aLineStartCenter(((XLineStartCenterItem&)pObj->GetMergedItem( XATTR_LINEENDCENTER )).GetValue()); - - XLineEndItem aLineEnd; - aLineEnd.SetLineEndValue(((XLineEndItem&)pObj->GetMergedItem( XATTR_LINESTART )).GetLineEndValue()); - XLineEndWidthItem aLineEndWidth(((XLineEndWidthItem&)pObj->GetMergedItem( XATTR_LINESTARTWIDTH )).GetValue()); - XLineEndCenterItem aLineEndCenter(((XLineEndCenterItem&)pObj->GetMergedItem( XATTR_LINESTARTCENTER )).GetValue()); - - pObj->SetMergedItem( aLineStart ); - pObj->SetMergedItem( aLineStartWidth ); - pObj->SetMergedItem( aLineStartCenter ); - pObj->SetMergedItem( aLineEnd ); - pObj->SetMergedItem( aLineEndWidth ); - pObj->SetMergedItem( aLineEndCenter ); -} - -basegfx::B2DPolygon CreateArc( const Rectangle& rRect, const Point& rStart, const Point& rEnd, const sal_Bool bClockwise ) -{ - Rectangle aRect( rRect ); - Point aStart( rStart ); - Point aEnd( rEnd ); - - sal_Int32 bSwapStartEndAngle = 0; - - if ( aRect.Left() > aRect.Right() ) - bSwapStartEndAngle ^= 0x01; - if ( aRect.Top() > aRect.Bottom() ) - bSwapStartEndAngle ^= 0x11; - if ( bSwapStartEndAngle ) - { - aRect.Justify(); - if ( bSwapStartEndAngle & 1 ) - { - Point aTmp( aStart ); - aStart = aEnd; - aEnd = aTmp; - } - } - - Polygon aTempPoly( aRect, aStart, aEnd, POLY_ARC ); - basegfx::B2DPolygon aRetval; - - if ( bClockwise ) - { - for ( sal_uInt16 j = aTempPoly.GetSize(); j--; ) - { - aRetval.append(basegfx::B2DPoint(aTempPoly[ j ].X(), aTempPoly[ j ].Y())); - } - } - else - { - for ( sal_uInt16 j = 0; j < aTempPoly.GetSize(); j++ ) - { - aRetval.append(basegfx::B2DPoint(aTempPoly[ j ].X(), aTempPoly[ j ].Y())); - } - } - - return aRetval; -} - -void EnhancedCustomShape2d::CreateSubPath( sal_uInt16& rSrcPt, sal_uInt16& rSegmentInd, std::vector< SdrPathObj* >& rObjectList, - const sal_Bool bLineGeometryNeededOnly, - const sal_Bool bSortFilledObjectsToBack ) -{ - sal_Bool bNoFill = sal_False; - sal_Bool bNoStroke = sal_False; - - basegfx::B2DPolyPolygon aNewB2DPolyPolygon; - basegfx::B2DPolygon aNewB2DPolygon; - - sal_Int32 nCoordSize = seqCoordinates.getLength(); - sal_Int32 nSegInfoSize = seqSegments.getLength(); - if ( !nSegInfoSize ) - { - const EnhancedCustomShapeParameterPair* pTmp = seqCoordinates.getArray(); - - for ( sal_Int32 nPtNum(0L); nPtNum < nCoordSize; nPtNum++ ) - { - const Point aTempPoint(GetPoint( *pTmp++, sal_True, sal_True )); - aNewB2DPolygon.append(basegfx::B2DPoint(aTempPoint.X(), aTempPoint.Y())); - } - - aNewB2DPolygon.setClosed(true); - } - else - { - for ( ;rSegmentInd < nSegInfoSize; ) - { - sal_Int16 nCommand = seqSegments[ rSegmentInd ].Command; - sal_Int16 nPntCount= seqSegments[ rSegmentInd++ ].Count; - - switch ( nCommand ) - { - case NOFILL : - bNoFill = sal_True; - break; - case NOSTROKE : - bNoStroke = sal_True; - break; - case MOVETO : - { - if(aNewB2DPolygon.count() > 1L) - { - // #i76201# Add conversion to closed polygon when first and last points are equal - basegfx::tools::checkClosed(aNewB2DPolygon); - aNewB2DPolyPolygon.append(aNewB2DPolygon); - } - - aNewB2DPolygon.clear(); - - if ( rSrcPt < nCoordSize ) - { - const Point aTempPoint(GetPoint( seqCoordinates[ rSrcPt++ ], sal_True, sal_True )); - aNewB2DPolygon.append(basegfx::B2DPoint(aTempPoint.X(), aTempPoint.Y())); - } - } - break; - case ENDSUBPATH : - break; - case CLOSESUBPATH : - { - if(aNewB2DPolygon.count()) - { - if(aNewB2DPolygon.count() > 1L) - { - aNewB2DPolygon.setClosed(true); - aNewB2DPolyPolygon.append(aNewB2DPolygon); - } - - aNewB2DPolygon.clear(); - } - } - break; - case CURVETO : - { - for ( sal_uInt16 i = 0; ( i < nPntCount ) && ( ( rSrcPt + 2 ) < nCoordSize ); i++ ) - { - const Point aControlA(GetPoint( seqCoordinates[ rSrcPt++ ], sal_True, sal_True )); - const Point aControlB(GetPoint( seqCoordinates[ rSrcPt++ ], sal_True, sal_True )); - const Point aEnd(GetPoint( seqCoordinates[ rSrcPt++ ], sal_True, sal_True )); - - DBG_ASSERT(aNewB2DPolygon.count(), "EnhancedCustomShape2d::CreateSubPath: Error in adding control point (!)"); - aNewB2DPolygon.appendBezierSegment( - basegfx::B2DPoint(aControlA.X(), aControlA.Y()), - basegfx::B2DPoint(aControlB.X(), aControlB.Y()), - basegfx::B2DPoint(aEnd.X(), aEnd.Y())); - } - } - break; - - case ANGLEELLIPSE : - { - if(aNewB2DPolygon.count() > 1L) - { - // #i76201# Add conversion to closed polygon when first and last points are equal - basegfx::tools::checkClosed(aNewB2DPolygon); - aNewB2DPolyPolygon.append(aNewB2DPolygon); - } - - aNewB2DPolygon.clear(); - } - case ANGLEELLIPSETO : - { - for ( sal_uInt16 i = 0; ( i < nPntCount ) && ( ( rSrcPt + 2 ) < nCoordSize ); i++ ) - { - // create a circle - Point _aCenter( GetPoint( seqCoordinates[ rSrcPt ], sal_True, sal_True ) ); - double fWidth, fHeight; - GetParameter( fWidth, seqCoordinates[ rSrcPt + 1 ].First, sal_True, sal_False ); - GetParameter( fHeight, seqCoordinates[ rSrcPt + 1 ].Second, sal_False, sal_True ); - fWidth *= fXScale; - fHeight*= fYScale; - Point aP( (sal_Int32)( _aCenter.X() - fWidth ), (sal_Int32)( _aCenter.Y() - fHeight ) ); - Size aS( (sal_Int32)( fWidth * 2.0 ), (sal_Int32)( fHeight * 2.0 ) ); - Rectangle aRect( aP, aS ); - if ( aRect.GetWidth() && aRect.GetHeight() ) - { - double fStartAngle, fEndAngle; - GetParameter( fStartAngle, seqCoordinates[ rSrcPt + 2 ].First, sal_False, sal_False ); - GetParameter( fEndAngle , seqCoordinates[ rSrcPt + 2 ].Second, sal_False, sal_False ); - - if ( ((sal_Int32)fStartAngle % 360) != ((sal_Int32)fEndAngle % 360) ) - { - if ( (sal_Int32)fStartAngle & 0x7fff0000 ) // SJ: if the angle was imported from our escher import, then the - fStartAngle /= 65536.0; // value is shifted by 16. TODO: already change the fixed float to a - if ( (sal_Int32)fEndAngle & 0x7fff0000 ) // double in the import filter - { - fEndAngle /= 65536.0; - fEndAngle = fEndAngle + fStartAngle; - if ( fEndAngle < 0 ) - { // in the binary filter the endangle is the amount - double fTemp = fStartAngle; - fStartAngle = fEndAngle; - fEndAngle = fTemp; - } - } - double fCenterX = aRect.Center().X(); - double fCenterY = aRect.Center().Y(); - double fx1 = ( cos( fStartAngle * F_PI180 ) * 65536.0 * fXScale ) + fCenterX; - double fy1 = ( -sin( fStartAngle * F_PI180 ) * 65536.0 * fYScale ) + fCenterY; - double fx2 = ( cos( fEndAngle * F_PI180 ) * 65536.0 * fXScale ) + fCenterX; - double fy2 = ( -sin( fEndAngle * F_PI180 ) * 65536.0 * fYScale ) + fCenterY; - aNewB2DPolygon.append(CreateArc( aRect, Point( (sal_Int32)fx1, (sal_Int32)fy1 ), Point( (sal_Int32)fx2, (sal_Int32)fy2 ), sal_False)); - } - else - { /* SJ: TODO: this block should be replaced sometimes, because the current point - is not set correct, it also does not use the correct moveto - point if ANGLEELLIPSETO was used, but the method CreateArc - is at the moment not able to draw full circles (if startangle is 0 - and endangle 360 nothing is painted :-( */ - sal_Int32 nXControl = (sal_Int32)((double)aRect.GetWidth() * 0.2835 ); - sal_Int32 nYControl = (sal_Int32)((double)aRect.GetHeight() * 0.2835 ); - Point aCenter( aRect.Center() ); - - // append start point - aNewB2DPolygon.append(basegfx::B2DPoint(aCenter.X(), aRect.Top())); - - // append four bezier segments - aNewB2DPolygon.appendBezierSegment( - basegfx::B2DPoint(aCenter.X() + nXControl, aRect.Top()), - basegfx::B2DPoint(aRect.Right(), aCenter.Y() - nYControl), - basegfx::B2DPoint(aRect.Right(), aCenter.Y())); - - aNewB2DPolygon.appendBezierSegment( - basegfx::B2DPoint(aRect.Right(), aCenter.Y() + nYControl), - basegfx::B2DPoint(aCenter.X() + nXControl, aRect.Bottom()), - basegfx::B2DPoint(aCenter.X(), aRect.Bottom())); - - aNewB2DPolygon.appendBezierSegment( - basegfx::B2DPoint(aCenter.X() - nXControl, aRect.Bottom()), - basegfx::B2DPoint(aRect.Left(), aCenter.Y() + nYControl), - basegfx::B2DPoint(aRect.Left(), aCenter.Y())); - - aNewB2DPolygon.appendBezierSegment( - basegfx::B2DPoint(aRect.Left(), aCenter.Y() - nYControl), - basegfx::B2DPoint(aCenter.X() - nXControl, aRect.Top()), - basegfx::B2DPoint(aCenter.X(), aRect.Top())); - - // close, rescue last controlpoint, remove double last point - basegfx::tools::closeWithGeometryChange(aNewB2DPolygon); - } - } - rSrcPt += 3; - } - } - break; - - case LINETO : - { - for ( sal_Int32 i(0L); ( i < nPntCount ) && ( rSrcPt < nCoordSize ); i++ ) - { - const Point aTempPoint(GetPoint( seqCoordinates[ rSrcPt++ ], sal_True, sal_True )); - aNewB2DPolygon.append(basegfx::B2DPoint(aTempPoint.X(), aTempPoint.Y())); - } - } - break; - - case ARC : - case CLOCKWISEARC : - { - if(aNewB2DPolygon.count() > 1L) - { - // #i76201# Add conversion to closed polygon when first and last points are equal - basegfx::tools::checkClosed(aNewB2DPolygon); - aNewB2DPolyPolygon.append(aNewB2DPolygon); - } - - aNewB2DPolygon.clear(); - } - case ARCTO : - case CLOCKWISEARCTO : - { - sal_Bool bClockwise = ( nCommand == CLOCKWISEARC ) || ( nCommand == CLOCKWISEARCTO ); - sal_uInt32 nXor = bClockwise ? 3 : 2; - for ( sal_uInt16 i = 0; ( i < nPntCount ) && ( ( rSrcPt + 3 ) < nCoordSize ); i++ ) - { - Rectangle aRect( GetPoint( seqCoordinates[ rSrcPt ], sal_True, sal_True ), GetPoint( seqCoordinates[ rSrcPt + 1 ], sal_True, sal_True ) ); - if ( aRect.GetWidth() && aRect.GetHeight() ) - { - Point aCenter( aRect.Center() ); - Point aStart( GetPoint( seqCoordinates[ (sal_uInt16)( rSrcPt + nXor ) ], sal_True, sal_True ) ); - Point aEnd( GetPoint( seqCoordinates[ (sal_uInt16)( rSrcPt + ( nXor ^ 1 ) ) ], sal_True, sal_True ) ); - double fRatio = (double)aRect.GetHeight() / (double)aRect.GetWidth(); - aStart.X() = (sal_Int32)( ( (double)( aStart.X() - aCenter.X() ) ) * fRatio ) + aCenter.X(); - aStart.Y() = (sal_Int32)( ( (double)( aStart.Y() - aCenter.Y() ) ) ) + aCenter.Y(); - aEnd.X() = (sal_Int32)( ( (double)( aEnd.X() - aCenter.X() ) ) * fRatio ) + aCenter.X(); - aEnd.Y() = (sal_Int32)( ( (double)( aEnd.Y() - aCenter.Y() ) ) ) + aCenter.Y(); - aNewB2DPolygon.append(CreateArc( aRect, aStart, aEnd, bClockwise)); - } - rSrcPt += 4; - } - } - break; - - case ELLIPTICALQUADRANTX : - case ELLIPTICALQUADRANTY : - { - bool bFirstDirection(true); - basegfx::B2DPoint aControlPointA; - basegfx::B2DPoint aControlPointB; - - for ( sal_uInt16 i = 0; ( i < nPntCount ) && ( rSrcPt < nCoordSize ); i++ ) - { - sal_uInt32 nModT = ( nCommand == ELLIPTICALQUADRANTX ) ? 1 : 0; - Point aCurrent( GetPoint( seqCoordinates[ rSrcPt ], sal_True, sal_True ) ); - - if ( rSrcPt ) // we need a previous point - { - Point aPrev( GetPoint( seqCoordinates[ rSrcPt - 1 ], sal_True, sal_True ) ); - sal_Int32 nX, nY; - nX = aCurrent.X() - aPrev.X(); - nY = aCurrent.Y() - aPrev.Y(); - if ( ( nY ^ nX ) & 0x80000000 ) - { - if ( !i ) - bFirstDirection = true; - else if ( !bFirstDirection ) - nModT ^= 1; - } - else - { - if ( !i ) - bFirstDirection = false; - else if ( bFirstDirection ) - nModT ^= 1; - } - if ( nModT ) // get the right corner - { - nX = aCurrent.X(); - nY = aPrev.Y(); - } - else - { - nX = aPrev.X(); - nY = aCurrent.Y(); - } - sal_Int32 nXVec = ( nX - aPrev.X() ) >> 1; - sal_Int32 nYVec = ( nY - aPrev.Y() ) >> 1; - Point aControl1( aPrev.X() + nXVec, aPrev.Y() + nYVec ); - - aControlPointA = basegfx::B2DPoint(aControl1.X(), aControl1.Y()); - - nXVec = ( nX - aCurrent.X() ) >> 1; - nYVec = ( nY - aCurrent.Y() ) >> 1; - Point aControl2( aCurrent.X() + nXVec, aCurrent.Y() + nYVec ); - - aControlPointB = basegfx::B2DPoint(aControl2.X(), aControl2.Y()); - - aNewB2DPolygon.appendBezierSegment( - aControlPointA, - aControlPointB, - basegfx::B2DPoint(aCurrent.X(), aCurrent.Y())); - } - else - { - aNewB2DPolygon.append(basegfx::B2DPoint(aCurrent.X(), aCurrent.Y())); - } - - rSrcPt++; - } - } - break; - -#ifdef DBG_CUSTOMSHAPE - case UNKNOWN : - default : - { - rtl::OStringBuffer aString(RTL_CONSTASCII_STRINGPARAM( - "CustomShapes::unknown PolyFlagValue :")); - aString.append(static_cast<sal_Int32>(nCommand)); - OSL_FAIL(aString.getStr()); - } - break; -#endif - } - if ( nCommand == ENDSUBPATH ) - break; - } - } - if ( rSegmentInd == nSegInfoSize ) - rSegmentInd++; - - if(aNewB2DPolygon.count() > 1L) - { - // #i76201# Add conversion to closed polygon when first and last points are equal - basegfx::tools::checkClosed(aNewB2DPolygon); - aNewB2DPolyPolygon.append(aNewB2DPolygon); - } - - if(aNewB2DPolyPolygon.count()) - { - if( !bLineGeometryNeededOnly ) - { - // hack aNewB2DPolyPolygon to fill logic rect - this is - // needed to produce gradient fills that look like mso - aNewB2DPolygon.clear(); - aNewB2DPolygon.append(basegfx::B2DPoint(0,0)); - aNewB2DPolygon.setClosed(true); - aNewB2DPolyPolygon.append(aNewB2DPolygon); - - aNewB2DPolygon.clear(); - aNewB2DPolygon.append(basegfx::B2DPoint(aLogicRect.GetWidth(), - aLogicRect.GetHeight())); - aNewB2DPolygon.setClosed(true); - aNewB2DPolyPolygon.append(aNewB2DPolygon); - } - - // #i37011# - bool bForceCreateTwoObjects(false); - - if(!bSortFilledObjectsToBack && !aNewB2DPolyPolygon.isClosed() && !bNoStroke) - { - bForceCreateTwoObjects = true; - } - - if(bLineGeometryNeededOnly) - { - bForceCreateTwoObjects = true; - bNoFill = true; - bNoStroke = false; - } - - if(bForceCreateTwoObjects || bSortFilledObjectsToBack) - { - if(bFilled && !bNoFill) - { - basegfx::B2DPolyPolygon aClosedPolyPolygon(aNewB2DPolyPolygon); - aClosedPolyPolygon.setClosed(true); - SdrPathObj* pFill = new SdrPathObj(OBJ_POLY, aClosedPolyPolygon); - SfxItemSet aTempSet(*this); - aTempSet.Put(SdrShadowItem(sal_False)); - aTempSet.Put(XLineStyleItem(XLINE_NONE)); - pFill->SetMergedItemSet(aTempSet); - rObjectList.push_back(pFill); - } - - if(!bNoStroke) - { - // there is no reason to use OBJ_PLIN here when the polygon is actually closed, - // the non-fill is defined by XFILL_NONE. Since SdrPathObj::ImpForceKind() needs - // to correct the polygon (here: open it) using the type, the last edge may get lost. - // Thus, use a type that fits the polygon - SdrPathObj* pStroke = new SdrPathObj( - aNewB2DPolyPolygon.isClosed() ? OBJ_POLY : OBJ_PLIN, - aNewB2DPolyPolygon); - SfxItemSet aTempSet(*this); - aTempSet.Put(SdrShadowItem(sal_False)); - aTempSet.Put(XFillStyleItem(XFILL_NONE)); - pStroke->SetMergedItemSet(aTempSet); - rObjectList.push_back(pStroke); - } - } - else - { - SdrPathObj* pObj = 0; - SfxItemSet aTempSet(*this); - aTempSet.Put(SdrShadowItem(sal_False)); - - if(bNoFill) - { - // see comment above about OBJ_PLIN - pObj = new SdrPathObj( - aNewB2DPolyPolygon.isClosed() ? OBJ_POLY : OBJ_PLIN, - aNewB2DPolyPolygon); - aTempSet.Put(XFillStyleItem(XFILL_NONE)); - } - else - { - aNewB2DPolyPolygon.setClosed(true); - pObj = new SdrPathObj(OBJ_POLY, aNewB2DPolyPolygon); - } - - if(bNoStroke) - { - aTempSet.Put(XLineStyleItem(XLINE_NONE)); - } - - if(pObj) - { - pObj->SetMergedItemSet(aTempSet); - rObjectList.push_back(pObj); - } - } - } -} - -void CorrectCalloutArrows( MSO_SPT eSpType, sal_uInt32 nLineObjectCount, std::vector< SdrPathObj* >& vObjectList ) -{ - sal_Bool bAccent = sal_False; - switch( eSpType ) - { - case mso_sptCallout1 : - case mso_sptBorderCallout1 : - case mso_sptCallout90 : - case mso_sptBorderCallout90 : - default: - break; - - case mso_sptAccentCallout1 : - case mso_sptAccentBorderCallout1 : - case mso_sptAccentCallout90 : - case mso_sptAccentBorderCallout90 : - { - sal_uInt32 i, nLine = 0; - for ( i = 0; i < vObjectList.size(); i++ ) - { - SdrPathObj* pObj( vObjectList[ i ] ); - if(pObj->IsLine()) - { - nLine++; - if ( nLine == nLineObjectCount ) - { - pObj->ClearMergedItem( XATTR_LINESTART ); - pObj->ClearMergedItem( XATTR_LINEEND ); - } - } - } - } - break; - - // switch start & end - case mso_sptAccentCallout2 : - case mso_sptAccentBorderCallout2 : - bAccent = sal_True; - case mso_sptCallout2 : - case mso_sptBorderCallout2 : - { - sal_uInt32 i, nLine = 0; - for ( i = 0; i < vObjectList.size(); i++ ) - { - SdrPathObj* pObj( vObjectList[ i ] ); - if(pObj->IsLine()) - { - nLine++; - if ( nLine == 1 ) - pObj->ClearMergedItem( XATTR_LINEEND ); - else if ( ( bAccent && ( nLine == nLineObjectCount - 1 ) ) || ( !bAccent && ( nLine == nLineObjectCount ) ) ) - pObj->ClearMergedItem( XATTR_LINESTART ); - else - { - pObj->ClearMergedItem( XATTR_LINESTART ); - pObj->ClearMergedItem( XATTR_LINEEND ); - } - } - } - } - break; - - case mso_sptAccentCallout3 : - case mso_sptAccentBorderCallout3 : - bAccent = sal_False; - case mso_sptCallout3 : - case mso_sptBorderCallout3 : - { - sal_uInt32 i, nLine = 0; - for ( i = 0; i < vObjectList.size(); i++ ) - { - SdrPathObj* pObj( vObjectList[ i ] ); - if(pObj->IsLine()) - { - if ( nLine ) - { - pObj->ClearMergedItem( XATTR_LINESTART ); - pObj->ClearMergedItem( XATTR_LINEEND ); - } - else - EnhancedCustomShape2d::SwapStartAndEndArrow( pObj ); - - nLine++; - } - } - } - break; - } -} - -void EnhancedCustomShape2d::AdaptObjColor(SdrPathObj& rObj, const SfxItemSet& rCustomShapeSet, - sal_uInt32& nColorIndex, sal_uInt32 nColorCount) -{ - if ( !rObj.IsLine() ) - { - const XFillStyle eFillStyle = ((const XFillStyleItem&)rObj.GetMergedItem(XATTR_FILLSTYLE)).GetValue(); - switch( eFillStyle ) - { - default: - case XFILL_SOLID: - { - Color aFillColor; - if ( nColorCount ) - { - aFillColor = GetColorData( - ((XFillColorItem&)rCustomShapeSet.Get( XATTR_FILLCOLOR )).GetColorValue(), - std::min(nColorIndex, nColorCount-1) ); - rObj.SetMergedItem( XFillColorItem( String(), aFillColor ) ); - } - break; - } - case XFILL_GRADIENT: - { - XGradient aXGradient(((const XFillGradientItem&)rObj.GetMergedItem(XATTR_FILLGRADIENT)).GetGradientValue()); - if ( nColorCount ) - { - aXGradient.SetStartColor( - GetColorData( - aXGradient.GetStartColor(), - std::min(nColorIndex, nColorCount-1) )); - aXGradient.SetEndColor( - GetColorData( - aXGradient.GetEndColor(), - std::min(nColorIndex, nColorCount-1) )); - } - - rObj.SetMergedItem( XFillGradientItem( String(), aXGradient ) ); - break; - } - case XFILL_HATCH: - { - XHatch aXHatch(((const XFillHatchItem&)rObj.GetMergedItem(XATTR_FILLHATCH)).GetHatchValue()); - if ( nColorCount ) - { - aXHatch.SetColor( - GetColorData( - aXHatch.GetColor(), - std::min(nColorIndex, nColorCount-1) )); - } - - rObj.SetMergedItem( XFillHatchItem( String(), aXHatch ) ); - break; - } - case XFILL_BITMAP: - { - Bitmap aBitmap(((const XFillBitmapItem&)rObj.GetMergedItem(XATTR_FILLBITMAP)).GetBitmapValue().GetBitmap()); - if ( nColorCount ) - { - aBitmap.Adjust( - static_cast< short > ( GetLuminanceChange( - std::min(nColorIndex, nColorCount-1)))); - } - - rObj.SetMergedItem( XFillBitmapItem( String(), aBitmap ) ); - break; - } - } - - if ( nColorIndex < nColorCount ) - nColorIndex++; - } -} - -SdrObject* EnhancedCustomShape2d::CreatePathObj( sal_Bool bLineGeometryNeededOnly ) -{ - sal_Int32 nCoordSize = seqCoordinates.getLength(); - if ( !nCoordSize ) - return NULL; - - sal_uInt16 nSrcPt = 0; - sal_uInt16 nSegmentInd = 0; - - std::vector< SdrPathObj* > vObjectList; - sal_Bool bSortFilledObjectsToBack = SortFilledObjectsToBackByDefault( eSpType ); - - while( nSegmentInd <= seqSegments.getLength() ) - { - CreateSubPath( nSrcPt, nSegmentInd, vObjectList, bLineGeometryNeededOnly, bSortFilledObjectsToBack ); - } - - SdrObject* pRet = NULL; - sal_uInt32 i; - - if ( vObjectList.size() ) - { - const SfxItemSet& rCustomShapeSet = pCustomShapeObj->GetMergedItemSet(); - Color aFillColor; - sal_uInt32 nColorCount = nColorData >> 28; - sal_uInt32 nColorIndex = 0; - - // #i37011# remove invisible objects - if(vObjectList.size()) - { - std::vector< SdrPathObj* > vTempList; - - for(i = 0L; i < vObjectList.size(); i++) - { - SdrPathObj* pObj(vObjectList[i]); - const XLineStyle eLineStyle = ((const XLineStyleItem&)pObj->GetMergedItem(XATTR_LINESTYLE)).GetValue(); - const XFillStyle eFillStyle = ((const XFillStyleItem&)pObj->GetMergedItem(XATTR_FILLSTYLE)).GetValue(); - - //SJ: #i40600# if bLineGeometryNeededOnly is set linystyle does not matter - if( !bLineGeometryNeededOnly && ( XLINE_NONE == eLineStyle ) && ( XFILL_NONE == eFillStyle ) ) - delete pObj; - else - vTempList.push_back(pObj); - } - - vObjectList = vTempList; - } - - if(1L == vObjectList.size()) - { - // a single object, correct some values - AdaptObjColor(*vObjectList[0L],rCustomShapeSet,nColorIndex,nColorCount); - } - else - { - sal_Int32 nLineObjectCount = 0; - sal_Int32 nAreaObjectCount = 0; - - // correct some values and collect content data - for ( i = 0; i < vObjectList.size(); i++ ) - { - SdrPathObj* pObj( vObjectList[ i ] ); - - if(pObj->IsLine()) - { - nLineObjectCount++; - } - else - { - nAreaObjectCount++; - AdaptObjColor(*pObj,rCustomShapeSet,nColorIndex,nColorCount); - } - } - - // #i88870# correct line arrows for callouts - if ( nLineObjectCount ) - CorrectCalloutArrows( eSpType, nLineObjectCount, vObjectList ); - - // sort objects so that filled ones are in front. Necessary - // for some strange objects - if ( bSortFilledObjectsToBack ) - { - std::vector< SdrPathObj* > vTempList; - - for ( i = 0; i < vObjectList.size(); i++ ) - { - SdrPathObj* pObj( vObjectList[ i ] ); - - if ( !pObj->IsLine() ) - { - vTempList.push_back(pObj); - } - } - - for ( i = 0; i < vObjectList.size(); i++ ) - { - SdrPathObj* pObj( vObjectList[ i ] ); - - if ( pObj->IsLine() ) - { - vTempList.push_back(pObj); - } - } - - vObjectList = vTempList; - } - } - } - - // #i37011# - if(!vObjectList.empty()) - { - // copy remaining objects to pRet - if(vObjectList.size() > 1L) - { - pRet = new SdrObjGroup; - - for (i = 0L; i < vObjectList.size(); i++) - { - SdrObject* pObj(vObjectList[i]); - pRet->GetSubList()->NbcInsertObject(pObj); - } - } - else if(1L == vObjectList.size()) - { - pRet = vObjectList[0L]; - } - - if(pRet) - { - // move to target position - Rectangle aCurRect(pRet->GetSnapRect()); - aCurRect.Move(aLogicRect.Left(), aLogicRect.Top()); - pRet->NbcSetSnapRect(aCurRect); - } - } - - return pRet; -} - -SdrObject* EnhancedCustomShape2d::CreateObject( sal_Bool bLineGeometryNeededOnly ) -{ - SdrObject* pRet = NULL; - - if ( eSpType == mso_sptRectangle ) - { - pRet = new SdrRectObj( aLogicRect ); - pRet->SetMergedItemSet( *this ); - } - if ( !pRet ) - pRet = CreatePathObj( bLineGeometryNeededOnly ); - - return pRet; -} - -void EnhancedCustomShape2d::ApplyGluePoints( SdrObject* pObj ) -{ - if ( pObj && seqGluePoints.getLength() ) - { - sal_uInt32 i, nCount = seqGluePoints.getLength(); - for ( i = 0; i < nCount; i++ ) - { - SdrGluePoint aGluePoint; - - aGluePoint.SetPos( GetPoint( seqGluePoints[ i ], sal_True, sal_True ) ); - aGluePoint.SetPercent( sal_False ); - aGluePoint.SetAlign( SDRVERTALIGN_TOP | SDRHORZALIGN_LEFT ); - aGluePoint.SetEscDir( SDRESC_SMART ); - SdrGluePointList* pList = pObj->ForceGluePointList(); - if( pList ) - /* sal_uInt16 nId = */ pList->Insert( aGluePoint ); - } - } -} - -SdrObject* EnhancedCustomShape2d::CreateLineGeometry() -{ - return CreateObject( sal_True ); -} - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svx/source/customshapes/EnhancedCustomShape3d.cxx b/svx/source/customshapes/EnhancedCustomShape3d.cxx deleted file mode 100644 index 72498fe6d9..0000000000 --- a/svx/source/customshapes/EnhancedCustomShape3d.cxx +++ /dev/null @@ -1,746 +0,0 @@ -/* -*- 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. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_svx.hxx" -#include "EnhancedCustomShape3d.hxx" -#include <svx/svdetc.hxx> -#include <svx/svdmodel.hxx> -#include <tools/poly.hxx> -#include <svx/svditer.hxx> -#include <svx/svdobj.hxx> -#include <svx/svdoashp.hxx> -#include <svl/poolitem.hxx> -#include <svl/itemset.hxx> -#include <svx/xfillit0.hxx> -#include <svx/xsflclit.hxx> -#include <svx/xit.hxx> -#include <svx/xbtmpit.hxx> -#include <svx/xflclit.hxx> -#include <svx/svdopath.hxx> -#include <svx/svdogrp.hxx> -#include <svx/svdpage.hxx> -#include <svx/polysc3d.hxx> -#include <svx/svddef.hxx> -#include <svx/svx3ditems.hxx> -#include <svx/extrud3d.hxx> -#include <svx/xflbmtit.hxx> -#include <vcl/svapp.hxx> -#include <svx/xlnclit.hxx> -#include <svx/sdasitm.hxx> -#include <com/sun/star/awt/Point.hpp> -#include <com/sun/star/drawing/Position3D.hpp> -#include <com/sun/star/drawing/Direction3D.hpp> -#include <com/sun/star/drawing/ShadeMode.hpp> -#include <svx/sdr/properties/properties.hxx> -#include <com/sun/star/drawing/EnhancedCustomShapeParameterPair.hpp> -#include <basegfx/polygon/b2dpolypolygontools.hxx> -#include <basegfx/range/b2drange.hxx> - -#define ITEMVALUE(ItemSet,Id,Cast) ((const Cast&)(ItemSet).Get(Id)).GetValue() -using namespace com::sun::star; -using namespace com::sun::star::uno; - -const rtl::OUString sExtrusion( RTL_CONSTASCII_USTRINGPARAM ( "Extrusion" ) ); - -void GetOrigin( SdrCustomShapeGeometryItem& rItem, double& rOriginX, double& rOriginY ) -{ - ::com::sun::star::drawing::EnhancedCustomShapeParameterPair aOriginParaPair; - const rtl::OUString sOrigin( RTL_CONSTASCII_USTRINGPARAM ( "Origin" ) ); - Any* pAny = rItem.GetPropertyValueByName( sExtrusion, sOrigin ); - if ( ! ( pAny && ( *pAny >>= aOriginParaPair ) && ( aOriginParaPair.First.Value >>= rOriginX ) && ( aOriginParaPair.Second.Value >>= rOriginY ) ) ) - { - rOriginX = 0.50; - rOriginY =-0.50; - } -} - -void GetRotateAngle( SdrCustomShapeGeometryItem& rItem, double& rAngleX, double& rAngleY ) -{ - ::com::sun::star::drawing::EnhancedCustomShapeParameterPair aRotateAngleParaPair; - const rtl::OUString sRotateAngle( RTL_CONSTASCII_USTRINGPARAM ( "RotateAngle" ) ); - Any* pAny = rItem.GetPropertyValueByName( sExtrusion, sRotateAngle ); - if ( ! ( pAny && ( *pAny >>= aRotateAngleParaPair ) && ( aRotateAngleParaPair.First.Value >>= rAngleX ) && ( aRotateAngleParaPair.Second.Value >>= rAngleY ) ) ) - { - rAngleX = 0.0; - rAngleY = 0.0; - } - rAngleX *= F_PI180; - rAngleY *= F_PI180; -} - -void GetSkew( SdrCustomShapeGeometryItem& rItem, double& rSkewAmount, double& rSkewAngle ) -{ - ::com::sun::star::drawing::EnhancedCustomShapeParameterPair aSkewParaPair; - const rtl::OUString sSkew( RTL_CONSTASCII_USTRINGPARAM ( "Skew" ) ); - Any* pAny = rItem.GetPropertyValueByName( sExtrusion, sSkew ); - if ( ! ( pAny && ( *pAny >>= aSkewParaPair ) && ( aSkewParaPair.First.Value >>= rSkewAmount ) && ( aSkewParaPair.Second.Value >>= rSkewAngle ) ) ) - { - rSkewAmount = 50; - rSkewAngle = -135; - } - rSkewAngle *= F_PI180; -} - -void GetExtrusionDepth( SdrCustomShapeGeometryItem& rItem, const double* pMap, double& rBackwardDepth, double& rForwardDepth ) -{ - ::com::sun::star::drawing::EnhancedCustomShapeParameterPair aDepthParaPair; - double fDepth = 0, fFraction = 0; - const rtl::OUString sDepth( RTL_CONSTASCII_USTRINGPARAM ( "Depth" ) ); - Any* pAny = rItem.GetPropertyValueByName( sExtrusion, sDepth ); - if ( pAny && ( *pAny >>= aDepthParaPair ) && ( aDepthParaPair.First.Value >>= fDepth ) && ( aDepthParaPair.Second.Value >>= fFraction ) ) - { - rForwardDepth = fDepth * fFraction; - rBackwardDepth = fDepth - rForwardDepth; - } - else - { - rBackwardDepth = 1270; - rForwardDepth = 0; - } - if ( pMap ) - { - double fMap = *pMap; - rBackwardDepth *= fMap; - rForwardDepth *= fMap; - } -} - -double GetDouble( SdrCustomShapeGeometryItem& rItem, const rtl::OUString& rPropertyName, double fDefault, const double* pMap ) -{ - double fRetValue = fDefault; - Any* pAny = rItem.GetPropertyValueByName( sExtrusion, rPropertyName ); - if ( pAny ) - *pAny >>= fRetValue; - if ( pMap ) - fRetValue *= *pMap; - return fRetValue; -} - -drawing::ShadeMode GetShadeMode( SdrCustomShapeGeometryItem& rItem, const drawing::ShadeMode eDefault ) -{ - drawing::ShadeMode eRet( eDefault ); - const rtl::OUString sShadeMode( RTL_CONSTASCII_USTRINGPARAM ( "ShadeMode" ) ); - Any* pAny = rItem.GetPropertyValueByName( sExtrusion, sShadeMode ); - if ( pAny ) - *pAny >>= eRet; - return eRet; -} - -sal_Int32 GetInt32( SdrCustomShapeGeometryItem& rItem, const rtl::OUString& rPropertyName, const sal_Int32 nDefault ) -{ - sal_Int32 nRetValue = nDefault; - Any* pAny = rItem.GetPropertyValueByName( sExtrusion, rPropertyName ); - if ( pAny ) - *pAny >>= nRetValue; - return nRetValue; -} - -sal_Bool GetBool( SdrCustomShapeGeometryItem& rItem, const rtl::OUString& rPropertyName, const sal_Bool bDefault ) -{ - sal_Bool bRetValue = bDefault; - const Any* pAny = rItem.GetPropertyValueByName( sExtrusion, rPropertyName ); - if ( pAny ) - *pAny >>= bRetValue; - return bRetValue; -} - -awt::Point GetPoint( SdrCustomShapeGeometryItem& rItem, const rtl::OUString& rPropertyName, const awt::Point& rDefault ) -{ - awt::Point aRetValue( rDefault ); - const Any* pAny = rItem.GetPropertyValueByName( sExtrusion, rPropertyName ); - if ( pAny ) - *pAny >>= aRetValue; - return aRetValue; -} - -drawing::Position3D GetPosition3D( SdrCustomShapeGeometryItem& rItem, const rtl::OUString& rPropertyName, - const drawing::Position3D& rDefault, const double* pMap ) -{ - drawing::Position3D aRetValue( rDefault ); - const Any* pAny = rItem.GetPropertyValueByName( sExtrusion, rPropertyName ); - if ( pAny ) - *pAny >>= aRetValue; - if ( pMap ) - { - aRetValue.PositionX *= *pMap; - aRetValue.PositionY *= *pMap; - aRetValue.PositionZ *= *pMap; - } - return aRetValue; -} - -drawing::Direction3D GetDirection3D( SdrCustomShapeGeometryItem& rItem, const rtl::OUString& rPropertyName, const drawing::Direction3D& rDefault ) -{ - drawing::Direction3D aRetValue( rDefault ); - const Any* pAny = rItem.GetPropertyValueByName( sExtrusion, rPropertyName ); - if ( pAny ) - *pAny >>= aRetValue; - return aRetValue; -} - -EnhancedCustomShape3d::Transformation2D::Transformation2D( const SdrObject* pCustomShape, const Rectangle& /*rBoundRect*/, const double *pM ) -: aCenter( pCustomShape->GetSnapRect().Center() ) -, eProjectionMode( drawing::ProjectionMode_PARALLEL ) -, pMap( pM ) -{ - SdrCustomShapeGeometryItem& rGeometryItem = (SdrCustomShapeGeometryItem&)pCustomShape->GetMergedItem( SDRATTR_CUSTOMSHAPE_GEOMETRY ); - const rtl::OUString sProjectionMode( RTL_CONSTASCII_USTRINGPARAM ( "ProjectionMode" ) ); - Any* pAny = rGeometryItem.GetPropertyValueByName( sExtrusion, sProjectionMode ); - if ( pAny ) - *pAny >>= eProjectionMode; - - if ( eProjectionMode == drawing::ProjectionMode_PARALLEL ) - GetSkew( rGeometryItem, fSkew, fSkewAngle ); - else - { - fZScreen = 0.0; - GetOrigin( rGeometryItem, fOriginX, fOriginY ); - fOriginX = fOriginX * pCustomShape->GetLogicRect().GetWidth(); - fOriginY = fOriginY * pCustomShape->GetLogicRect().GetHeight(); - - const rtl::OUString sViewPoint( RTL_CONSTASCII_USTRINGPARAM ( "ViewPoint" ) ); - drawing::Position3D aViewPointDefault( 3472, -3472, 25000 ); - drawing::Position3D aViewPoint( GetPosition3D( rGeometryItem, sViewPoint, aViewPointDefault, pMap ) ); - fViewPoint.setX(aViewPoint.PositionX); - fViewPoint.setY(aViewPoint.PositionY); - fViewPoint.setZ(-aViewPoint.PositionZ); - } -} - -basegfx::B3DPolygon EnhancedCustomShape3d::Transformation2D::ApplySkewSettings( const basegfx::B3DPolygon& rPoly3D ) const -{ - basegfx::B3DPolygon aRetval; - - sal_uInt32 j; - for ( j = 0L; j < rPoly3D.count(); j++ ) - { - const basegfx::B3DPoint aPoint(rPoly3D.getB3DPoint(j)); - double fDepth(-( aPoint.getZ() * fSkew ) / 100.0); - aRetval.append(basegfx::B3DPoint( - aPoint.getX() + (fDepth * cos( fSkewAngle )), - aPoint.getY() - (fDepth * sin( fSkewAngle )), - aPoint.getZ())); - } - - return aRetval; -} - -Point EnhancedCustomShape3d::Transformation2D::Transform2D( const basegfx::B3DPoint& rPoint3D ) const -{ - Point aPoint2D; - if ( eProjectionMode == drawing::ProjectionMode_PARALLEL ) - { - aPoint2D.X() = (sal_Int32)rPoint3D.getX(); - aPoint2D.Y() = (sal_Int32)rPoint3D.getY(); - } - else - { - double fX = rPoint3D.getX() - fOriginX; - double fY = rPoint3D.getY() - fOriginY; - double f = ( fZScreen - fViewPoint.getZ() ) / ( rPoint3D.getZ() - fViewPoint.getZ() ); - aPoint2D.X() = (sal_Int32)(( fX - fViewPoint.getX() ) * f + fViewPoint.getX() + fOriginX ); - aPoint2D.Y() = (sal_Int32)(( fY - fViewPoint.getY() ) * f + fViewPoint.getY() + fOriginY ); - } - aPoint2D.Move( aCenter.X(), aCenter.Y() ); - return aPoint2D; -} - -sal_Bool EnhancedCustomShape3d::Transformation2D::IsParallel() const -{ - return eProjectionMode == com::sun::star::drawing::ProjectionMode_PARALLEL; -} - -SdrObject* EnhancedCustomShape3d::Create3DObject( const SdrObject* pShape2d, const SdrObject* pCustomShape ) -{ - SdrObject* pRet = NULL; - SdrModel* pModel = pCustomShape->GetModel(); - SdrCustomShapeGeometryItem& rGeometryItem = (SdrCustomShapeGeometryItem&)pCustomShape->GetMergedItem( SDRATTR_CUSTOMSHAPE_GEOMETRY ); - - double fMap, *pMap = NULL; - if ( pModel ) - { - fMap = 1.0; - Fraction aFraction( pModel->GetScaleFraction() ); - if ( ( aFraction.GetNumerator() ) != 1 || ( aFraction.GetDenominator() != 1 ) ) - { - fMap *= aFraction.GetNumerator(); - fMap /= aFraction.GetDenominator(); - pMap = &fMap; - } - if ( pModel->GetScaleUnit() != MAP_100TH_MM ) - { - DBG_ASSERT( pModel->GetScaleUnit() == MAP_TWIP, "EnhancedCustomShape3d::Current MapMode is Unsupported" ); - fMap *= 1440.0 / 2540.0; - pMap = &fMap; - } - } - if ( GetBool( rGeometryItem, sExtrusion, sal_False ) ) - { - sal_Bool bIsMirroredX = ((SdrObjCustomShape*)pCustomShape)->IsMirroredX(); - sal_Bool bIsMirroredY = ((SdrObjCustomShape*)pCustomShape)->IsMirroredY(); - Rectangle aSnapRect( pCustomShape->GetLogicRect() ); - long nObjectRotation = pCustomShape->GetRotateAngle(); - if ( nObjectRotation ) - { - double a = ( 36000 - nObjectRotation ) * nPi180; - long dx = aSnapRect.Right() - aSnapRect.Left(); - long dy = aSnapRect.Bottom()- aSnapRect.Top(); - Point aP( aSnapRect.TopLeft() ); - RotatePoint( aP, pCustomShape->GetSnapRect().Center(), sin( a ), cos( a ) ); - aSnapRect.Left() = aP.X(); - aSnapRect.Top() = aP.Y(); - aSnapRect.Right() = aSnapRect.Left() + dx; - aSnapRect.Bottom() = aSnapRect.Top() + dy; - } - Point aCenter( aSnapRect.Center() ); - - SfxItemSet aSet( pCustomShape->GetMergedItemSet() ); - - //SJ: vertical writing is not required, by removing this item no outliner is created - aSet.ClearItem( SDRATTR_TEXTDIRECTION ); - - // #i105323# For 3D AutoShapes, the shadow attribute has to be applied to each - // created visualisation helper model shape individually. The shadow itself - // will then be rendered from the 3D renderer correctly for the whole 3D scene - // (and thus behind all objects of which the visualisation may be built). So, - // dio NOT remove it from the ItemSet here. - // aSet.ClearItem(SDRATTR_SHADOW); - - std::vector< E3dCompoundObject* > aPlaceholderObjectList; - - double fExtrusionBackward, fExtrusionForward; - GetExtrusionDepth( rGeometryItem, pMap, fExtrusionBackward, fExtrusionForward ); - double fDepth = fExtrusionBackward - fExtrusionForward; - if ( fDepth < 1.0 ) - fDepth = 1.0; - - drawing::ProjectionMode eProjectionMode( drawing::ProjectionMode_PARALLEL ); - const rtl::OUString sProjectionMode( RTL_CONSTASCII_USTRINGPARAM ( "ProjectionMode" ) ); - Any* pAny = rGeometryItem.GetPropertyValueByName( sExtrusion, sProjectionMode ); - if ( pAny ) - *pAny >>= eProjectionMode; - ProjectionType eProjectionType( eProjectionMode == drawing::ProjectionMode_PARALLEL ? PR_PARALLEL : PR_PERSPECTIVE ); - // pShape2d Convert in scenes which include 3D Objects - E3dDefaultAttributes a3DDefaultAttr; - a3DDefaultAttr.SetDefaultLatheCharacterMode( sal_True ); - a3DDefaultAttr.SetDefaultExtrudeCharacterMode( sal_True ); - - E3dScene* pScene = new E3dPolyScene( a3DDefaultAttr ); - - sal_Bool bSceneHasObjects ( sal_False ); - sal_Bool bUseTwoFillStyles( sal_False ); - - drawing::ShadeMode eShadeMode( GetShadeMode( rGeometryItem, drawing::ShadeMode_FLAT ) ); - const rtl::OUString sExtrusionColor( RTL_CONSTASCII_USTRINGPARAM ( "Color" ) ); - sal_Bool bUseExtrusionColor = GetBool( rGeometryItem, sExtrusionColor, sal_False ); - - XFillStyle eFillStyle( ITEMVALUE( aSet, XATTR_FILLSTYLE, XFillStyleItem ) ); - pScene->GetProperties().SetObjectItem( Svx3DShadeModeItem( 0 ) ); - aSet.Put( Svx3DPercentDiagonalItem( 0 ) ); - aSet.Put( Svx3DTextureModeItem( 1 ) ); - aSet.Put( Svx3DNormalsKindItem( 1 ) ); - - if ( eShadeMode == drawing::ShadeMode_DRAFT ) - { - aSet.Put( XLineStyleItem( XLINE_SOLID ) ); - aSet.Put( XFillStyleItem ( XFILL_NONE ) ); - aSet.Put( Svx3DDoubleSidedItem( sal_True ) ); - } - else - { - aSet.Put( XLineStyleItem( XLINE_NONE ) ); - if ( eFillStyle == XFILL_NONE ) - aSet.Put( XFillStyleItem( XFILL_SOLID ) ); - else if ( ( eFillStyle == XFILL_BITMAP ) || ( eFillStyle == XFILL_GRADIENT ) || bUseExtrusionColor ) - bUseTwoFillStyles = sal_True; - - // #116336# - // If shapes are mirrored once (mirroring two times correct geometry again) - // double-sided at the object and two-sided-lighting at the scene need to be set. - if((bIsMirroredX && !bIsMirroredY) || (!bIsMirroredX && bIsMirroredY)) - { - aSet.Put( Svx3DDoubleSidedItem( sal_True ) ); - pScene->GetProperties().SetObjectItem( Svx3DTwoSidedLightingItem( sal_True ) ); - } - } - - Rectangle aBoundRect2d; - SdrObjListIter aIter( *pShape2d, IM_DEEPWITHGROUPS ); - while( aIter.IsMore() ) - { - const SdrObject* pNext = aIter.Next(); - sal_Bool bIsPlaceholderObject = (((XFillStyleItem&)pNext->GetMergedItem( XATTR_FILLSTYLE )).GetValue() == XFILL_NONE ) - && (((XLineStyleItem&)pNext->GetMergedItem( XATTR_LINESTYLE )).GetValue() == XLINE_NONE ); - basegfx::B2DPolyPolygon aPolyPoly; - - if ( pNext->ISA( SdrPathObj ) ) - { - aPolyPoly = ((SdrPathObj*)pNext)->GetPathPoly(); - - if(aPolyPoly.areControlPointsUsed()) - { - aPolyPoly = basegfx::tools::adaptiveSubdivideByAngle(aPolyPoly); - } - } - else - { - SdrObject* pNewObj = pNext->ConvertToPolyObj( sal_False, sal_False ); - SdrPathObj* pPath = PTR_CAST( SdrPathObj, pNewObj ); - if ( pPath ) - aPolyPoly = pPath->GetPathPoly(); - SdrObject::Free( pNewObj ); - } - - if( aPolyPoly.count() ) - { - const basegfx::B2DRange aTempRange(basegfx::tools::getRange(aPolyPoly)); - const Rectangle aBoundRect(basegfx::fround(aTempRange.getMinX()), basegfx::fround(aTempRange.getMinY()), basegfx::fround(aTempRange.getMaxX()), basegfx::fround(aTempRange.getMaxY())); - aBoundRect2d.Union( aBoundRect ); - - E3dCompoundObject* p3DObj = new E3dExtrudeObj( a3DDefaultAttr, aPolyPoly, bUseTwoFillStyles ? 10 : fDepth ); - p3DObj->NbcSetLayer( pShape2d->GetLayer() ); - p3DObj->SetMergedItemSet( aSet ); - if ( bIsPlaceholderObject ) - aPlaceholderObjectList.push_back( p3DObj ); - else if ( bUseTwoFillStyles ) - { - Bitmap aFillBmp; - sal_Bool bFillBmpTile = ((XFillBmpTileItem&)p3DObj->GetMergedItem( XATTR_FILLBMP_TILE )).GetValue(); - if ( bFillBmpTile ) - { - const XFillBitmapItem& rBmpItm = (XFillBitmapItem&)p3DObj->GetMergedItem( XATTR_FILLBITMAP ); - const XOBitmap& rXOBmp = rBmpItm.GetBitmapValue(); - aFillBmp = rXOBmp.GetBitmap(); - Size aLogicalSize = aFillBmp.GetPrefSize(); - if ( aFillBmp.GetPrefMapMode() == MAP_PIXEL ) - aLogicalSize = Application::GetDefaultDevice()->PixelToLogic( aLogicalSize, MAP_100TH_MM ); - else - aLogicalSize = OutputDevice::LogicToLogic( aLogicalSize, aFillBmp.GetPrefMapMode(), MAP_100TH_MM ); - aLogicalSize.Width() *= 5; ;// :-( nice scaling, look at engine3d/obj3d.cxx - aLogicalSize.Height() *= 5; - aFillBmp.SetPrefSize( aLogicalSize ); - aFillBmp.SetPrefMapMode( MAP_100TH_MM ); - p3DObj->SetMergedItem( XFillBitmapItem( String(), aFillBmp ) ); - } - else - { - if ( aSnapRect != aBoundRect ) - { - const XFillBitmapItem& rBmpItm = (XFillBitmapItem&)p3DObj->GetMergedItem( XATTR_FILLBITMAP ); - const XOBitmap& rXOBmp = rBmpItm.GetBitmapValue(); - aFillBmp = rXOBmp.GetBitmap(); - Size aBmpSize( aFillBmp.GetSizePixel() ); - double fXScale = (double)aBoundRect.GetWidth() / (double)aSnapRect.GetWidth(); - double fYScale = (double)aBoundRect.GetHeight() / (double)aSnapRect.GetHeight(); - - Point aPt( (sal_Int32)( (double)( aBoundRect.Left() - aSnapRect.Left() )* (double)aBmpSize.Width() / (double)aSnapRect.GetWidth() ), - (sal_Int32)( (double)( aBoundRect.Top() - aSnapRect.Top() ) * (double)aBmpSize.Height() / (double)aSnapRect.GetHeight() ) ); - Size aSize( (sal_Int32)( aBmpSize.Width() * fXScale ), - (sal_Int32)( aBmpSize.Height() * fYScale ) ); - Rectangle aCropRect( aPt, aSize ); - aFillBmp.Crop( aCropRect ); - p3DObj->SetMergedItem( XFillBitmapItem( String(), aFillBmp ) ); - } - } - pScene->Insert3DObj( p3DObj ); - p3DObj = new E3dExtrudeObj( a3DDefaultAttr, aPolyPoly, fDepth ); - p3DObj->NbcSetLayer( pShape2d->GetLayer() ); - p3DObj->SetMergedItemSet( aSet ); - if ( bUseExtrusionColor ) - p3DObj->SetMergedItem( XFillColorItem( String(), ((XSecondaryFillColorItem&)pCustomShape->GetMergedItem( XATTR_SECONDARYFILLCOLOR )).GetColorValue() ) ); - p3DObj->SetMergedItem( XFillStyleItem( XFILL_SOLID ) ); - p3DObj->SetMergedItem( Svx3DCloseFrontItem( sal_False ) ); - p3DObj->SetMergedItem( Svx3DCloseBackItem( sal_False ) ); - pScene->Insert3DObj( p3DObj ); - p3DObj = new E3dExtrudeObj( a3DDefaultAttr, aPolyPoly, 10 ); - p3DObj->NbcSetLayer( pShape2d->GetLayer() ); - p3DObj->SetMergedItemSet( aSet ); - - basegfx::B3DHomMatrix aFrontTransform( p3DObj->GetTransform() ); - aFrontTransform.translate( 0.0, 0.0, fDepth ); - p3DObj->NbcSetTransform( aFrontTransform ); - - if ( ( eFillStyle == XFILL_BITMAP ) && !aFillBmp.IsEmpty() ) - p3DObj->SetMergedItem( XFillBitmapItem( String(), aFillBmp ) ); - } - else if ( eFillStyle == XFILL_NONE ) - { - XLineColorItem& rLineColor = (XLineColorItem&)p3DObj->GetMergedItem( XATTR_LINECOLOR ); - p3DObj->SetMergedItem( XFillColorItem( String(), rLineColor.GetColorValue() ) ); - p3DObj->SetMergedItem( Svx3DDoubleSidedItem( sal_True ) ); - p3DObj->SetMergedItem( Svx3DCloseFrontItem( sal_False ) ); - p3DObj->SetMergedItem( Svx3DCloseBackItem( sal_False ) ); - } - pScene->Insert3DObj( p3DObj ); - bSceneHasObjects = sal_True; - } - } - - if ( bSceneHasObjects ) // is the SdrObject properly converted - { - // then we can change the return value - pRet = pScene; - - // Camera settings, Perspective ... - Camera3D& rCamera = (Camera3D&)pScene->GetCamera(); - const basegfx::B3DRange& rVolume = pScene->GetBoundVolume(); - pScene->NbcSetSnapRect( aSnapRect ); - - // InitScene replacement - double fW = rVolume.getWidth(); - double fH = rVolume.getHeight(); - - rCamera.SetAutoAdjustProjection( sal_False ); - rCamera.SetViewWindow( -fW / 2, - fH / 2, fW, fH); - basegfx::B3DPoint aLookAt( 0.0, 0.0, 0.0 ); - basegfx::B3DPoint aCamPos( 0.0, 0.0, 100.0 ); - rCamera.SetDefaults( basegfx::B3DPoint( 0.0, 0.0, 100.0 ), aLookAt, 100.0 ); - rCamera.SetPosAndLookAt( aCamPos, aLookAt ); - rCamera.SetFocalLength( 1.0 ); - rCamera.SetProjection( eProjectionType ); - pScene->SetCamera( rCamera ); - pScene->SetRectsDirty(); - - double fOriginX, fOriginY; - GetOrigin( rGeometryItem, fOriginX, fOriginY ); - fOriginX = fOriginX * aSnapRect.GetWidth(); - fOriginY = fOriginY * aSnapRect.GetHeight(); - - basegfx::B3DHomMatrix aNewTransform( pScene->GetTransform() ); - aNewTransform.translate( -aCenter.X(), aCenter.Y(), -pScene->GetBoundVolume().getDepth() ); - - double fXRotate, fYRotate; - GetRotateAngle( rGeometryItem, fXRotate, fYRotate ); - double fZRotate = ((SdrObjCustomShape*)pCustomShape)->GetObjectRotation() * F_PI180; - if ( fZRotate != 0.0 ) - aNewTransform.rotate( 0.0, 0.0, fZRotate ); - if ( bIsMirroredX ) - aNewTransform.scale( -1.0, 1, 1 ); - if ( bIsMirroredY ) - aNewTransform.scale( 1, -1.0, 1 ); - if( fYRotate != 0.0 ) - aNewTransform.rotate( 0.0, -fYRotate, 0.0 ); - if( fXRotate != 0.0 ) - aNewTransform.rotate( -fXRotate, 0.0, 0.0 ); - if ( eProjectionType == PR_PARALLEL ) - { - double fSkew, fAlpha; - GetSkew( rGeometryItem, fSkew, fAlpha ); - if ( fSkew != 0.0 ) - { - double fInvTanBeta( fSkew / 100.0 ); - if(fInvTanBeta) - { - aNewTransform.shearXY( - fInvTanBeta * cos(fAlpha), - fInvTanBeta * sin(fAlpha)); - } - } - basegfx::B3DPoint _aLookAt( 0.0, 0.0, 0.0 ); - basegfx::B3DPoint _aNewCamPos( 0.0, 0.0, 25000.0 ); - rCamera.SetPosAndLookAt( _aNewCamPos, _aLookAt ); - pScene->SetCamera( rCamera ); - } - else - { - aNewTransform.translate( -fOriginX, fOriginY, 0.0 ); - // now set correct camera position - const rtl::OUString sViewPoint( RTL_CONSTASCII_USTRINGPARAM ( "ViewPoint" ) ); - drawing::Position3D aViewPointDefault( 3472, -3472, 25000 ); - drawing::Position3D aViewPoint( GetPosition3D( rGeometryItem, sViewPoint, aViewPointDefault, pMap ) ); - double fViewPointX = aViewPoint.PositionX; - double fViewPointY = aViewPoint.PositionY; - double fViewPointZ = aViewPoint.PositionZ; - basegfx::B3DPoint _aLookAt( fViewPointX, -fViewPointY, 0.0 ); - basegfx::B3DPoint aNewCamPos( fViewPointX, -fViewPointY, fViewPointZ ); - rCamera.SetPosAndLookAt( aNewCamPos, _aLookAt ); - pScene->SetCamera( rCamera ); - } - - pScene->NbcSetTransform( aNewTransform ); - - /////////// - // light // - /////////// - - const rtl::OUString sBrightness( RTL_CONSTASCII_USTRINGPARAM ( "Brightness" ) ); - double fAmbientIntensity = GetDouble( rGeometryItem, sBrightness, 22178.0 / 655.36, NULL ) / 100.0; - - - const rtl::OUString sFirstLightDirection( RTL_CONSTASCII_USTRINGPARAM ( "FirstLightDirection" ) ); - drawing::Direction3D aFirstLightDirectionDefault( 50000, 0, 10000 ); - drawing::Direction3D aFirstLightDirection( GetDirection3D( rGeometryItem, sFirstLightDirection, aFirstLightDirectionDefault ) ); - if ( aFirstLightDirection.DirectionZ == 0.0 ) - aFirstLightDirection.DirectionZ = 1.0; - - const rtl::OUString sFirstLightLevel( RTL_CONSTASCII_USTRINGPARAM ( "FirstLightLevel" ) ); - double fLightIntensity = GetDouble( rGeometryItem, sFirstLightLevel, 43712.0 / 655.36, NULL ) / 100.0; - - const rtl::OUString sFirstLightHarsh( RTL_CONSTASCII_USTRINGPARAM ( "FirstLightHarsh" ) ); - /* sal_Bool bFirstLightHarsh = */ GetBool( rGeometryItem, sFirstLightHarsh, sal_False ); - - const rtl::OUString sSecondLightDirection( RTL_CONSTASCII_USTRINGPARAM ( "SecondLightDirection" ) ); - drawing::Direction3D aSecondLightDirectionDefault( -50000, 0, 10000 ); - drawing::Direction3D aSecondLightDirection( GetDirection3D( rGeometryItem, sSecondLightDirection, aSecondLightDirectionDefault ) ); - if ( aSecondLightDirection.DirectionZ == 0.0 ) - aSecondLightDirection.DirectionZ = -1; - - const rtl::OUString sSecondLightLevel( RTL_CONSTASCII_USTRINGPARAM ( "SecondLightLevel" ) ); - double fLight2Intensity = GetDouble( rGeometryItem, sSecondLightLevel, 43712.0 / 655.36, NULL ) / 100.0; - - const rtl::OUString sSecondLightHarsh( RTL_CONSTASCII_USTRINGPARAM ( "SecondLightHarsh" ) ); - const rtl::OUString sLightFace( RTL_CONSTASCII_USTRINGPARAM ( "LightFace" ) ); - /* sal_Bool bLight2Harsh = */ GetBool( rGeometryItem, sSecondLightHarsh, sal_False ); - /* sal_Bool bLightFace = */ GetBool( rGeometryItem, sLightFace, sal_False ); - - sal_uInt16 nAmbientColor = (sal_uInt16)( fAmbientIntensity * 255.0 ); - if ( nAmbientColor > 255 ) - nAmbientColor = 255; - Color aGlobalAmbientColor( (sal_uInt8)nAmbientColor, (sal_uInt8)nAmbientColor, (sal_uInt8)nAmbientColor ); - pScene->GetProperties().SetObjectItem( Svx3DAmbientcolorItem( aGlobalAmbientColor ) ); - - sal_uInt8 nSpotLight1 = (sal_uInt8)( fLightIntensity * 255.0 ); - basegfx::B3DVector aSpotLight1( aFirstLightDirection.DirectionX, - ( aFirstLightDirection.DirectionY ), -( aFirstLightDirection.DirectionZ ) ); - aSpotLight1.normalize(); - pScene->GetProperties().SetObjectItem( Svx3DLightOnOff1Item( sal_True ) ); - Color aAmbientSpot1Color( nSpotLight1, nSpotLight1, nSpotLight1 ); - pScene->GetProperties().SetObjectItem( Svx3DLightcolor1Item( aAmbientSpot1Color ) ); - pScene->GetProperties().SetObjectItem( Svx3DLightDirection1Item( aSpotLight1 ) ); - - sal_uInt8 nSpotLight2 = (sal_uInt8)( fLight2Intensity * 255.0 ); - basegfx::B3DVector aSpotLight2( aSecondLightDirection.DirectionX, -aSecondLightDirection.DirectionY, -aSecondLightDirection.DirectionZ ); - aSpotLight2.normalize(); - pScene->GetProperties().SetObjectItem( Svx3DLightOnOff2Item( sal_True ) ); - Color aAmbientSpot2Color( nSpotLight2, nSpotLight2, nSpotLight2 ); - pScene->GetProperties().SetObjectItem( Svx3DLightcolor2Item( aAmbientSpot2Color ) ); - pScene->GetProperties().SetObjectItem( Svx3DLightDirection2Item( aSpotLight2 ) ); - - sal_uInt8 nSpotLight3 = 70; - basegfx::B3DVector aSpotLight3( 0.0, 0.0, 1.0 ); - pScene->GetProperties().SetObjectItem( Svx3DLightOnOff3Item( sal_True ) ); - Color aAmbientSpot3Color( nSpotLight3, nSpotLight3, nSpotLight3 ); - pScene->GetProperties().SetObjectItem( Svx3DLightcolor3Item( aAmbientSpot3Color ) ); - pScene->GetProperties().SetObjectItem( Svx3DLightDirection3Item( aSpotLight3 ) ); - - const rtl::OUString sSpecularity( RTL_CONSTASCII_USTRINGPARAM ( "Specularity" ) ); - const rtl::OUString sDiffusion( RTL_CONSTASCII_USTRINGPARAM ( "Diffusion" ) ); - const rtl::OUString sShininess( RTL_CONSTASCII_USTRINGPARAM ( "Shininess" ) ); - const rtl::OUString sMetal( RTL_CONSTASCII_USTRINGPARAM ( "Metal" ) ); - double fSpecular = GetDouble( rGeometryItem, sSpecularity, 0, NULL ) / 100; - sal_Bool bMetal = GetBool( rGeometryItem, sMetal, sal_False ); - - Color aSpecularCol( 225,225,225 ); - if ( bMetal ) - { - aSpecularCol = Color( 200, 200, 200 ); - fSpecular += 0.15; - } - sal_Int32 nIntensity = (sal_Int32)fSpecular * 100; - if ( nIntensity > 100 ) - nIntensity = 100; - else if ( nIntensity < 0 ) - nIntensity = 0; - nIntensity = 100 - nIntensity; - pScene->GetProperties().SetObjectItem( Svx3DMaterialSpecularItem( aSpecularCol ) ); - pScene->GetProperties().SetObjectItem( Svx3DMaterialSpecularIntensityItem( (sal_uInt16)nIntensity ) ); - - pScene->SetLogicRect( CalculateNewSnapRect( pCustomShape, aSnapRect, aBoundRect2d, pMap ) ); - - // removing placeholder objects - std::vector< E3dCompoundObject* >::iterator aObjectListIter( aPlaceholderObjectList.begin() ); - while ( aObjectListIter != aPlaceholderObjectList.end() ) - { - pScene->Remove3DObj( *aObjectListIter ); - delete *aObjectListIter++; - } - } - else - delete pScene; - } - return pRet; -} - -Rectangle EnhancedCustomShape3d::CalculateNewSnapRect( const SdrObject* pCustomShape, const Rectangle& rSnapRect, const Rectangle& rBoundRect, const double* pMap ) -{ - SdrCustomShapeGeometryItem& rGeometryItem = (SdrCustomShapeGeometryItem&)pCustomShape->GetMergedItem( SDRATTR_CUSTOMSHAPE_GEOMETRY ); - const Point aCenter( rSnapRect.Center() ); - double fExtrusionBackward, fExtrusionForward; - GetExtrusionDepth( rGeometryItem, pMap, fExtrusionBackward, fExtrusionForward ); - sal_uInt32 i; - - // creating initial bound volume ( without rotation. skewing.and camera ) - basegfx::B3DPolygon aBoundVolume; - const Polygon aPolygon( rBoundRect ); - - for ( i = 0L; i < 4L; i++ ) - { - aBoundVolume.append(basegfx::B3DPoint(aPolygon[ (sal_uInt16)i ].X() - aCenter.X(), aPolygon[ (sal_uInt16)i ].Y() - aCenter.Y(), fExtrusionForward)); - } - - for ( i = 0L; i < 4L; i++ ) - { - aBoundVolume.append(basegfx::B3DPoint(aPolygon[ (sal_uInt16)i ].X() - aCenter.X(), aPolygon[ (sal_uInt16)i ].Y() - aCenter.Y(), fExtrusionBackward)); - } - - const rtl::OUString sRotationCenter( RTL_CONSTASCII_USTRINGPARAM ( "RotationCenter" ) ); - drawing::Direction3D aRotationCenterDefault( 0, 0, 0 ); // default seems to be wrong, a fractional size of shape has to be used!! - drawing::Direction3D aRotationCenter( GetDirection3D( rGeometryItem, sRotationCenter, aRotationCenterDefault ) ); - - double fXRotate, fYRotate; - GetRotateAngle( rGeometryItem, fXRotate, fYRotate ); - double fZRotate = - ((SdrObjCustomShape*)pCustomShape)->GetObjectRotation() * F_PI180; - - // rotating bound volume - basegfx::B3DHomMatrix aMatrix; - aMatrix.translate(-aRotationCenter.DirectionX, -aRotationCenter.DirectionY, -aRotationCenter.DirectionZ); - if ( fZRotate != 0.0 ) - aMatrix.rotate( 0.0, 0.0, fZRotate ); - if ( ((SdrObjCustomShape*)pCustomShape)->IsMirroredX() ) - aMatrix.scale( -1.0, 1, 1 ); - if ( ((SdrObjCustomShape*)pCustomShape)->IsMirroredY() ) - aMatrix.scale( 1, -1.0, 1 ); - if( fYRotate != 0.0 ) - aMatrix.rotate( 0.0, fYRotate, 0.0 ); - if( fXRotate != 0.0 ) - aMatrix.rotate( -fXRotate, 0.0, 0.0 ); - aMatrix.translate(aRotationCenter.DirectionX, aRotationCenter.DirectionY, aRotationCenter.DirectionZ); - aBoundVolume.transform(aMatrix); - - Transformation2D aTransformation2D( pCustomShape, rSnapRect, pMap ); - if ( aTransformation2D.IsParallel() ) - aBoundVolume = aTransformation2D.ApplySkewSettings( aBoundVolume ); - - Polygon aTransformed( 8 ); - for ( i = 0L; i < 8L; i++ ) - aTransformed[ (sal_uInt16)i ] = aTransformation2D.Transform2D( aBoundVolume.getB3DPoint( i ) ); - - return aTransformed.GetBoundRect(); -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svx/source/customshapes/EnhancedCustomShape3d.hxx b/svx/source/customshapes/EnhancedCustomShape3d.hxx deleted file mode 100644 index 8007d9829b..0000000000 --- a/svx/source/customshapes/EnhancedCustomShape3d.hxx +++ /dev/null @@ -1,80 +0,0 @@ -/* -*- 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 _ENHANCEDCUSTOMSHAPE3D_HXX -#define _ENHANCEDCUSTOMSHAPE3D_HXX - -#include <vector> -#include <com/sun/star/drawing/ProjectionMode.hpp> -#include <basegfx/point/b3dpoint.hxx> -#include <basegfx/polygon/b3dpolygon.hxx> - -#include <tools/gen.hxx> - -class SdrObject; - -class EnhancedCustomShape3d -{ - class Transformation2D - { - Point aCenter; - com::sun::star::drawing::ProjectionMode eProjectionMode; - - // parallel projection - double fSkewAngle; - double fSkew; // in percent - - // perspective projection - double fZScreen; - basegfx::B3DPoint fViewPoint; - double fOriginX; - double fOriginY; - - const double* pMap; - - public : - - Transformation2D( const SdrObject* pCustomShape, const Rectangle& rBoundRect, const double* pMap ); - - basegfx::B3DPolygon ApplySkewSettings( const basegfx::B3DPolygon& rPolygon3D ) const; - Point Transform2D( const basegfx::B3DPoint& rPoint ) const; - sal_Bool IsParallel() const; - }; - - friend class Transformation2D; - - protected : - static Rectangle CalculateNewSnapRect( const SdrObject* pCustomShape, const Rectangle& rSnapRect, const Rectangle& rBoundRect, const double* pMap ); - - public : - static SdrObject* Create3DObject( const SdrObject* pShape2d, const SdrObject* pCustomShape ); -}; - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svx/source/customshapes/EnhancedCustomShapeEngine.cxx b/svx/source/customshapes/EnhancedCustomShapeEngine.cxx deleted file mode 100644 index 8b8ee6a2c7..0000000000 --- a/svx/source/customshapes/EnhancedCustomShapeEngine.cxx +++ /dev/null @@ -1,473 +0,0 @@ -/* -*- 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. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_svx.hxx" -#include "EnhancedCustomShapeEngine.hxx" -#include "svx/EnhancedCustomShape2d.hxx" -#include "EnhancedCustomShape3d.hxx" -#include "EnhancedCustomShapeFontWork.hxx" -#include "EnhancedCustomShapeHandle.hxx" -#include "svx/EnhancedCustomShapeGeometry.hxx" -#include <svx/unoshape.hxx> -#include "svx/unopage.hxx" -#include "svx/unoapi.hxx" -#include <svx/svdobj.hxx> -#include <svx/svdoashp.hxx> -#include <svx/svdogrp.hxx> -#include <svx/svdorect.hxx> -#include <editeng/outlobj.hxx> -#include <editeng/outliner.hxx> -#include <svx/svdoutl.hxx> -#include <svl/itemset.hxx> -#include <svx/svdopath.hxx> -#include <svx/svdpage.hxx> -#include <svx/svdmodel.hxx> -#include "svx/svditer.hxx" -#include <uno/mapping.hxx> -#include <basegfx/polygon/b2dpolypolygontools.hxx> -#include <basegfx/tools/unotools.hxx> -#include <com/sun/star/document/XActionLockable.hpp> - -// --------------------------- -// - EnhancedCustomShapeEngine - -// --------------------------- - -rtl::OUString EnhancedCustomShapeEngine_getImplementationName() - throw( NMSP_UNO::RuntimeException ) -{ - return B2UCONST( "com.sun.star.drawing.EnhancedCustomShapeEngine" ); -} -sal_Bool SAL_CALL EnhancedCustomShapeEngine_supportsService( const rtl::OUString& ServiceName ) - throw( NMSP_UNO::RuntimeException ) -{ - return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "com.sun.star.drawing.CustomShapeEngine" ) ); -} -SEQ( rtl::OUString ) SAL_CALL EnhancedCustomShapeEngine_getSupportedServiceNames() - throw( NMSP_UNO::RuntimeException ) -{ - SEQ( rtl::OUString ) aRet(1); - rtl::OUString* pArray = aRet.getArray(); - pArray[0] = B2UCONST( "com.sun.star.drawing.CustomShapeEngine" ); - return aRet; -} - -// ----------------------------------------------------------------------------- - -EnhancedCustomShapeEngine::EnhancedCustomShapeEngine( const REF( NMSP_LANG::XMultiServiceFactory )& rxMgr ) : - mxFact ( rxMgr ), - mbForceGroupWithText ( sal_False ) -{ -} -EnhancedCustomShapeEngine::~EnhancedCustomShapeEngine() -{ -} - -// XInterface ----------------------------------------------------------------- - -void SAL_CALL EnhancedCustomShapeEngine::acquire() throw() -{ - OWeakObject::acquire(); -} -void SAL_CALL EnhancedCustomShapeEngine::release() throw() -{ - OWeakObject::release(); -} - -// XInitialization ------------------------------------------------------------ - -void SAL_CALL EnhancedCustomShapeEngine::initialize( const SEQ( NMSP_UNO::Any )& aArguments ) - throw ( NMSP_UNO::Exception, NMSP_UNO::RuntimeException ) -{ - sal_Int32 i; - SEQ( NMSP_BEANS::PropertyValue ) aParameter; - for ( i = 0; i < aArguments.getLength(); i++ ) - { - if ( aArguments[ i ] >>= aParameter ) - break; - } - for ( i = 0; i < aParameter.getLength(); i++ ) - { - const NMSP_BEANS::PropertyValue& rProp = aParameter[ i ]; - if ( rProp.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "CustomShape" ) ) ) - rProp.Value >>= mxShape; - else if ( rProp.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "ForceGroupWithText" ) ) ) - rProp.Value >>= mbForceGroupWithText; - } -} - -// XServiceInfo --------------------------------------------------------------- - -rtl::OUString SAL_CALL EnhancedCustomShapeEngine::getImplementationName() - throw( NMSP_UNO::RuntimeException ) -{ - return EnhancedCustomShapeEngine_getImplementationName(); -} -sal_Bool SAL_CALL EnhancedCustomShapeEngine::supportsService( const rtl::OUString& rServiceName ) - throw( NMSP_UNO::RuntimeException ) -{ - return EnhancedCustomShapeEngine_supportsService( rServiceName ); -} -SEQ( rtl::OUString ) SAL_CALL EnhancedCustomShapeEngine::getSupportedServiceNames() - throw ( NMSP_UNO::RuntimeException ) -{ - return EnhancedCustomShapeEngine_getSupportedServiceNames(); -} - -// XCustomShapeEngine ----------------------------------------------------------- - -SdrObject* EnhancedCustomShapeEngine::ImplForceGroupWithText( const SdrObjCustomShape* pCustoObj, SdrObject* pRenderedShape ) -{ - bool bHasText = pCustoObj->HasText(); - if ( pRenderedShape || bHasText ) - { - // applying shadow - const SdrObject* pShadowGeometry = pCustoObj->GetSdrObjectShadowFromCustomShape(); - if ( pShadowGeometry ) - { - if ( pRenderedShape ) - { - if ( !pRenderedShape->ISA( SdrObjGroup ) ) - { - SdrObject* pTmp = pRenderedShape; - pRenderedShape = new SdrObjGroup(); - ((SdrObjGroup*)pRenderedShape)->GetSubList()->NbcInsertObject( pTmp ); - } - ((SdrObjGroup*)pRenderedShape)->GetSubList()->NbcInsertObject( pShadowGeometry->Clone(), 0 ); - } - else - pRenderedShape = pShadowGeometry->Clone(); - } - - // apply text - if ( bHasText ) - { - // #i37011# also create a text object and add at rPos + 1 - SdrTextObj* pTextObj = (SdrTextObj*)SdrObjFactory::MakeNewObject( - pCustoObj->GetObjInventor(), OBJ_TEXT, 0L, pCustoObj->GetModel()); - - // Copy text content - OutlinerParaObject* pParaObj = pCustoObj->GetOutlinerParaObject(); - if( pParaObj ) - pTextObj->NbcSetOutlinerParaObject( new OutlinerParaObject(*pParaObj) ); - - // copy all attributes - SfxItemSet aTargetItemSet( pCustoObj->GetMergedItemSet() ); - - // clear fill and line style - aTargetItemSet.Put(XLineStyleItem(XLINE_NONE)); - aTargetItemSet.Put(XFillStyleItem(XFILL_NONE)); - - // get the text bounds and set at text object - Rectangle aTextBounds = pCustoObj->GetSnapRect(); - SdrObject* pSdrObjCustomShape( GetSdrObjectFromXShape( mxShape ) ); - if ( pSdrObjCustomShape ) - { - EnhancedCustomShape2d aCustomShape2d( pSdrObjCustomShape ); - aTextBounds = aCustomShape2d.GetTextRect(); - } - pTextObj->SetSnapRect( aTextBounds ); - - // if rotated, copy GeoStat, too. - const GeoStat& rSourceGeo = pCustoObj->GetGeoStat(); - if ( rSourceGeo.nDrehWink ) - { - pTextObj->NbcRotate( - pCustoObj->GetSnapRect().Center(), rSourceGeo.nDrehWink, - rSourceGeo.nSin, rSourceGeo.nCos); - } - - // set modified ItemSet at text object - pTextObj->SetMergedItemSet(aTargetItemSet); - - if ( pRenderedShape ) - { - if ( !pRenderedShape->ISA( SdrObjGroup ) ) - { - SdrObject* pTmp = pRenderedShape; - pRenderedShape = new SdrObjGroup(); - ((SdrObjGroup*)pRenderedShape)->GetSubList()->NbcInsertObject( pTmp ); - } - ((SdrObjGroup*)pRenderedShape)->GetSubList()->NbcInsertObject( pTextObj, LIST_APPEND ); - } - else - pRenderedShape = pTextObj; - } - - // force group - if ( pRenderedShape ) - { - if ( !pRenderedShape->ISA( SdrObjGroup ) ) - { - SdrObject* pTmp = pRenderedShape; - pRenderedShape = new SdrObjGroup(); - ((SdrObjGroup*)pRenderedShape)->GetSubList()->NbcInsertObject( pTmp ); - } - pRenderedShape->SetPage( pCustoObj->GetPage() ); - pRenderedShape->SetModel( pCustoObj->GetModel() ); - } - } - return pRenderedShape; -} - -void SetTemporary( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >& xShape ) -{ - if ( xShape.is() ) - { - SvxShape* pShape = SvxShape::getImplementation( xShape ); - if ( pShape ) - pShape->TakeSdrObjectOwnership(); -/* - ::com::sun::star::uno::Reference< - ::com::sun::star::drawing::XShapes > xShapes( xShape, ::com::sun::star::uno::UNO_QUERY ); - if ( xShapes.is() ) - { - sal_Int32 i; - for ( i = 0; i < xShapes->getCount(); i++ ) - { - ::com::sun::star::uno::Any aAny( xShapes->getByIndex( i ) ); - ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > xShape; - if ( aAny >>= xShape ) - SetTemporary( xShape ); - } - } -*/ - } -} - -REF( com::sun::star::drawing::XShape ) SAL_CALL EnhancedCustomShapeEngine::render() - throw ( NMSP_UNO::RuntimeException ) -{ - REF( com::sun::star::drawing::XShape ) xShape; - SdrObject* pSdrObjCustomShape( GetSdrObjectFromXShape( mxShape ) ); - if ( pSdrObjCustomShape ) - { - // retrieving the TextPath property to check if feature is enabled - SdrCustomShapeGeometryItem& rGeometryItem = (SdrCustomShapeGeometryItem&) - pSdrObjCustomShape->GetMergedItem( SDRATTR_CUSTOMSHAPE_GEOMETRY ); - sal_Bool bTextPathOn = sal_False; - const rtl::OUString sTextPath( RTL_CONSTASCII_USTRINGPARAM ( "TextPath" ) ); - com::sun::star::uno::Any* pAny = rGeometryItem.GetPropertyValueByName( sTextPath, sTextPath ); - if ( pAny ) - *pAny >>= bTextPathOn; - - EnhancedCustomShape2d aCustomShape2d( pSdrObjCustomShape ); - sal_Int32 nRotateAngle = aCustomShape2d.GetRotateAngle(); - - sal_Bool bFlipV = aCustomShape2d.IsFlipVert(); - sal_Bool bFlipH = aCustomShape2d.IsFlipHorz(); - sal_Bool bLineGeometryNeededOnly = bTextPathOn; - - SdrObject* pRenderedShape = aCustomShape2d.CreateObject( bLineGeometryNeededOnly ); - if ( pRenderedShape ) - { - if ( bTextPathOn ) - { - SdrObject* pRenderedFontWork = EnhancedCustomShapeFontWork::CreateFontWork( pRenderedShape, pSdrObjCustomShape ); - if ( pRenderedFontWork ) - { - SdrObject::Free( pRenderedShape ); - pRenderedShape = pRenderedFontWork; - } - } - SdrObject* pRenderedShape3d = EnhancedCustomShape3d::Create3DObject( pRenderedShape, pSdrObjCustomShape ); - if ( pRenderedShape3d ) - { - bFlipV = bFlipH = sal_False; - nRotateAngle = 0; - SdrObject::Free( pRenderedShape ); - pRenderedShape = pRenderedShape3d; - } - Rectangle aRect( pSdrObjCustomShape->GetSnapRect() ); - - const GeoStat& rGeoStat = ((SdrObjCustomShape*)pSdrObjCustomShape)->GetGeoStat(); - if ( rGeoStat.nShearWink ) - { - long nShearWink = rGeoStat.nShearWink; - double nTan = rGeoStat.nTan; - if ((bFlipV&&!bFlipH )||(bFlipH&&!bFlipV)) - { - nShearWink = -nShearWink; - nTan = -nTan; - } - pRenderedShape->Shear( pSdrObjCustomShape->GetSnapRect().Center(), nShearWink, nTan, sal_False); - } - if( nRotateAngle ) - { - double a = nRotateAngle * F_PI18000; - pRenderedShape->NbcRotate( pSdrObjCustomShape->GetSnapRect().Center(), nRotateAngle, sin( a ), cos( a ) ); - } - if ( bFlipV ) - { - Point aLeft( aRect.Left(), ( aRect.Top() + aRect.Bottom() ) >> 1 ); - Point aRight( aLeft.X() + 1000, aLeft.Y() ); - pRenderedShape->NbcMirror( aLeft, aRight ); - } - if ( bFlipH ) - { - Point aTop( ( aRect.Left() + aRect.Right() ) >> 1, aRect.Top() ); - Point aBottom( aTop.X(), aTop.Y() + 1000 ); - pRenderedShape->NbcMirror( aTop, aBottom ); - } - pRenderedShape->NbcSetStyleSheet( pSdrObjCustomShape->GetStyleSheet(), sal_True ); - pRenderedShape->RecalcSnapRect(); - } - - if ( mbForceGroupWithText ) - pRenderedShape = ImplForceGroupWithText( (SdrObjCustomShape*)pSdrObjCustomShape, pRenderedShape ); - - if ( pRenderedShape ) - { - aCustomShape2d.ApplyGluePoints( pRenderedShape ); - xShape = SvxDrawPage::CreateShapeByTypeAndInventor( pRenderedShape->GetObjIdentifier(), - pRenderedShape->GetObjInventor(), pRenderedShape, NULL ); - } - SetTemporary( xShape ); - } - return xShape; -} - -com::sun::star::awt::Rectangle SAL_CALL EnhancedCustomShapeEngine::getTextBounds() - throw ( NMSP_UNO::RuntimeException ) -{ - com::sun::star::awt::Rectangle aTextRect; - SdrObject* pSdrObjCustomShape( GetSdrObjectFromXShape( mxShape ) ); - ::com::sun::star::uno::Reference< ::com::sun::star::document::XActionLockable > xLockable( mxShape, ::com::sun::star::uno::UNO_QUERY ); - if ( pSdrObjCustomShape && pSdrObjCustomShape->GetModel() && xLockable.is() && !xLockable->isActionLocked() ) - { - if ( pSdrObjCustomShape ) - { - EnhancedCustomShape2d aCustomShape2d( pSdrObjCustomShape ); - Rectangle aRect( aCustomShape2d.GetTextRect() ); - aTextRect.X = aRect.Left(); - aTextRect.Y = aRect.Top(); - aTextRect.Width = aRect.GetWidth(); - aTextRect.Height = aRect.GetHeight(); - } - } - return aTextRect; -} - -com::sun::star::drawing::PolyPolygonBezierCoords SAL_CALL EnhancedCustomShapeEngine::getLineGeometry() - throw ( NMSP_UNO::RuntimeException ) -{ - com::sun::star::drawing::PolyPolygonBezierCoords aPolyPolygonBezierCoords; - SdrObject* pSdrObjCustomShape( GetSdrObjectFromXShape( mxShape ) ); - if ( pSdrObjCustomShape ) - { - EnhancedCustomShape2d aCustomShape2d( pSdrObjCustomShape ); - SdrObject* pObj = aCustomShape2d.CreateLineGeometry(); - if ( pObj ) - { - Rectangle aRect( pSdrObjCustomShape->GetSnapRect() ); - sal_Bool bFlipV = aCustomShape2d.IsFlipVert(); - sal_Bool bFlipH = aCustomShape2d.IsFlipHorz(); - - const GeoStat& rGeoStat = ((SdrObjCustomShape*)pSdrObjCustomShape)->GetGeoStat(); - if ( rGeoStat.nShearWink ) - { - long nShearWink = rGeoStat.nShearWink; - double nTan = rGeoStat.nTan; - if ((bFlipV&&!bFlipH )||(bFlipH&&!bFlipV)) - { - nShearWink = -nShearWink; - nTan = -nTan; - } - pObj->Shear( aRect.Center(), nShearWink, nTan, sal_False); - } - sal_Int32 nRotateAngle = aCustomShape2d.GetRotateAngle(); - if( nRotateAngle ) - { - double a = nRotateAngle * F_PI18000; - pObj->NbcRotate( aRect.Center(), nRotateAngle, sin( a ), cos( a ) ); - } - if ( bFlipH ) - { - Point aTop( ( aRect.Left() + aRect.Right() ) >> 1, aRect.Top() ); - Point aBottom( aTop.X(), aTop.Y() + 1000 ); - pObj->NbcMirror( aTop, aBottom ); - } - if ( bFlipV ) - { - Point aLeft( aRect.Left(), ( aRect.Top() + aRect.Bottom() ) >> 1 ); - Point aRight( aLeft.X() + 1000, aLeft.Y() ); - pObj->NbcMirror( aLeft, aRight ); - } - - basegfx::B2DPolyPolygon aPolyPolygon; - SdrObjListIter aIter( *pObj, IM_DEEPWITHGROUPS ); - - while ( aIter.IsMore() ) - { - SdrObject* pNewObj = NULL; - basegfx::B2DPolyPolygon aPP; - const SdrObject* pNext = aIter.Next(); - - if ( pNext->ISA( SdrPathObj ) ) - { - aPP = ((SdrPathObj*)pNext)->GetPathPoly(); - } - else - { - pNewObj = pNext->ConvertToPolyObj( sal_False, sal_False ); - SdrPathObj* pPath = PTR_CAST( SdrPathObj, pNewObj ); - if ( pPath ) - aPP = pPath->GetPathPoly(); - } - - if ( aPP.count() ) - aPolyPolygon.append(aPP); - - SdrObject::Free( pNewObj ); - } - SdrObject::Free( pObj ); - basegfx::unotools::b2DPolyPolygonToPolyPolygonBezier( aPolyPolygon, - aPolyPolygonBezierCoords ); - } - } - - return aPolyPolygonBezierCoords; -} - -SEQ( REF( com::sun::star::drawing::XCustomShapeHandle ) ) SAL_CALL EnhancedCustomShapeEngine::getInteraction() - throw ( NMSP_UNO::RuntimeException ) -{ - sal_uInt32 i, nHdlCount = 0; - SdrObject* pSdrObjCustomShape = GetSdrObjectFromXShape( mxShape ); - if ( pSdrObjCustomShape ) - { - EnhancedCustomShape2d aCustomShape2d( pSdrObjCustomShape ); - nHdlCount = aCustomShape2d.GetHdlCount(); - } - SEQ( REF( com::sun::star::drawing::XCustomShapeHandle ) ) aSeq( nHdlCount ); - for ( i = 0; i < nHdlCount; i++ ) - aSeq[ i ] = new EnhancedCustomShapeHandle( mxShape, i ); - return aSeq; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svx/source/customshapes/EnhancedCustomShapeEngine.hxx b/svx/source/customshapes/EnhancedCustomShapeEngine.hxx deleted file mode 100644 index 919f1a11f6..0000000000 --- a/svx/source/customshapes/EnhancedCustomShapeEngine.hxx +++ /dev/null @@ -1,127 +0,0 @@ -/* -*- 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 _ENHANCED_CUSTOMSHAPE_ENGINE_HXX -#define _ENHANCED_CUSTOMSHAPE_ENGINE_HXX - -#include <tools/debug.hxx> -#include <tools/string.hxx> -#include <tools/stack.hxx> - -#include <com/sun/star/uno/Reference.h> -#include <com/sun/star/uno/RuntimeException.hpp> -#include <com/sun/star/lang/XMultiServiceFactory.hpp> -#include <com/sun/star/lang/XComponent.hpp> -#include <com/sun/star/registry/XRegistryKey.hpp> -#include <com/sun/star/lang/XComponent.hpp> -#include <cppuhelper/implbase3.hxx> -#ifndef __com_sun_star_awt_Rectangle_hpp_ -#include <com/sun/star/awt/Rectangle.hpp> -#endif -#include <com/sun/star/beans/PropertyValue.hpp> -#include <com/sun/star/drawing/PolyPolygonBezierCoords.hpp> -#include <com/sun/star/lang/XInitialization.hpp> -#include <com/sun/star/lang/XServiceInfo.hpp> -#include <com/sun/star/drawing/XCustomShapeEngine.hpp> - -// ----------------------------------------------------------------------------- - -#define NMSP_IO com::sun::star::io -#define NMSP_UNO com::sun::star::uno -#define NMSP_BEANS com::sun::star::beans -#define NMSP_LANG com::sun::star::lang -#define NMSP_UTIL com::sun::star::util -#define NMSP_SAX com::sun::star::xml::sax -#define NMSP_LOGGING NMSP_UTIL::logging - - -#define REF( _def_Obj ) NMSP_UNO::Reference< _def_Obj > -#define SEQ( _def_Obj ) NMSP_UNO::Sequence< _def_Obj > -#define B2UCONST( _def_pChar ) (rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(_def_pChar ))) - -// --------------------------- -// - EnhancedCustomShapeEngine - -// --------------------------- -// - -class SdrObject; -class SdrObjCustomShape; -class EnhancedCustomShapeEngine : public cppu::WeakImplHelper3 -< - com::sun::star::lang::XInitialization, - com::sun::star::lang::XServiceInfo, - com::sun::star::drawing::XCustomShapeEngine -> -{ - REF( NMSP_LANG::XMultiServiceFactory ) mxFact; - REF( com::sun::star::drawing::XShape ) mxShape; - sal_Bool mbForceGroupWithText; - - SdrObject* ImplForceGroupWithText( const SdrObjCustomShape* pCustoObj, SdrObject* pRenderedShape ); - -public: - EnhancedCustomShapeEngine( const REF( NMSP_LANG::XMultiServiceFactory )& rxMgr ); - virtual ~EnhancedCustomShapeEngine(); - - // XInterface - virtual void SAL_CALL acquire() throw(); - virtual void SAL_CALL release() throw(); - - // XInitialization - virtual void SAL_CALL initialize( const SEQ( NMSP_UNO::Any )& aArguments ) - throw ( NMSP_UNO::Exception, NMSP_UNO::RuntimeException ); - - // XServiceInfo - virtual rtl::OUString SAL_CALL getImplementationName() - throw ( NMSP_UNO::RuntimeException ); - virtual sal_Bool SAL_CALL supportsService( const rtl::OUString& rServiceName ) - throw ( NMSP_UNO::RuntimeException ); - virtual SEQ( rtl::OUString ) SAL_CALL getSupportedServiceNames() - throw ( NMSP_UNO::RuntimeException ); - - // XCustomShapeEngine - virtual REF( com::sun::star::drawing::XShape ) SAL_CALL render() - throw ( NMSP_UNO::RuntimeException ); - virtual com::sun::star::awt::Rectangle SAL_CALL getTextBounds() - throw ( NMSP_UNO::RuntimeException ); - virtual com::sun::star::drawing::PolyPolygonBezierCoords SAL_CALL getLineGeometry() - throw ( NMSP_UNO::RuntimeException ); - virtual SEQ( REF( com::sun::star::drawing::XCustomShapeHandle ) ) SAL_CALL getInteraction() - throw ( NMSP_UNO::RuntimeException ); -}; - -rtl::OUString EnhancedCustomShapeEngine_getImplementationName() - throw ( NMSP_UNO::RuntimeException ); -sal_Bool SAL_CALL EnhancedCustomShapeEngine_supportsService( const rtl::OUString& rServiceName ) - throw( NMSP_UNO::RuntimeException ); -SEQ( rtl::OUString ) SAL_CALL EnhancedCustomShapeEngine_getSupportedServiceNames() - throw( NMSP_UNO::RuntimeException ); - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx b/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx deleted file mode 100644 index 9fa6f3c514..0000000000 --- a/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx +++ /dev/null @@ -1,885 +0,0 @@ -/* -*- 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. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_svx.hxx" -#include "EnhancedCustomShapeFontWork.hxx" -#include <tools/solar.h> // UINTXX -#include <svx/svddef.hxx> -#include <svx/svdogrp.hxx> -#include <svx/svdopath.hxx> -#include <vcl/metric.hxx> -#include <svx/svdpage.hxx> -#include <svx/sdasitm.hxx> -#include <svx/sdasaitm.hxx> -#include <svx/sdtfsitm.hxx> -#include <vcl/virdev.hxx> -#include <svx/svditer.hxx> -#include <vcl/metric.hxx> -#include <editeng/eeitem.hxx> -#include <editeng/frmdiritem.hxx> -#include <editeng/fontitem.hxx> -#include <editeng/postitem.hxx> -#include <editeng/wghtitem.hxx> -#include <editeng/charscaleitem.hxx> -#include "svx/EnhancedCustomShapeTypeNames.hxx" -#include <svx/svdorect.hxx> -#include <svx/svdoashp.hxx> -#include <editeng/outliner.hxx> -#include <editeng/outlobj.hxx> -#include <editeng/editobj.hxx> -#include <editeng/editeng.hxx> -#include <svx/svdmodel.hxx> -#include <vector> -#include <numeric> -#include <algorithm> -#include <comphelper/processfactory.hxx> -#include <com/sun/star/i18n/ScriptType.hdl> -#include <basegfx/polygon/b2dpolypolygontools.hxx> -#include <com/sun/star/lang/XMultiServiceFactory.hpp> -#include <com/sun/star/i18n/CharacterIteratorMode.hdl> -#include <basegfx/polygon/b2dpolygontools.hxx> - -using namespace com::sun::star; -using namespace com::sun::star::uno; - -typedef std::vector< std::vector< double > > PolyPolygonDistances; - -struct FWCharacterData // representing a single character -{ - std::vector< PolyPolygon > vOutlines; - Rectangle aBoundRect; -}; -struct FWParagraphData // representing a single paragraph -{ - rtl::OUString aString; - std::vector< FWCharacterData > vCharacters; - Rectangle aBoundRect; - sal_Int16 nFrameDirection; -}; -struct FWTextArea // representing multiple concluding paragraphs -{ - std::vector< FWParagraphData > vParagraphs; - Rectangle aBoundRect; -}; -struct FWData // representing the whole text -{ - std::vector< FWTextArea > vTextAreas; - double fHorizontalTextScaling; - sal_uInt32 nMaxParagraphsPerTextArea; - sal_Int32 nSingleLineHeight; - sal_Bool bSingleLineMode; -}; - - -sal_Bool InitializeFontWorkData( const SdrObject* pCustomShape, const sal_uInt16 nOutlinesCount2d, FWData& rFWData ) -{ - sal_Bool bNoErr = sal_False; - sal_Bool bSingleLineMode = sal_False; - sal_uInt16 nTextAreaCount = nOutlinesCount2d; - if ( nOutlinesCount2d & 1 ) - bSingleLineMode = sal_True; - else - nTextAreaCount >>= 1; - - if ( nTextAreaCount ) - { - rFWData.bSingleLineMode = bSingleLineMode; - - // setting the strings - OutlinerParaObject* pParaObj = ((SdrObjCustomShape*)pCustomShape)->GetOutlinerParaObject(); - if ( pParaObj ) - { - const EditTextObject& rTextObj = pParaObj->GetTextObject(); - sal_Int32 nParagraphsLeft = rTextObj.GetParagraphCount(); - - rFWData.nMaxParagraphsPerTextArea = ( ( nParagraphsLeft - 1 ) / nTextAreaCount ) + 1; - sal_Int16 j = 0; - while( nParagraphsLeft && nTextAreaCount ) - { - FWTextArea aTextArea; - sal_Int32 i, nParagraphs = ( ( nParagraphsLeft - 1 ) / nTextAreaCount ) + 1; - for ( i = 0; i < nParagraphs; ++i, ++j ) - { - FWParagraphData aParagraphData; - aParagraphData.aString = rTextObj.GetText( j ); - - const SfxItemSet& rParaSet = rTextObj.GetParaAttribs( j ); // retrieving some paragraph attributes - aParagraphData.nFrameDirection = ((SvxFrameDirectionItem&)rParaSet.Get( EE_PARA_WRITINGDIR )).GetValue(); - aTextArea.vParagraphs.push_back( aParagraphData ); - } - rFWData.vTextAreas.push_back( aTextArea ); - nParagraphsLeft -= nParagraphs; - nTextAreaCount--; - } - bNoErr = sal_True; - } - } - return bNoErr; -} - -double GetLength( const Polygon& rPolygon ) -{ - double fLength = 0; - if ( rPolygon.GetSize() > 1 ) - { - sal_uInt16 nCount = rPolygon.GetSize(); - while( --nCount ) - fLength += ((Polygon&)rPolygon).CalcDistance( nCount, nCount - 1 ); - } - return fLength; -} - - -/* CalculateHorizontalScalingFactor returns the horizontal scaling factor for -the whole text object, so that each text will match its corresponding 2d Outline */ -void CalculateHorizontalScalingFactor( const SdrObject* pCustomShape, - FWData& rFWData, const PolyPolygon& rOutline2d ) -{ - double fScalingFactor = 1.0; - sal_Bool bScalingFactorDefined = sal_False; - - sal_uInt16 i = 0; - sal_Bool bSingleLineMode = sal_False; - sal_uInt16 nOutlinesCount2d = rOutline2d.Count(); - - Font aFont; - SvxFontItem& rFontItem = (SvxFontItem&)pCustomShape->GetMergedItem( EE_CHAR_FONTINFO ); - aFont.SetHeight( pCustomShape->GetLogicRect().GetHeight() / rFWData.nMaxParagraphsPerTextArea ); - aFont.SetAlign( ALIGN_TOP ); - aFont.SetName( rFontItem.GetFamilyName() ); - aFont.SetFamily( rFontItem.GetFamily() ); - aFont.SetStyleName( rFontItem.GetStyleName() ); - aFont.SetOrientation( 0 ); - // initializing virtual device - - VirtualDevice aVirDev( 1 ); - aVirDev.SetMapMode( MAP_100TH_MM ); - aVirDev.SetFont( aFont ); - - if ( nOutlinesCount2d & 1 ) - bSingleLineMode = sal_True; - - std::vector< FWTextArea >::iterator aTextAreaIter = rFWData.vTextAreas.begin(); - std::vector< FWTextArea >::iterator aTextAreaIEnd = rFWData.vTextAreas.end(); - while( aTextAreaIter != aTextAreaIEnd ) - { - // calculating the width of the corresponding 2d text area - double fWidth = GetLength( rOutline2d.GetObject( i++ ) ); - if ( !bSingleLineMode ) - { - fWidth += GetLength( rOutline2d.GetObject( i++ ) ); - fWidth /= 2.0; - } - std::vector< FWParagraphData >::const_iterator aParagraphIter( aTextAreaIter->vParagraphs.begin() ); - std::vector< FWParagraphData >::const_iterator aParagraphIEnd( aTextAreaIter->vParagraphs.end() ); - while( aParagraphIter != aParagraphIEnd ) - { - double fTextWidth = aVirDev.GetTextWidth( aParagraphIter->aString ); - if ( fTextWidth > 0.0 ) - { - double fScale = fWidth / fTextWidth; - if ( !bScalingFactorDefined ) - { - fScalingFactor = fScale; - bScalingFactorDefined = sal_True; - } - else - { - if ( fScale < fScalingFactor ) - fScalingFactor = fScale; - } - } - ++aParagraphIter; - } - ++aTextAreaIter; - } - rFWData.fHorizontalTextScaling = fScalingFactor; -} - -void GetTextAreaOutline( const FWData& rFWData, const SdrObject* pCustomShape, FWTextArea& rTextArea, sal_Bool bSameLetterHeights ) -{ - sal_Bool bIsVertical = ((SdrObjCustomShape*)pCustomShape)->IsVerticalWriting(); - sal_Int32 nVerticalOffset = rFWData.nMaxParagraphsPerTextArea > rTextArea.vParagraphs.size() - ? rFWData.nSingleLineHeight / 2 : 0; - - std::vector< FWParagraphData >::iterator aParagraphIter( rTextArea.vParagraphs.begin() ); - std::vector< FWParagraphData >::iterator aParagraphIEnd( rTextArea.vParagraphs.end() ); - while( aParagraphIter != aParagraphIEnd ) - { - const rtl::OUString& rText = aParagraphIter->aString; - if ( rText.getLength() ) - { - // generating vcl/font - sal_uInt16 nScriptType = i18n::ScriptType::LATIN; - Reference< i18n::XBreakIterator > xBI( EnhancedCustomShapeFontWork::GetBreakIterator() ); - if ( xBI.is() ) - { - nScriptType = xBI->getScriptType( rText, 0 ); - if( i18n::ScriptType::WEAK == nScriptType ) - { - sal_uInt16 nChg = 0; - nChg = (xub_StrLen)xBI->endOfScript( rText, nChg, nScriptType ); - if( nChg < rText.getLength() ) - nScriptType = xBI->getScriptType( rText, nChg ); - else - nScriptType = i18n::ScriptType::LATIN; - } - } - sal_uInt16 nFntItm = EE_CHAR_FONTINFO; - if ( nScriptType == i18n::ScriptType::COMPLEX ) - nFntItm = EE_CHAR_FONTINFO_CTL; - else if ( nScriptType == i18n::ScriptType::ASIAN ) - nFntItm = EE_CHAR_FONTINFO_CJK; - SvxFontItem& rFontItem = (SvxFontItem&)pCustomShape->GetMergedItem( nFntItm ); - Font aFont; - aFont.SetHeight( rFWData.nSingleLineHeight ); - aFont.SetAlign( ALIGN_TOP ); - - aFont.SetName( rFontItem.GetFamilyName() ); - aFont.SetFamily( rFontItem.GetFamily() ); - aFont.SetStyleName( rFontItem.GetStyleName() ); - aFont.SetOrientation( 0 ); - - SvxPostureItem& rPostureItem = (SvxPostureItem&)pCustomShape->GetMergedItem( EE_CHAR_ITALIC ); - aFont.SetItalic( rPostureItem.GetPosture() ); - - SvxWeightItem& rWeightItem = (SvxWeightItem&)pCustomShape->GetMergedItem( EE_CHAR_WEIGHT ); - aFont.SetWeight( rWeightItem.GetWeight() ); - - // initializing virtual device - VirtualDevice aVirDev( 1 ); - aVirDev.SetMapMode( MAP_100TH_MM ); - aVirDev.SetFont( aFont ); - aVirDev.EnableRTL( sal_True ); - if ( aParagraphIter->nFrameDirection == FRMDIR_HORI_RIGHT_TOP ) - aVirDev.SetLayoutMode( TEXT_LAYOUT_BIDI_RTL ); - - SvxCharScaleWidthItem& rCharScaleWidthItem = (SvxCharScaleWidthItem&)pCustomShape->GetMergedItem( EE_CHAR_FONTWIDTH ); - sal_uInt16 nCharScaleWidth = rCharScaleWidthItem.GetValue(); - sal_Int32* pDXArry = NULL; - sal_Int32 nWidth = 0; - - // VERTICAL - if ( bIsVertical ) - { - // vertical _> each single character needs to be rotated by 90 - sal_Int32 i; - sal_Int32 nHeight = 0; - Rectangle aSingleCharacterUnion; - for ( i = 0; i < rText.getLength(); i++ ) - { - FWCharacterData aCharacterData; - rtl::OUString aCharText( (sal_Unicode)rText[ i ] ); - if ( aVirDev.GetTextOutlines( aCharacterData.vOutlines, aCharText, 0, 0, STRING_LEN, sal_True, nWidth, pDXArry ) ) - { - sal_Int32 nTextWidth = aVirDev.GetTextWidth( aCharText, 0, STRING_LEN ); - std::vector< PolyPolygon >::iterator aOutlineIter = aCharacterData.vOutlines.begin(); - std::vector< PolyPolygon >::iterator aOutlineIEnd = aCharacterData.vOutlines.end(); - if ( aOutlineIter == aOutlineIEnd ) - { - nHeight += rFWData.nSingleLineHeight; - } - else - { - while ( aOutlineIter != aOutlineIEnd ) - { - // rotating - aOutlineIter->Rotate( Point( nTextWidth / 2, rFWData.nSingleLineHeight / 2 ), 900 ); - aCharacterData.aBoundRect.Union( aOutlineIter->GetBoundRect() ); - ++aOutlineIter; - } - aOutlineIter = aCharacterData.vOutlines.begin(); - aOutlineIEnd = aCharacterData.vOutlines.end(); - while ( aOutlineIter != aOutlineIEnd ) - { - sal_Int32 nM = - aCharacterData.aBoundRect.Left() + nHeight; - aOutlineIter->Move( nM, 0 ); - aCharacterData.aBoundRect.Move( nM, 0 ); - ++aOutlineIter; - } - nHeight += aCharacterData.aBoundRect.GetWidth() + ( rFWData.nSingleLineHeight / 5 ); - aSingleCharacterUnion.Union( aCharacterData.aBoundRect ); - } - } - aParagraphIter->vCharacters.push_back( aCharacterData ); - } - std::vector< FWCharacterData >::iterator aCharacterIter( aParagraphIter->vCharacters.begin() ); - std::vector< FWCharacterData >::iterator aCharacterIEnd( aParagraphIter->vCharacters.end() ); - while ( aCharacterIter != aCharacterIEnd ) - { - std::vector< PolyPolygon >::iterator aOutlineIter( aCharacterIter->vOutlines.begin() ); - std::vector< PolyPolygon >::iterator aOutlineIEnd( aCharacterIter->vOutlines.end() ); - while ( aOutlineIter != aOutlineIEnd ) - { - aOutlineIter->Move( ( aSingleCharacterUnion.GetWidth() - aCharacterIter->aBoundRect.GetWidth() ) / 2, 0 ); - ++aOutlineIter; - } - ++aCharacterIter; - } - } - else - { - if ( ( nCharScaleWidth != 100 ) && nCharScaleWidth ) - { // applying character spacing - pDXArry = new sal_Int32[ rText.getLength() ]; - aVirDev.GetTextArray( rText, pDXArry, 0, STRING_LEN ); - FontMetric aFontMetric( aVirDev.GetFontMetric() ); - aFont.SetWidth( (sal_Int32)( (double)aFontMetric.GetWidth() * ( (double)100 / (double)nCharScaleWidth ) ) ); - aVirDev.SetFont( aFont ); - } - FWCharacterData aCharacterData; - if ( aVirDev.GetTextOutlines( aCharacterData.vOutlines, rText, 0, 0, STRING_LEN, sal_True, nWidth, pDXArry ) ) - { - aParagraphIter->vCharacters.push_back( aCharacterData ); - } - } - delete[] pDXArry; - - // veritcal alignment - std::vector< FWCharacterData >::iterator aCharacterIter( aParagraphIter->vCharacters.begin() ); - std::vector< FWCharacterData >::iterator aCharacterIEnd ( aParagraphIter->vCharacters.end() ); - while ( aCharacterIter != aCharacterIEnd ) - { - std::vector< PolyPolygon >::iterator aOutlineIter( aCharacterIter->vOutlines.begin() ); - std::vector< PolyPolygon >::iterator aOutlineIEnd( aCharacterIter->vOutlines.end() ); - while( aOutlineIter != aOutlineIEnd ) - { - - PolyPolygon& rPolyPoly = *aOutlineIter++; - - if ( nVerticalOffset ) - rPolyPoly.Move( 0, nVerticalOffset ); - - // retrieving the boundrect for the paragraph - Rectangle aBoundRect( rPolyPoly.GetBoundRect() ); - aParagraphIter->aBoundRect.Union( aBoundRect ); - } - ++aCharacterIter; - } - } - // updating the boundrect for the text area by merging the current paragraph boundrect - if ( aParagraphIter->aBoundRect.IsEmpty() ) - { - if ( rTextArea.aBoundRect.IsEmpty() ) - rTextArea.aBoundRect = Rectangle( Point( 0, 0 ), Size( 1, rFWData.nSingleLineHeight ) ); - else - rTextArea.aBoundRect.Bottom() += rFWData.nSingleLineHeight; - } - else - { - Rectangle& rParagraphBoundRect = aParagraphIter->aBoundRect; - rTextArea.aBoundRect.Union( rParagraphBoundRect ); - - if ( bSameLetterHeights ) - { - std::vector< FWCharacterData >::iterator aCharacterIter( aParagraphIter->vCharacters.begin() ); - std::vector< FWCharacterData >::iterator aCharacterIEnd( aParagraphIter->vCharacters.end() ); - while ( aCharacterIter != aCharacterIEnd ) - { - std::vector< PolyPolygon >::iterator aOutlineIter( aCharacterIter->vOutlines.begin() ); - std::vector< PolyPolygon >::iterator aOutlineIEnd( aCharacterIter->vOutlines.end() ); - while( aOutlineIter != aOutlineIEnd ) - { - Rectangle aPolyPolyBoundRect( aOutlineIter->GetBoundRect() ); - if ( aPolyPolyBoundRect.GetHeight() != rParagraphBoundRect.GetHeight() ) - aOutlineIter->Scale( 1.0, (double)rParagraphBoundRect.GetHeight() / aPolyPolyBoundRect.GetHeight() ); - aPolyPolyBoundRect = aOutlineIter->GetBoundRect(); - sal_Int32 nMove = aPolyPolyBoundRect.Top() - rParagraphBoundRect.Top(); - if ( nMove ) - aOutlineIter->Move( 0, -nMove ); - ++aOutlineIter; - } - ++aCharacterIter; - } - } - } - if ( bIsVertical ) - nVerticalOffset -= rFWData.nSingleLineHeight; - else - nVerticalOffset += rFWData.nSingleLineHeight; - ++aParagraphIter; - } -} - -void GetFontWorkOutline( FWData& rFWData, const SdrObject* pCustomShape ) -{ - SdrTextHorzAdjust eHorzAdjust( ((SdrTextHorzAdjustItem&)pCustomShape->GetMergedItem( SDRATTR_TEXT_HORZADJUST )).GetValue() ); - SdrFitToSizeType eFTS( ((SdrTextFitToSizeTypeItem&)pCustomShape->GetMergedItem( SDRATTR_TEXT_FITTOSIZE )).GetValue() ); - - std::vector< FWTextArea >::iterator aTextAreaIter = rFWData.vTextAreas.begin(); - std::vector< FWTextArea >::iterator aTextAreaIEnd = rFWData.vTextAreas.end(); - - rFWData.nSingleLineHeight = (sal_Int32)( ( (double)pCustomShape->GetLogicRect().GetHeight() - / rFWData.nMaxParagraphsPerTextArea ) * rFWData.fHorizontalTextScaling ); - - sal_Bool bSameLetterHeights = sal_False; - SdrCustomShapeGeometryItem& rGeometryItem = (SdrCustomShapeGeometryItem&)pCustomShape->GetMergedItem( SDRATTR_CUSTOMSHAPE_GEOMETRY ); - const rtl::OUString sTextPath( RTL_CONSTASCII_USTRINGPARAM ( "TextPath" ) ); - const rtl::OUString sSameLetterHeights( RTL_CONSTASCII_USTRINGPARAM ( "SameLetterHeights" ) ); - com::sun::star::uno::Any* pAny = rGeometryItem.GetPropertyValueByName( sTextPath, sSameLetterHeights ); - if ( pAny ) - *pAny >>= bSameLetterHeights; - - while ( aTextAreaIter != aTextAreaIEnd ) - { - GetTextAreaOutline( rFWData, pCustomShape, *aTextAreaIter, bSameLetterHeights ); - if ( eFTS == SDRTEXTFIT_ALLLINES ) - { - std::vector< FWParagraphData >::iterator aParagraphIter( aTextAreaIter->vParagraphs.begin() ); - std::vector< FWParagraphData >::iterator aParagraphIEnd( aTextAreaIter->vParagraphs.end() ); - while ( aParagraphIter != aParagraphIEnd ) - { - sal_Int32 nParaWidth = aParagraphIter->aBoundRect.GetWidth(); - if ( nParaWidth ) - { - double fScale = (double)aTextAreaIter->aBoundRect.GetWidth() / nParaWidth; - - std::vector< FWCharacterData >::iterator aCharacterIter( aParagraphIter->vCharacters.begin() ); - std::vector< FWCharacterData >::iterator aCharacterIEnd( aParagraphIter->vCharacters.end() ); - while ( aCharacterIter != aCharacterIEnd ) - { - std::vector< PolyPolygon >::iterator aOutlineIter = aCharacterIter->vOutlines.begin(); - std::vector< PolyPolygon >::iterator aOutlineIEnd = aCharacterIter->vOutlines.end(); - while( aOutlineIter != aOutlineIEnd ) - { - aOutlineIter->Scale( fScale, 1.0 ); - ++aOutlineIter; - } - ++aCharacterIter; - } - } - ++aParagraphIter; - } - } - else - { - switch( eHorzAdjust ) - { - case SDRTEXTHORZADJUST_RIGHT : - case SDRTEXTHORZADJUST_CENTER: - { - std::vector< FWParagraphData >::iterator aParagraphIter( aTextAreaIter->vParagraphs.begin() ); - std::vector< FWParagraphData >::iterator aParagraphIEnd( aTextAreaIter->vParagraphs.end() ); - while ( aParagraphIter != aParagraphIEnd ) - { - sal_Int32 nHorzDiff = 0; - if ( eHorzAdjust == SDRTEXTHORZADJUST_CENTER ) - nHorzDiff = ( aTextAreaIter->aBoundRect.GetWidth() - aParagraphIter->aBoundRect.GetWidth() ) / 2; - else if ( eHorzAdjust == SDRTEXTHORZADJUST_RIGHT ) - nHorzDiff = ( aTextAreaIter->aBoundRect.GetWidth() - aParagraphIter->aBoundRect.GetWidth() ); - if ( nHorzDiff ) - { - std::vector< FWCharacterData >::iterator aCharacterIter( aParagraphIter->vCharacters.begin() ); - std::vector< FWCharacterData >::iterator aCharacterIEnd( aParagraphIter->vCharacters.end() ); - while ( aCharacterIter != aCharacterIEnd ) - { - std::vector< PolyPolygon >::iterator aOutlineIter = aCharacterIter->vOutlines.begin(); - std::vector< PolyPolygon >::iterator aOutlineIEnd = aCharacterIter->vOutlines.end(); - while( aOutlineIter != aOutlineIEnd ) - { - aOutlineIter->Move( nHorzDiff, 0 ); - ++aOutlineIter; - } - ++aCharacterIter; - } - } - ++aParagraphIter; - } - } - break; - default: - case SDRTEXTHORZADJUST_BLOCK : break; // don't know - case SDRTEXTHORZADJUST_LEFT : break; // already left aligned -> nothing to do - } - } - ++aTextAreaIter; - } -} - -basegfx::B2DPolyPolygon GetOutlinesFromShape2d( const SdrObject* pShape2d ) -{ - basegfx::B2DPolyPolygon aOutlines2d; - - SdrObjListIter aObjListIter( *pShape2d, IM_DEEPWITHGROUPS ); - while( aObjListIter.IsMore() ) - { - SdrObject* pPartObj = aObjListIter.Next(); - if ( pPartObj->ISA( SdrPathObj ) ) - { - basegfx::B2DPolyPolygon aCandidate(((SdrPathObj*)pPartObj)->GetPathPoly()); - if(aCandidate.areControlPointsUsed()) - { - aCandidate = basegfx::tools::adaptiveSubdivideByAngle(aCandidate); - } - aOutlines2d.append(aCandidate); - } - } - - return aOutlines2d; -} - -void CalcDistances( const Polygon& rPoly, std::vector< double >& rDistances ) -{ - sal_uInt16 i, nCount = rPoly.GetSize(); - if ( nCount > 1 ) - { - for ( i = 0; i < nCount; i++ ) - { - double fDistance = i ? ((Polygon&)rPoly).CalcDistance( i, i - 1 ) : 0.0; - rDistances.push_back( fDistance ); - } - std::partial_sum( rDistances.begin(), rDistances.end(), rDistances.begin() ); - double fLength = rDistances[ rDistances.size() - 1 ]; - if ( fLength > 0.0 ) - { - std::vector< double >::iterator aIter = rDistances.begin(); - std::vector< double >::iterator aEnd = rDistances.end(); - while ( aIter != aEnd ) - *aIter++ /= fLength; - } - } -} - -void InsertMissingOutlinePoints( const Polygon& /*rOutlinePoly*/, const std::vector< double >& rDistances, const Rectangle& rTextAreaBoundRect, Polygon& rPoly ) -{ - sal_uInt16 i = 0; - double fLastDistance = 0.0; - for ( i = 0; i < rPoly.GetSize(); i++ ) - { - Point& rPoint = rPoly[ i ]; - double fDistance = (double)( rPoint.X() - rTextAreaBoundRect.Left() ) / (double)rTextAreaBoundRect.GetWidth(); - if ( i ) - { - if ( fDistance > fLastDistance ) - { - std::vector< double >::const_iterator aIter = std::upper_bound( rDistances.begin(), rDistances.end(), fLastDistance ); - if ( aIter != rDistances.end() && ( *aIter > fLastDistance ) && ( *aIter < fDistance ) ) - { - Point& rPt0 = rPoly[ i - 1 ]; - sal_Int32 fX = rPoint.X() - rPt0.X(); - sal_Int32 fY = rPoint.Y() - rPt0.Y(); - double fd = ( 1.0 / ( fDistance - fLastDistance ) ) * ( *aIter - fLastDistance ); - rPoly.Insert( i, Point( (sal_Int32)( rPt0.X() + fX * fd ), (sal_Int32)( rPt0.Y() + fY * fd ) ) ); - fDistance = *aIter; - } - } - else if ( fDistance < fLastDistance ) - { - std::vector< double >::const_iterator aIter = std::lower_bound( rDistances.begin(), rDistances.end(), fLastDistance ); - if ( aIter-- != rDistances.begin() ) - { - if ( ( *aIter > fDistance ) && ( *aIter < fLastDistance ) ) - { - Point& rPt0 = rPoly[ i - 1 ]; - sal_Int32 fX = rPoint.X() - rPt0.X(); - sal_Int32 fY = rPoint.Y() - rPt0.Y(); - double fd = ( 1.0 / ( fDistance - fLastDistance ) ) * ( *aIter - fLastDistance ); - rPoly.Insert( i, Point( (sal_Int32)( rPt0.X() + fX * fd ), (sal_Int32)( rPt0.Y() + fY * fd ) ) ); - fDistance = *aIter; - } - } - } - } - fLastDistance = fDistance; - } -} - -void GetPoint( const Polygon& rPoly, const std::vector< double >& rDistances, const double& fX, double& fx1, double& fy1 ) -{ - fy1 = fx1 = 0.0; - if ( rPoly.GetSize() > 1 ) - { - std::vector< double >::const_iterator aIter = std::lower_bound( rDistances.begin(), rDistances.end(), fX ); - sal_uInt16 nIdx = sal::static_int_cast<sal_uInt16>( std::distance( rDistances.begin(), aIter ) ); - if ( aIter == rDistances.end() ) - nIdx--; - const Point& rPt = rPoly[ nIdx ]; - fx1 = rPt.X(); - fy1 = rPt.Y(); - if ( nIdx && ( aIter != rDistances.end() ) && ( *aIter != fX ) ) - { - nIdx = sal::static_int_cast<sal_uInt16>( std::distance( rDistances.begin(), aIter ) ); - double fDist0 = *( aIter - 1 ); - double fd = ( 1.0 / ( *aIter - fDist0 ) ) * ( fX - fDist0 ); - const Point& rPt2 = rPoly[ nIdx - 1 ]; - double fWidth = rPt.X() - rPt2.X(); - double fHeight= rPt.Y() - rPt2.Y(); - fWidth *= fd; - fHeight*= fd; - fx1 = rPt2.X() + fWidth; - fy1 = rPt2.Y() + fHeight; - } - } -} - -void FitTextOutlinesToShapeOutlines( const PolyPolygon& aOutlines2d, FWData& rFWData ) -{ - std::vector< FWTextArea >::iterator aTextAreaIter = rFWData.vTextAreas.begin(); - std::vector< FWTextArea >::iterator aTextAreaIEnd = rFWData.vTextAreas.end(); - - sal_uInt16 nOutline2dIdx = 0; - while( aTextAreaIter != aTextAreaIEnd ) - { - Rectangle rTextAreaBoundRect = aTextAreaIter->aBoundRect; - sal_Int32 nLeft = rTextAreaBoundRect.Left(); - sal_Int32 nTop = rTextAreaBoundRect.Top(); - sal_Int32 nWidth = rTextAreaBoundRect.GetWidth(); - sal_Int32 nHeight= rTextAreaBoundRect.GetHeight(); - if ( rFWData.bSingleLineMode && nHeight && nWidth ) - { - if ( nOutline2dIdx >= aOutlines2d.Count() ) - break; - const Polygon& rOutlinePoly( aOutlines2d[ nOutline2dIdx++ ] ); - const sal_uInt16 nPointCount = rOutlinePoly.GetSize(); - if ( nPointCount > 1 ) - { - std::vector< double > vDistances; - vDistances.reserve( nPointCount ); - CalcDistances( rOutlinePoly, vDistances ); - if ( !vDistances.empty() ) - { - std::vector< FWParagraphData >::iterator aParagraphIter( aTextAreaIter->vParagraphs.begin() ); - std::vector< FWParagraphData >::iterator aParagraphIEnd( aTextAreaIter->vParagraphs.end() ); - while( aParagraphIter != aParagraphIEnd ) - { - std::vector< FWCharacterData >::iterator aCharacterIter( aParagraphIter->vCharacters.begin() ); - std::vector< FWCharacterData >::iterator aCharacterIEnd( aParagraphIter->vCharacters.end() ); - while ( aCharacterIter != aCharacterIEnd ) - { - std::vector< PolyPolygon >::iterator aOutlineIter = aCharacterIter->vOutlines.begin(); - std::vector< PolyPolygon >::iterator aOutlineIEnd = aCharacterIter->vOutlines.end(); - while( aOutlineIter != aOutlineIEnd ) - { - PolyPolygon& rPolyPoly = *aOutlineIter; - Rectangle aBoundRect( rPolyPoly.GetBoundRect() ); - double fx1 = aBoundRect.Left() - nLeft; - double fx2 = aBoundRect.Right() - nLeft; - double fy1, fy2; - double fM1 = fx1 / (double)nWidth; - double fM2 = fx2 / (double)nWidth; - - GetPoint( rOutlinePoly, vDistances, fM1, fx1, fy1 ); - GetPoint( rOutlinePoly, vDistances, fM2, fx2, fy2 ); - - double fvx = ( fy2 - fy1 ); - double fvy = - ( fx2 - fx1 ); - fx1 = fx1 + ( ( fx2 - fx1 ) * 0.5 ); - fy1 = fy1 + ( ( fy2 - fy1 ) * 0.5 ); - - double fAngle = atan2( -fvx, -fvy ); - double fL = hypot( fvx, fvy ); - fvx = fvx / fL; - fvy = fvy / fL; - fL = (double)( aTextAreaIter->aBoundRect.GetHeight() / 2.0 + aTextAreaIter->aBoundRect.Top() ) - aParagraphIter->aBoundRect.Center().Y(); - fvx *= fL; - fvy *= fL; - rPolyPoly.Rotate( Point( aBoundRect.Center().X(), aParagraphIter->aBoundRect.Center().Y() ), sin( fAngle ), cos( fAngle ) ); - rPolyPoly.Move( (sal_Int32)( ( fx1 + fvx )- aBoundRect.Center().X() ), (sal_Int32)( ( fy1 + fvy ) - aParagraphIter->aBoundRect.Center().Y() ) ); - - ++aOutlineIter; - } - ++aCharacterIter; - } - ++aParagraphIter; - } - } - } - } - else - { - if ( ( nOutline2dIdx + 1 ) >= aOutlines2d.Count() ) - break; - const Polygon& rOutlinePoly( aOutlines2d[ nOutline2dIdx++ ] ); - const Polygon& rOutlinePoly2( aOutlines2d[ nOutline2dIdx++ ] ); - const sal_uInt16 nPointCount = rOutlinePoly.GetSize(); - const sal_uInt16 nPointCount2 = rOutlinePoly2.GetSize(); - if ( ( nPointCount > 1 ) && ( nPointCount2 > 1 ) ) - { - std::vector< double > vDistances; - vDistances.reserve( nPointCount ); - std::vector< double > vDistances2; - vDistances2.reserve( nPointCount2 ); - CalcDistances( rOutlinePoly, vDistances ); - CalcDistances( rOutlinePoly2, vDistances2 ); - std::vector< FWParagraphData >::iterator aParagraphIter = aTextAreaIter->vParagraphs.begin(); - std::vector< FWParagraphData >::iterator aParagraphIEnd = aTextAreaIter->vParagraphs.end(); - while( aParagraphIter != aParagraphIEnd ) - { - std::vector< FWCharacterData >::iterator aCharacterIter( aParagraphIter->vCharacters.begin() ); - std::vector< FWCharacterData >::iterator aCharacterIEnd( aParagraphIter->vCharacters.end() ); - while ( aCharacterIter != aCharacterIEnd ) - { - std::vector< PolyPolygon >::iterator aOutlineIter = aCharacterIter->vOutlines.begin(); - std::vector< PolyPolygon >::iterator aOutlineIEnd = aCharacterIter->vOutlines.end(); - while( aOutlineIter != aOutlineIEnd ) - { - PolyPolygon& rPolyPoly = *aOutlineIter; - sal_uInt16 i, nPolyCount = rPolyPoly.Count(); - for ( i = 0; i < nPolyCount; i++ ) - { - // #i35928# - basegfx::B2DPolygon aCandidate(rPolyPoly[ i ].getB2DPolygon()); - - if(aCandidate.areControlPointsUsed()) - { - aCandidate = basegfx::tools::adaptiveSubdivideByAngle(aCandidate); - } - - // create local polygon copy to work on - Polygon aLocalPoly(aCandidate); - - InsertMissingOutlinePoints( rOutlinePoly, vDistances, rTextAreaBoundRect, aLocalPoly ); - InsertMissingOutlinePoints( rOutlinePoly2, vDistances2, rTextAreaBoundRect, aLocalPoly ); - - sal_uInt16 j, _nPointCount = aLocalPoly.GetSize(); - for ( j = 0; j < _nPointCount; j++ ) - { - Point& rPoint = aLocalPoly[ j ]; - rPoint.X() -= nLeft; - rPoint.Y() -= nTop; - double fX = (double)rPoint.X() / (double)nWidth; - double fY = (double)rPoint.Y() / (double)nHeight; - - double fx1, fy1, fx2, fy2; - GetPoint( rOutlinePoly, vDistances, fX, fx1, fy1 ); - GetPoint( rOutlinePoly2, vDistances2, fX, fx2, fy2 ); - double fWidth = fx2 - fx1; - double fHeight= fy2 - fy1; - rPoint.X() = (sal_Int32)( fx1 + fWidth * fY ); - rPoint.Y() = (sal_Int32)( fy1 + fHeight* fY ); - } - - // write back polygon - rPolyPoly[ i ] = aLocalPoly; - } - ++aOutlineIter; - } - ++aCharacterIter; - } - ++aParagraphIter; - } - } - } - ++aTextAreaIter; - } -} - -SdrObject* CreateSdrObjectFromParagraphOutlines( const FWData& rFWData, const SdrObject* pCustomShape ) -{ - SdrObject* pRet = NULL; - if ( !rFWData.vTextAreas.empty() ) - { - pRet = new SdrObjGroup(); - std::vector< FWTextArea >::const_iterator aTextAreaIter = rFWData.vTextAreas.begin(); - std::vector< FWTextArea >::const_iterator aTextAreaIEnd = rFWData.vTextAreas.end(); - while ( aTextAreaIter != aTextAreaIEnd ) - { - std::vector< FWParagraphData >::const_iterator aParagraphIter = aTextAreaIter->vParagraphs.begin(); - std::vector< FWParagraphData >::const_iterator aParagraphIEnd = aTextAreaIter->vParagraphs.end(); - while ( aParagraphIter != aParagraphIEnd ) - { - std::vector< FWCharacterData >::const_iterator aCharacterIter( aParagraphIter->vCharacters.begin() ); - std::vector< FWCharacterData >::const_iterator aCharacterIEnd( aParagraphIter->vCharacters.end() ); - while ( aCharacterIter != aCharacterIEnd ) - { - std::vector< PolyPolygon >::const_iterator aOutlineIter = aCharacterIter->vOutlines.begin(); - std::vector< PolyPolygon >::const_iterator aOutlineIEnd = aCharacterIter->vOutlines.end(); - while( aOutlineIter != aOutlineIEnd ) - { - SdrObject* pPathObj = new SdrPathObj( OBJ_POLY, aOutlineIter->getB2DPolyPolygon() ); - ((SdrObjGroup*)pRet)->GetSubList()->NbcInsertObject( pPathObj ); - ++aOutlineIter; - } - ++aCharacterIter; - } - ++aParagraphIter; - } - ++aTextAreaIter; - } - - Point aP( pCustomShape->GetSnapRect().Center() ); - Size aS( pCustomShape->GetLogicRect().GetSize() ); - aP.X() -= aS.Width() / 2; - aP.Y() -= aS.Height() / 2; - Rectangle aLogicRect( aP, aS ); - - SfxItemSet aSet( pCustomShape->GetMergedItemSet() ); - aSet.ClearItem( SDRATTR_TEXTDIRECTION ); //SJ: vertical writing is not required, by removing this item no outliner is created - aSet.Put(SdrShadowItem(sal_False)); // #i37011# NO shadow for FontWork geometry - pRet->SetMergedItemSet( aSet ); // * otherwise we would crash, because the outliner tries to create a Paraobject, but there is no model - } - return pRet; -} - -::com::sun::star::uno::Reference < ::com::sun::star::i18n::XBreakIterator > EnhancedCustomShapeFontWork::mxBreakIterator = 0; - -Reference < i18n::XBreakIterator > EnhancedCustomShapeFontWork::GetBreakIterator() -{ - if ( !mxBreakIterator.is() ) - { - Reference< lang::XMultiServiceFactory > xMSF = ::comphelper::getProcessServiceFactory(); - Reference < XInterface > xI = xMSF->createInstance( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.i18n.BreakIterator")) ); - if ( xI.is() ) - { - Any x = xI->queryInterface( ::getCppuType((const Reference< i18n::XBreakIterator >*)0) ); - x >>= mxBreakIterator; - } - } - return mxBreakIterator; -} - -SdrObject* EnhancedCustomShapeFontWork::CreateFontWork( const SdrObject* pShape2d, const SdrObject* pCustomShape ) -{ - SdrObject* pRet = NULL; - - Rectangle aLogicRect( pCustomShape->GetLogicRect() ); - PolyPolygon aOutlines2d( GetOutlinesFromShape2d( pShape2d ) ); - sal_uInt16 nOutlinesCount2d = aOutlines2d.Count(); - if ( nOutlinesCount2d ) - { - FWData aFWData; - if ( InitializeFontWorkData( pCustomShape, nOutlinesCount2d, aFWData ) ) - { - /* retrieves the horizontal scaling factor that has to be used - to fit each paragraph text into its corresponding 2d outline */ - CalculateHorizontalScalingFactor( pCustomShape, aFWData, aOutlines2d ); - - /* retrieving the Outlines for the each Paragraph. */ - - GetFontWorkOutline( aFWData, pCustomShape ); - - FitTextOutlinesToShapeOutlines( aOutlines2d, aFWData ); - - pRet = CreateSdrObjectFromParagraphOutlines( aFWData, pCustomShape ); - } - } - return pRet; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svx/source/customshapes/EnhancedCustomShapeFontWork.hxx b/svx/source/customshapes/EnhancedCustomShapeFontWork.hxx deleted file mode 100644 index 4b3a90e0dc..0000000000 --- a/svx/source/customshapes/EnhancedCustomShapeFontWork.hxx +++ /dev/null @@ -1,47 +0,0 @@ -/* -*- 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 _ENHANCEDCUSTOMSHAPEFONTWORK_HXX -#define _ENHANCEDCUSTOMSHAPEFONTWORK_HXX - -#include <com/sun/star/i18n/XBreakIterator.hpp> - -class SdrObject; -class EnhancedCustomShapeFontWork -{ - static ::com::sun::star::uno::Reference < ::com::sun::star::i18n::XBreakIterator > mxBreakIterator; - - public : - - static com::sun::star::uno::Reference < ::com::sun::star::i18n::XBreakIterator > GetBreakIterator(); - static SdrObject* CreateFontWork( const SdrObject* pShape2d, const SdrObject* pCustomShape ); -}; - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svx/source/customshapes/EnhancedCustomShapeFunctionParser.cxx b/svx/source/customshapes/EnhancedCustomShapeFunctionParser.cxx deleted file mode 100644 index 19b3eaf333..0000000000 --- a/svx/source/customshapes/EnhancedCustomShapeFunctionParser.cxx +++ /dev/null @@ -1,1214 +0,0 @@ -/* -*- 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. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_svx.hxx" -#include "svx/EnhancedCustomShape2d.hxx" -#include <rtl/ustring.hxx> -#include <tools/fract.hxx> - -// Makes parser a static resource, -// we're synchronized externally. -// But watch out, the parser might have -// state not visible to this code! - -#define BOOST_SPIRIT_SINGLE_GRAMMAR_INSTANCE -#if defined(VERBOSE) && defined(DBG_UTIL) -#include <typeinfo> -#define BOOST_SPIRIT_DEBUG -#endif -#include <boost/spirit/include/classic_core.hpp> - -#if (OSL_DEBUG_LEVEL > 0) -#include <iostream> -#endif -#include <functional> -#include <algorithm> -#include <stack> - -#include <math.h> // fabs, sqrt, sin, cos, tan, atan, atan2 -using namespace EnhancedCustomShape; -using namespace com::sun::star; -using namespace com::sun::star::drawing; - -void EnhancedCustomShape::FillEquationParameter( const EnhancedCustomShapeParameter& rSource, const sal_Int32 nDestPara, EnhancedCustomShapeEquation& rDest ) -{ - sal_Int32 nValue = 0; - if ( rSource.Value.getValueTypeClass() == uno::TypeClass_DOUBLE ) - { - double fValue(0.0); - if ( rSource.Value >>= fValue ) - nValue = (sal_Int32)fValue; - } - else - rSource.Value >>= nValue; - - switch( rSource.Type ) - { - case com::sun::star::drawing::EnhancedCustomShapeParameterType::EQUATION : - { - if ( nValue & 0x40000000 ) - { - nValue ^= 0x40000000; - rDest.nOperation |= 0x20000000 << nDestPara; // the bit is indicating that this value has to be adjusted later - } - nValue |= 0x400; - } - break; - case com::sun::star::drawing::EnhancedCustomShapeParameterType::ADJUSTMENT : nValue += DFF_Prop_adjustValue; break; - case com::sun::star::drawing::EnhancedCustomShapeParameterType::BOTTOM : nValue = DFF_Prop_geoBottom; break; - case com::sun::star::drawing::EnhancedCustomShapeParameterType::RIGHT : nValue = DFF_Prop_geoRight; break; - case com::sun::star::drawing::EnhancedCustomShapeParameterType::TOP : nValue = DFF_Prop_geoTop; break; - case com::sun::star::drawing::EnhancedCustomShapeParameterType::LEFT : nValue = DFF_Prop_geoLeft; break; - } - if ( rSource.Type != com::sun::star::drawing::EnhancedCustomShapeParameterType::NORMAL ) - rDest.nOperation |= ( 0x2000 << nDestPara ); - rDest.nPara[ nDestPara ] = nValue; -} - -ExpressionNode::~ExpressionNode() -{} - -namespace -{ - -////////////////////// -////////////////////// -// EXPRESSION NODES -////////////////////// -////////////////////// -class ConstantValueExpression : public ExpressionNode -{ - double maValue; - -public: - - ConstantValueExpression( double rValue ) : - maValue( rValue ) - { - } - virtual double operator()() const - { - return maValue; - } - virtual bool isConstant() const - { - return true; - } - virtual ExpressionFunct getType() const - { - return FUNC_CONST; - } - virtual EnhancedCustomShapeParameter fillNode( std::vector< EnhancedCustomShapeEquation >& rEquations, ExpressionNode* /* pOptionalArg */, sal_uInt32 /* nFlags */ ) - { - EnhancedCustomShapeParameter aRet; - Fraction aFract( maValue ); - if ( aFract.GetDenominator() == 1 ) - { - aRet.Type = EnhancedCustomShapeParameterType::NORMAL; - aRet.Value <<= (sal_Int32)aFract.GetNumerator(); - } - else - { - EnhancedCustomShapeEquation aEquation; - aEquation.nOperation = 1; - aEquation.nPara[ 0 ] = 1; - aEquation.nPara[ 1 ] = (sal_Int16)aFract.GetNumerator(); - aEquation.nPara[ 2 ] = (sal_Int16)aFract.GetDenominator(); - aRet.Type = EnhancedCustomShapeParameterType::EQUATION; - aRet.Value <<= (sal_Int32)rEquations.size(); - rEquations.push_back( aEquation ); - } - return aRet; - } -}; - -class AdjustmentExpression : public ExpressionNode -{ - sal_Int32 mnIndex; - const EnhancedCustomShape2d& mrCustoShape; - -public: - - AdjustmentExpression( const EnhancedCustomShape2d& rCustoShape, sal_Int32 nIndex ) - : mnIndex ( nIndex ) - , mrCustoShape( rCustoShape ) - - { - } - virtual double operator()() const - { - return mrCustoShape.GetAdjustValueAsDouble( mnIndex ); - } - virtual bool isConstant() const - { - return false; - } - virtual ExpressionFunct getType() const - { - return ENUM_FUNC_ADJUSTMENT; - } - virtual EnhancedCustomShapeParameter fillNode( std::vector< EnhancedCustomShapeEquation >& /*rEquations*/, ExpressionNode* /*pOptionalArg*/, sal_uInt32 /*nFlags*/ ) - { - EnhancedCustomShapeParameter aRet; - aRet.Type = EnhancedCustomShapeParameterType::ADJUSTMENT; - aRet.Value <<= mnIndex; - return aRet; - } -}; - -class EquationExpression : public ExpressionNode -{ - sal_Int32 mnIndex; - const EnhancedCustomShape2d& mrCustoShape; - -public: - - EquationExpression( const EnhancedCustomShape2d& rCustoShape, sal_Int32 nIndex ) - : mnIndex ( nIndex ) - , mrCustoShape( rCustoShape ) - { - } - virtual double operator()() const - { - return mrCustoShape.GetEquationValueAsDouble( mnIndex ); - } - virtual bool isConstant() const - { - return false; - } - virtual ExpressionFunct getType() const - { - return ENUM_FUNC_EQUATION; - } - virtual EnhancedCustomShapeParameter fillNode( std::vector< EnhancedCustomShapeEquation >& /*rEquations*/, ExpressionNode* /*pOptionalArg*/, sal_uInt32 /*nFlags*/ ) - { - EnhancedCustomShapeParameter aRet; - aRet.Type = EnhancedCustomShapeParameterType::EQUATION; - aRet.Value <<= mnIndex | 0x40000000; // the bit is indicating that this equation needs to be adjusted later - return aRet; - } -}; - -class EnumValueExpression : public ExpressionNode -{ - const ExpressionFunct meFunct; - const EnhancedCustomShape2d& mrCustoShape; - -public: - - EnumValueExpression( const EnhancedCustomShape2d& rCustoShape, const ExpressionFunct eFunct ) - : meFunct ( eFunct ) - , mrCustoShape ( rCustoShape ) - { - } - static double getValue( const EnhancedCustomShape2d& rCustoShape, const ExpressionFunct eFunc ) - { - EnhancedCustomShape2d::EnumFunc eF; - switch( eFunc ) - { - case ENUM_FUNC_PI : eF = EnhancedCustomShape2d::ENUM_FUNC_PI; break; - case ENUM_FUNC_LEFT : eF = EnhancedCustomShape2d::ENUM_FUNC_LEFT; break; - case ENUM_FUNC_TOP : eF = EnhancedCustomShape2d::ENUM_FUNC_TOP; break; - case ENUM_FUNC_RIGHT : eF = EnhancedCustomShape2d::ENUM_FUNC_RIGHT; break; - case ENUM_FUNC_BOTTOM : eF = EnhancedCustomShape2d::ENUM_FUNC_BOTTOM; break; - case ENUM_FUNC_XSTRETCH : eF = EnhancedCustomShape2d::ENUM_FUNC_XSTRETCH; break; - case ENUM_FUNC_YSTRETCH : eF = EnhancedCustomShape2d::ENUM_FUNC_YSTRETCH; break; - case ENUM_FUNC_HASSTROKE : eF = EnhancedCustomShape2d::ENUM_FUNC_HASSTROKE; break; - case ENUM_FUNC_HASFILL : eF = EnhancedCustomShape2d::ENUM_FUNC_HASFILL; break; - case ENUM_FUNC_WIDTH : eF = EnhancedCustomShape2d::ENUM_FUNC_WIDTH; break; - case ENUM_FUNC_HEIGHT : eF = EnhancedCustomShape2d::ENUM_FUNC_HEIGHT; break; - case ENUM_FUNC_LOGWIDTH : eF = EnhancedCustomShape2d::ENUM_FUNC_LOGWIDTH; break; - case ENUM_FUNC_LOGHEIGHT : eF = EnhancedCustomShape2d::ENUM_FUNC_LOGHEIGHT; break; - - default : - return 0.0; - } - return rCustoShape.GetEnumFunc( eF ); - } - virtual double operator()() const - { - return getValue( mrCustoShape, meFunct ); - } - virtual bool isConstant() const - { - return false; - } - virtual ExpressionFunct getType() const - { - return meFunct; - } - virtual EnhancedCustomShapeParameter fillNode( std::vector< EnhancedCustomShapeEquation >& rEquations, ExpressionNode* /*pOptionalArg*/, sal_uInt32 nFlags ) - { - EnhancedCustomShapeParameter aRet; - - sal_Int32 nDummy = 1; - aRet.Value <<= nDummy; - - switch( meFunct ) - { - case ENUM_FUNC_WIDTH : // TODO: do not use this as constant value - case ENUM_FUNC_HEIGHT : - case ENUM_FUNC_LOGWIDTH : - case ENUM_FUNC_LOGHEIGHT : - case ENUM_FUNC_PI : - { - ConstantValueExpression aConstantValue( getValue( mrCustoShape, meFunct ) ); - aRet = aConstantValue.fillNode( rEquations, NULL, nFlags ); - } - break; - case ENUM_FUNC_LEFT : aRet.Type = EnhancedCustomShapeParameterType::LEFT; break; - case ENUM_FUNC_TOP : aRet.Type = EnhancedCustomShapeParameterType::TOP; break; - case ENUM_FUNC_RIGHT : aRet.Type = EnhancedCustomShapeParameterType::RIGHT; break; - case ENUM_FUNC_BOTTOM : aRet.Type = EnhancedCustomShapeParameterType::BOTTOM; break; - - // not implemented so far - case ENUM_FUNC_XSTRETCH : - case ENUM_FUNC_YSTRETCH : - case ENUM_FUNC_HASSTROKE : - case ENUM_FUNC_HASFILL : aRet.Type = EnhancedCustomShapeParameterType::NORMAL; break; - - default: - break; - } - return aRet; - } -}; - -/** ExpressionNode implementation for unary - function over one ExpressionNode - */ -class UnaryFunctionExpression : public ExpressionNode -{ - const ExpressionFunct meFunct; - ExpressionNodeSharedPtr mpArg; - -public: - UnaryFunctionExpression( const ExpressionFunct eFunct, const ExpressionNodeSharedPtr& rArg ) : - meFunct( eFunct ), - mpArg( rArg ) - { - } - static double getValue( const ExpressionFunct eFunct, const ExpressionNodeSharedPtr& rArg ) - { - double fRet = 0; - switch( eFunct ) - { - case UNARY_FUNC_ABS : fRet = fabs( (*rArg)() ); break; - case UNARY_FUNC_SQRT: fRet = sqrt( (*rArg)() ); break; - case UNARY_FUNC_SIN : fRet = sin( (*rArg)() ); break; - case UNARY_FUNC_COS : fRet = cos( (*rArg)() ); break; - case UNARY_FUNC_TAN : fRet = tan( (*rArg)() ); break; - case UNARY_FUNC_ATAN: fRet = atan( (*rArg)() ); break; - case UNARY_FUNC_NEG : fRet = ::std::negate<double>()( (*rArg)() ); break; - default: - break; - } - return fRet; - } - virtual double operator()() const - { - return getValue( meFunct, mpArg ); - } - virtual bool isConstant() const - { - return mpArg->isConstant(); - } - virtual ExpressionFunct getType() const - { - return meFunct; - } - virtual EnhancedCustomShapeParameter fillNode( std::vector< EnhancedCustomShapeEquation >& rEquations, ExpressionNode* pOptionalArg, sal_uInt32 nFlags ) - { - EnhancedCustomShapeParameter aRet; - switch( meFunct ) - { - case UNARY_FUNC_ABS : - { - EnhancedCustomShapeEquation aEquation; - aEquation.nOperation |= 3; - FillEquationParameter( mpArg->fillNode( rEquations, NULL, nFlags ), 0, aEquation ); - aRet.Type = EnhancedCustomShapeParameterType::EQUATION; - aRet.Value <<= (sal_Int32)rEquations.size(); - rEquations.push_back( aEquation ); - } - break; - case UNARY_FUNC_SQRT: - { - EnhancedCustomShapeEquation aEquation; - aEquation.nOperation |= 13; - FillEquationParameter( mpArg->fillNode( rEquations, NULL, nFlags ), 0, aEquation ); - aRet.Type = EnhancedCustomShapeParameterType::EQUATION; - aRet.Value <<= (sal_Int32)rEquations.size(); - rEquations.push_back( aEquation ); - } - break; - case UNARY_FUNC_SIN : - { - EnhancedCustomShapeEquation aEquation; - aEquation.nOperation |= 9; - if ( pOptionalArg ) - FillEquationParameter( pOptionalArg->fillNode( rEquations, NULL, nFlags ), 0, aEquation ); - else - aEquation.nPara[ 0 ] = 1; - - EnhancedCustomShapeParameter aSource( mpArg->fillNode( rEquations, NULL, nFlags | EXPRESSION_FLAG_SUMANGLE_MODE ) ); - if ( aSource.Type == EnhancedCustomShapeParameterType::NORMAL ) - { // sumangle needed :-( - EnhancedCustomShapeEquation _aEquation; - _aEquation.nOperation |= 0xe; // sumangle - FillEquationParameter( aSource, 1, _aEquation ); - aSource.Type = EnhancedCustomShapeParameterType::EQUATION; - aSource.Value <<= (sal_Int32)rEquations.size(); - rEquations.push_back( _aEquation ); - } - FillEquationParameter( aSource, 1, aEquation ); - aRet.Type = EnhancedCustomShapeParameterType::EQUATION; - aRet.Value <<= (sal_Int32)rEquations.size(); - rEquations.push_back( aEquation ); - } - break; - case UNARY_FUNC_COS : - { - EnhancedCustomShapeEquation aEquation; - aEquation.nOperation |= 10; - if ( pOptionalArg ) - FillEquationParameter( pOptionalArg->fillNode( rEquations, NULL, nFlags ), 0, aEquation ); - else - aEquation.nPara[ 0 ] = 1; - - EnhancedCustomShapeParameter aSource( mpArg->fillNode( rEquations, NULL, nFlags | EXPRESSION_FLAG_SUMANGLE_MODE ) ); - if ( aSource.Type == EnhancedCustomShapeParameterType::NORMAL ) - { // sumangle needed :-( - EnhancedCustomShapeEquation aTmpEquation; - aTmpEquation.nOperation |= 0xe; // sumangle - FillEquationParameter( aSource, 1, aTmpEquation ); - aSource.Type = EnhancedCustomShapeParameterType::EQUATION; - aSource.Value <<= (sal_Int32)rEquations.size(); - rEquations.push_back( aTmpEquation ); - } - FillEquationParameter( aSource, 1, aEquation ); - aRet.Type = EnhancedCustomShapeParameterType::EQUATION; - aRet.Value <<= (sal_Int32)rEquations.size(); - rEquations.push_back( aEquation ); - } - break; - case UNARY_FUNC_TAN : - { - EnhancedCustomShapeEquation aEquation; - aEquation.nOperation |= 16; - if ( pOptionalArg ) - FillEquationParameter( pOptionalArg->fillNode( rEquations, NULL, nFlags ), 0, aEquation ); - else - aEquation.nPara[ 0 ] = 1; - - EnhancedCustomShapeParameter aSource( mpArg->fillNode( rEquations, NULL, nFlags | EXPRESSION_FLAG_SUMANGLE_MODE ) ); - if ( aSource.Type == EnhancedCustomShapeParameterType::NORMAL ) - { // sumangle needed :-( - EnhancedCustomShapeEquation aTmpEquation; - aTmpEquation.nOperation |= 0xe; // sumangle - FillEquationParameter( aSource, 1, aTmpEquation ); - aSource.Type = EnhancedCustomShapeParameterType::EQUATION; - aSource.Value <<= (sal_Int32)rEquations.size(); - rEquations.push_back( aTmpEquation ); - } - FillEquationParameter( aSource, 1, aEquation ); - aRet.Type = EnhancedCustomShapeParameterType::EQUATION; - aRet.Value <<= (sal_Int32)rEquations.size(); - rEquations.push_back( aEquation ); - } - break; - case UNARY_FUNC_ATAN: - { -// TODO: - aRet.Type = EnhancedCustomShapeParameterType::NORMAL; - } - break; - case UNARY_FUNC_NEG: - { - EnhancedCustomShapeEquation aEquation; - aEquation.nOperation |= 1; - aEquation.nPara[ 1 ] = -1; - aEquation.nPara[ 2 ] = 1; - FillEquationParameter( mpArg->fillNode( rEquations, NULL, nFlags ), 0, aEquation ); - aRet.Type = EnhancedCustomShapeParameterType::EQUATION; - aRet.Value <<= (sal_Int32)rEquations.size(); - rEquations.push_back( aEquation ); - } - break; - default: - break; - } - return aRet; - } -}; - -/** ExpressionNode implementation for unary - function over two ExpressionNodes - */ -class BinaryFunctionExpression : public ExpressionNode -{ - const ExpressionFunct meFunct; - ExpressionNodeSharedPtr mpFirstArg; - ExpressionNodeSharedPtr mpSecondArg; - -public: - - BinaryFunctionExpression( const ExpressionFunct eFunct, const ExpressionNodeSharedPtr& rFirstArg, const ExpressionNodeSharedPtr& rSecondArg ) : - meFunct( eFunct ), - mpFirstArg( rFirstArg ), - mpSecondArg( rSecondArg ) - { - } - static double getValue( const ExpressionFunct eFunct, const ExpressionNodeSharedPtr& rFirstArg, const ExpressionNodeSharedPtr& rSecondArg ) - { - double fRet = 0; - switch( eFunct ) - { - case BINARY_FUNC_PLUS : fRet = (*rFirstArg)() + (*rSecondArg)(); break; - case BINARY_FUNC_MINUS: fRet = (*rFirstArg)() - (*rSecondArg)(); break; - case BINARY_FUNC_MUL : fRet = (*rFirstArg)() * (*rSecondArg)(); break; - case BINARY_FUNC_DIV : fRet = (*rFirstArg)() / (*rSecondArg)(); break; - case BINARY_FUNC_MIN : fRet = ::std::min( (*rFirstArg)(), (*rSecondArg)() ); break; - case BINARY_FUNC_MAX : fRet = ::std::max( (*rFirstArg)(), (*rSecondArg)() ); break; - case BINARY_FUNC_ATAN2: fRet = atan2( (*rFirstArg)(), (*rSecondArg)() ); break; - default: - break; - } - return fRet; - } - virtual double operator()() const - { - return getValue( meFunct, mpFirstArg, mpSecondArg ); - } - virtual bool isConstant() const - { - return mpFirstArg->isConstant() && mpSecondArg->isConstant(); - } - virtual ExpressionFunct getType() const - { - return meFunct; - } - virtual EnhancedCustomShapeParameter fillNode( std::vector< EnhancedCustomShapeEquation >& rEquations, ExpressionNode* /*pOptionalArg*/, sal_uInt32 nFlags ) - { - EnhancedCustomShapeParameter aRet; - switch( meFunct ) - { - case BINARY_FUNC_PLUS : - { - if ( nFlags & EXPRESSION_FLAG_SUMANGLE_MODE ) - { - if ( mpFirstArg->getType() == ENUM_FUNC_ADJUSTMENT ) - { - EnhancedCustomShapeEquation aEquation; - aEquation.nOperation |= 0xe; // sumangle - FillEquationParameter( mpFirstArg->fillNode( rEquations, NULL, nFlags ), 0, aEquation ); - FillEquationParameter( mpSecondArg->fillNode( rEquations, NULL, nFlags ), 1, aEquation ); - aRet.Type = EnhancedCustomShapeParameterType::EQUATION; - aRet.Value <<= (sal_Int32)rEquations.size(); - rEquations.push_back( aEquation ); - } - else if ( mpSecondArg->getType() == ENUM_FUNC_ADJUSTMENT ) - { - EnhancedCustomShapeEquation aEquation; - aEquation.nOperation |= 0xe; // sumangle - FillEquationParameter( mpSecondArg->fillNode( rEquations, NULL, nFlags ), 0, aEquation ); - FillEquationParameter( mpFirstArg->fillNode( rEquations, NULL, nFlags ), 1, aEquation ); - aRet.Type = EnhancedCustomShapeParameterType::EQUATION; - aRet.Value <<= (sal_Int32)rEquations.size(); - rEquations.push_back( aEquation ); - } - else - { - EnhancedCustomShapeEquation aSumangle1; - aSumangle1.nOperation |= 0xe; // sumangle - FillEquationParameter( mpFirstArg->fillNode( rEquations, NULL, nFlags &~EXPRESSION_FLAG_SUMANGLE_MODE ), 1, aSumangle1 ); - aRet.Type = EnhancedCustomShapeParameterType::EQUATION; - aRet.Value <<= (sal_Int32)rEquations.size(); - rEquations.push_back( aSumangle1 ); - - EnhancedCustomShapeEquation aSumangle2; - aSumangle2.nOperation |= 0xe; // sumangle - FillEquationParameter( mpSecondArg->fillNode( rEquations, NULL, nFlags &~EXPRESSION_FLAG_SUMANGLE_MODE ), 1, aSumangle2 ); - aRet.Type = EnhancedCustomShapeParameterType::EQUATION; - aRet.Value <<= (sal_Int32)rEquations.size(); - rEquations.push_back( aSumangle2 ); - - EnhancedCustomShapeEquation aEquation; - aEquation.nOperation |= 0; - aEquation.nPara[ 0 ] = ( rEquations.size() - 2 ) | 0x400; - aEquation.nPara[ 1 ] = ( rEquations.size() - 1 ) | 0x400; - aRet.Type = EnhancedCustomShapeParameterType::EQUATION; - aRet.Value <<= (sal_Int32)rEquations.size(); - rEquations.push_back( aEquation ); - } - } - else - { - sal_Bool bFirstIsEmpty = mpFirstArg->isConstant() && ( (*mpFirstArg)() == 0 ); - sal_Bool bSecondIsEmpty = mpSecondArg->isConstant() && ( (*mpSecondArg)() == 0 ); - - if ( bFirstIsEmpty ) - aRet = mpSecondArg->fillNode( rEquations, NULL, nFlags ); - else if ( bSecondIsEmpty ) - aRet = mpFirstArg->fillNode( rEquations, NULL, nFlags ); - else - { - EnhancedCustomShapeEquation aEquation; - aEquation.nOperation |= 0; - FillEquationParameter( mpFirstArg->fillNode( rEquations, NULL, nFlags ), 0, aEquation ); - FillEquationParameter( mpSecondArg->fillNode( rEquations, NULL, nFlags ), 1, aEquation ); - aRet.Type = EnhancedCustomShapeParameterType::EQUATION; - aRet.Value <<= (sal_Int32)rEquations.size(); - rEquations.push_back( aEquation ); - } - } - } - break; - case BINARY_FUNC_MINUS: - { - EnhancedCustomShapeEquation aEquation; - aEquation.nOperation |= 0; - FillEquationParameter( mpFirstArg->fillNode( rEquations, NULL, nFlags ), 0, aEquation ); - FillEquationParameter( mpSecondArg->fillNode( rEquations, NULL, nFlags ), 2, aEquation ); - aRet.Type = EnhancedCustomShapeParameterType::EQUATION; - aRet.Value <<= (sal_Int32)rEquations.size(); - rEquations.push_back( aEquation ); - } - break; - case BINARY_FUNC_MUL : - { - // in the dest. format the cos function is using integer as result :-( - // so we can't use the generic algorithm - if ( ( mpFirstArg->getType() == UNARY_FUNC_SIN ) || ( mpFirstArg->getType() == UNARY_FUNC_COS ) || ( mpFirstArg->getType() == UNARY_FUNC_TAN ) ) - aRet = mpFirstArg->fillNode( rEquations, mpSecondArg.get(), nFlags ); - else if ( ( mpSecondArg->getType() == UNARY_FUNC_SIN ) || ( mpSecondArg->getType() == UNARY_FUNC_COS ) || ( mpSecondArg->getType() == UNARY_FUNC_TAN ) ) - aRet = mpSecondArg->fillNode( rEquations, mpFirstArg.get(), nFlags ); - else - { - if ( mpFirstArg->isConstant() && (*mpFirstArg)() == 1 ) - aRet = mpSecondArg->fillNode( rEquations, NULL, nFlags ); - else if ( mpSecondArg->isConstant() && (*mpSecondArg)() == 1 ) - aRet = mpFirstArg->fillNode( rEquations, NULL, nFlags ); - else if ( ( mpFirstArg->getType() == BINARY_FUNC_DIV ) // don't care of (pi/180) - && ( ((BinaryFunctionExpression*)((BinaryFunctionExpression*)mpFirstArg.get())->mpFirstArg.get())->getType() == ENUM_FUNC_PI ) - && ( ((BinaryFunctionExpression*)((BinaryFunctionExpression*)mpFirstArg.get())->mpSecondArg.get())->getType() == FUNC_CONST ) ) - { - aRet = mpSecondArg->fillNode( rEquations, NULL, nFlags ); - } - else if ( ( mpSecondArg->getType() == BINARY_FUNC_DIV ) // don't care of (pi/180) - && ( ((BinaryFunctionExpression*)((BinaryFunctionExpression*)mpSecondArg.get())->mpFirstArg.get())->getType() == ENUM_FUNC_PI ) - && ( ((BinaryFunctionExpression*)((BinaryFunctionExpression*)mpSecondArg.get())->mpSecondArg.get())->getType() == FUNC_CONST ) ) - { - aRet = mpFirstArg->fillNode( rEquations, NULL, nFlags ); - } - else - { - EnhancedCustomShapeEquation aEquation; - aEquation.nOperation |= 1; - FillEquationParameter( mpFirstArg->fillNode( rEquations, NULL, nFlags ), 0, aEquation ); - FillEquationParameter( mpSecondArg->fillNode( rEquations, NULL, nFlags ), 1, aEquation ); - aEquation.nPara[ 2 ] = 1; - aRet.Type = EnhancedCustomShapeParameterType::EQUATION; - aRet.Value <<= (sal_Int32)rEquations.size(); - rEquations.push_back( aEquation ); - } - } - } - break; - case BINARY_FUNC_DIV : - { - EnhancedCustomShapeEquation aEquation; - aEquation.nOperation |= 1; - FillEquationParameter( mpFirstArg->fillNode( rEquations, NULL, nFlags ), 0, aEquation ); - aEquation.nPara[ 1 ] = 1; - FillEquationParameter( mpSecondArg->fillNode( rEquations, NULL, nFlags ), 2, aEquation ); - aRet.Type = EnhancedCustomShapeParameterType::EQUATION; - aRet.Value <<= (sal_Int32)rEquations.size(); - rEquations.push_back( aEquation ); - } - break; - case BINARY_FUNC_MIN : - { - EnhancedCustomShapeEquation aEquation; - aEquation.nOperation |= 4; - FillEquationParameter( mpFirstArg->fillNode( rEquations, NULL, nFlags ), 0, aEquation ); - FillEquationParameter( mpSecondArg->fillNode( rEquations, NULL, nFlags ), 1, aEquation ); - aRet.Type = EnhancedCustomShapeParameterType::EQUATION; - aRet.Value <<= (sal_Int32)rEquations.size(); - rEquations.push_back( aEquation ); - } - break; - case BINARY_FUNC_MAX : - { - EnhancedCustomShapeEquation aEquation; - aEquation.nOperation |= 5; - FillEquationParameter( mpFirstArg->fillNode( rEquations, NULL, nFlags ), 0, aEquation ); - FillEquationParameter( mpSecondArg->fillNode( rEquations, NULL, nFlags ), 1, aEquation ); - aRet.Type = EnhancedCustomShapeParameterType::EQUATION; - aRet.Value <<= (sal_Int32)rEquations.size(); - rEquations.push_back( aEquation ); - } - break; - case BINARY_FUNC_ATAN2: - { - EnhancedCustomShapeEquation aEquation; - aEquation.nOperation |= 8; - FillEquationParameter( mpSecondArg->fillNode( rEquations, NULL, nFlags ), 0, aEquation ); - FillEquationParameter( mpFirstArg->fillNode( rEquations, NULL, nFlags ), 1, aEquation ); - aRet.Type = EnhancedCustomShapeParameterType::EQUATION; - aRet.Value <<= (sal_Int32)rEquations.size(); - rEquations.push_back( aEquation ); - } - break; - default: - break; - } - return aRet; - } -}; - -class IfExpression : public ExpressionNode -{ - ExpressionNodeSharedPtr mpFirstArg; - ExpressionNodeSharedPtr mpSecondArg; - ExpressionNodeSharedPtr mpThirdArg; - -public: - - IfExpression( const ExpressionNodeSharedPtr& rFirstArg, - const ExpressionNodeSharedPtr& rSecondArg, - const ExpressionNodeSharedPtr& rThirdArg ) : - mpFirstArg( rFirstArg ), - mpSecondArg( rSecondArg ), - mpThirdArg( rThirdArg ) - { - } - virtual bool isConstant() const - { - return - mpFirstArg->isConstant() && - mpSecondArg->isConstant() && - mpThirdArg->isConstant(); - } - virtual double operator()() const - { - return (*mpFirstArg)() > 0 ? (*mpSecondArg)() : (*mpThirdArg)(); - } - virtual ExpressionFunct getType() const - { - return TERNARY_FUNC_IF; - } - virtual EnhancedCustomShapeParameter fillNode( std::vector< EnhancedCustomShapeEquation >& rEquations, ExpressionNode* /*pOptionalArg*/, sal_uInt32 nFlags ) - { - EnhancedCustomShapeParameter aRet; - aRet.Type = EnhancedCustomShapeParameterType::EQUATION; - aRet.Value <<= (sal_Int32)rEquations.size(); - { - EnhancedCustomShapeEquation aEquation; - aEquation.nOperation |= 6; - FillEquationParameter( mpFirstArg->fillNode( rEquations, NULL, nFlags ), 0, aEquation ); - FillEquationParameter( mpSecondArg->fillNode( rEquations, NULL, nFlags ), 1, aEquation ); - FillEquationParameter( mpThirdArg->fillNode( rEquations, NULL, nFlags ), 2, aEquation ); - rEquations.push_back( aEquation ); - } - return aRet; - } -}; - -//////////////////////// -//////////////////////// -// FUNCTION PARSER -//////////////////////// -//////////////////////// - -typedef const sal_Char* StringIteratorT; - -struct ParserContext -{ - typedef ::std::stack< ExpressionNodeSharedPtr > OperandStack; - - // stores a stack of not-yet-evaluated operands. This is used - // by the operators (i.e. '+', '*', 'sin' etc.) to pop their - // arguments from. If all arguments to an operator are constant, - // the operator pushes a precalculated result on the stack, and - // a composite ExpressionNode otherwise. - OperandStack maOperandStack; - - const EnhancedCustomShape2d* mpCustoShape; - -}; - -typedef ::boost::shared_ptr< ParserContext > ParserContextSharedPtr; - -/** Generate apriori constant value - */ - -class ConstantFunctor -{ - const double mnValue; - ParserContextSharedPtr mpContext; - -public: - - ConstantFunctor( double rValue, const ParserContextSharedPtr& rContext ) : - mnValue( rValue ), - mpContext( rContext ) - { - } - void operator()( StringIteratorT /*rFirst*/, StringIteratorT /*rSecond*/ ) const - { - mpContext->maOperandStack.push( ExpressionNodeSharedPtr( new ConstantValueExpression( mnValue ) ) ); - } -}; - -/** Generate parse-dependent-but-then-constant value - */ -class DoubleConstantFunctor -{ - ParserContextSharedPtr mpContext; - -public: - DoubleConstantFunctor( const ParserContextSharedPtr& rContext ) : - mpContext( rContext ) - { - } - void operator()( double n ) const - { - mpContext->maOperandStack.push( ExpressionNodeSharedPtr( new ConstantValueExpression( n ) ) ); - } -}; - -class EnumFunctor -{ - const ExpressionFunct meFunct; - double mnValue; - ParserContextSharedPtr mpContext; - -public: - - EnumFunctor( const ExpressionFunct eFunct, const ParserContextSharedPtr& rContext ) - : meFunct( eFunct ) - , mnValue( 0 ) - , mpContext( rContext ) - { - } - void operator()( StringIteratorT rFirst, StringIteratorT rSecond ) const - { - /*double nVal = mnValue;*/ - switch( meFunct ) - { - case ENUM_FUNC_ADJUSTMENT : - { - rtl::OUString aVal( rFirst + 1, rSecond - rFirst, RTL_TEXTENCODING_UTF8 ); - mpContext->maOperandStack.push( ExpressionNodeSharedPtr( new AdjustmentExpression( *mpContext->mpCustoShape, aVal.toInt32() ) ) ); - } - break; - case ENUM_FUNC_EQUATION : - { - rtl::OUString aVal( rFirst + 1, rSecond - rFirst, RTL_TEXTENCODING_UTF8 ); - mpContext->maOperandStack.push( ExpressionNodeSharedPtr( new EquationExpression( *mpContext->mpCustoShape, aVal.toInt32() ) ) ); - } - break; - default: - mpContext->maOperandStack.push( ExpressionNodeSharedPtr( new EnumValueExpression( *mpContext->mpCustoShape, meFunct ) ) ); - } - } -}; - -class UnaryFunctionFunctor -{ - const ExpressionFunct meFunct; - ParserContextSharedPtr mpContext; - -public : - - UnaryFunctionFunctor( const ExpressionFunct eFunct, const ParserContextSharedPtr& rContext ) : - meFunct( eFunct ), - mpContext( rContext ) - { - } - void operator()( StringIteratorT, StringIteratorT ) const - { - ParserContext::OperandStack& rNodeStack( mpContext->maOperandStack ); - - if( rNodeStack.size() < 1 ) - throw ParseError( "Not enough arguments for unary operator" ); - - // retrieve arguments - ExpressionNodeSharedPtr pArg( rNodeStack.top() ); - rNodeStack.pop(); - - if( pArg->isConstant() ) // check for constness - rNodeStack.push( ExpressionNodeSharedPtr( new ConstantValueExpression( UnaryFunctionExpression::getValue( meFunct, pArg ) ) ) ); - else // push complex node, that calcs the value on demand - rNodeStack.push( ExpressionNodeSharedPtr( new UnaryFunctionExpression( meFunct, pArg ) ) ); - } -}; - -/** Implements a binary function over two ExpressionNodes - - @tpl Generator - Generator functor, to generate an ExpressionNode of - appropriate type - - */ -class BinaryFunctionFunctor -{ - const ExpressionFunct meFunct; - ParserContextSharedPtr mpContext; - -public: - - BinaryFunctionFunctor( const ExpressionFunct eFunct, const ParserContextSharedPtr& rContext ) : - meFunct( eFunct ), - mpContext( rContext ) - { - } - - void operator()( StringIteratorT, StringIteratorT ) const - { - ParserContext::OperandStack& rNodeStack( mpContext->maOperandStack ); - - if( rNodeStack.size() < 2 ) - throw ParseError( "Not enough arguments for binary operator" ); - - // retrieve arguments - ExpressionNodeSharedPtr pSecondArg( rNodeStack.top() ); - rNodeStack.pop(); - ExpressionNodeSharedPtr pFirstArg( rNodeStack.top() ); - rNodeStack.pop(); - - // create combined ExpressionNode - ExpressionNodeSharedPtr pNode = ExpressionNodeSharedPtr( new BinaryFunctionExpression( meFunct, pFirstArg, pSecondArg ) ); - // check for constness - if( pFirstArg->isConstant() && pSecondArg->isConstant() ) // call the operator() at pNode, store result in constant value ExpressionNode. - rNodeStack.push( ExpressionNodeSharedPtr( new ConstantValueExpression( (*pNode)() ) ) ); - else // push complex node, that calcs the value on demand - rNodeStack.push( pNode ); - } -}; - -class IfFunctor -{ - ParserContextSharedPtr mpContext; - -public : - - IfFunctor( const ParserContextSharedPtr& rContext ) : - mpContext( rContext ) - { - } - void operator()( StringIteratorT, StringIteratorT ) const - { - ParserContext::OperandStack& rNodeStack( mpContext->maOperandStack ); - - if( rNodeStack.size() < 3 ) - throw ParseError( "Not enough arguments for ternary operator" ); - - // retrieve arguments - ExpressionNodeSharedPtr pThirdArg( rNodeStack.top() ); - rNodeStack.pop(); - ExpressionNodeSharedPtr pSecondArg( rNodeStack.top() ); - rNodeStack.pop(); - ExpressionNodeSharedPtr pFirstArg( rNodeStack.top() ); - rNodeStack.pop(); - - // create combined ExpressionNode - ExpressionNodeSharedPtr pNode( new IfExpression( pFirstArg, pSecondArg, pThirdArg ) ); - // check for constness - if( pFirstArg->isConstant() && pSecondArg->isConstant() && pThirdArg->isConstant() ) - rNodeStack.push( ExpressionNodeSharedPtr( new ConstantValueExpression( (*pNode)() ) ) ); // call the operator() at pNode, store result in constant value ExpressionNode. - else - rNodeStack.push( pNode ); // push complex node, that calcs the value on demand - } -}; - -// Workaround for MSVC compiler anomaly (stack trashing) -// -// The default ureal_parser_policies implementation of parse_exp -// triggers a really weird error in MSVC7 (Version 13.00.9466), in -// that the real_parser_impl::parse_main() call of parse_exp() -// overwrites the frame pointer _on the stack_ (EBP of the calling -// function gets overwritten while lying on the stack). -// -// For the time being, our parser thus can only read the 1.0E10 -// notation, not the 1.0e10 one. -// -// TODO(F1): Also handle the 1.0e10 case here. -template< typename T > struct custom_real_parser_policies : public ::boost::spirit::ureal_parser_policies<T> -{ - template< typename ScannerT > - static typename ::boost::spirit::parser_result< ::boost::spirit::chlit<>, ScannerT >::type - parse_exp(ScannerT& scan) - { - // as_lower_d somehow breaks MSVC7 - return ::boost::spirit::ch_p('E').parse(scan); - } -}; - -/* This class implements the following grammar (more or - less literally written down below, only slightly - obfuscated by the parser actions): - - identifier = '$'|'pi'|'e'|'X'|'Y'|'Width'|'Height' - - function = 'abs'|'sqrt'|'sin'|'cos'|'tan'|'atan'|'acos'|'asin'|'exp'|'log' - - basic_expression = - number | - identifier | - function '(' additive_expression ')' | - '(' additive_expression ')' - - unary_expression = - '-' basic_expression | - basic_expression - - multiplicative_expression = - unary_expression ( ( '*' unary_expression )* | - ( '/' unary_expression )* ) - - additive_expression = - multiplicative_expression ( ( '+' multiplicative_expression )* | - ( '-' multiplicative_expression )* ) - - */ - -class ExpressionGrammar : public ::boost::spirit::grammar< ExpressionGrammar > -{ -public: - /** Create an arithmetic expression grammar - - @param rParserContext - Contains context info for the parser - */ - ExpressionGrammar( const ParserContextSharedPtr& rParserContext ) : - mpParserContext( rParserContext ) - { - } - - template< typename ScannerT > class definition - { - public: - // grammar definition - definition( const ExpressionGrammar& self ) - { - using ::boost::spirit::str_p; - using ::boost::spirit::range_p; - using ::boost::spirit::lexeme_d; - using ::boost::spirit::real_parser; - using ::boost::spirit::chseq_p; - - identifier = - str_p( "pi" )[ EnumFunctor(ENUM_FUNC_PI, self.getContext() ) ] - | str_p( "left" )[ EnumFunctor(ENUM_FUNC_LEFT, self.getContext() ) ] - | str_p( "top" )[ EnumFunctor(ENUM_FUNC_TOP, self.getContext() ) ] - | str_p( "right" )[ EnumFunctor(ENUM_FUNC_RIGHT, self.getContext() ) ] - | str_p( "bottom" )[ EnumFunctor(ENUM_FUNC_BOTTOM, self.getContext() ) ] - | str_p( "xstretch" )[ EnumFunctor(ENUM_FUNC_XSTRETCH, self.getContext() ) ] - | str_p( "ystretch" )[ EnumFunctor(ENUM_FUNC_YSTRETCH, self.getContext() ) ] - | str_p( "hasstroke" )[ EnumFunctor(ENUM_FUNC_HASSTROKE, self.getContext() ) ] - | str_p( "hasfill" )[ EnumFunctor(ENUM_FUNC_HASFILL, self.getContext() ) ] - | str_p( "width" )[ EnumFunctor(ENUM_FUNC_WIDTH, self.getContext() ) ] - | str_p( "height" )[ EnumFunctor(ENUM_FUNC_HEIGHT, self.getContext() ) ] - | str_p( "logwidth" )[ EnumFunctor(ENUM_FUNC_LOGWIDTH, self.getContext() ) ] - | str_p( "logheight" )[ EnumFunctor(ENUM_FUNC_LOGHEIGHT, self.getContext() ) ] - ; - - unaryFunction = - (str_p( "abs" ) >> '(' >> additiveExpression >> ')' )[ UnaryFunctionFunctor( UNARY_FUNC_ABS, self.getContext()) ] - | (str_p( "sqrt" ) >> '(' >> additiveExpression >> ')' )[ UnaryFunctionFunctor( UNARY_FUNC_SQRT, self.getContext()) ] - | (str_p( "sin" ) >> '(' >> additiveExpression >> ')' )[ UnaryFunctionFunctor( UNARY_FUNC_SIN, self.getContext()) ] - | (str_p( "cos" ) >> '(' >> additiveExpression >> ')' )[ UnaryFunctionFunctor( UNARY_FUNC_COS, self.getContext()) ] - | (str_p( "tan" ) >> '(' >> additiveExpression >> ')' )[ UnaryFunctionFunctor( UNARY_FUNC_TAN, self.getContext()) ] - | (str_p( "atan" ) >> '(' >> additiveExpression >> ')' )[ UnaryFunctionFunctor( UNARY_FUNC_ATAN, self.getContext()) ] - ; - - binaryFunction = - (str_p( "min" ) >> '(' >> additiveExpression >> ',' >> additiveExpression >> ')' )[ BinaryFunctionFunctor( BINARY_FUNC_MIN, self.getContext()) ] - | (str_p( "max" ) >> '(' >> additiveExpression >> ',' >> additiveExpression >> ')' )[ BinaryFunctionFunctor( BINARY_FUNC_MAX, self.getContext()) ] - | (str_p( "atan2") >> '(' >> additiveExpression >> ',' >> additiveExpression >> ')' )[ BinaryFunctionFunctor( BINARY_FUNC_ATAN2,self.getContext()) ] - ; - - ternaryFunction = - (str_p( "if" ) >> '(' >> additiveExpression >> ',' >> additiveExpression >> ',' >> additiveExpression >> ')' )[ IfFunctor( self.getContext() ) ] - ; - - funcRef_decl = - lexeme_d[ +( range_p('a','z') | range_p('A','Z') | range_p('0','9') ) ]; - - functionReference = - (str_p( "?" ) >> funcRef_decl )[ EnumFunctor( ENUM_FUNC_EQUATION, self.getContext() ) ]; - - modRef_decl = - lexeme_d[ +( range_p('0','9') ) ]; - - modifierReference = - (str_p( "$" ) >> modRef_decl )[ EnumFunctor( ENUM_FUNC_ADJUSTMENT, self.getContext() ) ]; - - basicExpression = - real_parser<double, custom_real_parser_policies<double> >()[ DoubleConstantFunctor(self.getContext()) ] - | identifier - | functionReference - | modifierReference - | unaryFunction - | binaryFunction - | ternaryFunction - | '(' >> additiveExpression >> ')' - ; - - unaryExpression = - ('-' >> basicExpression)[ UnaryFunctionFunctor( UNARY_FUNC_NEG, self.getContext()) ] - | basicExpression - ; - - multiplicativeExpression = - unaryExpression - >> *( ('*' >> unaryExpression)[ BinaryFunctionFunctor( BINARY_FUNC_MUL, self.getContext()) ] - | ('/' >> unaryExpression)[ BinaryFunctionFunctor( BINARY_FUNC_DIV, self.getContext()) ] - ) - ; - - additiveExpression = - multiplicativeExpression - >> *( ('+' >> multiplicativeExpression)[ BinaryFunctionFunctor( BINARY_FUNC_PLUS, self.getContext()) ] - | ('-' >> multiplicativeExpression)[ BinaryFunctionFunctor( BINARY_FUNC_MINUS, self.getContext()) ] - ) - ; - - BOOST_SPIRIT_DEBUG_RULE(additiveExpression); - BOOST_SPIRIT_DEBUG_RULE(multiplicativeExpression); - BOOST_SPIRIT_DEBUG_RULE(unaryExpression); - BOOST_SPIRIT_DEBUG_RULE(basicExpression); - BOOST_SPIRIT_DEBUG_RULE(unaryFunction); - BOOST_SPIRIT_DEBUG_RULE(binaryFunction); - BOOST_SPIRIT_DEBUG_RULE(ternaryFunction); - BOOST_SPIRIT_DEBUG_RULE(identifier); - } - - const ::boost::spirit::rule< ScannerT >& start() const - { - return additiveExpression; - } - - private: - // the constituents of the Spirit arithmetic expression grammar. - // For the sake of readability, without 'ma' prefix. - ::boost::spirit::rule< ScannerT > additiveExpression; - ::boost::spirit::rule< ScannerT > multiplicativeExpression; - ::boost::spirit::rule< ScannerT > unaryExpression; - ::boost::spirit::rule< ScannerT > basicExpression; - ::boost::spirit::rule< ScannerT > unaryFunction; - ::boost::spirit::rule< ScannerT > binaryFunction; - ::boost::spirit::rule< ScannerT > ternaryFunction; - ::boost::spirit::rule< ScannerT > funcRef_decl; - ::boost::spirit::rule< ScannerT > functionReference; - ::boost::spirit::rule< ScannerT > modRef_decl; - ::boost::spirit::rule< ScannerT > modifierReference; - ::boost::spirit::rule< ScannerT > identifier; - }; - - const ParserContextSharedPtr& getContext() const - { - return mpParserContext; - } - -private: - ParserContextSharedPtr mpParserContext; // might get modified during parsing -}; - -#ifdef BOOST_SPIRIT_SINGLE_GRAMMAR_INSTANCE -const ParserContextSharedPtr& getParserContext() -{ - static ParserContextSharedPtr lcl_parserContext( new ParserContext() ); - - // clear node stack (since we reuse the static object, that's - // the whole point here) - while( !lcl_parserContext->maOperandStack.empty() ) - lcl_parserContext->maOperandStack.pop(); - - return lcl_parserContext; -} -#endif - -} - -namespace EnhancedCustomShape { - - - -ExpressionNodeSharedPtr FunctionParser::parseFunction( const ::rtl::OUString& rFunction, const EnhancedCustomShape2d& rCustoShape ) -{ - // TODO(Q1): Check if a combination of the RTL_UNICODETOTEXT_FLAGS_* - // gives better conversion robustness here (we might want to map space - // etc. to ASCII space here) - const ::rtl::OString& rAsciiFunction( - rtl::OUStringToOString( rFunction, RTL_TEXTENCODING_ASCII_US ) ); - - StringIteratorT aStart( rAsciiFunction.getStr() ); - StringIteratorT aEnd( rAsciiFunction.getStr()+rAsciiFunction.getLength() ); - - ParserContextSharedPtr pContext; - -#ifdef BOOST_SPIRIT_SINGLE_GRAMMAR_INSTANCE - // static parser context, because the actual - // Spirit parser is also a static object - pContext = getParserContext(); -#else - pContext.reset( new ParserContext() ); -#endif - pContext->mpCustoShape = &rCustoShape; - - ExpressionGrammar aExpressionGrammer( pContext ); - const ::boost::spirit::parse_info<StringIteratorT> aParseInfo( - ::boost::spirit::parse( aStart, - aEnd, - aExpressionGrammer >> ::boost::spirit::end_p, - ::boost::spirit::space_p ) ); - OSL_DEBUG_ONLY(::std::cout.flush()); // needed to keep stdout and cout in sync - - - - // input fully congested by the parser? - if( !aParseInfo.full ) - throw ParseError( "EnhancedCustomShapeFunctionParser::parseFunction(): string not fully parseable" ); - - // parser's state stack now must contain exactly _one_ ExpressionNode, - // which represents our formula. - if( pContext->maOperandStack.size() != 1 ) - throw ParseError( "EnhancedCustomShapeFunctionParser::parseFunction(): incomplete or empty expression" ); - - - return pContext->maOperandStack.top(); -} - - -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx b/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx deleted file mode 100644 index 0714bf2a56..0000000000 --- a/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx +++ /dev/null @@ -1,8276 +0,0 @@ -/* -*- 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. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_svx.hxx" -#include "svx/EnhancedCustomShapeGeometry.hxx" -#include <com/sun/star/drawing/EnhancedCustomShapeGluePointType.hpp> -/* -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 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 ), - (SvxMSDffHandles*)mso_sptHandles, sizeof( mso_sptHandles ) / sizeof( SvxMSDffHandles ) -}; -*/ - -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_sptDefault7200[] = -{ - 1, 7200 -}; -static const sal_Int32 mso_sptDefault8100[] = -{ - 1, 8100 -}; -static const sal_Int32 mso_sptDefault9600[] = -{ - 1, 9600 -}; -static const sal_Int32 mso_sptDefault10800[] = -{ - 1, 10800 -}; -static const sal_Int32 mso_sptDefault12000[] = -{ - 1, 12000 -}; -static const sal_Int32 mso_sptDefault13500[] = -{ - 1, 13500 -}; -static const sal_Int32 mso_sptDefault16200[] = -{ - 1, 16200 -}; -static const sal_Int32 mso_sptDefault16200and5400[] = -{ - 2, 16200, 5400 -}; - -static const SvxMSDffVertPair mso_sptArcVert[] = -{ - { 0, 0 }, { 21600, 21600 }, { 3 MSO_I, 1 MSO_I }, { 7 MSO_I, 5 MSO_I }, { 10800, 10800 }, - { 0, 0 }, { 21600, 21600 }, { 3 MSO_I, 1 MSO_I }, { 7 MSO_I, 5 MSO_I } -}; -static const sal_uInt16 mso_sptArcSegm[] = -{ - 0xa504, 0xab00, 0x0001, 0x6001, 0x8000, - 0xa504, 0xaa00, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptArcCalc[] = -{ - { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } }, - { 0x2000, { 0x400, 10800, 0 } }, - { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } }, - { 0x2000, { 0x402, 10800, 0 } }, - { 0x4009, { 10800, DFF_Prop_adjust2Value, 0 } }, - { 0x2000, { 0x404, 10800, 0 } }, - { 0x400a, { 10800, DFF_Prop_adjust2Value, 0 } }, - { 0x2000, { 0x406, 10800, 0 } } -}; -static const sal_Int32 mso_sptArcDefault[] = -{ - 2, 270, 0 -}; -static const SvxMSDffVertPair mso_sptStandardGluePoints[] = -{ - { 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 21600, 10800 } -}; -static const SvxMSDffHandle mso_sptArcHandle[] = -{ - { MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE, - 10800, 0x100, 10800, 10800, 10800, 10800, 0x80000000, 0x7fffffff }, - { MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE, - 10800, 0x101, 10800, 10800, 10800, 10800, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoArc = -{ - (SvxMSDffVertPair*)mso_sptArcVert, sizeof( mso_sptArcVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptArcSegm, sizeof( mso_sptArcSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptArcCalc, sizeof( mso_sptArcCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptArcDefault, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptArcHandle, sizeof( mso_sptArcHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -static const SvxMSDffVertPair mso_sptTextSimpleVert[] = -{ - { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 } -}; -static const mso_CustomShape msoTextSimple = -{ - (SvxMSDffVertPair*)mso_sptTextSimpleVert, sizeof( mso_sptTextSimpleVert ) / sizeof( SvxMSDffVertPair ), - NULL, 0, - NULL, 0, - NULL, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptRectangleVert[] = -{ - { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 } -}; -static const mso_CustomShape msoRectangle = -{ - (SvxMSDffVertPair*)mso_sptRectangleVert, sizeof( mso_sptRectangleVert ) / sizeof( SvxMSDffVertPair ), - NULL, 0, - NULL, 0, - NULL, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptRoundRectangleVert[] = // adj value 0 -> 10800 -{ - { 7 MSO_I, 0 }, { 0, 8 MSO_I }, { 0, 9 MSO_I }, { 7 MSO_I, 21600 }, - { 10 MSO_I, 21600 }, { 21600, 9 MSO_I }, { 21600, 8 MSO_I }, { 10 MSO_I, 0 } -}; -static const sal_uInt16 mso_sptRoundRectangleSegm[] = -{ - 0x4000, 0xa701, 0x0001, 0xa801, 0x0001, 0xa701, 0x0001, 0xa801, 0x6000, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptRoundRectangleCalc[] = -{ - { 0x000e, { 0, 45, 0 } }, - { 0x6009, { DFF_Prop_adjustValue, 0x400, 0 } }, - { 0x2001, { 0x401, 3163, 7636 } }, - { 0x6000, { DFF_Prop_geoLeft, 0x402, 0 } }, - { 0x6000, { DFF_Prop_geoTop, 0x402, 0 } }, - { 0xa000, { DFF_Prop_geoRight, 0, 0x402 } }, - { 0xa000, { DFF_Prop_geoBottom, 0, 0x402 } }, - { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } }, - { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } }, - { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } }, - { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } } -}; -static const SvxMSDffTextRectangles mso_sptRoundRectangleTextRect[] = -{ - { { 3 MSO_I, 4 MSO_I }, { 5 MSO_I, 6 MSO_I } } -}; -static const SvxMSDffHandle mso_sptRoundRectangleHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED, - 0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoRoundRectangle = -{ - (SvxMSDffVertPair*)mso_sptRoundRectangleVert, sizeof( mso_sptRoundRectangleVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptRoundRectangleSegm, sizeof( mso_sptRoundRectangleSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptRoundRectangleCalc, sizeof( mso_sptRoundRectangleCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault3600, - (SvxMSDffTextRectangles*)mso_sptRoundRectangleTextRect, sizeof( mso_sptRoundRectangleTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 10800, 10800, - NULL, 0, - (SvxMSDffHandle*)mso_sptRoundRectangleHandle, sizeof( mso_sptRoundRectangleHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -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 ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptEllipseVert[] = -{ - { 10800, 10800 }, { 10800, 10800 }, { 0, 360 } -}; -static const sal_uInt16 mso_sptEllipseSegm[] = -{ - 0xa203, 0x6000, 0x8000 -}; -static const SvxMSDffTextRectangles mso_sptEllipseTextRect[] = -{ - { { 3163, 3163 }, { 18437, 18437 } } -}; -static const SvxMSDffVertPair mso_sptEllipseGluePoints[] = -{ - { 10800, 0 }, { 3163, 3163 }, { 0, 10800 }, { 3163, 18437 }, { 10800, 21600 }, { 18437, 18437 }, { 21600, 10800 }, { 18437, 3163 } -}; -static const mso_CustomShape msoEllipse = -{ - (SvxMSDffVertPair*)mso_sptEllipseVert, sizeof( mso_sptEllipseVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptEllipseSegm, sizeof( mso_sptEllipseSegm ) >> 1, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptEllipseTextRect, sizeof( mso_sptEllipseTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -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 SvxMSDffHandle mso_sptParallelogramHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 0, 10800, 10800, 0, 21600, 0x80000000, 0x7fffffff } -}; -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 ), - (SvxMSDffHandle*)mso_sptParallelogramHandle, sizeof( mso_sptParallelogramHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -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 ), - NULL, 0 // handles -}; - -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 SvxMSDffHandle mso_sptTrapezoidHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 1, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff } -}; -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 ), - (SvxMSDffHandle*)mso_sptTrapezoidHandle, sizeof( mso_sptTrapezoidHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -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 SvxMSDffHandle mso_sptOctagonHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff } -}; -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, - 10800, 10800, - (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptOctagonHandle, sizeof( mso_sptOctagonHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -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 SvxMSDffHandle mso_sptIsocelesTriangleHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 0, 10800, 10800, 0, 21600, 0x80000000, 0x7fffffff } -}; -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 ), - (SvxMSDffHandle*)mso_sptIsocelesTriangleHandle, sizeof( mso_sptIsocelesTriangleHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -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 -}; -static const SvxMSDffCalculationData mso_sptHexagonCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, - { 0x2001, { DFF_Prop_adjustValue, 100, 234 } }, - { 0x2000, { 0x402, 1700, 0 } }, - { 0x8000, { 21600, 0, 0x403 } } -}; -static const SvxMSDffTextRectangles mso_sptHexagonTextRect[] = -{ - { { 3 MSO_I, 3 MSO_I }, { 4 MSO_I, 4 MSO_I } } -}; -static const SvxMSDffHandle mso_sptHexagonHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoHexagon = -{ - (SvxMSDffVertPair*)mso_sptHexagonVert, sizeof( mso_sptHexagonVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptHexagonSegm, sizeof( mso_sptHexagonSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptHexagonCalc, sizeof( mso_sptHexagonCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault5400, - (SvxMSDffTextRectangles*)mso_sptHexagonTextRect, sizeof( mso_sptHexagonTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptHexagonHandle, sizeof( mso_sptHexagonHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -static const SvxMSDffVertPair mso_sptPentagonVert[] = -{ - { 10800, 0 }, { 0, 8260 }, { 4230, 21600 }, { 17370, 21600 }, - { 21600, 8260 }, { 10800, 0 } -}; -static const SvxMSDffTextRectangles mso_sptPentagonTextRect[] = -{ - { { 4230, 5080 }, { 17370, 21600 } } -}; -static const SvxMSDffVertPair mso_sptPentagonGluePoints[] = -{ - { 10800, 0 }, { 0, 8260 }, { 4230, 21600 }, { 10800, 21600 }, - { 17370, 21600 }, { 21600, 8260 } -}; -static const mso_CustomShape msoPentagon = -{ - (SvxMSDffVertPair*)mso_sptPentagonVert, sizeof( mso_sptPentagonVert ) / sizeof( SvxMSDffVertPair ), - NULL, 0, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptPentagonTextRect, sizeof( mso_sptPentagonTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptPentagonGluePoints, sizeof( mso_sptPentagonGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptPlusVert[] = // adjustment1 : 0 - 10800 -{ - { 1 MSO_I, 0 }, { 2 MSO_I, 0 }, { 2 MSO_I, 1 MSO_I }, { 21600, 1 MSO_I }, - { 21600, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 21600 }, { 1 MSO_I, 21600 }, - { 1 MSO_I, 3 MSO_I }, { 0, 3 MSO_I }, { 0, 1 MSO_I }, { 1 MSO_I, 1 MSO_I }, { 1 MSO_I, 0 } -}; -static const SvxMSDffCalculationData mso_sptPlusCalc[] = -{ - { 0x2001, { DFF_Prop_adjustValue, 10799, 10800 } }, - { 0x2000, { 0x400, 0, 0 } }, - { 0xa000, { DFF_Prop_geoRight, 0, 0x400 } }, - { 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } } -}; -static const SvxMSDffTextRectangles mso_sptPlusTextRect[] = -{ - { { 1 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I } } -}; -static const SvxMSDffHandle mso_sptPlusHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED, - 0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoPlus = -{ - (SvxMSDffVertPair*)mso_sptPlusVert, sizeof( mso_sptPlusVert ) / sizeof( SvxMSDffVertPair ), - NULL, 0, - (SvxMSDffCalculationData*)mso_sptPlusCalc, sizeof( mso_sptPlusCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault5400, - (SvxMSDffTextRectangles*)mso_sptPlusTextRect, sizeof( mso_sptPlusTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 10800, 10800, - (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptPlusHandle, sizeof( mso_sptPlusHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -static const SvxMSDffVertPair mso_sptCanVert[] = // adjustment1 : 0 - 10800 -{ - { 44, 0 }, - { 20, 0 }, { 0, 2 MSO_I }, { 0, 0 MSO_I }, // ccp - { 0, 3 MSO_I }, // p - { 0, 4 MSO_I }, { 20, 21600 }, { 44, 21600 }, // ccp - { 68, 21600 }, { 88, 4 MSO_I }, { 88, 3 MSO_I }, // ccp - { 88, 0 MSO_I }, // p - { 88, 2 MSO_I }, { 68, 0 }, { 44, 0 }, // ccp - { 44, 0 }, // p - { 20, 0 }, { 0, 2 MSO_I }, { 0, 0 MSO_I }, // ccp - { 0, 5 MSO_I }, { 20, 6 MSO_I }, { 44, 6 MSO_I }, // ccp - { 68, 6 MSO_I },{ 88, 5 MSO_I }, { 88, 0 MSO_I }, // ccp - { 88, 2 MSO_I },{ 68, 0 }, { 44, 0 } // ccp -}; -static const sal_uInt16 mso_sptCanSegm[] = -{ - 0x4000, 0x2001, 0x0001, 0x2002, 0x0001, 0x2001, 0x6001, 0x8000, - 0x4000, 0x2004, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptCanCalc[] = -{ - { 0x2001, { DFF_Prop_adjustValue, 2, 4 } }, // 1/4 - { 0x2001, { 0x0400, 6, 11 } }, - { 0xa000, { 0x0400, 0, 0x0401 } }, - { 0x8000, { 21600, 0, 0x0400 } }, - { 0x6000, { 0x0403, 0x0401, 0 } }, - { 0x6000, { 0x0400, 0x0401, 0 } }, - { 0x2001, { DFF_Prop_adjustValue, 2, 2 } }, - { 0x0000, { 44, 0, 0 } } -}; -static const SvxMSDffTextRectangles mso_sptCanTextRect[] = -{ - { { 0, 6 MSO_I }, { 88, 3 MSO_I } } -}; -static const SvxMSDffVertPair mso_sptCanGluePoints[] = -{ - { 44, 6 MSO_I }, { 44, 0 }, { 0, 10800 }, { 44, 21600 }, { 88, 10800 } -}; -static const SvxMSDffHandle mso_sptCanHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 7 + 3, 0x100, 44, 10800, 0x80000000, 0x7fffffff, 0, 10800 } -}; -static const mso_CustomShape msoCan = -{ - (SvxMSDffVertPair*)mso_sptCanVert, sizeof( mso_sptCanVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptCanSegm, sizeof( mso_sptCanSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptCanCalc, sizeof( mso_sptCanCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault5400, - (SvxMSDffTextRectangles*)mso_sptCanTextRect, sizeof( mso_sptCanTextRect ) / sizeof( SvxMSDffTextRectangles ), - 88, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptCanGluePoints, sizeof( mso_sptCanGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptCanHandle, sizeof( mso_sptCanHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -static const SvxMSDffVertPair mso_sptArrowVert[] = // adjustment1: x 0 - 21600 -{ // adjustment2: y 0 - 10800 - { 0, 0 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 1 MSO_I, 0 }, { 21600, 10800 }, - { 1 MSO_I, 21600 }, { 1 MSO_I, 2 MSO_I }, { 0, 2 MSO_I } -}; -static const sal_uInt16 mso_sptArrowSegm[] = -{ - 0x4000, 0x0006, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptArrowCalc[] = -{ - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } }, - { 0x8000, { 21600, 0, 0x401 } }, - { 0x6001, { 0x403, 0x400, 10800 } }, - { 0x6000, { 0x401, 0x404, 0 } }, - { 0x6001, { 0x401, 0x400, 10800 } }, - { 0xa000, { 0x401, 0, 0x406 } } -}; -static const SvxMSDffTextRectangles mso_sptArrowTextRect[] = -{ - { { 0, 0 MSO_I }, { 5 MSO_I, 2 MSO_I } } -}; -static const SvxMSDffHandle mso_sptArrowHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 0x101, 10800, 10800, 0, 21600, 0, 10800 } -}; -static const mso_CustomShape msoArrow = -{ - (SvxMSDffVertPair*)mso_sptArrowVert, sizeof( mso_sptArrowVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptArrowSegm, sizeof( mso_sptArrowSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptArrowCalc, sizeof( mso_sptArrowCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault16200and5400, - (SvxMSDffTextRectangles*)mso_sptArrowTextRect, sizeof( mso_sptArrowTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptArrowHandle, sizeof( mso_sptArrowHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -static const SvxMSDffVertPair mso_sptLeftArrowVert[] = // adjustment1: x 0 - 21600 -{ // adjustment2: y 0 - 10800 - { 21600, 0 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 1 MSO_I, 0 }, { 0, 10800 }, - { 1 MSO_I, 21600 }, { 1 MSO_I, 2 MSO_I }, { 21600, 2 MSO_I } -}; -static const sal_uInt16 mso_sptLeftArrowSegm[] = -{ - 0x4000, 0x0006, 0x6001, 0x8000 -}; -static const sal_Int32 mso_sptLeftArrowDefault[] = -{ - 2, 5400, 5400 -}; -static const SvxMSDffTextRectangles mso_sptLeftArrowTextRect[] = -{ - { { 7 MSO_I, 0 MSO_I }, { 21600, 2 MSO_I } } -}; -static const SvxMSDffHandle mso_sptLeftArrowHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 0x101, 10800, 10800, 0, 21600, 0, 10800 } -}; -static const mso_CustomShape msoLeftArrow = -{ - (SvxMSDffVertPair*)mso_sptLeftArrowVert, sizeof( mso_sptLeftArrowVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptLeftArrowSegm, sizeof( mso_sptLeftArrowSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptArrowCalc, sizeof( mso_sptArrowCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptLeftArrowDefault, - (SvxMSDffTextRectangles*)mso_sptLeftArrowTextRect, sizeof( mso_sptLeftArrowTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptLeftArrowHandle, sizeof( mso_sptLeftArrowHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -static const SvxMSDffVertPair mso_sptDownArrowVert[] = // adjustment1: x 0 - 21600 -{ // adjustment2: y 0 - 10800 - { 0 MSO_I, 0 }, { 0 MSO_I, 1 MSO_I }, { 0, 1 MSO_I }, { 10800, 21600 }, - { 21600, 1 MSO_I }, { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 0 } -}; -static const sal_uInt16 mso_sptDownArrowSegm[] = -{ - 0x4000, 0x0006, 0x6001, 0x8000 -}; -static const SvxMSDffTextRectangles mso_sptDownArrowTextRect[] = -{ - { { 0 MSO_I, 0 }, { 2 MSO_I, 5 MSO_I } } -}; -static const SvxMSDffHandle mso_sptDownArrowHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x101, 0x100, 10800, 10800, 0, 10800, 0, 21600 } -}; -static const mso_CustomShape msoDownArrow = -{ - (SvxMSDffVertPair*)mso_sptDownArrowVert, sizeof( mso_sptDownArrowVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptDownArrowSegm, sizeof( mso_sptDownArrowSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptArrowCalc, sizeof( mso_sptArrowCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault16200and5400, - (SvxMSDffTextRectangles*)mso_sptDownArrowTextRect, sizeof( mso_sptDownArrowTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptDownArrowHandle, sizeof( mso_sptDownArrowHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -static const SvxMSDffVertPair mso_sptUpArrowVert[] = // adjustment1: x 0 - 21600 -{ // adjustment2: y 0 - 10800 - { 0 MSO_I, 21600 }, { 0 MSO_I, 1 MSO_I }, { 0, 1 MSO_I }, { 10800, 0 }, - { 21600, 1 MSO_I }, { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 21600 } -}; -static const sal_uInt16 mso_sptUpArrowSegm[] = -{ - 0x4000, 0x0006, 0x6001, 0x8000 -}; -static const sal_Int32 mso_sptUpArrowDefault[] = -{ - 2, 5400, 5400 -}; -static const SvxMSDffTextRectangles mso_sptUpArrowTextRect[] = -{ - { { 0 MSO_I, 7 MSO_I }, { 2 MSO_I, 21600 } } -}; -static const SvxMSDffHandle mso_sptUpArrowHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x101, 0x100, 10800, 10800, 0, 10800, 0, 21600 } -}; -static const mso_CustomShape msoUpArrow = -{ - (SvxMSDffVertPair*)mso_sptUpArrowVert, sizeof( mso_sptUpArrowVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptUpArrowSegm, sizeof( mso_sptUpArrowSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptArrowCalc, sizeof( mso_sptArrowCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptUpArrowDefault, - (SvxMSDffTextRectangles*)mso_sptUpArrowTextRect, sizeof( mso_sptUpArrowTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptUpArrowHandle, sizeof( mso_sptUpArrowHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -static const SvxMSDffVertPair mso_sptLeftRightArrowVert[] = // adjustment1: x 0 - 10800 -{ // adjustment2: y 0 - 10800 - { 0, 10800 }, { 0 MSO_I, 0 }, { 0 MSO_I, 1 MSO_I }, { 2 MSO_I, 1 MSO_I }, - { 2 MSO_I, 0 }, { 21600, 10800 }, { 2 MSO_I, 21600 }, { 2 MSO_I, 3 MSO_I }, - { 0 MSO_I, 3 MSO_I }, { 0 MSO_I, 21600 } -}; -static const sal_uInt16 mso_sptLeftRightArrowSegm[] = -{ - 0x4000, 0x0009, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptDoubleArrowCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, - { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, - { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } }, - { 0x8000, { 10800, 0, DFF_Prop_adjust2Value } }, - { 0x6001, { DFF_Prop_adjustValue, 0x404, 10800 } }, - { 0x8000, { 21600, 0, 0x405 } }, - { 0x8000, { 10800, 0, DFF_Prop_adjustValue } }, - { 0x6001, { DFF_Prop_adjust2Value, 0x407, 10800 } }, - { 0x8000, { 21600, 0, 0x408 } } -}; -static const sal_Int32 mso_sptLeftRightArrowDefault[] = -{ - 2, 4300, 5400 -}; -static const SvxMSDffTextRectangles mso_sptLeftRightArrowTextRect[] = -{ - { { 5 MSO_I, 1 MSO_I }, { 6 MSO_I, 3 MSO_I } } -}; -static const SvxMSDffHandle mso_sptLeftRightArrowHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 0x101, 10800, 10800, 0, 10800, 0, 10800 } -}; -static const mso_CustomShape msoLeftRightArrow = -{ - (SvxMSDffVertPair*)mso_sptLeftRightArrowVert, sizeof( mso_sptLeftRightArrowVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptLeftRightArrowSegm, sizeof( mso_sptLeftRightArrowSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptDoubleArrowCalc, sizeof( mso_sptDoubleArrowCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptLeftRightArrowDefault, - (SvxMSDffTextRectangles*)mso_sptLeftRightArrowTextRect, sizeof( mso_sptLeftRightArrowTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptLeftRightArrowHandle, sizeof( mso_sptLeftRightArrowHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -static const SvxMSDffVertPair mso_sptUpDownArrowVert[] = // adjustment1: x 0 - 10800 -{ // adjustment2: y 0 - 10800 - { 0, 1 MSO_I }, { 10800, 0 }, { 21600, 1 MSO_I }, { 2 MSO_I, 1 MSO_I }, - { 2 MSO_I, 3 MSO_I }, { 21600, 3 MSO_I }, { 10800, 21600 }, { 0, 3 MSO_I }, - { 0 MSO_I, 3 MSO_I }, { 0 MSO_I, 1 MSO_I } -}; -static const sal_uInt16 mso_sptUpDownArrowSegm[] = -{ - 0x4000, 0x0009, 0x6001, 0x8000 -}; -static const sal_Int32 mso_sptUpDownArrowDefault[] = -{ - 2, 5400, 4300 -}; -static const SvxMSDffTextRectangles mso_sptUpDownArrowTextRect[] = -{ - { { 0 MSO_I, 8 MSO_I }, { 2 MSO_I, 9 MSO_I } } -}; -static const SvxMSDffHandle mso_sptUpDownArrowHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 0x101, 10800, 10800, 0, 10800, 0, 10800 } -}; -static const mso_CustomShape msoUpDownArrow = -{ - (SvxMSDffVertPair*)mso_sptUpDownArrowVert, sizeof( mso_sptUpDownArrowVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptUpDownArrowSegm, sizeof( mso_sptUpDownArrowSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptDoubleArrowCalc, sizeof( mso_sptDoubleArrowCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptUpDownArrowDefault, - (SvxMSDffTextRectangles*)mso_sptUpDownArrowTextRect, sizeof( mso_sptUpDownArrowTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptUpDownArrowHandle, sizeof( mso_sptUpDownArrowHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -static const SvxMSDffVertPair mso_sptQuadArrowVert[] = // adjustment1: x 0 - 10800, adjustment2: x 0 - 10800 -{ // adjustment3: y 0 - 10800 - { 0, 10800 }, { 0 MSO_I, 1 MSO_I }, { 0 MSO_I, 2 MSO_I }, { 2 MSO_I, 2 MSO_I }, - { 2 MSO_I, 0 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 10800, 0 }, { 3 MSO_I, 0 MSO_I }, - { 4 MSO_I, 0 MSO_I }, { 4 MSO_I, 2 MSO_I }, { 5 MSO_I, 2 MSO_I }, { 5 MSO_I, 1 MSO_I }, - { 21600, 10800 }, { 5 MSO_I, 3 MSO_I }, { 5 MSO_I, 4 MSO_I }, { 4 MSO_I, 4 MSO_I }, - { 4 MSO_I, 5 MSO_I }, { 3 MSO_I, 5 MSO_I }, { 10800, 21600 }, { 1 MSO_I, 5 MSO_I }, - { 2 MSO_I, 5 MSO_I }, { 2 MSO_I, 4 MSO_I }, { 0 MSO_I, 4 MSO_I }, { 0 MSO_I, 3 MSO_I } -}; -static const sal_uInt16 mso_sptQuadArrowSegm[] = -{ - 0x4000, 0x0017, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptQuadArrowCalc[] = -{ - { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } }, - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, - { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, - { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } }, - { 0x8000, { 21600, 0, DFF_Prop_adjust3Value } } -}; -static const sal_Int32 mso_sptQuadArrowDefault[] = -{ - 3, 6500, 8600, 4300 -}; -static const SvxMSDffTextRectangles mso_sptQuadArrowTextRect[] = // todo -{ - { { 0, 0 }, { 21600, 21600 } } -}; -static const SvxMSDffHandle mso_sptQuadArrowHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL, - 0x101, 0x102, 10800, 10800, 0x100, 10800, 0, 0x100 }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL, - 0x100, 0, 10800, 10800, 0x102, 0x101, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoQuadArrow = -{ - (SvxMSDffVertPair*)mso_sptQuadArrowVert, sizeof( mso_sptQuadArrowVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptQuadArrowSegm, sizeof( mso_sptQuadArrowSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptQuadArrowCalc, sizeof( mso_sptQuadArrowCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptQuadArrowDefault, - (SvxMSDffTextRectangles*)mso_sptQuadArrowTextRect, sizeof( mso_sptQuadArrowTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptQuadArrowHandle, sizeof( mso_sptQuadArrowHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -static const SvxMSDffVertPair mso_sptLeftRightUpArrowVert[] = // adjustment1: x 0 - 10800, adjustment2: x 0 - 10800 -{ // adjustment3: y 0 - 21600 - { 10800, 0 }, { 3 MSO_I, 2 MSO_I }, { 4 MSO_I, 2 MSO_I }, { 4 MSO_I, 1 MSO_I }, - { 5 MSO_I, 1 MSO_I }, { 5 MSO_I, 0 MSO_I }, { 21600, 10800 }, { 5 MSO_I, 3 MSO_I }, - { 5 MSO_I, 4 MSO_I }, { 2 MSO_I, 4 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0, 10800 }, - { 2 MSO_I, 0 MSO_I }, { 2 MSO_I, 1 MSO_I }, { 1 MSO_I, 1 MSO_I }, { 1 MSO_I, 2 MSO_I }, - { 0 MSO_I, 2 MSO_I } -}; -static const sal_uInt16 mso_sptLeftRightUpArrowSegm[] = -{ - 0x4000, 0x0010, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptLeftRightUpArrowCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 0 - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, // 1 - { 0x6001, { 0x0403, DFF_Prop_adjust3Value, 21600 } }, // 2 - { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, // 3 - { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } }, // 4 - { 0x8000, { 21600, 0, 0x0402 } } // 5 -}; -static const sal_Int32 mso_sptLeftRightUpArrowDefault[] = -{ - 3, 6500, 8600, 6200 -}; -static const SvxMSDffTextRectangles mso_sptLeftRightUpArrowTextRect[] = // todo -{ - { { 0, 0 }, { 21600, 21600 } } -}; -static const SvxMSDffHandle mso_sptLeftRightUpArrowHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL, - 0x101, 0x102, 10800, 10800, 0x100, 10800, 0, 0x100 }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL, - 0x100, 0, 10800, 10800, 0x102, 0x101, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoLeftRightUpArrow = -{ - (SvxMSDffVertPair*)mso_sptLeftRightUpArrowVert, sizeof( mso_sptLeftRightUpArrowVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptLeftRightUpArrowSegm, sizeof( mso_sptLeftRightUpArrowSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptLeftRightUpArrowCalc, sizeof( mso_sptLeftRightUpArrowCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptLeftRightUpArrowDefault, - (SvxMSDffTextRectangles*)mso_sptLeftRightUpArrowTextRect, sizeof( mso_sptLeftRightUpArrowTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptLeftRightUpArrowHandle, sizeof( mso_sptLeftRightUpArrowHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -static const SvxMSDffVertPair mso_sptBentArrowVert[] = // adjustment1 : x 12427 - 21600 -{ // adjustment2 : y 0 - 6079 - { 0, 21600 }, { 0, 12160 }, { 12427, 1 MSO_I }, { 0 MSO_I, 1 MSO_I }, - { 0 MSO_I, 0 }, { 21600, 6079 }, { 0 MSO_I, 12158 }, { 0 MSO_I, 2 MSO_I }, - { 12427, 2 MSO_I }, { 4 MSO_I, 12160 }, { 4 MSO_I, 21600 } -}; -static const sal_uInt16 mso_sptBentArrowSegm[] = -{ - 0x4000, 0x0001, 0xa801, 0x0006, 0xa701, 0x0001, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptBentArrowCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, - { 0x8000, { 12158, 0, DFF_Prop_adjust2Value } }, - { 0x8000, { 6079, 0, DFF_Prop_adjust2Value } }, - { 0x2001, { 0x0403, 2, 1 } } -}; -static const sal_Int32 mso_sptBentArrowDefault[] = -{ - 2, 15100, 2900 -}; -static const SvxMSDffTextRectangles mso_sptBentArrowTextRect[] = // todo -{ - { { 0, 0 }, { 21600, 21600 } } -}; -static const SvxMSDffHandle mso_sptBentArrowHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 0x101, 10800, 10800, 12427, 21600, 0, 6079 } -}; -static const mso_CustomShape msoBentArrow = -{ - (SvxMSDffVertPair*)mso_sptBentArrowVert, sizeof( mso_sptBentArrowVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptBentArrowSegm, sizeof( mso_sptBentArrowSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptBentArrowCalc, sizeof( mso_sptBentArrowCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptBentArrowDefault, - (SvxMSDffTextRectangles*)mso_sptBentArrowTextRect, sizeof( mso_sptBentArrowTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptBentArrowHandle, sizeof( mso_sptBentArrowHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -static const SvxMSDffVertPair mso_sptUturnArrowVert[] = -{ - { 0, 21600 }, { 0, 8550 }, // pp - { 0, 3540 }, { 4370, 0 }, { 9270, 0 }, // ccp - { 13890, 0 }, { 18570, 3230 }, { 18600, 8300 }, // ccp - { 21600, 8300 }, { 15680, 14260 }, { 9700, 8300 }, { 12500, 8300 }, // pppp - { 12320, 6380 }, { 10870, 5850 }, { 9320, 5850 }, // ccp - { 7770, 5850 }, { 6040, 6410 }, { 6110, 8520 }, // ccp - { 6110, 21600 } -}; -static const sal_uInt16 mso_sptUturnArrowSegm[] = -{ - 0x4000, 0x0001, 0x2002, 0x0004, 0x2002, 0x0001, 0x6000, 0x8000 -}; -static const SvxMSDffTextRectangles mso_sptUturnArrowTextRect[] = -{ - { { 0, 8280 }, { 6110, 21600 } } -}; -static const mso_CustomShape msoUturnArrow = -{ - (SvxMSDffVertPair*)mso_sptUturnArrowVert, sizeof( mso_sptUturnArrowVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptUturnArrowSegm, sizeof( mso_sptUturnArrowSegm ) >> 1, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptUturnArrowTextRect, sizeof( mso_sptUturnArrowTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptLeftUpArrowVert[] = // adjustment1 : x 0 - 21600, adjustment2 : x 0 - 21600 -{ // adjustment3 : y 0 - 21600 - { 0, 5 MSO_I }, { 2 MSO_I, 0 MSO_I }, { 2 MSO_I, 7 MSO_I }, { 7 MSO_I, 7 MSO_I }, - { 7 MSO_I, 2 MSO_I }, { 0 MSO_I, 2 MSO_I }, { 5 MSO_I, 0 }, { 21600, 2 MSO_I }, - { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 1 MSO_I }, { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 21600 } -}; -static const sal_uInt16 mso_sptLeftUpArrowSegm[] = -{ - 0x4000, 0x000b, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptLeftUpArrowCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 0 - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, // 1 - { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } }, // 2 - { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, // 3 - { 0x2001, { 0x0403, 1, 2 } }, // 4 - { 0x6000, { DFF_Prop_adjustValue, 0x0404, 0 } }, // 5 - { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } }, // 6 - { 0x6000, { DFF_Prop_adjustValue, 0x0406, 0 } }, // 7 - { 0x8000, { 21600, 0, 0x406 } }, // 8 - { 0xa000, { 0x408, 0, 0x406 } } // 9 -}; -static const sal_Int32 mso_sptLeftUpArrowDefault[] = -{ - 3, 9340, 18500, 6200 -}; -static const SvxMSDffTextRectangles mso_sptLeftUpArrowTextRect[] = -{ - { { 2 MSO_I, 7 MSO_I }, { 1 MSO_I, 1 MSO_I } }, - { { 7 MSO_I, 2 MSO_I }, { 1 MSO_I, 1 MSO_I } } -}; -static const SvxMSDffHandle mso_sptLeftUpArrowHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL, - 0x101, 0x102, 10800, 10800, 3 + 5, 21600, 0, 0x100 }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL, - 0x100, 0, 10800, 10800, 0x102, 3 + 9, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoLeftUpArrow = -{ - (SvxMSDffVertPair*)mso_sptLeftUpArrowVert, sizeof( mso_sptLeftUpArrowVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptLeftUpArrowSegm, sizeof( mso_sptLeftUpArrowSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptLeftUpArrowCalc, sizeof( mso_sptLeftUpArrowCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptLeftUpArrowDefault, - (SvxMSDffTextRectangles*)mso_sptLeftUpArrowTextRect, sizeof( mso_sptLeftUpArrowTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptLeftUpArrowHandle, sizeof( mso_sptLeftUpArrowHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -static const SvxMSDffVertPair mso_sptBentUpArrowVert[] = // adjustment1 : x 0 - 21600, adjustment2 : x 0 - 21600 -{ // adjustment3 : y 0 - 21600 - { 0, 8 MSO_I }, { 7 MSO_I, 8 MSO_I }, { 7 MSO_I, 2 MSO_I }, { 0 MSO_I, 2 MSO_I }, - { 5 MSO_I, 0 }, { 21600, 2 MSO_I }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 21600 }, - { 0, 21600 } -}; -static const sal_uInt16 mso_sptBentUpArrowSegm[] = -{ - 0x4000, 0x0008, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptBentUpArrowCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 0 - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, // 1 - { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } }, // 2 - { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, // 3 - { 0x2001, { 0x0403, 1, 2 } }, // 4 - { 0x6000, { DFF_Prop_adjustValue, 0x0404, 0 } }, // 5 - { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } }, // 6 - { 0x6000, { DFF_Prop_adjustValue, 0x0406, 0 } }, // 7 - { 0x6000, { 0x0407, 0x0406, 0 } }, // 8 - { 0x8000, { 21600, 0, 0x406 } }, // 9 - { 0xa000, { 0x409, 0, 0x406 } } // a -}; -static const sal_Int32 mso_sptBentUpArrowDefault[] = -{ - 3, 9340, 18500, 7200 -}; -static const SvxMSDffTextRectangles mso_sptBentUpArrowTextRect[] = -{ - { { 2 MSO_I, 7 MSO_I }, { 1 MSO_I, 1 MSO_I } }, - { { 7 MSO_I, 2 MSO_I }, { 1 MSO_I, 1 MSO_I } } -}; -static const SvxMSDffHandle mso_sptBentUpArrowHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL, - 0x101, 0x102, 10800, 10800, 3 + 5, 21600, 0, 0x100 }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL, - 0x100, 0, 10800, 10800, 0x102, 3 + 10, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoBentUpArrow = -{ - (SvxMSDffVertPair*)mso_sptBentUpArrowVert, sizeof( mso_sptBentUpArrowVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptBentUpArrowSegm, sizeof( mso_sptBentUpArrowSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptBentUpArrowCalc, sizeof( mso_sptBentUpArrowCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptBentUpArrowDefault, - (SvxMSDffTextRectangles*)mso_sptBentUpArrowTextRect, sizeof( mso_sptBentUpArrowTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptBentUpArrowHandle, sizeof( mso_sptBentUpArrowHandle ) / sizeof( SvxMSDffHandle ) -}; - - -static const SvxMSDffVertPair mso_sptCurvedDownVert[] = -{ - { 0, 0 }, { 3 MSO_I, 21 MSO_I }, { 0, 21600 }, { 4 MSO_I, 0 }, - { 0, 0 }, { 3 MSO_I, 21 MSO_I }, { 4 MSO_I, 0 }, { 17 MSO_I, 24 MSO_I }, - { 15 MSO_I, 0 }, { 1 MSO_I, 21 MSO_I }, { 17 MSO_I, 24 MSO_I }, { 15 MSO_I, 21600 }, - { 15 MSO_I, 0 }, { 1 MSO_I, 21 MSO_I }, { 7 MSO_I, 0 }, { 13 MSO_I, 2 MSO_I }, - { 14 MSO_I, 2 MSO_I }, { 8 MSO_I, 21600 }, { 12 MSO_I, 2 MSO_I }, - { 0, 0 }, { 3 MSO_I, 21 MSO_I }, { 11 MSO_I, 2 MSO_I }, { 17 MSO_I, 24 MSO_I }, - { 0, 0 }, { 3 MSO_I, 21 MSO_I }, { 17 MSO_I, 24 MSO_I }, { 4 MSO_I, 0 } -}; -static const sal_uInt16 mso_sptCurvedDownSegm[] = -{ - 0xa508, - 0xa304, - 0x6000, - 0x8000, - 0xa604, - 0x0003, - 0xa308, - 0x6000, - 0x8000 -}; -static const SvxMSDffCalculationData mso_sptCurvedDownCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } }, - { 0xa000, { DFF_Prop_adjustValue, 21600, DFF_Prop_adjust2Value } }, - { 0x2001, { 0x403, 1, 2 } }, - { 0x6000, { DFF_Prop_adjust2Value, DFF_Prop_adjust2Value, 21600 } }, - { 0xe000, { 0x405, DFF_Prop_adjust2Value, DFF_Prop_adjustValue } }, - { 0x2001, { 0x406, 1, 2 } }, - { 0x4002, { 21600, DFF_Prop_adjustValue, 0 } }, - { 0x8000, { 21600, 0, DFF_Prop_adjust3Value } }, - { 0xa00f, { 0x409, 21600, 0x404 } }, - { 0x6000, { 0x404, 0x40a, 0 } }, - { 0x6000, { 0x40b, DFF_Prop_adjust2Value, 21600 } }, - { 0x6000, { 0x407, 0x40a, 0 } }, - { 0xa000, { 0x40c, 21600, DFF_Prop_adjustValue } }, - { 0xa000, { 0x405, 0, DFF_Prop_adjustValue } }, - { 0x2001, { 0x40f, 1, 2 } }, - { 0x6002, { 0x404, 0x407, 0 } }, - { 0x6000, { DFF_Prop_adjustValue, DFF_Prop_adjust2Value, 21600 } }, - { 0x2001, { 0x412, 1, 2 } }, - { 0xa000, { 0x411, 0, 0x413 } }, - { 0x0001, { 21600, 2, 1 } }, - { 0xa000, { 0x411, 0, 0x404 } }, - { 0x600f, { 0x416, 0x404, 21600 } }, - { 0x8000, { 21600, 0, 0x417 } }, - { 0x2000, { 0x408, 128, 0 } }, - { 0x2001, { 0x405, 1, 2 } }, - { 0x2000, { 0x405, 0, 128 } }, - { 0xe000, { DFF_Prop_adjustValue, 0x411, 0x40c } }, - { 0x600f, { 0x414, 0x404, 21600 } }, - { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, - { 0x2001, { 0x41e, 1, 2 } }, - { 0x0001, { 21600, 21600, 1 } }, - { 0x6001, { 0x409, 0x409, 1 } }, - { 0xa000, { 0x420, 0, 0x421 } }, - { 0x200d, { 0x422, 0, 0 } }, - { 0x2000, { 0x423, 21600, 0 } }, - { 0x8001, { 21600, 21600, 0x424 } }, - { 0x2000, { 0x425, 64, 0 } }, - { 0x2001, { DFF_Prop_adjustValue, 1, 2 } }, - { 0x600f, { 0x41f, 0x427, 21600 } }, - { 0x8000, { 21600, 0, 0x428 } }, - { 0x2000, { 0x429, 64, 0 } }, - { 0x2001, { 0x404, 1, 2 } }, - { 0xa000, { DFF_Prop_adjust2Value, 0, 0x42b } }, - { 0x0001, { 21600, 2195, 16384 } }, - { 0x0001, { 21600, 14189, 16384 } } -}; -static const sal_Int32 mso_sptCurvedDownDefault[] = -{ - 3, 12960, 19440, 14400 -}; -static const SvxMSDffTextRectangles mso_sptCurvedDownTextRect[] = -{ - { { 43 MSO_I, 45 MSO_I }, { 44 MSO_I, 46 MSO_I } } -}; -static const SvxMSDffVertPair mso_sptCurvedDownGluePoints[] = -{ - { 17 MSO_I, 0 }, { 16 MSO_I, 21600 }, { 12 MSO_I, 2 MSO_I }, { 8 MSO_I, 21600 }, { 14 MSO_I, 2 MSO_I } -}; -static const SvxMSDffHandle mso_sptCurvedDownHandles[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL, - 0x100, 21600, 10800, 10800, 3 + 0x26, 3 + 0x1b, 0, 10800 }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL, - 0x101, 21600, 10800, 10800, 3 + 0x19, 21600, 0, 10800 }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL, - 21600, 0x102, 10800, 10800, 3375, 21600, 3 + 0x2a, 21600 } -}; -static const mso_CustomShape msoCurvedDownArrow = -{ - (SvxMSDffVertPair*)mso_sptCurvedDownVert, sizeof( mso_sptCurvedDownVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptCurvedDownSegm, sizeof( mso_sptCurvedDownSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptCurvedDownCalc, sizeof( mso_sptCurvedDownCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptCurvedDownDefault, - (SvxMSDffTextRectangles*)mso_sptCurvedDownTextRect, sizeof( mso_sptCurvedDownTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptCurvedDownGluePoints, sizeof( mso_sptCurvedDownGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptCurvedDownHandles, sizeof( mso_sptCurvedDownHandles ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptCurvedUpVert[] = -{ - { 0, 22 MSO_I }, { 3 MSO_I, 21 MSO_I }, { 0, 0 }, { 4 MSO_I, 21 MSO_I }, - { 14 MSO_I, 22 MSO_I }, { 1 MSO_I, 21 MSO_I }, { 7 MSO_I, 21 MSO_I }, { 12 MSO_I, 2 MSO_I }, - { 13 MSO_I, 2 MSO_I }, { 8 MSO_I, 0 }, { 11 MSO_I, 2 MSO_I }, - { 0, 22 MSO_I }, { 3 MSO_I, 21 MSO_I }, { 10 MSO_I, 2 MSO_I }, { 16 MSO_I, 24 MSO_I }, - { 14 MSO_I, 22 MSO_I }, { 1 MSO_I, 21 MSO_I }, { 16 MSO_I, 24 MSO_I }, { 14 MSO_I, 0 }, - { 14 MSO_I, 22 MSO_I }, { 1 MSO_I, 21 MSO_I }, { 7 MSO_I, 21 MSO_I }, { 16 MSO_I, 24 MSO_I } -}; -static const sal_uInt16 mso_sptCurvedUpSegm[] = -{ - 0xa408, - 0x0003, - 0xa508, - 0x6000, - 0x8000, - 0xa604, - 0xaa00, - 0x8000 -}; -static const SvxMSDffCalculationData mso_sptCurvedUpCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } }, - { 0xa000, { DFF_Prop_adjustValue, 21600, DFF_Prop_adjust2Value } }, - { 0x2001, { 0x403, 1, 2 } }, - { 0x6000, { DFF_Prop_adjust2Value, DFF_Prop_adjust2Value, 21600 } }, - { 0xe000, { 0x405, DFF_Prop_adjust2Value, DFF_Prop_adjustValue } }, - { 0x2001, { 0x406, 1, 2 } }, - { 0x4002, { 21600, DFF_Prop_adjustValue, 0 } }, - { 0xa00f, { DFF_Prop_adjust3Value, 21600, 0x404 } }, - { 0x6000, { 0x404, 0x409, 0 } }, - { 0x6000, { 0x40a, DFF_Prop_adjust2Value, 21600 } }, - { 0x6000, { 0x407, 0x409, 0 } }, - { 0xa000, { 0x40b, 21600, DFF_Prop_adjustValue } }, - { 0xa000, { 0x405, 0, DFF_Prop_adjustValue } }, - { 0x2001, { 0x40e, 1, 2 } }, - { 0x6002, { 0x404, 0x407, 0 } }, - { 0x6000, { DFF_Prop_adjustValue, DFF_Prop_adjust2Value, 21600 } }, - { 0x2001, { 0x411, 1, 2 } }, - { 0xa000, { 0x410, 0, 0x412 } }, - { 0x0000, { 21600, 0, 0 } }, - { 0x0000, { 21600, 0, 0 } }, - { 0x0000, { 0, 0, 21600 } }, - { 0xa000, { 0x410, 0, 0x404 } }, - { 0x600f, { 0x417, 0x404, 21600 } }, - { 0x2000, { 0x408, 128, 0 } }, - { 0x2001, { 0x405, 1, 2 } }, - { 0x2000, { 0x405, 0, 128 } }, - { 0xe000, { DFF_Prop_adjustValue, 0x410, 0x40b } }, - { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, - { 0x2001, { 0x41d, 1, 2 } }, - { 0x0001, { 21600, 21600, 1 } }, - { 0x6001, { DFF_Prop_adjust3Value, DFF_Prop_adjust3Value, 1 } }, - { 0xa000, { 0x41f, 0, 0x420 } }, - { 0x200d, { 0x421, 0, 0 } }, - { 0x2000, { 0x422, 21600, 0 } }, - { 0x8001, { 21600, 21600, 0x423 } }, - { 0x2000, { 0x424, 64, 0 } }, - { 0x2001, { DFF_Prop_adjustValue, 1, 2 } }, - { 0x600f, { 0x41e, 0x426, 21600 } }, - { 0x2000, { 0x427, 0, 64 } }, - { 0x2001, { 0x404, 1, 2 } }, - { 0xa000, { DFF_Prop_adjust2Value, 0, 0x429 } }, - { 0x0001, { 21600, 2195, 16384 } }, - { 0x0001, { 21600, 14189, 16384 } } -}; -static const sal_Int32 mso_sptCurvedUpDefault[] = -{ - 3, 12960, 19440, 7200 -}; -static const SvxMSDffTextRectangles mso_sptCurvedUpTextRect[] = -{ - { { 41 MSO_I, 43 MSO_I }, { 42 MSO_I, 44 MSO_I } } -}; -static const SvxMSDffVertPair mso_sptCurvedUpGluePoints[] = -{ - { 8 MSO_I, 0 }, { 11 MSO_I, 2 MSO_I }, { 15 MSO_I, 0 }, { 16 MSO_I, 21 MSO_I }, { 13 MSO_I, 2 MSO_I } -}; -static const SvxMSDffHandle mso_sptCurvedUpHandles[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL, - 0x100, 0, 10800, 10800, 3 + 37, 3 + 27, 0, 10800 }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL, - 0x101, 0, 10800, 10800, 3 + 25, 3 + 20, 0, 10800 }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL, - 21600, 0x102, 10800, 10800, 3375, 21600, 0, 3 + 40 } -}; -static const mso_CustomShape msoCurvedUpArrow = -{ - (SvxMSDffVertPair*)mso_sptCurvedUpVert, sizeof( mso_sptCurvedUpVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptCurvedUpSegm, sizeof( mso_sptCurvedUpSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptCurvedUpCalc, sizeof( mso_sptCurvedUpCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptCurvedUpDefault, - (SvxMSDffTextRectangles*)mso_sptCurvedUpTextRect, sizeof( mso_sptCurvedUpTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptCurvedUpGluePoints, sizeof( mso_sptCurvedUpGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptCurvedUpHandles, sizeof( mso_sptCurvedUpHandles ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptCurvedRightVert[] = -{ - { 0, 0 }, { 23 MSO_I, 3 MSO_I }, { 22 MSO_I, 0 }, { 0, 4 MSO_I }, { 0, 15 MSO_I }, { 23 MSO_I, 1 MSO_I }, { 0, 7 MSO_I }, { 2 MSO_I, 13 MSO_I }, - { 2 MSO_I, 14 MSO_I }, { 22 MSO_I, 8 MSO_I }, { 2 MSO_I, 12 MSO_I }, - { 0, 0 }, { 23 MSO_I, 3 MSO_I }, { 2 MSO_I, 11 MSO_I }, { 26 MSO_I, 17 MSO_I }, { 0, 15 MSO_I }, { 23 MSO_I, 1 MSO_I }, { 26 MSO_I, 17 MSO_I }, { 22 MSO_I, 15 MSO_I }, - { 0, 0 }, { 23 MSO_I, 3 MSO_I }, { 0, 4 MSO_I }, { 26 MSO_I, 17 MSO_I } -}; -static const sal_uInt16 mso_sptCurvedRightSegm[] = -{ - 0xa408, - 0x0003, - 0xa508, - 0x6000, - 0x8000, - 0xa404, - 0xaa00, - 0x8000 -}; -static const SvxMSDffCalculationData mso_sptCurvedRightCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } }, - { 0xa000, { DFF_Prop_adjustValue, 21600, DFF_Prop_adjust2Value } }, - { 0x2001, { 0x403, 1, 2 } }, - { 0x6000, { DFF_Prop_adjust2Value, DFF_Prop_adjust2Value, 21600 } }, - { 0xe000, { 0x405, DFF_Prop_adjust2Value, DFF_Prop_adjustValue } }, - { 0x2001, { 0x406, 1, 2 } }, - { 0x4002, { 21600, DFF_Prop_adjustValue, 0 } }, - { 0x8000, { 21600, 0, DFF_Prop_adjust3Value } }, - { 0xa00f, { 0x409, 21600, 0x404 } }, - { 0x6000, { 0x404, 0x40a, 0 } }, - { 0x6000, { 0x40b, DFF_Prop_adjust2Value, 21600 } }, - { 0x6000, { 0x407, 0x40a, 0 } }, - { 0xa000, { 0x40c, 21600, DFF_Prop_adjustValue } }, - { 0xa000, { 0x405, 0, DFF_Prop_adjustValue } }, - { 0x2001, { 0x40f, 1, 2 } }, - { 0x6002, { 0x404, 0x407, 0 } }, - { 0x6000, { DFF_Prop_adjustValue, DFF_Prop_adjust2Value, 21600 } }, - { 0x2001, { 0x412, 1, 2 } }, - { 0xa000, { 0x411, 0, 0x413 } }, - { 0x0000, { 21600, 0, 0 } }, - { 0x0000, { 21600, 0, 0 } }, - { 0x0001, { 21600, 2, 1 } }, - { 0xa000, { 0x411, 0, 0x404 } }, - { 0x600f, { 0x418, 0x404, 21600 } }, - { 0x8000, { 21600, 0, 0x419 } }, - { 0x2000, { 0x408, 128, 0 } }, - { 0x2001, { 0x405, 1, 2 } }, - { 0x2000, { 0x405, 0, 128 } }, - { 0xe000, { DFF_Prop_adjustValue, 0x411, 0x40c } }, - { 0x600f, { 0x414, 0x404, 21600 } }, - { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, - { 0x2001, { 0x420, 1, 2 } }, - { 0x0001, { 21600, 21600, 1 } }, - { 0x6001, { 0x409, 0x409, 1 } }, - { 0xa000, { 0x422, 0, 0x423 } }, - { 0x200d, { 0x424, 0, 0 } }, - { 0x2000, { 0x425, 21600, 0 } }, - { 0x8001, { 21600, 21600, 0x426 } }, - { 0x2000, { 0x427, 64, 0 } }, - { 0x2001, { DFF_Prop_adjustValue, 1, 2 } }, - { 0x600f, { 0x421, 0x429, 21600 } }, - { 0x8000, { 21600, 0, 0x42a } }, - { 0x2000, { 0x42b, 64, 0 } }, - { 0x2001, { 0x404, 1, 2 } }, - { 0xa000, { DFF_Prop_adjust2Value, 0, 0x42d } }, - { 0x0001, { 21600, 2195, 16384 } }, - { 0x0001, { 21600, 14189, 16384 } } -}; -static const sal_Int32 mso_sptCurvedRightDefault[] = -{ - 3, 12960, 19440, 14400 -}; -static const SvxMSDffTextRectangles mso_sptCurvedRightTextRect[] = -{ - { { 47 MSO_I, 45 MSO_I }, { 48 MSO_I, 46 MSO_I } } -}; -static const SvxMSDffVertPair mso_sptCurvedRightGluePoints[] = -{ - { 0, 17 MSO_I }, { 2 MSO_I, 14 MSO_I }, { 22 MSO_I, 8 MSO_I }, { 2 MSO_I, 12 MSO_I }, { 22 MSO_I, 16 MSO_I } -}; -static const SvxMSDffHandle mso_sptCurvedRightHandles[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL, - 21600, 0x100, 10800, 10800, 0, 10800, 3 + 40, 3 + 29 }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL, - 21600, 0x101, 10800, 10800, 0, 10800, 3 + 27, 3 + 21 }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL, - 0x102, 21600, 10800, 10800, 3 + 44, 3 + 22, 3375, 21600 } -}; -static const mso_CustomShape msoCurvedRightArrow = -{ - (SvxMSDffVertPair*)mso_sptCurvedRightVert, sizeof( mso_sptCurvedRightVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptCurvedRightSegm, sizeof( mso_sptCurvedRightSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptCurvedRightCalc, sizeof( mso_sptCurvedRightCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptCurvedRightDefault, - (SvxMSDffTextRectangles*)mso_sptCurvedRightTextRect, sizeof( mso_sptCurvedRightTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptCurvedRightGluePoints, sizeof( mso_sptCurvedRightGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptCurvedRightHandles, sizeof( mso_sptCurvedRightHandles ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptCurvedLeftVert[] = -{ - { 22 MSO_I, 0 }, { 21 MSO_I, 3 MSO_I }, { 0, 0 }, { 21 MSO_I, 4 MSO_I }, { 22 MSO_I, 14 MSO_I }, { 21 MSO_I, 1 MSO_I }, { 21 MSO_I, 7 MSO_I }, { 2 MSO_I, 12 MSO_I }, - { 2 MSO_I, 13 MSO_I }, { 0, 8 MSO_I }, { 2 MSO_I, 11 MSO_I }, - { 22 MSO_I, 0 }, { 21 MSO_I, 3 MSO_I }, { 2 MSO_I, 10 MSO_I }, { 24 MSO_I, 16 MSO_I }, { 22 MSO_I, 14 MSO_I }, { 21 MSO_I, 1 MSO_I }, { 24 MSO_I, 16 MSO_I }, { 0, 14 MSO_I }, - { 22 MSO_I, 14 MSO_I }, { 21 MSO_I, 1 MSO_I }, { 21 MSO_I, 7 MSO_I }, { 24 MSO_I, 16 MSO_I } -}; -static const sal_uInt16 mso_sptCurvedLeftSegm[] = -{ - 0xa608, - 0x0003, - 0xa308, - 0x6000, - 0x8000, - 0xa404, - 0xaa00, - 0x8000 -}; -static const SvxMSDffCalculationData mso_sptCurvedLeftCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } }, - { 0xa000, { DFF_Prop_adjustValue, 21600, DFF_Prop_adjust2Value } }, - { 0x2001, { 0x403, 1, 2 } }, - { 0x6000, { DFF_Prop_adjust2Value, DFF_Prop_adjust2Value, 21600 } }, - { 0xe000, { 0x405, DFF_Prop_adjust2Value, DFF_Prop_adjustValue } }, - { 0x2001, { 0x406, 1, 2 } }, - { 0x4002, { 21600, DFF_Prop_adjustValue, 0 } }, - { 0xa00f, { DFF_Prop_adjust3Value, 21600, 0x404 } }, - { 0x6000, { 0x404, 0x409, 0 } }, - { 0x6000, { 0x40a, DFF_Prop_adjust2Value, 21600 } }, - { 0x6000, { 0x407, 0x409, 0 } }, - { 0xa000, { 0x40b, 21600, DFF_Prop_adjustValue } }, - { 0xa000, { 0x405, 0, DFF_Prop_adjustValue } }, - { 0x2001, { 0x40e, 1, 2 } }, - { 0x6002, { 0x404, 0x407, 0 } }, - { 0x6000, { DFF_Prop_adjustValue, DFF_Prop_adjust2Value, 21600 } }, - { 0x2001, { 0x411, 1, 2 } }, - { 0xa000, { 0x410, 0, 0x412 } }, - { 0x0000, { 21600, 0, 0 } }, - { 0x0000, { 21600, 0, 0 } }, - { 0x0000, { 0, 0, 21600 } }, - { 0xa000, { 0x410, 0, 0x404 } }, - { 0x600f, { 0x417, 0x404, 21600 } }, - { 0x2000, { 0x408, 128, 0 } }, - { 0x2001, { 0x405, 1, 2 } }, - { 0x2000, { 0x405, 0, 128 } }, - { 0xe000, { DFF_Prop_adjustValue, 0x410, 0x40b } }, - { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, - { 0x2001, { 0x41d, 1, 2 } }, - { 0x0001, { 21600, 21600, 1 } }, - { 0x6001, { DFF_Prop_adjust3Value, DFF_Prop_adjust3Value, 1 } }, - { 0xa000, { 0x41f, 0, 0x420 } }, - { 0x200d, { 0x421, 0, 0 } }, - { 0x2000, { 0x422, 21600, 0 } }, - { 0x8001, { 21600, 21600, 0x423 } }, - { 0x2000, { 0x424, 64, 0 } }, - { 0x2001, { DFF_Prop_adjustValue, 1, 2 } }, - { 0x600f, { 0x41e, 0x426, 21600 } }, - { 0x2000, { 0x427, 0, 64 } }, - { 0x2001, { 0x404, 1, 2 } }, - { 0xa000, { DFF_Prop_adjust2Value, 0, 0x429 } }, - { 0x0001, { 21600, 2195, 16384 } }, - { 0x0001, { 21600, 14189, 16384 } } -}; -static const sal_Int32 mso_sptCurvedLeftDefault[] = -{ - 3, 12960, 19440, 7200 -}; -static const SvxMSDffTextRectangles mso_sptCurvedLeftTextRect[] = -{ - { { 43 MSO_I, 41 MSO_I }, { 44 MSO_I, 42 MSO_I } } -}; -static const SvxMSDffVertPair mso_sptCurvedLeftGluePoints[] = -{ - { 0, 15 MSO_I }, { 2 MSO_I, 11 MSO_I }, { 0, 8 MSO_I }, { 2 MSO_I, 13 MSO_I }, { 21 MSO_I, 16 MSO_I } -}; -static const SvxMSDffHandle mso_sptCurvedLeftHandles[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL, - 0, 0x100, 10800, 10800, 0, 10800, 3 + 37, 3 + 27 }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL, - 0, 0x101, 10800, 10800, 0, 10800, 3 + 25, 3 + 20 }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL, - 0x102, 21600, 10800, 10800, 0, 3 + 40, 3375, 21600 } -}; -static const mso_CustomShape msoCurvedLeftArrow = -{ - (SvxMSDffVertPair*)mso_sptCurvedLeftVert, sizeof( mso_sptCurvedLeftVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptCurvedLeftSegm, sizeof( mso_sptCurvedLeftSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptCurvedLeftCalc, sizeof( mso_sptCurvedLeftCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptCurvedLeftDefault, - (SvxMSDffTextRectangles*)mso_sptCurvedLeftTextRect, sizeof( mso_sptCurvedLeftTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptCurvedLeftGluePoints, sizeof( mso_sptCurvedLeftGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptCurvedLeftHandles, sizeof( mso_sptCurvedLeftHandles ) / sizeof( SvxMSDffHandle ) -}; - - - - - -static const SvxMSDffVertPair mso_sptStripedRightArrowVert[] = // adjustment1 : x 3375 - 21600 -{ // adjustment2 : y 0 - 10800 - { 3375, 0 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 1 MSO_I, 0 }, { 21600, 10800 }, - { 1 MSO_I, 21600 }, { 1 MSO_I, 2 MSO_I }, { 3375, 2 MSO_I }, { 0, 0 MSO_I }, - { 675, 0 MSO_I }, { 675, 2 MSO_I }, { 0, 2 MSO_I }, { 1350, 0 MSO_I }, - { 2700, 0 MSO_I }, { 2700, 2 MSO_I }, { 1350, 2 MSO_I } -}; -static const sal_uInt16 mso_sptStripedRightArrowSegm[] = -{ - 0x4000, 0x0006, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptStripedRightArrowCalc[] = -{ - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } }, - { 0x8000, { 21600, 0, 0x401 } }, - { 0x6001, { 0x403, 0x400, 10800 } }, - { 0x6000, { 0x401, 0x404, 0 } } -}; -static const SvxMSDffTextRectangles mso_sptStripedRightArrowTextRect[] = -{ - { { 3375, 0 MSO_I }, { 5 MSO_I, 2 MSO_I } } -}; -static const SvxMSDffHandle mso_sptStripedRightArrowHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 0x101, 10800, 10800, 3375, 21600, 0, 10800 } -}; -static const mso_CustomShape msoStripedRightArrow = -{ - (SvxMSDffVertPair*)mso_sptStripedRightArrowVert, sizeof( mso_sptStripedRightArrowVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptStripedRightArrowSegm, sizeof( mso_sptStripedRightArrowSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptStripedRightArrowCalc, sizeof( mso_sptStripedRightArrowCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault16200and5400, - (SvxMSDffTextRectangles*)mso_sptStripedRightArrowTextRect, sizeof( mso_sptStripedRightArrowTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptStripedRightArrowHandle, sizeof( mso_sptStripedRightArrowHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptNotchedRightArrowVert[] = // adjustment1 : x 0 - 21600 (default 16200) -{ // adjustment2 : y 0 - 10800 (default 5400) - { 0, 1 MSO_I }, { 0 MSO_I, 1 MSO_I }, { 0 MSO_I, 0 }, { 21600, 10800 }, - { 0 MSO_I, 21600 }, { 0 MSO_I, 2 MSO_I }, { 0, 2 MSO_I }, { 5 MSO_I, 10800 }, { 0, 1 MSO_I } -}; -static const SvxMSDffCalculationData mso_sptNotchedRightArrowCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, - { 0x8000, { 21600, 0, DFF_Prop_adjust2Value } }, - { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, - { 0x8000, { 10800, 0, DFF_Prop_adjust2Value } }, - { 0x6001, { 0x403, 0x404, 10800 } } -}; -static const SvxMSDffTextRectangles mso_sptNotchedRightArrowTextRect[] = // todo -{ - { { 0, 0 }, { 21600, 21600 } } -}; -static const SvxMSDffHandle mso_sptNotchedRightArrowHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 0x101, 10800, 10800, 0, 21600, 0, 10800 } -}; -static const mso_CustomShape msoNotchedRightArrow = -{ - (SvxMSDffVertPair*)mso_sptNotchedRightArrowVert, sizeof( mso_sptNotchedRightArrowVert ) / sizeof( SvxMSDffVertPair ), - NULL, 0, - (SvxMSDffCalculationData*)mso_sptNotchedRightArrowCalc, sizeof( mso_sptNotchedRightArrowCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault16200and5400, - (SvxMSDffTextRectangles*)mso_sptNotchedRightArrowTextRect, sizeof( mso_sptNotchedRightArrowTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptNotchedRightArrowHandle, sizeof( mso_sptNotchedRightArrowHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptHomePlateVert[] = // adjustment1 : x 0 - 21600 -{ - { 0, 0 }, { 0 MSO_I, 0 }, { 21600, 10800 }, { 0 MSO_I, 21600 }, - { 0, 21600 } -}; -static const sal_uInt16 mso_sptHomePlateSegm[] = -{ - 0x4000, 0x0004, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptHomePlateCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } } -}; -static const sal_Int32 mso_sptHomePlateDefault[] = -{ - 1, 16200 -}; -static const SvxMSDffTextRectangles mso_sptHomePlateTextRect[] = // todo -{ - { { 0, 0 }, { 21600, 21600 } } -}; -static const SvxMSDffHandle mso_sptHomePlateHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 0, 10800, 10800, 0, 21600, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoHomePlate = -{ - (SvxMSDffVertPair*)mso_sptHomePlateVert, sizeof( mso_sptHomePlateVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptHomePlateSegm, sizeof( mso_sptHomePlateSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptHomePlateCalc, sizeof( mso_sptHomePlateCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptHomePlateDefault, - (SvxMSDffTextRectangles*)mso_sptHomePlateTextRect, sizeof( mso_sptHomePlateTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptHomePlateHandle, sizeof( mso_sptHomePlateHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptChevronVert[] = // adjustment1 : x 0 - 21600 -{ - { 0, 0 }, { 0 MSO_I, 0 }, { 21600, 10800 }, { 0 MSO_I, 21600 }, - { 0, 21600 }, { 1 MSO_I, 10800 } -}; -static const sal_uInt16 mso_sptChevronSegm[] = -{ - 0x4000, 0x0005, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptChevronCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x8000, { 21600, 0, 0x0400 } } -}; -static const sal_Int32 mso_sptChevronDefault[] = -{ - 1, 16200 -}; -static const SvxMSDffTextRectangles mso_sptChevronTextRect[] = // todo -{ - { { 0, 0 }, { 21600, 21600 } } -}; -static const SvxMSDffHandle mso_sptChevronHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 0, 10800, 10800, 0, 21600, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoChevron = -{ - (SvxMSDffVertPair*)mso_sptChevronVert, sizeof( mso_sptChevronVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptChevronSegm, sizeof( mso_sptChevronSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptChevronCalc, sizeof( mso_sptChevronCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptChevronDefault, - (SvxMSDffTextRectangles*)mso_sptChevronTextRect, sizeof( mso_sptChevronTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptChevronHandle, sizeof( mso_sptChevronHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptRightArrowCalloutVert[] = // adjustment1 : x 0 - 21000 -{ // adjustment2 : y 0 - 10800 - { 0, 0 }, { 0 MSO_I, 0 }, { 0 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }, - { 2 MSO_I, 1 MSO_I }, { 21600, 10800 }, { 2 MSO_I, 4 MSO_I }, { 2 MSO_I, 5 MSO_I }, - { 0 MSO_I, 5 MSO_I }, { 0 MSO_I, 21600 }, { 0, 21600 } -}; -static const sal_uInt16 mso_sptRightArrowCalloutSegm[] = -{ - 0x4000, 0x000a, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptRightArrowCalloutCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } }, - { 0x8000, { 21600, 0, 0x0401 } }, - { 0x8000, { 21600, 0, 0x0403 } } -}; -static const sal_Int32 mso_sptRightArrowCalloutDefault[] = -{ - 4, 14400, 5400, 18000, 8100 -}; -static const SvxMSDffTextRectangles mso_sptRightArrowCalloutTextRect[] = -{ - { { 0, 0 }, { 0 MSO_I, 21600 } } -}; -static const SvxMSDffHandle mso_sptRightArrowCalloutHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL, - 0x100, 0, 10800, 10800, 0, 0x102, 0x80000000, 0x7fffffff }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL, - 0x102, 0x103, 10800, 10800, 0x100, 21600, 0x101, 10800 }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL, - 1, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 0x103 } -}; -static const mso_CustomShape msoRightArrowCallout = -{ - (SvxMSDffVertPair*)mso_sptRightArrowCalloutVert, sizeof( mso_sptRightArrowCalloutVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptRightArrowCalloutSegm, sizeof( mso_sptRightArrowCalloutSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptRightArrowCalloutCalc, sizeof( mso_sptRightArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptRightArrowCalloutDefault, - (SvxMSDffTextRectangles*)mso_sptRightArrowCalloutTextRect, sizeof( mso_sptRightArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptRightArrowCalloutHandle, sizeof( mso_sptRightArrowCalloutHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptLeftArrowCalloutVert[] = // adjustment1 : x 0 - 21600, adjustment2 : y 0 - 10800 -{ // adjustment3 : x 0 - 21600, adjustment4 : y 0 - 10800 - { 0 MSO_I, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0 MSO_I, 21600 }, - { 0 MSO_I, 5 MSO_I }, { 2 MSO_I, 5 MSO_I }, { 2 MSO_I, 4 MSO_I }, { 0, 10800 }, - { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 3 MSO_I } -}; -static const sal_uInt16 mso_sptLeftArrowCalloutSegm[] = -{ - 0x4000, 0x000a, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptLeftArrowCalloutCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } }, - { 0x8000, { 21600, 0, 0x0401 } }, - { 0x8000, { 21600, 0, 0x0403 } } -}; -static const sal_Int32 mso_sptLeftArrowCalloutDefault[] = -{ - 4, 7200, 5400, 3600, 8100 -}; -static const SvxMSDffTextRectangles mso_sptLeftArrowCalloutTextRect[] = -{ - { { 0 MSO_I, 0 }, { 21600, 21600 } } -}; -static const SvxMSDffHandle mso_sptLeftArrowCalloutHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL, - 0x100, 0, 10800, 10800, 0x102, 21600, 0x80000000, 0x7fffffff }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL, - 0x102, 0x103, 10800, 10800, 0, 0x100, 0x101, 10800 }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL, - 0, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 0x103 } -}; -static const mso_CustomShape msoLeftArrowCallout = -{ - (SvxMSDffVertPair*)mso_sptLeftArrowCalloutVert, sizeof( mso_sptLeftArrowCalloutVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptLeftArrowCalloutSegm, sizeof( mso_sptLeftArrowCalloutSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptLeftArrowCalloutCalc, sizeof( mso_sptLeftArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptLeftArrowCalloutDefault, - (SvxMSDffTextRectangles*)mso_sptLeftArrowCalloutTextRect, sizeof( mso_sptLeftArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptLeftArrowCalloutHandle, sizeof( mso_sptLeftArrowCalloutHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptUpArrowCalloutVert[] = -{ - { 21600, 0 MSO_I }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 MSO_I }, - { 3 MSO_I, 0 MSO_I }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I }, { 10800, 0 }, - { 4 MSO_I, 2 MSO_I }, { 5 MSO_I, 2 MSO_I }, { 5 MSO_I, 0 MSO_I } -}; -static const sal_uInt16 mso_sptUpArrowCalloutSegm[] = -{ - 0x4000, 0x000a, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptUpArrowCalloutCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } }, - { 0x8000, { 21600, 0, 0x0401 } }, - { 0x8000, { 21600, 0, 0x0403 } } -}; -static const sal_Int32 mso_sptUpArrowCalloutDefault[] = -{ - 4, 7200, 5400, 3600, 8100 -}; -static const SvxMSDffTextRectangles mso_sptUpArrowCalloutTextRect[] = -{ - { { 0, 0 MSO_I }, { 21600, 21600 } } -}; -static const SvxMSDffHandle mso_sptUpArrowCalloutHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL, - 0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0x102, 21600 }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL, - 0x103, 0x102, 10800, 10800, 0x101, 10800, 0, 0x100 }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL, - 0x101, 0, 10800, 10800, 0, 0x103, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoUpArrowCallout = -{ - (SvxMSDffVertPair*)mso_sptUpArrowCalloutVert, sizeof( mso_sptUpArrowCalloutVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptUpArrowCalloutSegm, sizeof( mso_sptUpArrowCalloutSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptUpArrowCalloutCalc, sizeof( mso_sptUpArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptUpArrowCalloutDefault, - (SvxMSDffTextRectangles*)mso_sptUpArrowCalloutTextRect, sizeof( mso_sptUpArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptUpArrowCalloutHandle, sizeof( mso_sptUpArrowCalloutHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptDownArrowCalloutVert[] = -{ - { 0, 0 MSO_I }, { 0, 0 }, { 21600, 0 }, { 21600, 0 MSO_I }, - { 5 MSO_I, 0 MSO_I }, { 5 MSO_I, 2 MSO_I }, { 4 MSO_I, 2 MSO_I }, { 10800, 21600 }, - { 1 MSO_I, 2 MSO_I }, { 3 MSO_I, 2 MSO_I }, { 3 MSO_I, 0 MSO_I } -}; -static const sal_uInt16 mso_sptDownArrowCalloutSegm[] = -{ - 0x4000, 0x000a, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptDownArrowCalloutCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } }, - { 0x8000, { 21600, 0, 0x0401 } }, - { 0x8000, { 21600, 0, 0x0403 } } -}; -static const sal_Int32 mso_sptDownArrowCalloutDefault[] = -{ - 4, 14400, 5400, 18000, 8100 -}; -static const SvxMSDffTextRectangles mso_sptDownArrowCalloutTextRect[] = -{ - { { 0, 0 }, { 21600, 0 MSO_I } } -}; -static const SvxMSDffHandle mso_sptDownArrowCalloutHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL, - 0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 0x102 }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL, - 0x103, 0x102, 10800, 10800, 0x101, 10800, 0x100, 21600 }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL, - 0x101, 1, 10800, 10800, 0, 0x103, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoDownArrowCallout = -{ - (SvxMSDffVertPair*)mso_sptDownArrowCalloutVert, sizeof( mso_sptDownArrowCalloutVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptDownArrowCalloutSegm, sizeof( mso_sptDownArrowCalloutSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptDownArrowCalloutCalc, sizeof( mso_sptDownArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDownArrowCalloutDefault, - (SvxMSDffTextRectangles*)mso_sptDownArrowCalloutTextRect, sizeof( mso_sptDownArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptDownArrowCalloutHandle, sizeof( mso_sptDownArrowCalloutHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptLeftRightArrowCalloutVert[] = -{ - { 0 MSO_I, 0 }, { 4 MSO_I, 0 }, { 4 MSO_I, 3 MSO_I }, { 6 MSO_I, 3 MSO_I }, - { 6 MSO_I, 1 MSO_I }, { 21600, 10800 }, { 6 MSO_I, 5 MSO_I }, { 6 MSO_I, 7 MSO_I }, - { 4 MSO_I, 7 MSO_I }, { 4 MSO_I, 21600 }, { 0 MSO_I, 21600 }, { 0 MSO_I, 7 MSO_I }, - { 2 MSO_I, 7 MSO_I }, { 2 MSO_I, 5 MSO_I }, { 0, 10800 }, { 2 MSO_I, 1 MSO_I }, - { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 3 MSO_I } -}; -static const sal_uInt16 mso_sptLeftRightArrowCalloutSegm[] = -{ - 0x4000, 0x0011, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptLeftRightArrowCalloutCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } }, - { 0x8000, { 21600, 0, 0x0400 } }, - { 0x8000, { 21600, 0, 0x0401 } }, - { 0x8000, { 21600, 0, 0x0402 } }, - { 0x8000, { 21600, 0, 0x0403 } } -}; -static const sal_Int32 mso_sptLeftRightArrowCalloutDefault[] = -{ - 4, 5400, 5500, 2700, 8100 -}; -static const SvxMSDffTextRectangles mso_sptLeftRightArrowCalloutTextRect[] = -{ - { { 0 MSO_I, 0 }, { 4 MSO_I, 21600 } } -}; -static const SvxMSDffHandle mso_sptLeftRightArrowCalloutHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL, - 0x100, 0, 10800, 10800, 0x102, 10800, 0x80000000, 0x7fffffff }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL, - 0x102, 0x103, 10800, 10800, 0, 0x100, 0x101, 10800 }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL, - 0, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 0x103 } -}; -static const mso_CustomShape msoLeftRightArrowCallout = -{ - (SvxMSDffVertPair*)mso_sptLeftRightArrowCalloutVert, sizeof( mso_sptLeftRightArrowCalloutVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptLeftRightArrowCalloutSegm, sizeof( mso_sptLeftRightArrowCalloutSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptLeftRightArrowCalloutCalc, sizeof( mso_sptLeftRightArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptLeftRightArrowCalloutDefault, - (SvxMSDffTextRectangles*)mso_sptLeftRightArrowCalloutTextRect, sizeof( mso_sptLeftRightArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptLeftRightArrowCalloutHandle, sizeof( mso_sptLeftRightArrowCalloutHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptUpDownArrowCalloutVert[] = -{ - { 0, 0 MSO_I }, { 0, 4 MSO_I }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 6 MSO_I }, - { 1 MSO_I, 6 MSO_I }, { 10800, 21600 }, { 5 MSO_I, 6 MSO_I }, { 7 MSO_I, 6 MSO_I }, - { 7 MSO_I, 4 MSO_I }, { 21600, 4 MSO_I }, { 21600, 0 MSO_I }, { 7 MSO_I, 0 MSO_I }, - { 7 MSO_I, 2 MSO_I }, { 5 MSO_I, 2 MSO_I }, { 10800, 0 }, { 1 MSO_I, 2 MSO_I }, - { 3 MSO_I, 2 MSO_I }, { 3 MSO_I, 0 MSO_I } -}; -static const sal_uInt16 mso_sptUpDownArrowCalloutSegm[] = -{ - 0x4000, 0x0011, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptUpDownArrowCalloutCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } }, - { 0x8000, { 21600, 0, 0x0400 } }, - { 0x8000, { 21600, 0, 0x0401 } }, - { 0x8000, { 21600, 0, 0x0402 } }, - { 0x8000, { 21600, 0, 0x0403 } } -}; -static const sal_Int32 mso_sptUpDownArrowCalloutDefault[] = -{ - 4, 5400, 5500, 2700, 8100 -}; -static const SvxMSDffTextRectangles mso_sptUpDownArrowCalloutTextRect[] = -{ - { { 0, 0 MSO_I }, { 21600, 4 MSO_I } } -}; -static const SvxMSDffHandle mso_sptUpDownArrowCalloutHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL, - 0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0x102, 10800 }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL, - 0x103, 0x102, 10800, 10800, 0x101, 10800, 0, 0x100 }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL, - 0x101, 0, 10800, 10800, 0, 0x103, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoUpDownArrowCallout = -{ - (SvxMSDffVertPair*)mso_sptUpDownArrowCalloutVert, sizeof( mso_sptUpDownArrowCalloutVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptUpDownArrowCalloutSegm, sizeof( mso_sptUpDownArrowCalloutSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptUpDownArrowCalloutCalc, sizeof( mso_sptUpDownArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptUpDownArrowCalloutDefault, - (SvxMSDffTextRectangles*)mso_sptUpDownArrowCalloutTextRect, sizeof( mso_sptUpDownArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptUpDownArrowCalloutHandle, sizeof( mso_sptUpDownArrowCalloutHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptQuadArrowCalloutVert[] = -{ - { 0 MSO_I, 0 MSO_I }, { 3 MSO_I, 0 MSO_I }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I }, - { 10800, 0 }, { 5 MSO_I, 2 MSO_I }, { 7 MSO_I, 2 MSO_I }, { 7 MSO_I, 0 MSO_I }, - { 4 MSO_I, 0 MSO_I }, { 4 MSO_I, 3 MSO_I }, { 6 MSO_I, 3 MSO_I }, { 6 MSO_I, 1 MSO_I }, - { 21600, 10800 }, { 6 MSO_I, 5 MSO_I }, { 6 MSO_I, 7 MSO_I }, { 4 MSO_I, 7 MSO_I }, - { 4 MSO_I, 4 MSO_I }, { 7 MSO_I, 4 MSO_I }, { 7 MSO_I, 6 MSO_I }, { 5 MSO_I, 6 MSO_I }, - { 10800, 21600 }, { 1 MSO_I, 6 MSO_I }, { 3 MSO_I, 6 MSO_I }, { 3 MSO_I, 4 MSO_I }, - { 0 MSO_I, 4 MSO_I }, { 0 MSO_I, 7 MSO_I }, { 2 MSO_I, 7 MSO_I }, { 2 MSO_I, 5 MSO_I }, - { 0, 10800 }, { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 3 MSO_I } -}; -static const sal_uInt16 mso_sptQuadArrowCalloutSegm[] = -{ - 0x4000, 0x001f, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptQuadArrowCalloutCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } }, - { 0x8000, { 21600, 0, 0x0400 } }, - { 0x8000, { 21600, 0, 0x0401 } }, - { 0x8000, { 21600, 0, 0x0402 } }, - { 0x8000, { 21600, 0, 0x0403 } } -}; -static const sal_Int32 mso_sptQuadArrowCalloutDefault[] = -{ - 4, 5400, 8100, 2700, 9400 -}; -static const SvxMSDffTextRectangles mso_sptQuadArrowCalloutTextRect[] = -{ - { { 0 MSO_I, 0 MSO_I }, { 4 MSO_I, 4 MSO_I } } -}; -static const SvxMSDffHandle mso_sptQuadArrowCalloutHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL, - 0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0x102, 0x101 }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL, - 0x101, 0, 10800, 10800, 0x100, 10800, 0x80000000, 0x7fffffff }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL, - 0x103, 0x102, 10800, 10800, 0x101, 10800, 0, 0x100 } -}; -static const mso_CustomShape msoQuadArrowCallout = -{ - (SvxMSDffVertPair*)mso_sptQuadArrowCalloutVert, sizeof( mso_sptQuadArrowCalloutVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptQuadArrowCalloutSegm, sizeof( mso_sptQuadArrowCalloutSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptQuadArrowCalloutCalc, sizeof( mso_sptQuadArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptQuadArrowCalloutDefault, - (SvxMSDffTextRectangles*)mso_sptQuadArrowCalloutTextRect, sizeof( mso_sptQuadArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptQuadArrowCalloutHandle, sizeof( mso_sptQuadArrowCalloutHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptCircularArrowVert[] = -{ - { 0x03 MSO_I, 0x03 MSO_I }, - { 0x14 MSO_I, 0x14 MSO_I }, - { 0x13 MSO_I, 0x12 MSO_I }, - { 0x11 MSO_I, 0x10 MSO_I }, - { 0, 0 }, { 21600, 21600 }, - { 0x09 MSO_I, 0x08 MSO_I }, - { 0x0B MSO_I, 0x0A MSO_I }, - { 0x18 MSO_I, 0x17 MSO_I }, - { 0x2F MSO_I, 0x2E MSO_I }, - { 0x1D MSO_I, 0x1C MSO_I } -}; -static const sal_uInt16 mso_sptCircularArrowSegm[] = -{ - 0xa404, 0xa504, 0x0003, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptCircularArrowCalc[] = -{ - { 0x2000, { 0x0147, 0x0000, 0x0000 } }, - { 0x2000, { 0x0148, 0x0000, 0x0000 } }, - { 0x2000, { 0x0149, 0x0000, 0x0000 } }, - { 0x4000, { 0x2A30, 0x0149, 0x0000 } }, - { 0x4009, { 0x2A30, 0x0147, 0x0000 } }, - { 0x400A, { 0x2A30, 0x0147, 0x0000 } }, - { 0x4009, { 0x2A30, 0x0148, 0x0000 } }, - { 0x400A, { 0x2A30, 0x0148, 0x0000 } }, - { 0x2000, { 0x0404, 0x2A30, 0x0000 } }, - { 0x2000, { 0x0405, 0x2A30, 0x0000 } }, - { 0x2000, { 0x0406, 0x2A30, 0x0000 } }, - { 0x2000, { 0x0407, 0x2A30, 0x0000 } }, - { 0x6009, { 0x0403, 0x0147, 0x0000 } }, - { 0x600A, { 0x0403, 0x0147, 0x0000 } }, - { 0x6009, { 0x0403, 0x0148, 0x0000 } }, - { 0x600A, { 0x0403, 0x0148, 0x0000 } }, - { 0x2000, { 0x040C, 0x2A30, 0x0000 } }, - { 0x2000, { 0x040D, 0x2A30, 0x0000 } }, - { 0x2000, { 0x040E, 0x2A30, 0x0000 } }, - { 0x2000, { 0x040F, 0x2A30, 0x0000 } }, - { 0x8000, { 0x5460, 0x0000, 0x0403 } }, - { 0x4009, { 0x34BC, 0x0148, 0x0000 } }, - { 0x400A, { 0x34BC, 0x0148, 0x0000 } }, - { 0x2000, { 0x0415, 0x2A30, 0x0000 } }, - { 0x2000, { 0x0416, 0x2A30, 0x0000 } }, - { 0x2000, { 0x0149, 0x0000, 0x0A8C } }, - { 0x6009, { 0x0419, 0x0148, 0x0000 } }, - { 0x600A, { 0x0419, 0x0148, 0x0000 } }, - { 0x2000, { 0x041A, 0x2A30, 0x0000 } }, - { 0x2000, { 0x041B, 0x2A30, 0x0000 } }, - { 0xA000, { 0x041D, 0x0000, 0x0418 } }, - { 0xA000, { 0x041D, 0x0000, 0x0418 } }, - { 0x6001, { 0x041E, 0x041F, 0x0001 } }, - { 0xA000, { 0x041C, 0x0000, 0x0417 } }, - { 0xA000, { 0x041C, 0x0000, 0x0417 } }, - { 0x6001, { 0x0421, 0x0422, 0x0001 } }, - { 0x6000, { 0x0420, 0x0423, 0x0000 } }, - { 0x200D, { 0x0424, 0x0000, 0x0000 } }, - { 0x200E, { 0x0148, 0x002D, 0x0000 } }, - { 0x6009, { 0x0425, 0x0426, 0x0000 } }, - { 0x200E, { 0x0148, 0x002D, 0x0000 } }, - { 0x600A, { 0x0425, 0x0428, 0x0000 } }, - { 0x000E, { 0x0000, 0x002D, 0x0000 } }, - { 0x6009, { 0x0427, 0x042A, 0x0000 } }, - { 0x000E, { 0x0000, 0x002D, 0x0000 } }, - { 0x6009, { 0x0429, 0x042C, 0x0000 } }, - { 0x6000, { 0x041C, 0x042B, 0x0000 } }, - { 0x6000, { 0x041D, 0x042D, 0x0000 } } -}; -static const sal_Int32 mso_sptCircularArrowDefault[] = -{ - 3, 180, 0, 5500 -}; -static const SvxMSDffTextRectangles mso_sptCircularArrowTextRect[] = // todo -{ - { { 0, 0 }, { 21600, 21600 } } -}; -static const SvxMSDffHandle mso_sptCircularArrowHandle[] = -{ - { MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE, - 10800, 0x100, 10800, 10800, 10800, 10800, 0xff4c0000, 0x00b40000 }, - { MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE, - 0x102, 0x101, 10800, 10800, 0, 10800, 0xff4c0000, 0x00b40000 } -}; -static const mso_CustomShape msoCircularArrow = -{ - (SvxMSDffVertPair*)mso_sptCircularArrowVert, sizeof( mso_sptCircularArrowVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptCircularArrowSegm, sizeof( mso_sptCircularArrowSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptCircularArrowCalc, sizeof( mso_sptCircularArrowCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptCircularArrowDefault, - (SvxMSDffTextRectangles*)mso_sptCircularArrowTextRect, sizeof( mso_sptCircularArrowTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptCircularArrowHandle, sizeof( mso_sptCircularArrowHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -static const SvxMSDffVertPair mso_sptCubeVert[] = -{ - { 0, 12 MSO_I }, { 0, 1 MSO_I }, { 2 MSO_I, 0 }, { 11 MSO_I, 0 }, { 11 MSO_I, 3 MSO_I }, { 4 MSO_I, 12 MSO_I }, - { 0, 1 MSO_I }, { 2 MSO_I, 0 }, { 11 MSO_I, 0 }, { 4 MSO_I, 1 MSO_I }, - { 4 MSO_I, 12 MSO_I }, { 4 MSO_I, 1 MSO_I }, { 11 MSO_I, 0 }, { 11 MSO_I, 3 MSO_I } -}; -static const sal_uInt16 mso_sptCubeSegm[] = -{ - 0x4000, 0x0005, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptCubeCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x6000, { DFF_Prop_geoTop, 0x400, 0 } }, - { 0x6000, { DFF_Prop_geoLeft, 0x400, 0 } }, - { 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } }, - { 0xa000, { DFF_Prop_geoRight, 0, 0x400 } }, - { 0xa000, { DFF_Prop_geoRight, 0, 0x402 } }, // 5 - { 0x2001, { 0x405, 1, 2 } }, // 6 - { 0x6000, { 0x402, 0x406, 0 } }, // 7 - { 0xa000, { DFF_Prop_geoBottom, 0, 0x401 } }, // 8 - { 0x2001, { 0x408, 1, 2 } }, // 9 - { 0x6000, { 0x401, 0x409, 0 } }, // 10 - { 0x2000, { DFF_Prop_geoRight, 0, 0 } }, // 11 - { 0x2000, { DFF_Prop_geoBottom, 0, 0 } } // 12 -}; -static const SvxMSDffTextRectangles mso_sptCubeTextRect[] = -{ - { { 0, 1 MSO_I }, { 4 MSO_I, 12 MSO_I } } -}; -static const SvxMSDffHandle mso_sptCubeHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED, - 0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 21600 } -}; -static const SvxMSDffVertPair mso_sptCubeGluePoints[] = -{ - { 7 MSO_I, 0 }, { 6 MSO_I, 1 MSO_I }, { 0, 10 MSO_I }, { 6 MSO_I, 21600 }, { 4 MSO_I, 10 MSO_I }, { 21600, 9 MSO_I } -}; -static const mso_CustomShape msoCube = -{ - (SvxMSDffVertPair*)mso_sptCubeVert, sizeof( mso_sptCubeVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptCubeSegm, sizeof( mso_sptCubeSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptCubeCalc, sizeof( mso_sptCubeCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault5400, - (SvxMSDffTextRectangles*)mso_sptCubeTextRect, sizeof( mso_sptCubeTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 10800, 10800, - (SvxMSDffVertPair*)mso_sptCubeGluePoints, sizeof( mso_sptCubeGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptCubeHandle, sizeof( mso_sptCubeHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptBevelVert[] = -{ - { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, - { 0, 0 }, { 21600, 0 }, { 1 MSO_I, 0 MSO_I }, { 0 MSO_I, 0 MSO_I }, - { 21600, 0 }, { 21600, 21600 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 0 MSO_I }, - { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I }, - { 0, 21600 }, { 0, 0 }, { 0 MSO_I, 0 MSO_I }, { 0 MSO_I, 2 MSO_I } -}; -static const sal_uInt16 mso_sptBevelSegm[] = -{ - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptBevelCalc[] = -{ - { 0x2001, { DFF_Prop_adjustValue, 21599, 21600 } }, - { 0xa000, { DFF_Prop_geoRight, 0, 0x400 } }, - { 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } } -}; - -static const SvxMSDffTextRectangles mso_sptBevelTextRect[] = -{ - { { 0 MSO_I, 0 MSO_I }, { 1 MSO_I, 2 MSO_I } } -}; -static const SvxMSDffHandle mso_sptBevelHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED, - 0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoBevel = -{ - (SvxMSDffVertPair*)mso_sptBevelVert, sizeof( mso_sptBevelVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptBevelSegm, sizeof( mso_sptBevelSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptBevelCalc, sizeof( mso_sptBevelCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault2700, - (SvxMSDffTextRectangles*)mso_sptBevelTextRect, sizeof( mso_sptBevelTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 10800, 10800, - NULL, 0, - (SvxMSDffHandle*)mso_sptBevelHandle, sizeof( mso_sptBevelHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptFoldedCornerVert[] = // adjustment1 : x 10800 - 21600 -{ - { 0, 0 }, { 21600, 0 }, { 21600, 0 MSO_I }, { 0 MSO_I, 21600 }, - { 0, 21600 }, { 0 MSO_I, 21600 }, { 3 MSO_I, 0 MSO_I }, { 8 MSO_I, 9 MSO_I }, - { 10 MSO_I, 11 MSO_I }, { 21600, 0 MSO_I } -}; -static const sal_uInt16 mso_sptFoldedCornerSegm[] = -{ - 0x4000, 0x0004, 0x6001, 0x8000, - 0x4000, 0x0001, 0x2001, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptFoldedCornerCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x8000, { 21600, 0, 0x400 } }, - { 0x2001, { 0x0401, 8000, 10800 } }, - { 0x8000, { 21600, 0, 0x0402 } }, - { 0x2001, { 0x0401, 1, 2 } }, - { 0x2001, { 0x0401, 1, 4 } }, - { 0x2001, { 0x0401, 1, 7 } }, - { 0x2001, { 0x0401, 1, 16 } }, - { 0x6000, { 0x0403, 0x405, 0 } }, - { 0x6000, { 0x0400, 0x406, 0 } }, - { 0x8000, { 21600, 0, 0x404 } }, - { 0x6000, { 0x400, 0x407, 0 } } -}; -static const sal_Int32 mso_sptFoldedCornerDefault[] = -{ - 1, 18900 -}; -static const SvxMSDffTextRectangles mso_sptFoldedCornerTextRect[] = -{ - { { 0, 0 }, { 21600, 11 MSO_I } } -}; -static const SvxMSDffHandle mso_sptFoldedCornerHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 1, 10800, 10800, 10800, 21600, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoFoldedCorner = -{ - (SvxMSDffVertPair*)mso_sptFoldedCornerVert, sizeof( mso_sptFoldedCornerVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptFoldedCornerSegm, sizeof( mso_sptFoldedCornerSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptFoldedCornerCalc, sizeof( mso_sptFoldedCornerCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptFoldedCornerDefault, - (SvxMSDffTextRectangles*)mso_sptFoldedCornerTextRect, sizeof( mso_sptFoldedCornerTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptFoldedCornerHandle, sizeof( mso_sptFoldedCornerHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptActionButtonBlankVert[] = -{ - { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, - { 0, 0 }, { 21600, 0 }, { 1 MSO_I, 0 MSO_I }, { 0 MSO_I, 0 MSO_I }, - { 21600, 0 }, { 21600, 21600 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 0 MSO_I }, - { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I }, - { 0, 21600 }, { 0, 0 }, { 0 MSO_I, 0 MSO_I }, { 0 MSO_I, 2 MSO_I } -}; -static const sal_uInt16 mso_sptActionButtonBlankSegm[] = -{ - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptActionButtonBlankCalc[] = -{ - { 0x2001, { DFF_Prop_adjustValue, 21599, 21600 } }, - { 0xa000, { DFF_Prop_geoRight, 0, 0x400 } }, - { 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } } -}; -static const SvxMSDffTextRectangles mso_sptActionButtonBlankTextRect[] = -{ - { { 0 MSO_I, 0 MSO_I }, { 1 MSO_I, 2 MSO_I } } -}; -static const SvxMSDffHandle mso_sptButtonHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED, - 0x100, 0, 10800, 10800, 0, 5400, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoActionButtonBlank = -{ - (SvxMSDffVertPair*)mso_sptActionButtonBlankVert, sizeof( mso_sptActionButtonBlankVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptActionButtonBlankSegm, sizeof( mso_sptActionButtonBlankSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptActionButtonBlankCalc, sizeof( mso_sptActionButtonBlankCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault1400, - (SvxMSDffTextRectangles*)mso_sptActionButtonBlankTextRect, sizeof( mso_sptActionButtonBlankTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 10800, 10800, - NULL, 0, - (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffTextRectangles mso_sptActionButtonTextRect[] = -{ - { { 1 MSO_I, 2 MSO_I }, { 3 MSO_I, 4 MSO_I } } -}; -static const SvxMSDffVertPair mso_sptActionButtonHomeVert[] = -{ - { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, - { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I }, - { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I }, - { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I }, - { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I }, - - { 7 MSO_I, 0xa MSO_I }, { 0xc MSO_I, 0xe MSO_I }, { 0xc MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0x10 MSO_I }, - { 0x12 MSO_I, 0x14 MSO_I }, { 0x16 MSO_I, 8 MSO_I }, { 0x18 MSO_I, 8 MSO_I }, { 0x18 MSO_I, 0x1a MSO_I }, - { 0x1c MSO_I, 0x1a MSO_I }, { 0x1c MSO_I, 8 MSO_I }, { 0x1e MSO_I, 8 MSO_I }, - - { 0xc MSO_I, 0xe MSO_I }, { 0xc MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0x10 MSO_I },{ 0x12 MSO_I, 0x14 MSO_I }, - - { 0x20 MSO_I, 0x24 MSO_I }, { 0x22 MSO_I, 0x24 MSO_I }, { 0x22 MSO_I, 0x1a MSO_I }, { 0x18 MSO_I, 0x1a MSO_I }, - { 0x18 MSO_I, 8 MSO_I }, { 0x1c MSO_I, 8 MSO_I }, { 0x1c MSO_I, 0x1a MSO_I }, { 0x20 MSO_I, 0x1a MSO_I } - -}; -static const sal_uInt16 mso_sptActionButtonHomeSegm[] = -{ - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x000a, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0007, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptActionButtonHomeCalc[] = // adj value 0 - 5400 -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 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 } }, - { 0x8000, { 10800, 0, DFF_Prop_adjustValue } }, - { 0x2001, { 0x0405, 1, 10800 } }, // scaling 6 - { 0x2001, { DFF_Prop_geoRight, 1, 2 } }, // lr center 7 - { 0x2001, { DFF_Prop_geoBottom, 1, 2 } }, // ul center 8 - - { 0x4001, { -8000, 0x0406, 1 } }, // 9 - { 0x6000, { 0x0409, 0x0408, 0 } }, // a - { 0x4001, { 2960, 0x0406, 1 } }, // b - { 0x6000, { 0x040b, 0x0407, 0 } }, // c - { 0x4001, { -5000, 0x0406, 1 } }, // d - { 0x6000, { 0x040d, 0x0408, 0 } }, // e - { 0x4001, { -7000, 0x0406, 1 } }, // f - { 0x6000, { 0x040f, 0x0408, 0 } }, // 10 - { 0x4001, { 5000, 0x0406, 1 } }, // 11 - { 0x6000, { 0x0411, 0x0407, 0 } }, // 12 - { 0x4001, { -2960, 0x0406, 1 } }, // 13 - { 0x6000, { 0x0413, 0x0408, 0 } }, // 14 - { 0x4001, { 8000, 0x0406, 1 } }, // 15 - { 0x6000, { 0x0415,0x0407, 0 } }, // 16 - { 0x4001, { 6100, 0x0406, 1 } }, // 17 - { 0x6000, { 0x0417,0x0407, 0 } }, // 18 - { 0x4001, { 8260, 0x0406, 1 } }, // 19 - { 0x6000, { 0x0419, 0x0408, 0 } }, // 1a - { 0x4001, { -6100, 0x0406, 1 } }, // 1b - { 0x6000, { 0x041b, 0x0407, 0 } }, // 1c - { 0x4001, { -8000, 0x0406, 1 } }, // 1d - { 0x6000, { 0x041d, 0x0407, 0 } }, // 1e - { 0x4001, { -1060, 0x0406, 1 } }, // 1f - { 0x6000, { 0x041f, 0x0407, 0 } }, // 20 - { 0x4001, { 1060, 0x0406, 1 } }, // 21 - { 0x6000, { 0x0421, 0x0407, 0 } }, // 22 - { 0x4001, { 4020, 0x0406, 1 } }, // 23 - { 0x6000, { 0x0423, 0x0408, 0 } } // 24 - -}; -static const mso_CustomShape msoActionButtonHome = -{ - (SvxMSDffVertPair*)mso_sptActionButtonHomeVert, sizeof( mso_sptActionButtonHomeVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptActionButtonHomeSegm, sizeof( mso_sptActionButtonHomeSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptActionButtonHomeCalc, sizeof( mso_sptActionButtonHomeCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault1400, - (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 10800, 10800, - NULL, 0, - (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptActionButtonHelpVert[] = -{ - { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, - { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I }, - { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I }, - { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I }, - { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I,4 MSO_I }, - { 7 MSO_I, 0xc MSO_I }, { 0xa MSO_I, 0x3e MSO_I }, { 7 MSO_I, 0x10 MSO_I }, { 0xe MSO_I, 0x3e MSO_I }, { 7 MSO_I, 0xc MSO_I }, - { 0x12 MSO_I, 0x14 MSO_I }, { 0x12 MSO_I, 0x16 MSO_I }, // pp - { 0x12 MSO_I, 0x18 MSO_I }, { 0x1a MSO_I, 8 MSO_I }, { 0x1c MSO_I, 8 MSO_I }, // ccp - { 0x1e MSO_I, 8 MSO_I }, { 0x20 MSO_I, 0x22 MSO_I }, { 0x20 MSO_I, 0x24 MSO_I }, // ccp - { 0x20 MSO_I, 0x26 MSO_I }, { 0x28 MSO_I, 0x2a MSO_I }, { 7 MSO_I, 0x2a MSO_I }, // ccp - { 0x2c MSO_I, 0x2a MSO_I }, { 0x2e MSO_I, 0x26 MSO_I }, { 0x2e MSO_I, 0x24 MSO_I }, // ccp - { 0x30 MSO_I, 0x24 MSO_I }, { 0x30 MSO_I, 0x32 MSO_I }, { 0x34 MSO_I, 0x36 MSO_I }, // ccp - { 7 MSO_I, 0x36 MSO_I }, // p - { 0x12 MSO_I, 0x36 MSO_I }, { 0x1c MSO_I, 0x32 MSO_I }, { 0x1c MSO_I, 0x24 MSO_I }, // ccp - { 0x1c MSO_I, 0x38 MSO_I }, { 0x3a MSO_I, 0x3c MSO_I }, { 0x12 MSO_I, 0x3c MSO_I }, // ccp - { 7 MSO_I, 0x3c MSO_I }, { 0x34 MSO_I, 8 MSO_I }, { 0x34 MSO_I, 0x16 MSO_I }, // ccp - { 0x34 MSO_I, 0x14 MSO_I } -}; -static const sal_uInt16 mso_sptActionButtonHelpSegm[] = -{ - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0xa704, 0x6000, 0x8000, - 0x4000, 0x0001, 0x2004, 0x0001, 0x2004, 0x0001, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptActionButtonHelpCalc[] = // adj value 0 - 5400 -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 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 } }, - { 0x8000, { 10800, 0, DFF_Prop_adjustValue } }, - { 0x2001, { 0x0405, 1, 10800 } }, // scaling 6 - { 0x2001, { DFF_Prop_geoRight, 1, 2 } }, // lr center 7 - { 0x2001, { DFF_Prop_geoBottom, 1, 2 } }, // ul center 8 - - { 0x4001, { -1690, 0x0406, 1 } }, // 9 - { 0x6000, { 0x0409, 0x0407, 0 } }, // a - { 0x4001, { 4600, 0x0406, 1 } }, // b - { 0x6000, { 0x040b, 0x0408, 0 } }, // c - { 0x4001, { 1690, 0x0406, 1 } }, // d - { 0x6000, { 0x040d, 0x0407, 0 } }, // e - { 0x4001, { 7980, 0x0406, 1 } }, // f - { 0x6000, { 0x040f, 0x0408, 0 } }, // 10 - { 0x4001, { 1270, 0x0406, 1 } }, // 11 - { 0x6000, { 0x0411, 0x0407, 0 } }, // 12 - { 0x4001, { 4000, 0x0406, 1 } }, // 13 - { 0x6000, { 0x0413, 0x0408, 0 } }, // 14 - { 0x4001, { 1750, 0x0406, 1 } }, // 15 - { 0x6000, { 0x0415, 0x0408, 0 } }, // 16 - { 0x4001, { 800, 0x0406, 1 } }, // 17 - { 0x6000, { 0x0417, 0x0408, 0 } }, // 18 - { 0x4001, { 1650, 0x0406, 1 } }, // 19 - { 0x6000, { 0x0419, 0x0407, 0 } }, // 1a - { 0x4001, { 2340, 0x0406, 1 } }, // 1b - { 0x6000, { 0x041b, 0x0407, 0 } }, // 1c - { 0x4001, { 3640, 0x0406, 1 } }, // 1d - { 0x6000, { 0x041d, 0x0407, 0 } }, // 1e - { 0x4001, { 4670, 0x0406, 1 } }, // 1f - { 0x6000, { 0x041f, 0x0407, 0 } }, // 20 - { 0x4001, { -1570, 0x0406, 1 } }, // 21 - { 0x6000, { 0x0421, 0x0408, 0 } }, // 22 - { 0x4001, { -3390, 0x0406, 1 } }, // 23 - { 0x6000, { 0x0423, 0x0408, 0 } }, // 24 - { 0x4001, { -6050, 0x0406, 1 } }, // 25 - { 0x6000, { 0x0425, 0x0408, 0 } }, // 26 - { 0x4001, { 2540, 0x0406, 1 } }, // 27 - { 0x6000, { 0x0427, 0x0407, 0 } }, // 28 - { 0x4001, { -8050, 0x0406, 1 } }, // 29 - { 0x6000, { 0x0429, 0x0408, 0 } }, // 2a - { 0x4001, { -2540, 0x0406, 1 } }, // 2b - { 0x6000, { 0x042b, 0x0407, 0 } }, // 2c - { 0x4001, { -4460, 0x0406, 1 } }, // 2d - { 0x6000, { 0x042d, 0x0407, 0 } }, // 2e - { 0x4001, { -2330, 0x0406, 1 } }, // 2f - { 0x6000, { 0x042f, 0x0407, 0 } }, // 30 - { 0x4001, { -4700, 0x0406, 1 } }, // 31 - { 0x6000, { 0x0431, 0x0408, 0 } }, // 32 - { 0x4001, { -1270, 0x0406, 1 } }, // 33 - { 0x6000, { 0x0433, 0x0407, 0 } }, // 34 - { 0x4001, { -5720, 0x0406, 1 } }, // 35 - { 0x6000, { 0x0435, 0x0408, 0 } }, // 36 - { 0x4001, { -2540, 0x0406, 1 } }, // 37 - { 0x6000, { 0x0437, 0x0408, 0 } }, // 38 - { 0x4001, { 1800, 0x0406, 1 } }, // 39 - { 0x6000, { 0x0439, 0x0407, 0 } }, // 3a - { 0x4001, { -1700, 0x0406, 1 } }, // 3b - { 0x6000, { 0x043b, 0x0408, 0 } }, // 3c - { 0x4001, { 6290, 0x0406, 1 } }, // 3d - { 0x6000, { 0x043d, 0x0408, 0 } } // 3e -}; -static const mso_CustomShape msoActionButtonHelp = -{ - (SvxMSDffVertPair*)mso_sptActionButtonHelpVert, sizeof( mso_sptActionButtonHelpVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptActionButtonHelpSegm, sizeof( mso_sptActionButtonHelpSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptActionButtonHelpCalc, sizeof( mso_sptActionButtonHelpCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault1400, - (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 10800, 10800, - NULL, 0, - (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptActionButtonInformationVert[] = -{ - { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, - { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I }, - { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I }, - { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I }, - { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I }, - { 0x7 MSO_I, 0xc MSO_I }, { 0xa MSO_I, 0x8 MSO_I }, { 0x7 MSO_I, 0x10 MSO_I }, { 0xe MSO_I, 8 MSO_I }, { 0x7 MSO_I, 0xc MSO_I }, - { 0x7 MSO_I, 0x14 MSO_I }, { 0x12 MSO_I, 0x2a MSO_I }, { 0x7 MSO_I, 0x18 MSO_I }, { 0x16 MSO_I, 0x2a MSO_I }, { 0x7 MSO_I, 0x14 MSO_I }, - { 0x1a MSO_I, 0x1c MSO_I }, { 0x1e MSO_I, 0x1c MSO_I }, { 0x1e MSO_I, 0x20 MSO_I }, { 0x22 MSO_I, 0x20 MSO_I }, - { 0x22 MSO_I, 0x24 MSO_I }, { 0x1a MSO_I, 0x24 MSO_I }, { 0x1a MSO_I, 0x20 MSO_I }, { 0x26 MSO_I, 0x20 MSO_I }, - { 0x26 MSO_I, 0x28 MSO_I }, { 0x1a MSO_I, 0x28 MSO_I } -}; -static const sal_uInt16 mso_sptActionButtonInformationSegm[] = -{ - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0xa704, 0x6000, 0x8000, - 0x4000, 0xa704, 0x6000, 0x8000, - 0x4000, 0x0009, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptActionButtonInformationCalc[] = // adj value 0 - 5400 -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 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 } }, - { 0x8000, { 10800, 0, DFF_Prop_adjustValue } }, - { 0x2001, { 0x0405, 1, 10800 } }, // scaling 6 - { 0x2001, { DFF_Prop_geoRight, 1, 2 } }, // lr center 7 - { 0x2001, { DFF_Prop_geoBottom, 1, 2 } }, // ul center 8 - - { 0x4001, { -8050, 0x0406, 1 } }, // 9 - { 0x6000, { 0x0409, 0x0407, 0 } }, // a - { 0x4001, { -8050, 0x0406, 1 } }, // b - { 0x6000, { 0x040b, 0x0408, 0 } }, // c - { 0x4001, { 8050, 0x0406, 1 } }, // d - { 0x6000, { 0x040d, 0x0407, 0 } }, // e - { 0x4001, { 8050, 0x0406, 1 } }, // f - { 0x6000, { 0x040f, 0x0408, 0 } }, // 10 - - { 0x4001, { -2060, 0x0406, 1 } }, // 11 - { 0x6000, { 0x0411, 0x0407, 0 } }, // 12 - { 0x4001, { -7620, 0x0406, 1 } }, // 13 - { 0x6000, { 0x0413, 0x0408, 0 } }, // 14 - { 0x4001, { 2060, 0x0406, 1 } }, // 15 - { 0x6000, { 0x0415, 0x0407, 0 } }, // 16 - { 0x4001, { -3500, 0x0406, 1 } }, // 17 - { 0x6000, { 0x0417, 0x0408, 0 } }, // 18 - - { 0x4001, { -2960, 0x0406, 1 } }, // 19 - { 0x6000, { 0x0419, 0x0407, 0 } }, // 1a - { 0x4001, { -2960, 0x0406, 1 } }, // 1b - { 0x6000, { 0x041b, 0x0408, 0 } }, // 1c - { 0x4001, { 1480, 0x0406, 1 } }, // 1d - { 0x6000, { 0x041d, 0x0407, 0 } }, // 1e - { 0x4001, { 5080, 0x0406, 1 } }, // 1f - { 0x6000, { 0x041f, 0x0408, 0 } }, // 20 - { 0x4001, { 2960, 0x0406, 1 } }, // 21 - { 0x6000, { 0x0421, 0x0407, 0 } }, // 22 - { 0x4001, { 6140, 0x0406, 1 } }, // 23 - { 0x6000, { 0x0423, 0x0408, 0 } }, // 24 - { 0x4001, { -1480, 0x0406, 1 } }, // 25 - { 0x6000, { 0x0425, 0x0407, 0 } }, // 26 - { 0x4001, { -1920, 0x0406, 1 } }, // 27 - { 0x6000, { 0x0427, 0x0408, 0 } }, // 28 - - { 0x4001, { -5560, 0x0406, 1 } }, // 29 - { 0x6000, { 0x0429, 0x0408, 0 } }, // 2a - -}; -static const mso_CustomShape msoActionButtonInformation = -{ - (SvxMSDffVertPair*)mso_sptActionButtonInformationVert, sizeof( mso_sptActionButtonInformationVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptActionButtonInformationSegm, sizeof( mso_sptActionButtonInformationSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptActionButtonInformationCalc, sizeof( mso_sptActionButtonInformationCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault1400, - (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 10800, 10800, - NULL, 0, - (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptActionButtonBackPreviousVert[] = -{ - { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, - { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I }, - { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I }, - { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I,4 MSO_I }, - { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I }, - - { 0xa MSO_I, 8 MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0x10 MSO_I } -}; -static const sal_uInt16 mso_sptActionButtonForwardBackSegm[] = -{ - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0002, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptActionButtonForwardBackCalc[] = // adj value 0 - 5400 -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 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 } }, - { 0x8000, { 10800, 0, DFF_Prop_adjustValue } }, - { 0x2001, { 0x0405, 1, 10800 } }, // scaling 6 - { 0x2001, { DFF_Prop_geoRight, 1, 2 } }, // lr center 7 - { 0x2001, { DFF_Prop_geoBottom, 1, 2 } }, // ul center 8 - - { 0x4001, { -8050, 0x0406, 1 } }, // 9 - { 0x6000, { 0x0409, 0x0407, 0 } }, // a - { 0x4001, { -8050, 0x0406, 1 } }, // b - { 0x6000, { 0x040b, 0x0408, 0 } }, // c - { 0x4001, { 8050, 0x0406, 1 } }, // d - { 0x6000, { 0x040d, 0x0407, 0 } }, // e - { 0x4001, { 8050, 0x0406, 1 } }, // f - { 0x6000, { 0x040f, 0x0408, 0 } } // 10 -}; -static const mso_CustomShape msoActionButtonBackPrevious = -{ - (SvxMSDffVertPair*)mso_sptActionButtonBackPreviousVert, sizeof( mso_sptActionButtonBackPreviousVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptActionButtonForwardBackSegm, sizeof( mso_sptActionButtonForwardBackSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptActionButtonForwardBackCalc, sizeof( mso_sptActionButtonForwardBackCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault1400, - (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 10800, 10800, - NULL, 0, - (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptActionButtonForwardNextVert[] = -{ - { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, - { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I }, - { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I }, - { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I }, - { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I }, - - { 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 8 MSO_I }, { 0xa MSO_I, 0x10 MSO_I } -}; -static const mso_CustomShape msoActionButtonForwardNext = -{ - (SvxMSDffVertPair*)mso_sptActionButtonForwardNextVert, sizeof( mso_sptActionButtonForwardNextVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptActionButtonForwardBackSegm, sizeof( mso_sptActionButtonForwardBackSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptActionButtonForwardBackCalc, sizeof( mso_sptActionButtonForwardBackCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault1400, - (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 10800, 10800, - NULL, 0, - (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptActionButtonBeginningVert[] = -{ - { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, - { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I }, - { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I }, - { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I }, - { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I }, - - { 0xa MSO_I, 8 MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0xc MSO_I }, - { 0x14 MSO_I, 0xc MSO_I }, { 0x14 MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0x10 MSO_I } -}; -static const sal_uInt16 mso_sptActionButtonBeginningEndSegm[] = -{ - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - - 0x4000, 0x0002, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptActionButtonBeginningEndCalc[] = // adj value 0 - 5400 -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 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 } }, - { 0x8000, { 10800, 0, DFF_Prop_adjustValue } }, - { 0x2001, { 0x0405, 1, 10800 } }, // scaling 6 - { 0x2001, { DFF_Prop_geoRight, 1, 2 } }, // lr center 7 - { 0x2001, { DFF_Prop_geoBottom, 1, 2 } }, // ul center 8 - - { 0x4001, { -4020, 0x0406, 1 } }, // 9 - { 0x6000, { 0x0409, 0x0407, 0 } }, // a - { 0x4001, { -8050, 0x0406, 1 } }, // b - { 0x6000, { 0x040b, 0x0408, 0 } }, // c - { 0x4001, { 8050, 0x0406, 1 } }, // d - { 0x6000, { 0x040d, 0x0407, 0 } }, // e - { 0x4001, { 8050, 0x0406, 1 } }, // f - { 0x6000, { 0x040f, 0x0408, 0 } }, // 10 - - { 0x4001, { -8050, 0x0406, 1 } }, // 11 - { 0x6000, { 0x0411, 0x0407, 0 } }, // 12 - { 0x4001, { -6140, 0x0406, 1 } }, // 13 - { 0x6000, { 0x0413, 0x0407, 0 } }, // 14 - - - { 0x4001, { 4020, 0x0406, 1 } }, // 15 - { 0x6000, { 0x0415, 0x0407, 0 } }, // 16 - { 0x4001, { 6140, 0x0406, 1 } }, // 17 - { 0x6000, { 0x0417, 0x0407, 0 } } // 18 -}; -static const mso_CustomShape msoActionButtonBeginning = -{ - (SvxMSDffVertPair*)mso_sptActionButtonBeginningVert, sizeof( mso_sptActionButtonBeginningVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptActionButtonBeginningEndSegm, sizeof( mso_sptActionButtonBeginningEndSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptActionButtonBeginningEndCalc, sizeof( mso_sptActionButtonBeginningEndCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault1400, - (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 10800, 10800, - NULL, 0, - (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptActionButtonEndVert[] = -{ - { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, - { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I }, - { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I }, - { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I }, - { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I }, - - { 0x16 MSO_I, 8 MSO_I }, { 0x12 MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0xc MSO_I }, - - { 0x18 MSO_I, 0xc MSO_I }, { 0x18 MSO_I, 0x10 MSO_I }, { 0xe MSO_I, 0x10 MSO_I }, { 0xe MSO_I, 0xc MSO_I } -}; -static const mso_CustomShape msoActionButtonEnd = -{ - (SvxMSDffVertPair*)mso_sptActionButtonEndVert, sizeof( mso_sptActionButtonEndVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptActionButtonBeginningEndSegm, sizeof( mso_sptActionButtonBeginningEndSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptActionButtonBeginningEndCalc, sizeof( mso_sptActionButtonBeginningEndCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault1400, - (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 10800, 10800, - NULL, 0, - (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptActionButtonReturnVert[] = -{ - { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, - { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I }, - { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I }, - { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I }, - { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I }, - - { 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0x10 MSO_I }, // ppp - { 0xe MSO_I, 0x12 MSO_I }, { 0x14 MSO_I, 0x16 MSO_I }, { 0x18 MSO_I, 0x16 MSO_I }, // ccp - { 7 MSO_I, 0x16 MSO_I }, // p - { 0x1a MSO_I, 0x16 MSO_I }, { 0x1c MSO_I, 0x12 MSO_I }, { 0x1c MSO_I, 0x10 MSO_I }, // ccp - { 0x1c MSO_I, 0xc MSO_I }, { 7 MSO_I, 0xc MSO_I }, { 0x1e MSO_I, 0x20 MSO_I }, { 0x22 MSO_I, 0xc MSO_I },// pppp - { 0x24 MSO_I, 0xc MSO_I }, { 0x24 MSO_I, 0x10 MSO_I }, // pp - { 0x24 MSO_I, 0x26 MSO_I }, { 0x28 MSO_I, 0x2a MSO_I }, { 7 MSO_I, 0x2a MSO_I }, // ccp - { 0x18 MSO_I, 0x2a MSO_I }, // p - { 0x2c MSO_I, 0x2a MSO_I }, { 0xa MSO_I, 0x26 MSO_I }, { 0xa MSO_I, 0x10 MSO_I } // ccp -}; -static const sal_uInt16 mso_sptActionButtonReturnSegm[] = -{ - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0002, 0x2001, 0x0001, 0x2001, 0x0006,0x2001, 0x0001, 0x2001, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptActionButtonReturnCalc[] = // adj value 0 - 5400 -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 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 } }, - { 0x8000, { 10800, 0, DFF_Prop_adjustValue } }, - { 0x2001, { 0x0405, 1, 10800 } }, // scaling 6 - { 0x2001, { DFF_Prop_geoRight, 1, 2 } }, // lr center 7 - { 0x2001, { DFF_Prop_geoBottom, 1, 2 } }, // ul center 8 - - { 0x4001, { -8050, 0x0406, 1 } }, // 9 - { 0x6000, { 0x0409, 0x0407, 0 } }, // a - { 0x4001, { -3800, 0x0406, 1 } }, // b - { 0x6000, { 0x040b, 0x0408, 0 } }, // c - { 0x4001, { -4020, 0x0406, 1 } }, // d - { 0x6000, { 0x040d, 0x0407, 0 } }, // e - { 0x4001, { 2330, 0x0406, 1 } }, // f - { 0x6000, { 0x040f, 0x0408, 0 } }, // 10 - { 0x4001, { 3390, 0x0406, 1 } }, // 11 - { 0x6000, { 0x0411, 0x0408, 0 } }, // 12 - { 0x4001, { -3100, 0x0406, 1 } }, // 13 - { 0x6000, { 0x0413, 0x0407, 0 } }, // 14 - { 0x4001, { 4230, 0x0406, 1 } }, // 15 - { 0x6000, { 0x0415, 0x0408, 0 } }, // 16 - { 0x4001, { -1910, 0x0406, 1 } }, // 17 - { 0x6000, { 0x0417, 0x0407, 0 } }, // 18 - { 0x4001, { 1190, 0x0406, 1 } }, // 19 - { 0x6000, { 0x0419, 0x0407, 0 } }, // 1a - { 0x4001, { 2110, 0x0406, 1 } }, // 1b - { 0x6000, { 0x041b, 0x0407, 0 } }, // 1c - { 0x4001, { 4030, 0x0406, 1 } }, // 1d - { 0x6000, { 0x041d, 0x0407, 0 } }, // 1e - { 0x4001, { -7830, 0x0406, 1 } }, // 1f - { 0x6000, { 0x041f, 0x0408, 0 } }, // 20 - { 0x4001, { 8250, 0x0406, 1 } }, // 21 - { 0x6000, { 0x0421, 0x0407, 0 } }, // 22 - { 0x4001, { 6140, 0x0406, 1 } }, // 23 - { 0x6000, { 0x0423, 0x0407, 0 } }, // 24 - { 0x4001, { 5510, 0x0406, 1 } }, // 25 - { 0x6000, { 0x0425, 0x0408, 0 } }, // 26 - { 0x4001, { 3180, 0x0406, 1 } }, // 27 - { 0x6000, { 0x0427, 0x0407, 0 } }, // 28 - { 0x4001, { 8450, 0x0406, 1 } }, // 29 - { 0x6000, { 0x0429, 0x0408, 0 } }, // 2a - { 0x4001, { -5090, 0x0406, 1 } }, // 2b - { 0x6000, { 0x042b, 0x0407, 0 } } // 2c -}; -static const mso_CustomShape msoActionButtonReturn = -{ - (SvxMSDffVertPair*)mso_sptActionButtonReturnVert, sizeof( mso_sptActionButtonReturnVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptActionButtonReturnSegm, sizeof( mso_sptActionButtonReturnSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptActionButtonReturnCalc, sizeof( mso_sptActionButtonReturnCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault1400, - (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 10800, 10800, - NULL, 0, - (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptActionButtonDocumentVert[] = -{ - { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, - { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I }, - { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I }, - { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I }, - { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I }, - - { 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0x10 MSO_I, 0x14 MSO_I }, - { 0xa MSO_I, 0x14 MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0xe MSO_I, 0x12 MSO_I } -}; -static const sal_uInt16 mso_sptActionButtonDocumentSegm[] = -{ - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - - 0x4000, 0x0004, 0x6001, 0x8000, - 0x4000, 0x0002, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptActionButtonDocumentCalc[] = // adj value 0 - 5400 -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 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 } }, - { 0x8000, { 10800, 0, DFF_Prop_adjustValue } }, - { 0x2001, { 0x0405, 1, 10800 } }, // scaling 6 - { 0x2001, { DFF_Prop_geoRight, 1, 2 } }, // lr center 7 - { 0x2001, { DFF_Prop_geoBottom, 1, 2 } }, // ul center 8 - - { 0x4001, { -6350, 0x0406, 1 } }, // 9 - { 0x6000, { 0x0409, 0x0407, 0 } }, // a - { 0x4001, { -7830, 0x0406, 1 } }, // b - { 0x6000, { 0x040b, 0x0408, 0 } }, // c - { 0x4001, { 1690, 0x0406, 1 } }, // d - { 0x6000, { 0x040d, 0x0407, 0 } }, // e - { 0x4001, { 6350, 0x0406, 1 } }, // f - { 0x6000, { 0x040f, 0x0407, 0 } }, // 10 - { 0x4001, { -3810, 0x0406, 1 } }, // 11 - { 0x6000, { 0x0411, 0x0408, 0 } }, // 12 - { 0x4001, { 7830, 0x0406, 1 } }, // 13 - { 0x6000, { 0x0413, 0x0408, 0 } } // 14 -}; -static const mso_CustomShape msoActionButtonDocument = -{ - (SvxMSDffVertPair*)mso_sptActionButtonDocumentVert, sizeof( mso_sptActionButtonDocumentVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptActionButtonDocumentSegm, sizeof( mso_sptActionButtonDocumentSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptActionButtonDocumentCalc, sizeof( mso_sptActionButtonDocumentCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault1400, - (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 10800, 10800, - NULL, 0, - (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptActionButtonSoundVert[] = -{ - { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, - { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I }, - { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I }, - { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I }, - { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I }, - - { 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0x10 MSO_I, 0x14 MSO_I }, - { 0xe MSO_I, 0x16 MSO_I }, { 0xa MSO_I, 0x16 MSO_I }, { 0x18 MSO_I, 8 MSO_I }, { 0x1a MSO_I, 8 MSO_I }, - - { 0x18 MSO_I, 0xc MSO_I }, { 0x1a MSO_I, 0x1c MSO_I }, - - { 0x18 MSO_I, 0x16 MSO_I }, { 0x1a MSO_I, 0x1e MSO_I } -}; -static const sal_uInt16 mso_sptActionButtonSoundSegm[] = -{ - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - - 0x4000, 0x0005, 0x6001, 0x8000, - 0x4000, 0x0001, 0x8000, - 0x4000, 0x0001, 0x8000, - 0x4000, 0x0001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptActionButtonSoundCalc[] = // adj value 0 - 5400 -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 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 } }, - { 0x8000, { 10800, 0, DFF_Prop_adjustValue } }, - { 0x2001, { 0x0405, 1, 10800 } }, // scaling 6 - { 0x2001, { DFF_Prop_geoRight, 1, 2 } }, // lr center 7 - { 0x2001, { DFF_Prop_geoBottom, 1, 2 } }, // ul center 8 - - { 0x4001, { -8050, 0x0406, 1 } }, // 9 - { 0x6000, { 0x0409, 0x0407, 0 } }, // a - { 0x4001, { -2750, 0x0406, 1 } }, // b - { 0x6000, { 0x040b, 0x0408, 0 } }, // c - { 0x4001, { -2960, 0x0406, 1 } }, // d - { 0x6000, { 0x040d, 0x0407, 0 } }, // e - { 0x4001, { 2120, 0x0406, 1 } }, // f - { 0x6000, { 0x040f, 0x0407, 0 } }, // 10 - { 0x4001, { -8050, 0x0406, 1 } }, // 11 - { 0x6000, { 0x0411, 0x0408, 0 } }, // 12 - { 0x4001, { 8050, 0x0406, 1 } }, // 13 - { 0x6000, { 0x0413, 0x0408, 0 } }, // 14 - { 0x4001, { 2750, 0x0406, 1 } }, // 15 - { 0x6000, { 0x0415, 0x0408, 0 } }, // 16 - { 0x4001, { 4020, 0x0406, 1 } }, // 17 - { 0x6000, { 0x0417, 0x0407, 0 } }, // 18 - { 0x4001, { 8050, 0x0406, 1 } }, // 19 - { 0x6000, { 0x0419, 0x0407, 0 } }, // 1a - { 0x4001, { -5930, 0x0406, 1 } }, // 1b - { 0x6000, { 0x041b, 0x0408, 0 } }, // 1c - { 0x4001, { 5930, 0x0406, 1 } }, // 1d - { 0x6000, { 0x041d, 0x0408, 0 } } // 1e -}; -static const mso_CustomShape msoActionButtonSound = -{ - (SvxMSDffVertPair*)mso_sptActionButtonSoundVert, sizeof( mso_sptActionButtonSoundVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptActionButtonSoundSegm, sizeof( mso_sptActionButtonSoundSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptActionButtonSoundCalc, sizeof( mso_sptActionButtonSoundCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault1400, - (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 10800, 10800, - NULL, 0, - (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptActionButtonMovieVert[] = -{ - { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, - { 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I }, - { 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I }, - { 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I }, - { 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I }, - - { 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0x14 MSO_I, 0x12 MSO_I }, - { 0x16 MSO_I, 0x18 MSO_I }, { 0x16 MSO_I, 0x1a MSO_I }, { 0x1c MSO_I, 0x1a MSO_I }, { 0x1e MSO_I, 0x18 MSO_I }, - { 0x20 MSO_I, 0x18 MSO_I }, { 0x20 MSO_I, 0x22 MSO_I }, { 0x1e MSO_I, 0x22 MSO_I }, { 0x1c MSO_I, 0x24 MSO_I }, - { 0x16 MSO_I, 0x24 MSO_I }, { 0x16 MSO_I, 0x26 MSO_I }, { 0x2a MSO_I, 0x26 MSO_I }, { 0x2a MSO_I, 0x28 MSO_I }, - { 0x10 MSO_I, 0x28 MSO_I }, { 0xe MSO_I, 0x2c MSO_I }, { 0xa MSO_I, 0x2c MSO_I } -}; -static const sal_uInt16 mso_sptActionButtonMovieSegm[] = -{ - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0003, 0x6001, 0x8000, - 0x4000, 0x0012, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptActionButtonMovieCalc[] = // adj value 0 - 5400 -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 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 } }, - { 0x8000, { 10800, 0, DFF_Prop_adjustValue } }, - { 0x2001, { 0x0405, 1, 10800 } }, // scaling 6 - { 0x2001, { DFF_Prop_geoRight, 1, 2 } }, // lr center 7 - { 0x2001, { DFF_Prop_geoBottom, 1, 2 } }, // ul center 8 - - { 0x4001, { -8050, 0x0406, 1 } }, // 9 - { 0x6000, { 0x0409, 0x0407, 0 } }, // a - { 0x4001, { -4020, 0x0406, 1 } }, // b - { 0x6000, { 0x040b, 0x0408, 0 } }, // c - { 0x4001, { -7000, 0x0406, 1 } }, // d - { 0x6000, { 0x040d, 0x0407, 0 } }, // e - { 0x4001, { -6560, 0x0406, 1 } }, // f - { 0x6000, { 0x040f, 0x0407, 0 } }, // 10 - { 0x4001, { -3600, 0x0406, 1 } }, // 11 - { 0x6000, { 0x0411, 0x0408, 0 } }, // 12 - { 0x4001, { 4020, 0x0406, 1 } }, // 13 - { 0x6000, { 0x0413, 0x0407, 0 } }, // 14 - { 0x4001, { 4660, 0x0406, 1 } }, // 15 - { 0x6000, { 0x0415, 0x0407, 0 } }, // 16 - { 0x4001, { -2960, 0x0406, 1 } }, // 17 - { 0x6000, { 0x0417, 0x0408, 0 } }, // 18 - { 0x4001, { -2330, 0x0406, 1 } }, // 19 - { 0x6000, { 0x0419, 0x0408, 0 } }, // 1a - { 0x4001, { 6780, 0x0406, 1 } }, // 1b - { 0x6000, { 0x041b, 0x0407, 0 } }, // 1c - { 0x4001, { 7200, 0x0406, 1 } }, // 1d - { 0x6000, { 0x041d, 0x0407, 0 } }, // 1e - { 0x4001, { 8050, 0x0406, 1 } }, // 1f - { 0x6000, { 0x041f, 0x0407, 0 } }, // 20 - { 0x4001, { 2960, 0x0406, 1 } }, // 21 - { 0x6000, { 0x0421, 0x0408, 0 } }, // 22 - { 0x4001, { 2330, 0x0406, 1 } }, // 23 - { 0x6000, { 0x0423, 0x0408, 0 } }, // 24 - { 0x4001, { 3800, 0x0406, 1 } }, // 25 - { 0x6000, { 0x0425, 0x0408, 0 } }, // 26 - { 0x4001, { -1060, 0x0406, 1 } }, // 27 - { 0x6000, { 0x0427, 0x0408, 0 } }, // 28 - { 0x4001, { -6350, 0x0406, 1 } }, // 29 - { 0x6000, { 0x0429, 0x0407, 0 } }, // 2a - { 0x4001, { -640, 0x0406, 1 } }, // 2b - { 0x6000, { 0x042b, 0x0408, 0 } } // 2c -}; -static const mso_CustomShape msoActionButtonMovie = -{ - (SvxMSDffVertPair*)mso_sptActionButtonMovieVert, sizeof( mso_sptActionButtonMovieVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptActionButtonMovieSegm, sizeof( mso_sptActionButtonMovieSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptActionButtonMovieCalc, sizeof( mso_sptActionButtonMovieCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault1400, - (SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 10800, 10800, - NULL, 0, - (SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptSmileyFaceVert[] = // adj value 15510 - 17520 -{ - { 10800, 10800 }, { 10800, 10800 }, { 0, 360 }, - { 7305, 7515 }, { 1165, 1165 }, { 0, 360 }, - { 14295, 7515 }, { 1165, 1165 }, { 0, 360 }, - { 4870, 1 MSO_I }, { 8680, 2 MSO_I }, { 12920, 2 MSO_I }, { 16730, 1 MSO_I } -}; -static const sal_uInt16 mso_sptSmileyFaceSegm[] = -{ - 0xa203, 0x6000, 0x8000, - 0xa203, 0x6000, 0x8000, - 0xa203, 0x6000, 0x8000, - 0x4000, 0x2001, 0xaa00, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptSmileyFaceCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 15510 } }, - { 0x8000, { 17520, 0, 0x400 } }, - { 0x4000, { 15510, 0x400, 0 } } -}; - -static const SvxMSDffTextRectangles mso_sptSmileyFaceTextRect[] = -{ - { { 0, 1 MSO_I }, { 4 MSO_I, 21600 } } -}; -static const sal_Int32 mso_sptSmileyFaceDefault[] = -{ - 1, 17520 -}; -static const SvxMSDffHandle mso_sptSmileyHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 15510, 17520 } -}; -static const mso_CustomShape msoSmileyFace = -{ - (SvxMSDffVertPair*)mso_sptSmileyFaceVert, sizeof( mso_sptSmileyFaceVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptSmileyFaceSegm, sizeof( mso_sptSmileyFaceSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptSmileyFaceCalc, sizeof( mso_sptSmileyFaceCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptSmileyFaceDefault, - (SvxMSDffTextRectangles*)mso_sptEllipseTextRect, sizeof( mso_sptEllipseTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptSmileyHandle, sizeof( mso_sptSmileyHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -static const SvxMSDffVertPair mso_sptDonutVert[] = // adj value 0 - 10800 -{ - { 10800, 10800 }, { 10800, 10800 }, { 0, 360 }, - { 10800, 10800 }, { 1 MSO_I, 1 MSO_I }, { 0, 360 } -}; -static const sal_uInt16 mso_sptDonutSegm[] = -{ - 0xa203, 0x6000, 0xa203, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptDonutCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x8000, { 10800, 0, DFF_Prop_adjustValue } } -}; -static const SvxMSDffHandle mso_sptDonutHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 10800, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoDonut = -{ - (SvxMSDffVertPair*)mso_sptDonutVert, sizeof( mso_sptDonutVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptDonutSegm, sizeof( mso_sptDonutSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptDonutCalc, sizeof( mso_sptDonutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault5400, - (SvxMSDffTextRectangles*)mso_sptEllipseTextRect, sizeof( mso_sptEllipseTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptDonutHandle, sizeof( mso_sptDonutHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -static const SvxMSDffVertPair mso_sptNoSmokingVert[] = // adj value 0 - 7200 -{ - { 10800, 10800 }, { 10800, 10800 }, { 0, 360 }, - { 0 MSO_I, 0 MSO_I }, { 1 MSO_I, 1 MSO_I }, - { 9 MSO_I, 0xa MSO_I }, { 0xb MSO_I, 0xc MSO_I }, { 0 MSO_I, 0 MSO_I }, { 1 MSO_I, 1 MSO_I }, - { 0xd MSO_I, 0xe MSO_I }, { 0xf MSO_I, 0x10 MSO_I } -}; -static const sal_uInt16 mso_sptNoSmokingSegm[] = -{ - 0xa203, 0x6000, 0xa404, 0x6000, 0xa404, 0x6000, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptNoSmokingCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 0 - { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, // 1 - { 0x8000, { 10800, 0, DFF_Prop_adjustValue } }, // 2 - { 0x2001, { DFF_Prop_adjustValue, 1, 2 } }, // 3 - { 0xa080, { 0x403, 0, 0x402 } }, // 4 - { 0x8000, { 10800, 0, 0x403 } }, // 5 x1 - { 0x4000, { 10800, 0x403, 0 } }, // 6 x2 - { 0x8000, { 10800, 0, 0x404 } }, // 7 y1 - { 0x4000, { 10800, 0x404, 0 } }, // 8 y2 - { 0x6081, { 0x405, 0x407, 45 } }, // 9 - { 0x6082, { 0x405, 0x407, 45 } }, // a - { 0x6081, { 0x405, 0x408, 45 } }, // b - { 0x6082, { 0x405, 0x408, 45 } }, // c - { 0x6081, { 0x406, 0x408, 45 } }, // d - { 0x6082, { 0x406, 0x408, 45 } }, // e - { 0x6081, { 0x406, 0x407, 45 } }, // f - { 0x6082, { 0x406, 0x407, 45 } } // 10 -}; -static const SvxMSDffHandle mso_sptNoSmokingHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 10800, 10800, 10800, 0, 7200, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoNoSmoking = -{ - (SvxMSDffVertPair*)mso_sptNoSmokingVert, sizeof( mso_sptNoSmokingVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptNoSmokingSegm, sizeof( mso_sptNoSmokingSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptNoSmokingCalc, sizeof( mso_sptNoSmokingCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault2700, - (SvxMSDffTextRectangles*)mso_sptEllipseTextRect, sizeof( mso_sptEllipseTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptNoSmokingHandle, sizeof( mso_sptNoSmokingHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -static const SvxMSDffVertPair mso_sptBlockArcVert[] = // adj value 0 (degrees) -{ // adj value 1: 0 -> 10800; - { 0, 0 }, { 21600, 21600 }, { 4 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }, - { 5 MSO_I, 5 MSO_I }, { 6 MSO_I, 6 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I } -}; -static const sal_uInt16 mso_sptBlockArcSegm[] = -{ - 0xA404, 0xa504, 0x6001, 0x8000 -}; -static const sal_Int32 mso_sptBlockArcDefault[] = -{ - 2, 180, 5400 -}; -static const SvxMSDffCalculationData mso_sptBlockArcCalc[] = -{ - { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } }, - { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } }, - { 0x2000, { 0x400, 10800, 0 } }, - { 0x2000, { 0x401, 10800, 0 } }, - { 0x8000, { 21600, 0, 0x402 } }, - { 0x8000, { 10800, 0, DFF_Prop_adjust2Value } }, - { 0x4000, { 10800, DFF_Prop_adjust2Value, 0 } }, - { 0x600a, { 0x405, DFF_Prop_adjustValue, 0 } }, - { 0x6009, { 0x405, DFF_Prop_adjustValue, 0 } } -}; -static const SvxMSDffHandle mso_sptBlockArcHandle[] = -{ - { MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE, - 0x101, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoBlockArc = -{ - (SvxMSDffVertPair*)mso_sptBlockArcVert, sizeof( mso_sptBlockArcVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptBlockArcSegm, sizeof( mso_sptBlockArcSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptBlockArcCalc, sizeof( mso_sptBlockArcCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptBlockArcDefault, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptBlockArcHandle, sizeof( mso_sptBlockArcHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -// aware : control points are always part of the bounding box -static const SvxMSDffVertPair mso_sptHeartVert[] = -{ - { 10800, 21599 }, { 321, 6886 }, { 70, 6036 }, // ppp - { -9, 5766 }, { -1, 5474 }, { 2, 5192 }, // ccp - { 6, 4918 }, { 43, 4641 }, { 101, 4370 }, // ccp - { 159, 4103 }, { 245, 3837 }, { 353, 3582 }, // ccp - { 460, 3326 }, { 591, 3077 }, { 741, 2839 }, // ccp - { 892, 2598 }, { 1066, 2369 }, { 1253, 2155 }, // ccp - { 1443, 1938 }, { 1651, 1732 }, { 1874, 1543 }, // ccp - { 2097, 1351 }, { 2337, 1174 }, { 2587, 1014 }, // ccp - { 2839, 854 }, { 3106, 708 }, { 3380, 584 }, // ccp - { 3656, 459 }, { 3945, 350 }, { 4237, 264 }, // ccp - { 4533, 176 }, { 4838, 108 }, { 5144, 66 }, // ccp - { 5454, 22 }, { 5771, 1 }, { 6086, 3 }, // ccp - { 6407, 7 }, { 6731, 35 }, { 7048, 89 }, // ccp - { 7374, 144 }, { 7700, 226 }, { 8015, 335 }, // ccp - { 8344, 447 }, { 8667, 590 }, { 8972, 756 }, // ccp - { 9297, 932 }, { 9613, 1135 }, { 9907, 1363 }, // ccp - { 10224, 1609 }, { 10504, 1900 }, { 10802, 2169 }, // ccp - { 11697, 1363 }, // p - { 11971, 1116 }, { 12304, 934 }, { 12630, 756 }, // ccp - { 12935, 590 }, { 13528, 450 }, { 13589, 335 }, // ccp - { 13901, 226 }, { 14227, 144 }, { 14556, 89 }, // ccp - { 14872, 35 }, { 15195, 7 }, { 15517, 3 }, // ccp - { 15830, 0 }, { 16147, 22 }, { 16458, 66 }, // ccp - { 16764, 109 }, { 17068, 177 }, { 17365, 264 }, // ccp - { 17658, 349 }, { 17946, 458 }, { 18222, 584 }, // ccp - { 18496, 708 }, { 18762, 854 }, { 19015, 1014 }, // ccp - { 19264, 1172 }, { 19504, 1349 }, { 19730, 1543 }, // ccp - { 19950, 1731 }, { 20158, 1937 }, { 20350, 2155 }, // ccp - { 20536, 2369 }, { 20710, 2598 }, { 20861, 2839 }, // ccp - { 21010, 3074 }, { 21143, 3323 }, { 21251, 3582 }, // ccp - { 21357, 3835 }, { 21443, 4099 }, { 21502, 4370 }, // ccp - { 21561, 4639 }, { 21595, 4916 }, { 21600, 5192 }, // ccp - { 21606, 5474 }, { 21584, 5760 }, { 21532, 6036 }, // ccp - { 21478, 6326 }, { 21366, 6603 }, { 21282, 6887 }, // ccp - { 10802, 21602 } // p -}; -static const sal_uInt16 mso_sptHeartSegm[] = -{ - 0x4000, 0x0002, 0x2010, 0x0001, 0x2010, 0x0001, 0x6001, 0x8000 -}; -static const SvxMSDffTextRectangles mso_sptHeartTextRect[] = -{ - { { 5080, 2540 }, { 16520, 13550 } } -}; -static const SvxMSDffVertPair mso_sptHeartGluePoints[] = -{ - { 10800, 2180 }, { 3090, 10800 }, { 10800, 21600 }, { 18490, 10800 } -}; -static const mso_CustomShape msoHeart = -{ - (SvxMSDffVertPair*)mso_sptHeartVert, sizeof( mso_sptHeartVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptHeartSegm, sizeof( mso_sptHeartSegm ) >> 1, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptHeartTextRect, sizeof( mso_sptHeartTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21615, 21602, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptHeartGluePoints, sizeof( mso_sptHeartGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptLightningBoldVert[] = -{ - { 8458, 0 }, { 0, 3923 }, { 7564, 8416 }, { 4993, 9720 }, - { 12197, 13904 }, { 9987, 14934 }, { 21600, 21600 }, { 14768, 12911 }, - { 16558, 12016 }, { 11030, 6840 }, { 12831, 6120 }, { 8458, 0 } -}; -static const SvxMSDffTextRectangles mso_sptLightningBoldTextRect[] = -{ - { { 8680, 7410 }, { 13970, 14190 } } -}; -static const SvxMSDffVertPair mso_sptLightningBoldGluePoints[] = -{ - { 8458, 0 }, { 0, 3923 }, { 4993, 9720 }, { 9987, 14934 }, { 21600, 21600 }, - { 16558, 12016 }, { 12831, 6120 } -}; -static const mso_CustomShape msoLightningBold = -{ - (SvxMSDffVertPair*)mso_sptLightningBoldVert, sizeof( mso_sptLightningBoldVert ) / sizeof( SvxMSDffVertPair ), - NULL, 0, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptLightningBoldTextRect, sizeof( mso_sptLightningBoldTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptLightningBoldGluePoints, sizeof( mso_sptLightningBoldGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptSunVert[] = // adj value 2700 -> 10125 -{ - { 0, 10800 }, { 4 MSO_I, 8 MSO_I }, { 4 MSO_I, 9 MSO_I }, - { 0x0a MSO_I, 0x0b MSO_I }, { 0x0c MSO_I, 0x0d MSO_I }, { 0x0e MSO_I, 0x0f MSO_I }, - { 0x10 MSO_I, 0x11 MSO_I }, { 0x12 MSO_I, 0x13 MSO_I }, { 0x14 MSO_I, 0x15 MSO_I }, - { 0x16 MSO_I, 0x17 MSO_I }, { 0x18 MSO_I, 0x19 MSO_I }, { 0x1a MSO_I, 0x1b MSO_I }, - { 0x1c MSO_I, 0x1d MSO_I }, { 0x1e MSO_I, 0x1f MSO_I }, { 0x20 MSO_I, 0x21 MSO_I }, - { 0x22 MSO_I, 0x23 MSO_I }, { 0x24 MSO_I, 0x25 MSO_I }, { 0x26 MSO_I, 0x27 MSO_I }, - { 0x28 MSO_I, 0x29 MSO_I }, { 0x2a MSO_I, 0x2b MSO_I }, { 0x2c MSO_I, 0x2d MSO_I }, - { 0x2e MSO_I, 0x2f MSO_I }, { 0x30 MSO_I, 0x31 MSO_I }, { 0x32 MSO_I, 0x33 MSO_I }, - { 10800, 10800 }, { 0x36 MSO_I, 0x36 MSO_I }, { 0, 360 } -}; -static const sal_uInt16 mso_sptSunSegm[] = -{ - 0x4000, 0x0002, 0x6001, 0x8000, - 0x4000, 0x0002, 0x6001, 0x8000, - 0x4000, 0x0002, 0x6001, 0x8000, - 0x4000, 0x0002, 0x6001, 0x8000, - 0x4000, 0x0002, 0x6001, 0x8000, - 0x4000, 0x0002, 0x6001, 0x8000, - 0x4000, 0x0002, 0x6001, 0x8000, - 0x4000, 0x0002, 0x6001, 0x8000, - 0xa203, 0x6000, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptSunCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, - { 0x2000, { DFF_Prop_adjustValue, 0, 2700 } }, - { 0x2001, { 0x402, 5080, 7425 } }, - { 0x2000, { 0x403, 2540, 0 } }, - { 0x8000, { 10125, 0, DFF_Prop_adjustValue } }, - { 0x2001, { 0x405, 2120, 7425 } }, - { 0x2000, { 0x406, 210, 0 } }, - { 0x4000, { 10800, 0x407, 0 } }, // y1 (0x8) - { 0x8000, { 10800, 0, 0x407 } }, // y2 (0x9) - { 0x0081, { 0, 10800, 45 } }, // 0xa - { 0x0082, { 0, 10800, 45 } }, // 0xb - { 0x6081, { 0x404, 0x408, 45 } }, // 0xc - { 0x6082, { 0x404, 0x408, 45 } }, // 0xd - { 0x6081, { 0x404, 0x409, 45 } }, // 0xe - { 0x6082, { 0x404, 0x409, 45 } }, // 0xf - { 0x0081, { 0, 10800, 90 } }, // 0x10 - { 0x0082, { 0, 10800, 90 } }, // 0x11 - { 0x6081, { 0x404, 0x408, 90 } }, // 0x12 - { 0x6082, { 0x404, 0x408, 90 } }, // 0x13 - { 0x6081, { 0x404, 0x409, 90 } }, // 0x14 - { 0x6082, { 0x404, 0x409, 90 } }, // 0x15 - { 0x0081, { 0, 10800, 135 } }, // 0x16 - { 0x0082, { 0, 10800, 135 } }, // 0x17 - { 0x6081, { 0x404, 0x408, 135 } }, // 0x18 - { 0x6082, { 0x404, 0x408, 135 } }, // 0x19 - { 0x6081, { 0x404, 0x409, 135 } }, // 0x1a - { 0x6082, { 0x404, 0x409, 135 } }, // 0x1b - { 0x0081, { 0, 10800, 180 } }, // 0x1c - { 0x0082, { 0, 10800, 180 } }, // 0x1d - { 0x6081, { 0x404, 0x408, 180 } }, // 0x1e - { 0x6082, { 0x404, 0x408, 180 } }, // 0x1f - { 0x6081, { 0x404, 0x409, 180 } }, // 0x20 - { 0x6082, { 0x404, 0x409, 180 } }, // 0x21 - { 0x0081, { 0, 10800, 225 } }, // 0x22 - { 0x0082, { 0, 10800, 225 } }, // 0x23 - { 0x6081, { 0x404, 0x408, 225 } }, // 0x24 - { 0x6082, { 0x404, 0x408, 225 } }, // 0x25 - { 0x6081, { 0x404, 0x409, 225 } }, // 0x26 - { 0x6082, { 0x404, 0x409, 225 } }, // 0x27 - { 0x0081, { 0, 10800, 270 } }, // 0x28 - { 0x0082, { 0, 10800, 270 } }, // 0x29 - { 0x6081, { 0x404, 0x408, 270 } }, // 0x2a - { 0x6082, { 0x404, 0x408, 270 } }, // 0x2b - { 0x6081, { 0x404, 0x409, 270 } }, // 0x2c - { 0x6082, { 0x404, 0x409, 270 } }, // 0x2d - { 0x0081, { 0, 10800, 315 } }, // 0x2e - { 0x0082, { 0, 10800, 315 } }, // 0x2f - { 0x6081, { 0x404, 0x408, 315 } }, // 0x30 - { 0x6082, { 0x404, 0x408, 315 } }, // 0x31 - { 0x6081, { 0x404, 0x409, 315 } }, // 0x32 - { 0x6082, { 0x404, 0x409, 315 } }, // 0x33 - { 0x2081, { DFF_Prop_adjustValue, 10800, 45 } }, // 0x34 ( textbox ) - { 0x2081, { DFF_Prop_adjustValue, 10800, 225 } }, // 0x35 - { 0x8000, { 10800, 0, DFF_Prop_adjustValue } } -}; -static const SvxMSDffTextRectangles mso_sptSunTextRect[] = -{ - { { 0x34 MSO_I, 0x34 MSO_I }, { 0x35 MSO_I, 0x35 MSO_I } } -}; -static const SvxMSDffHandle mso_sptSunHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 10800, 10800, 10800, 2700, 10125, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoSun = -{ - (SvxMSDffVertPair*)mso_sptSunVert, sizeof( mso_sptSunVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptSunSegm, sizeof( mso_sptSunSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptSunCalc, sizeof( mso_sptSunCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault5400, - (SvxMSDffTextRectangles*)mso_sptSunTextRect, sizeof( mso_sptSunTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptSunHandle, sizeof( mso_sptSunHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -static const SvxMSDffVertPair mso_sptMoonVert[] = // adj value 0 -> 18900 -{ - { 21600, 0 }, - { 3 MSO_I, 4 MSO_I }, { 0 MSO_I, 5080 }, { 0 MSO_I, 10800 }, // ccp - { 0 MSO_I, 16520 }, { 3 MSO_I, 5 MSO_I }, { 21600, 21600 }, // ccp - { 9740, 21600 }, { 0, 16730 }, { 0, 10800 }, // ccp - { 0, 4870 }, { 9740, 0 }, { 21600, 0 } // ccp -}; -static const sal_uInt16 mso_sptMoonSegm[] = -{ - 0x4000, 0x2004, 0x6000, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptMoonCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, - { 0x2001, { 0x401, 1, 2 } }, - { 0x6000, { 0x402, DFF_Prop_adjustValue, 0 } }, - { 0x2001, { DFF_Prop_adjustValue, 1794, 10000 } }, - { 0x8000, { 21600, 0, 0x0404 } }, - { 0x2001, { DFF_Prop_adjustValue, 400, 18900 } }, - { 0x8081, { 0, 10800, 0x406 } }, - { 0x8082, { 0, 10800, 0x406 } }, - { 0x6000, { 0x407, 0x407, 0 } }, - { 0x8000, { 21600, 0, 0x408 } } -}; -static const SvxMSDffTextRectangles mso_sptMoonTextRect[] = -{ - { { 9 MSO_I, 8 MSO_I }, { 0 MSO_I, 0xa MSO_I } } -}; -static const SvxMSDffVertPair mso_sptMoonGluePoints[] = -{ - { 21600, 0 }, { 0, 10800 }, { 21600, 21600 }, { 0 MSO_I, 10800 } -}; -static const SvxMSDffHandle mso_sptMoonHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 10800, 10800, 10800, 0, 18900, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoMoon = -{ - (SvxMSDffVertPair*)mso_sptMoonVert, sizeof( mso_sptMoonVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptMoonSegm, sizeof( mso_sptMoonSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptMoonCalc, sizeof( mso_sptMoonCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault10800, - (SvxMSDffTextRectangles*)mso_sptMoonTextRect, sizeof( mso_sptMoonTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptMoonGluePoints, sizeof( mso_sptMoonGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptMoonHandle, sizeof( mso_sptMoonHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -static const SvxMSDffVertPair mso_sptBracketPairVert[] = // adj value 0 -> 10800 -{ - { 0 MSO_I, 0 }, { 0, 1 MSO_I }, // left top alignment - { 0, 2 MSO_I }, { 0 MSO_I, 21600 }, // left bottom " - { 3 MSO_I, 21600 }, { 21600, 2 MSO_I }, // right bottom " - { 21600, 1 MSO_I }, { 3 MSO_I, 0 } // right top " -}; -static const sal_uInt16 mso_sptBracketPairSegm[] = -{ - 0x4000, 0xa701, 0x0001, 0xa801, 0x8000, - 0x4000, 0xa701, 0x0001, 0xa801, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptBracketPairCalc[] = -{ - { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } }, - { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } }, - { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } }, - { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } }, - { 0x2082, { DFF_Prop_adjustValue, 0, 45 } }, - { 0x2000, { 0x404, 0, 10800 } }, - { 0x8000, { 0, 0, DFF_Prop_adjustValue } }, - { 0xa000, { 0x406, 0, 0x405 } }, - { 0xa000, { DFF_Prop_geoLeft, 0, 0x407 } }, - { 0xa000, { DFF_Prop_geoTop, 0, 0x407 } }, - { 0x6000, { DFF_Prop_geoRight, 0x407, 0 } }, - { 0x6000, { DFF_Prop_geoBottom, 0x407, 0 } }, - { 0xa000, { DFF_Prop_geoLeft, 0, 0x405 } }, - { 0xa000, { DFF_Prop_geoTop, 0, 0x405 } }, - { 0x6000, { DFF_Prop_geoRight, 0x405, 0 } }, - { 0x6000, { DFF_Prop_geoBottom, 0x405, 0 } } -}; -static const SvxMSDffTextRectangles mso_sptBracketPairTextRect[] = -{ - { { 8 MSO_I, 9 MSO_I }, { 0xa MSO_I, 0xb MSO_I } } -}; -static const SvxMSDffHandle mso_sptBracketPairHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED, - 0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoBracketPair = -{ - (SvxMSDffVertPair*)mso_sptBracketPairVert, sizeof( mso_sptBracketPairVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptBracketPairSegm, sizeof( mso_sptBracketPairSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptBracketPairCalc, sizeof( mso_sptBracketPairCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault3700, - (SvxMSDffTextRectangles*)mso_sptBracketPairTextRect, sizeof( mso_sptBracketPairTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 10800, 0x80000000, - (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptBracketPairHandle, sizeof( mso_sptBracketPairHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -static const sal_uInt16 mso_sptPlaqueSegm[] = -{ - 0x4000, 0xa801, 0x0001, 0xa701, 0x0001, 0xa801, 0x0001, 0xa701, 0x6000, 0x8000 -}; -static const SvxMSDffTextRectangles mso_sptPlaqueTextRect[] = -{ - { { 0xc MSO_I, 0xd MSO_I }, { 0xe MSO_I, 0xf MSO_I } } -}; -static const SvxMSDffHandle mso_sptPlaqueHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED, - 0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoPlaque = -{ - (SvxMSDffVertPair*)mso_sptBracketPairVert, sizeof( mso_sptBracketPairVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptPlaqueSegm, sizeof( mso_sptPlaqueSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptBracketPairCalc, sizeof( mso_sptBracketPairCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault3600, - (SvxMSDffTextRectangles*)mso_sptPlaqueTextRect, sizeof( mso_sptPlaqueTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 10800, 10800, - (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptPlaqueHandle, sizeof( mso_sptPlaqueHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -static const SvxMSDffVertPair mso_sptBracePairVert[] = // adj value 0 -> 5400 -{ - { 4 MSO_I, 0 }, { 0 MSO_I, 1 MSO_I }, { 0 MSO_I, 6 MSO_I }, { 0 ,10800 }, // left bracket - { 0 MSO_I, 7 MSO_I }, { 0 MSO_I, 2 MSO_I }, { 4 MSO_I, 21600 }, - { 8 MSO_I, 21600 }, { 3 MSO_I, 2 MSO_I }, { 3 MSO_I, 7 MSO_I }, { 21600, 10800 }, // right bracket - { 3 MSO_I, 6 MSO_I }, { 3 MSO_I, 1 MSO_I }, { 8 MSO_I, 0 } -}; -static const sal_uInt16 mso_sptBracePairSegm[] = -{ - 0x4000, 0xa701, 0x0001, 0xa801, 0xa701, 0x0001, 0xa801, 0x8000, - 0x4000, 0xa701, 0x0001, 0xa801, 0xa701, 0x0001, 0xa801, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptBracePairCalc[] = -{ - { 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } }, - { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } }, - { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } }, - { 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } }, - { 0x2001, { 0x400, 2, 1 } }, // 4 - { 0x2001, { DFF_Prop_adjustValue, 2, 1 } }, // 5 - { 0x8000, { 10800, 0, DFF_Prop_adjustValue } }, // 6 - { 0x8000, { 21600, 0, 0x406 } }, // 7 - { 0xa000, { DFF_Prop_geoRight, 0, 0x405 } }, // 8 - { 0x2001, { DFF_Prop_adjustValue, 1, 3 } }, // 9 - { 0x6000, { 0x409, DFF_Prop_adjustValue, 0 } }, // xa - { 0x6000, { DFF_Prop_geoLeft, 0x40a, 0 } }, // xb - { 0x6000, { DFF_Prop_geoTop, 0x409, 0 } }, // xc - { 0xa000, { DFF_Prop_geoRight, 0, 0x40a } }, // xd - { 0xa000, { DFF_Prop_geoBottom, 0, 0x409 } } // xe -}; -static const SvxMSDffTextRectangles mso_sptBracePairTextRect[] = -{ - { { 0xb MSO_I, 0xc MSO_I }, { 0xd MSO_I, 0xe MSO_I } } -}; -static const SvxMSDffHandle mso_sptBracePairHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED, - 0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 5400 } -}; -static const mso_CustomShape msoBracePair = -{ - (SvxMSDffVertPair*)mso_sptBracePairVert, sizeof( mso_sptBracePairVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptBracePairSegm, sizeof( mso_sptBracePairSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptBracePairCalc, sizeof( mso_sptBracePairCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault1800, - (SvxMSDffTextRectangles*)mso_sptBracePairTextRect, sizeof( mso_sptBracePairTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 10800, 0x80000000, - (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptBracePairHandle, sizeof( mso_sptBracePairHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -static const SvxMSDffCalculationData mso_sptBracketCalc[] = -{ - { 0x2001, { DFF_Prop_adjustValue, 1, 2 } }, - { 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } }, - { 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } }, - { 0x6000, { DFF_Prop_geoTop, 0x400, 0 } }, - { 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } } -}; -static const sal_uInt16 mso_sptBracketSegm[] = -{ - 0x4000, 0x2001, 0x0001, 0x2001, 0x8000 -}; -static const SvxMSDffVertPair mso_sptLeftBracketVert[] = // adj value 0 -> 10800 -{ - { 21600, 0 }, { 10800, 0 }, { 0, 3 MSO_I }, { 0, 1 MSO_I }, - { 0, 2 MSO_I }, { 0, 4 MSO_I }, { 10800, 21600 }, { 21600, 21600 } -}; -static const SvxMSDffTextRectangles mso_sptLeftBracketTextRect[] = -{ - { { 6350, 3 MSO_I }, { 21600, 4 MSO_I } } -}; -static const SvxMSDffVertPair mso_sptLeftBracketGluePoints[] = -{ - { 21600, 0 }, { 0, 10800 }, { 21600, 21600 } -}; -static const SvxMSDffHandle mso_sptLeftBracketHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10800 } -}; -static const mso_CustomShape msoLeftBracket = -{ - (SvxMSDffVertPair*)mso_sptLeftBracketVert, sizeof( mso_sptLeftBracketVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptBracketSegm, sizeof( mso_sptBracketSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptBracketCalc, sizeof( mso_sptBracketCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault1800, - (SvxMSDffTextRectangles*)mso_sptLeftBracketTextRect, sizeof( mso_sptLeftBracketTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptLeftBracketGluePoints, sizeof( mso_sptLeftBracketGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptLeftBracketHandle, sizeof( mso_sptLeftBracketHandle ) / sizeof( SvxMSDffHandle ) // handles -}; -static const SvxMSDffVertPair mso_sptRightBracketVert[] = // adj value 0 -> 10800 -{ - { 0, 0 }, { 10800, 0 }, { 21600, 3 MSO_I }, { 21600, 1 MSO_I }, - { 21600, 2 MSO_I }, { 21600, 4 MSO_I }, { 10800, 21600 }, { 0, 21600 } -}; -static const SvxMSDffTextRectangles mso_sptRightBracketTextRect[] = -{ - { { 0, 3 MSO_I }, { 15150, 4 MSO_I } } -}; -static const SvxMSDffVertPair mso_sptRightBracketGluePoints[] = -{ - { 0, 0 }, { 0, 21600 }, { 21600, 10800 } -}; -static const SvxMSDffHandle mso_sptRightBracketHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 1, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10800 } -}; -static const mso_CustomShape msoRightBracket = -{ - (SvxMSDffVertPair*)mso_sptRightBracketVert, sizeof( mso_sptRightBracketVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptBracketSegm, sizeof( mso_sptBracketSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptBracketCalc, sizeof( mso_sptBracketCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault1800, - (SvxMSDffTextRectangles*)mso_sptRightBracketTextRect, sizeof( mso_sptRightBracketTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptRightBracketGluePoints, sizeof( mso_sptRightBracketGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptRightBracketHandle, sizeof( mso_sptRightBracketHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -static const SvxMSDffCalculationData mso_sptBraceCalc[] = -{ - { 0x2001, { DFF_Prop_adjustValue, 1, 2 } }, - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0xa000, { 0x404, 0, DFF_Prop_adjustValue } }, - { 0xa000, { 0x404, 0, 0x400 } }, - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, - { 0x6000, { 0x404, 0x400, 0 } }, - { 0x6000, { 0x404, DFF_Prop_adjustValue, 0 } }, - { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, - { 0x8000, { 21600, 0, 0x400 } }, - { 0x2001, { DFF_Prop_adjustValue, 10000, 31953 } }, - { 0x8000, { 21600, 0, 0x409 } } -}; -static const sal_uInt16 mso_sptBraceSegm[] = -{ - 0x4000, 0x2001, 0x0001, 0x2002, 0x0001, 0x2001, 0x8000 -}; -static const sal_Int32 mso_sptBraceDefault[] = -{ - 2, 1800, 10800 -}; -static const SvxMSDffVertPair mso_sptLeftBraceVert[] = -{ - { 21600, 0 }, // p - { 16200, 0 }, { 10800, 0 MSO_I }, { 10800, 1 MSO_I }, // ccp - { 10800, 2 MSO_I }, // p - { 10800, 3 MSO_I }, { 5400, 4 MSO_I }, { 0, 4 MSO_I }, // ccp - { 5400, 4 MSO_I }, { 10800, 5 MSO_I }, { 10800, 6 MSO_I }, // ccp - { 10800, 7 MSO_I }, // p - { 10800, 8 MSO_I }, { 16200, 21600 }, { 21600, 21600 } // ccp -}; -static const SvxMSDffTextRectangles mso_sptLeftBraceTextRect[] = -{ - { { 13800, 9 MSO_I }, { 21600, 10 MSO_I } } -}; -static const SvxMSDffHandle mso_sptLeftBraceHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 5400 }, - { MSDFF_HANDLE_FLAGS_RANGE, - 0, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 21600 } -}; -static const mso_CustomShape msoLeftBrace = // adj value0 0 -> 5400 -{ // adj value1 0 -> 21600 - (SvxMSDffVertPair*)mso_sptLeftBraceVert, sizeof( mso_sptLeftBraceVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptBraceSegm, sizeof( mso_sptBraceSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptBraceCalc, sizeof( mso_sptBraceCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptBraceDefault, - (SvxMSDffTextRectangles*)mso_sptLeftBraceTextRect, sizeof( mso_sptLeftBraceTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptLeftBracketGluePoints, sizeof( mso_sptLeftBracketGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptLeftBraceHandle, sizeof( mso_sptLeftBraceHandle ) / sizeof( SvxMSDffHandle ) // handles -}; -static const SvxMSDffVertPair mso_sptRightBraceVert[] = -{ - { 0, 0 }, // p - { 5400, 0 }, { 10800, 0 MSO_I }, { 10800, 1 MSO_I }, // ccp - { 10800, 2 MSO_I }, // p - { 10800, 3 MSO_I }, { 16200, 4 MSO_I }, { 21600, 4 MSO_I }, // ccp - { 16200, 4 MSO_I }, { 10800, 5 MSO_I }, { 10800, 6 MSO_I }, // ccp - { 10800, 7 MSO_I }, // p - { 10800, 8 MSO_I }, { 5400, 21600 }, { 0, 21600 } // ccp -}; -static const SvxMSDffTextRectangles mso_sptRightBraceTextRect[] = -{ - { { 0, 9 MSO_I }, { 7800, 10 MSO_I } } -}; -static const SvxMSDffHandle mso_sptRightBraceHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 5400 }, - { MSDFF_HANDLE_FLAGS_RANGE, - 1, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 21600 } -}; -static const mso_CustomShape msoRightBrace = // adj value0 0 -> 5400 -{ // adj value1 0 -> 21600 - (SvxMSDffVertPair*)mso_sptRightBraceVert, sizeof( mso_sptRightBraceVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptBraceSegm, sizeof( mso_sptBraceSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptBraceCalc, sizeof( mso_sptBraceCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptBraceDefault, - (SvxMSDffTextRectangles*)mso_sptRightBraceTextRect, sizeof( mso_sptRightBraceTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptRightBracketGluePoints, sizeof( mso_sptRightBracketGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptRightBraceHandle, sizeof( mso_sptRightBraceHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -static const SvxMSDffVertPair mso_sptIrregularSeal1Vert[] = -{ - { 10901, 5905 }, { 8458, 2399 }, { 7417, 6425 }, { 476, 2399 }, - { 4732, 7722 }, { 106, 8718 }, { 3828, 11880 }, { 243, 14689 }, - { 5772, 14041 }, { 4868, 17719 }, { 7819, 15730 }, { 8590, 21600 }, - { 10637, 15038 }, { 13349, 19840 }, { 14125, 14561 }, { 18248, 18195 }, - { 16938, 13044 }, { 21600, 13393 }, { 17710, 10579 }, { 21198, 8242 }, - { 16806, 7417 }, { 18482, 4560 }, { 14257, 5429 }, { 14623, 106 }, { 10901, 5905 } -}; -static const SvxMSDffTextRectangles mso_sptIrregularSeal1TextRect[] = -{ - { { 4680, 6570 }, { 16140, 13280 } } -}; -static const SvxMSDffVertPair mso_sptIrregularSeal1GluePoints[] = -{ - { 14623, 106 }, { 106, 8718 }, { 8590, 21600 }, { 21600, 13393 } -}; -static const mso_CustomShape msoIrregularSeal1 = -{ - (SvxMSDffVertPair*)mso_sptIrregularSeal1Vert, sizeof( mso_sptIrregularSeal1Vert ) / sizeof( SvxMSDffVertPair ), - NULL, 0, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptIrregularSeal1TextRect, sizeof( mso_sptIrregularSeal1TextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptIrregularSeal1GluePoints, sizeof( mso_sptIrregularSeal1GluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptIrregularSeal2Vert[] = -{ - { 11464, 4340 }, { 9722, 1887 }, { 8548, 6383 }, { 4503, 3626 }, - { 5373, 7816 }, { 1174, 8270 }, { 3934, 11592 }, { 0, 12875 }, - { 3329, 15372 }, { 1283, 17824 }, { 4804, 18239 }, { 4918, 21600 }, - { 7525, 18125 }, { 8698, 19712 }, { 9871, 17371 }, { 11614, 18844 }, - { 12178, 15937 }, { 14943, 17371 }, { 14640, 14348 }, { 18878, 15632 }, - { 16382, 12311 }, { 18270, 11292 }, { 16986, 9404 }, { 21600, 6646 }, - { 16382, 6533 }, { 18005, 3172 }, { 14524, 5778 }, { 14789, 0 }, - { 11464, 4340 } -}; -static const SvxMSDffTextRectangles mso_sptIrregularSeal2TextRect[] = -{ - { { 5400, 6570 }, { 14160, 15290 } } -}; -static const SvxMSDffVertPair mso_sptIrregularSeal2GluePoints[] = -{ - { 9722, 1887 }, { 0, 12875 }, { 11614, 18844 }, { 21600, 6646 } -}; -static const mso_CustomShape msoIrregularSeal2 = -{ - (SvxMSDffVertPair*)mso_sptIrregularSeal2Vert, sizeof( mso_sptIrregularSeal2Vert ) / sizeof( SvxMSDffVertPair ), - NULL, 0, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptIrregularSeal2TextRect, sizeof( mso_sptIrregularSeal2TextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptIrregularSeal2GluePoints, sizeof( mso_sptIrregularSeal2GluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptSeal4Vert[] = // adjustment1 : 0 - 10800 -{ - { 0, 10800 }, { 4 MSO_I, 4 MSO_I }, { 10800, 0 }, { 3 MSO_I, 4 MSO_I }, - { 21600, 10800 }, { 3 MSO_I, 3 MSO_I }, { 10800, 21600 }, { 4 MSO_I, 3 MSO_I }, - { 0, 10800 } -}; -static const SvxMSDffCalculationData mso_sptSeal4Calc[] = -{ - { 0x0000, { 7600, 0, 0 } }, - { 0x6001, { 0x400, DFF_Prop_adjustValue, 10800 } }, - { 0xa000, { 0x400, 0, 0x401 } }, - { 0x4000, { 10800, 0x402, 0 } }, - { 0x8000, { 10800, 0, 0x402 } } -}; -static const SvxMSDffTextRectangles mso_sptSeal4TextRect[] = -{ - { { 4 MSO_I, 4 MSO_I }, { 3 MSO_I, 3 MSO_I } } -}; -static const SvxMSDffHandle mso_sptSealHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 10800, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoSeal4 = -{ - (SvxMSDffVertPair*)mso_sptSeal4Vert, sizeof( mso_sptSeal4Vert ) / sizeof( SvxMSDffVertPair ), - NULL, 0, - (SvxMSDffCalculationData*)mso_sptSeal4Calc, sizeof( mso_sptSeal4Calc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault8100, - (SvxMSDffTextRectangles*)mso_sptSeal4TextRect, sizeof( mso_sptSeal4TextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptSealHandle, sizeof( mso_sptSealHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -static const SvxMSDffVertPair mso_sptStarVert[] = -{ - { 10797, 0 }, { 8278, 8256 }, { 0, 8256 }, { 6722, 13405 }, - { 4198, 21600 }, { 10797, 16580 }, { 17401, 21600 }, { 14878, 13405 }, - { 21600, 8256 }, { 13321, 8256 }, { 10797, 0 } -}; -static const SvxMSDffTextRectangles mso_sptStarTextRect[] = -{ - { { 6722, 8256 }, { 14878, 15460 } } -}; -static const mso_CustomShape msoStar = -{ - (SvxMSDffVertPair*)mso_sptStarVert, sizeof( mso_sptStarVert ) / sizeof( SvxMSDffVertPair ), - NULL, 0, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptStarTextRect, sizeof( mso_sptStarTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - NULL, 0 // handles -}; - -static const SvxMSDffCalculationData mso_sptSeal24Calc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 0x00 - { 0x2081, { 0x400, 10800, 315 } }, // 0x01 ( textframe ) - { 0x2082, { 0x400, 10800, 315 } }, // 0x02 - { 0x2081, { 0x400, 10800, 135 } }, // 0x03 - { 0x2082, { 0x400, 10800, 135 } }, // 0x04 - { 0x0081, { 0, 10800, 0 } }, - { 0x0082, { 0, 10800, 0 } }, - { 0x2081, { 0x400, 10800, 7 } }, - { 0x2082, { 0x400, 10800, 7 } }, - { 0x0081, { 0, 10800, 15 } }, - { 0x0082, { 0, 10800, 15 } }, - { 0x2081, { 0x400, 10800, 22 } }, - { 0x2082, { 0x400, 10800, 22 } }, - { 0x0081, { 0, 10800, 30 } }, - { 0x0082, { 0, 10800, 30 } }, - { 0x2081, { 0x400, 10800, 37 } }, - { 0x2082, { 0x400, 10800, 37 } }, - { 0x0081, { 0, 10800, 45 } }, - { 0x0082, { 0, 10800, 45 } }, - { 0x2081, { 0x400, 10800, 52 } }, - { 0x2082, { 0x400, 10800, 52 } }, - { 0x0081, { 0, 10800, 60 } }, - { 0x0082, { 0, 10800, 60 } }, - { 0x2081, { 0x400, 10800, 67 } }, - { 0x2082, { 0x400, 10800, 67 } }, - { 0x0081, { 0, 10800, 75 } }, - { 0x0082, { 0, 10800, 75 } }, - { 0x2081, { 0x400, 10800, 82 } }, - { 0x2082, { 0x400, 10800, 82 } }, - { 0x0081, { 0, 10800, 90 } }, - { 0x0082, { 0, 10800, 90 } }, - { 0x2081, { 0x400, 10800, 97 } }, - { 0x2082, { 0x400, 10800, 97 } }, - { 0x0081, { 0, 10800, 105 } }, - { 0x0082, { 0, 10800, 105 } }, - { 0x2081, { 0x400, 10800, 112 } }, - { 0x2082, { 0x400, 10800, 112 } }, - { 0x0081, { 0, 10800, 120 } }, - { 0x0082, { 0, 10800, 120 } }, - { 0x2081, { 0x400, 10800, 127 } }, - { 0x2082, { 0x400, 10800, 127 } }, - { 0x0081, { 0, 10800, 135 } }, - { 0x0082, { 0, 10800, 135 } }, - { 0x2081, { 0x400, 10800, 142 } }, - { 0x2082, { 0x400, 10800, 142 } }, - { 0x0081, { 0, 10800, 150 } }, - { 0x0082, { 0, 10800, 150 } }, - { 0x2081, { 0x400, 10800, 157 } }, - { 0x2082, { 0x400, 10800, 157 } }, - { 0x0081, { 0, 10800, 165 } }, - { 0x0082, { 0, 10800, 165 } }, - { 0x2081, { 0x400, 10800, 172 } }, - { 0x2082, { 0x400, 10800, 172 } }, - { 0x0081, { 0, 10800, 180 } }, - { 0x0082, { 0, 10800, 180 } }, - { 0x2081, { 0x400, 10800, 187 } }, - { 0x2082, { 0x400, 10800, 187 } }, - { 0x0081, { 0, 10800, 195 } }, - { 0x0082, { 0, 10800, 195 } }, - { 0x2081, { 0x400, 10800, 202 } }, - { 0x2082, { 0x400, 10800, 202 } }, - { 0x0081, { 0, 10800, 210 } }, - { 0x0082, { 0, 10800, 210 } }, - { 0x2081, { 0x400, 10800, 217 } }, - { 0x2082, { 0x400, 10800, 217 } }, - { 0x0081, { 0, 10800, 225 } }, - { 0x0082, { 0, 10800, 225 } }, - { 0x2081, { 0x400, 10800, 232 } }, - { 0x2082, { 0x400, 10800, 232 } }, - { 0x0081, { 0, 10800, 240 } }, - { 0x0082, { 0, 10800, 240 } }, - { 0x2081, { 0x400, 10800, 247 } }, - { 0x2082, { 0x400, 10800, 247 } }, - { 0x0081, { 0, 10800, 255 } }, - { 0x0082, { 0, 10800, 255 } }, - { 0x2081, { 0x400, 10800, 262 } }, - { 0x2082, { 0x400, 10800, 262 } }, - { 0x0081, { 0, 10800, 270 } }, - { 0x0082, { 0, 10800, 270 } }, - { 0x2081, { 0x400, 10800, 277 } }, - { 0x2082, { 0x400, 10800, 277 } }, - { 0x0081, { 0, 10800, 285 } }, - { 0x0082, { 0, 10800, 285 } }, - { 0x2081, { 0x400, 10800, 292 } }, - { 0x2082, { 0x400, 10800, 292 } }, - { 0x0081, { 0, 10800, 300 } }, - { 0x0082, { 0, 10800, 300 } }, - { 0x2081, { 0x400, 10800, 307 } }, - { 0x2082, { 0x400, 10800, 307 } }, - { 0x0081, { 0, 10800, 315 } }, - { 0x0082, { 0, 10800, 315 } }, - { 0x2081, { 0x400, 10800, 322 } }, - { 0x2082, { 0x400, 10800, 322 } }, - { 0x0081, { 0, 10800, 330 } }, - { 0x0082, { 0, 10800, 330 } }, - { 0x2081, { 0x400, 10800, 337 } }, - { 0x2082, { 0x400, 10800, 337 } }, - { 0x0081, { 0, 10800, 345 } }, - { 0x0082, { 0, 10800, 345 } }, - { 0x2081, { 0x400, 10800, 352 } }, - { 0x2082, { 0x400, 10800, 352 } } -}; -static const SvxMSDffVertPair mso_sptSeal8Vert[] = // adj value 0 -> 10800 -{ - { 5 MSO_I, 6 MSO_I }, { 11 MSO_I, 12 MSO_I }, { 17 MSO_I, 18 MSO_I }, { 23 MSO_I, 24 MSO_I }, - { 29 MSO_I, 30 MSO_I }, { 35 MSO_I, 36 MSO_I }, { 41 MSO_I, 42 MSO_I }, { 47 MSO_I, 48 MSO_I }, - { 53 MSO_I, 54 MSO_I }, { 59 MSO_I, 60 MSO_I }, { 65 MSO_I, 66 MSO_I }, { 71 MSO_I, 72 MSO_I }, - { 77 MSO_I, 78 MSO_I }, { 83 MSO_I, 84 MSO_I }, { 89 MSO_I, 90 MSO_I }, { 95 MSO_I, 96 MSO_I }, - { 5 MSO_I, 6 MSO_I } -}; -static const SvxMSDffTextRectangles mso_sptSealTextRect[] = -{ - { { 1 MSO_I, 2 MSO_I }, { 3 MSO_I, 4 MSO_I } } -}; -static const mso_CustomShape msoSeal8 = -{ - (SvxMSDffVertPair*)mso_sptSeal8Vert, sizeof( mso_sptSeal8Vert ) / sizeof( SvxMSDffVertPair ), - NULL, 0, - (SvxMSDffCalculationData*)mso_sptSeal24Calc, sizeof( mso_sptSeal24Calc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault2500, - (SvxMSDffTextRectangles*)mso_sptSealTextRect, sizeof( mso_sptSealTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptSealHandle, sizeof( mso_sptSealHandle ) / sizeof( SvxMSDffHandle ) // handles -}; -static const SvxMSDffVertPair mso_sptSeal16Vert[] = // adj value 0 -> 10800 -{ - { 0x05 MSO_I, 0x06 MSO_I }, { 0x07 MSO_I, 0x08 MSO_I }, { 0x09 MSO_I, 0x0a MSO_I }, { 0x0b MSO_I, 0x0c MSO_I }, - { 0x0d MSO_I, 0x0e MSO_I }, { 0x0f MSO_I, 0x10 MSO_I }, { 0x11 MSO_I, 0x12 MSO_I }, { 0x13 MSO_I, 0x14 MSO_I }, - { 0x15 MSO_I, 0x16 MSO_I }, { 0x17 MSO_I, 0x18 MSO_I }, { 0x19 MSO_I, 0x1a MSO_I }, { 0x1b MSO_I, 0x1c MSO_I }, - { 0x1d MSO_I, 0x1e MSO_I }, { 0x1f MSO_I, 0x20 MSO_I }, { 0x21 MSO_I, 0x22 MSO_I }, { 0x23 MSO_I, 0x24 MSO_I }, - { 0x25 MSO_I, 0x26 MSO_I }, { 0x27 MSO_I, 0x28 MSO_I }, { 0x29 MSO_I, 0x2a MSO_I }, { 0x2b MSO_I, 0x2c MSO_I }, - { 0x2d MSO_I, 0x2e MSO_I }, { 0x2f MSO_I, 0x30 MSO_I }, { 0x31 MSO_I, 0x32 MSO_I }, { 0x33 MSO_I, 0x34 MSO_I }, - { 0x35 MSO_I, 0x36 MSO_I }, { 0x37 MSO_I, 0x38 MSO_I }, { 0x39 MSO_I, 0x3a MSO_I }, { 0x3b MSO_I, 0x3c MSO_I }, - { 0x3d MSO_I, 0x3e MSO_I }, { 0x3f MSO_I, 0x40 MSO_I }, { 0x41 MSO_I, 0x42 MSO_I }, { 0x43 MSO_I, 0x44 MSO_I }, - { 0x05 MSO_I, 0x06 MSO_I } -}; -static const SvxMSDffCalculationData mso_sptSeal16Calc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 0x00 - { 0x2081, { 0x400, 10800, 315 } }, // 0x01 ( textframe ) - { 0x2082, { 0x400, 10800, 315 } }, // 0x02 - { 0x2081, { 0x400, 10800, 135 } }, // 0x03 - { 0x2082, { 0x400, 10800, 135 } }, // 0x04 - { 0x0081, { 0, 10800, 0 } }, - { 0x0082, { 0, 10800, 0 } }, - { 0x2081, { 0x400, 10800, 11 } }, - { 0x2082, { 0x400, 10800, 11 } }, - { 0x0081, { 0, 10800, 22 } }, - { 0x0082, { 0, 10800, 22 } }, - { 0x2081, { 0x400, 10800, 33 } }, - { 0x2082, { 0x400, 10800, 33 } }, - { 0x0081, { 0, 10800, 45 } }, - { 0x0082, { 0, 10800, 45 } }, - { 0x2081, { 0x400, 10800, 56 } }, - { 0x2082, { 0x400, 10800, 56 } }, - { 0x0081, { 0, 10800, 67 } }, - { 0x0082, { 0, 10800, 67 } }, - { 0x2081, { 0x400, 10800, 78 } }, - { 0x2082, { 0x400, 10800, 78 } }, - { 0x0081, { 0, 10800, 90 } }, - { 0x0082, { 0, 10800, 90 } }, - { 0x2081, { 0x400, 10800, 101 } }, - { 0x2082, { 0x400, 10800, 101 } }, - { 0x0081, { 0, 10800, 112 } }, - { 0x0082, { 0, 10800, 112 } }, - { 0x2081, { 0x400, 10800, 123 } }, - { 0x2082, { 0x400, 10800, 123 } }, - { 0x0081, { 0, 10800, 135 } }, - { 0x0082, { 0, 10800, 135 } }, - { 0x2081, { 0x400, 10800, 146 } }, - { 0x2082, { 0x400, 10800, 146 } }, - { 0x0081, { 0, 10800, 157 } }, - { 0x0082, { 0, 10800, 157 } }, - { 0x2081, { 0x400, 10800, 168 } }, - { 0x2082, { 0x400, 10800, 168 } }, - { 0x0081, { 0, 10800, 180 } }, - { 0x0082, { 0, 10800, 180 } }, - { 0x2081, { 0x400, 10800, 191 } }, - { 0x2082, { 0x400, 10800, 191 } }, - { 0x0081, { 0, 10800, 202 } }, - { 0x0082, { 0, 10800, 202 } }, - { 0x2081, { 0x400, 10800, 213 } }, - { 0x2082, { 0x400, 10800, 213 } }, - { 0x0081, { 0, 10800, 225 } }, - { 0x0082, { 0, 10800, 225 } }, - { 0x2081, { 0x400, 10800, 236 } }, - { 0x2082, { 0x400, 10800, 236 } }, - { 0x0081, { 0, 10800, 247 } }, - { 0x0082, { 0, 10800, 247 } }, - { 0x2081, { 0x400, 10800, 258 } }, - { 0x2082, { 0x400, 10800, 258 } }, - { 0x0081, { 0, 10800, 270 } }, - { 0x0082, { 0, 10800, 270 } }, - { 0x2081, { 0x400, 10800, 281 } }, - { 0x2082, { 0x400, 10800, 281 } }, - { 0x0081, { 0, 10800, 292 } }, - { 0x0082, { 0, 10800, 292 } }, - { 0x2081, { 0x400, 10800, 303 } }, - { 0x2082, { 0x400, 10800, 303 } }, - { 0x0081, { 0, 10800, 315 } }, - { 0x0082, { 0, 10800, 315 } }, - { 0x2081, { 0x400, 10800, 326 } }, - { 0x2082, { 0x400, 10800, 326 } }, - { 0x0081, { 0, 10800, 337 } }, - { 0x0082, { 0, 10800, 337 } }, - { 0x2081, { 0x400, 10800, 348 } }, - { 0x2082, { 0x400, 10800, 348 } } -}; -static const mso_CustomShape msoSeal16 = -{ - (SvxMSDffVertPair*)mso_sptSeal16Vert, sizeof( mso_sptSeal16Vert ) / sizeof( SvxMSDffVertPair ), - NULL, 0, - (SvxMSDffCalculationData*)mso_sptSeal16Calc, sizeof( mso_sptSeal16Calc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault2500, - (SvxMSDffTextRectangles*)mso_sptSealTextRect, sizeof( mso_sptSealTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptSealHandle, sizeof( mso_sptSealHandle ) / sizeof( SvxMSDffHandle ) // handles -}; -static const SvxMSDffVertPair mso_sptSeal24Vert[] = -{ - { 0x05 MSO_I, 0x06 MSO_I }, { 0x07 MSO_I, 0x08 MSO_I }, { 0x09 MSO_I, 0x0a MSO_I }, { 0x0b MSO_I, 0x0c MSO_I }, - { 0x0d MSO_I, 0x0e MSO_I }, { 0x0f MSO_I, 0x10 MSO_I }, { 0x11 MSO_I, 0x12 MSO_I }, { 0x13 MSO_I, 0x14 MSO_I }, - { 0x15 MSO_I, 0x16 MSO_I }, { 0x17 MSO_I, 0x18 MSO_I }, { 0x19 MSO_I, 0x1a MSO_I }, { 0x1b MSO_I, 0x1c MSO_I }, - { 0x1d MSO_I, 0x1e MSO_I }, { 0x1f MSO_I, 0x20 MSO_I }, { 0x21 MSO_I, 0x22 MSO_I }, { 0x23 MSO_I, 0x24 MSO_I }, - { 0x25 MSO_I, 0x26 MSO_I }, { 0x27 MSO_I, 0x28 MSO_I }, { 0x29 MSO_I, 0x2a MSO_I }, { 0x2b MSO_I, 0x2c MSO_I }, - { 0x2d MSO_I, 0x2e MSO_I }, { 0x2f MSO_I, 0x30 MSO_I }, { 0x31 MSO_I, 0x32 MSO_I }, { 0x33 MSO_I, 0x34 MSO_I }, - { 0x35 MSO_I, 0x36 MSO_I }, { 0x37 MSO_I, 0x38 MSO_I }, { 0x39 MSO_I, 0x3a MSO_I }, { 0x3b MSO_I, 0x3c MSO_I }, - { 0x3d MSO_I, 0x3e MSO_I }, { 0x3f MSO_I, 0x40 MSO_I }, { 0x41 MSO_I, 0x42 MSO_I }, { 0x43 MSO_I, 0x44 MSO_I }, - { 0x45 MSO_I, 0x46 MSO_I }, { 0x47 MSO_I, 0x48 MSO_I }, { 0x49 MSO_I, 0x4a MSO_I }, { 0x4b MSO_I, 0x4c MSO_I }, - { 0x4d MSO_I, 0x4e MSO_I }, { 0x4f MSO_I, 0x50 MSO_I }, { 0x51 MSO_I, 0x52 MSO_I }, { 0x53 MSO_I, 0x54 MSO_I }, - { 0x55 MSO_I, 0x56 MSO_I }, { 0x57 MSO_I, 0x58 MSO_I }, { 0x59 MSO_I, 0x5a MSO_I }, { 0x5b MSO_I, 0x5c MSO_I }, - { 0x5d MSO_I, 0x5e MSO_I }, { 0x5f MSO_I, 0x60 MSO_I }, { 0x61 MSO_I, 0x62 MSO_I }, { 0x63 MSO_I, 0x64 MSO_I }, - { 0x05 MSO_I, 0x06 MSO_I } -}; -static const mso_CustomShape msoSeal24 = -{ - (SvxMSDffVertPair*)mso_sptSeal24Vert, sizeof( mso_sptSeal24Vert ) / sizeof( SvxMSDffVertPair ), - NULL, 0, - (SvxMSDffCalculationData*)mso_sptSeal24Calc, sizeof( mso_sptSeal24Calc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault2500, - (SvxMSDffTextRectangles*)mso_sptSealTextRect, sizeof( mso_sptSealTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptSealHandle, sizeof( mso_sptSealHandle ) / sizeof( SvxMSDffHandle ) // handles -}; -static const SvxMSDffCalculationData mso_sptSeal32Calc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 0x00 - { 0x2081, { 0x400, 10800, 315 } }, // 0x01 ( textframe ) - { 0x2082, { 0x400, 10800, 315 } }, // 0x02 - { 0x2081, { 0x400, 10800, 135 } }, // 0x03 - { 0x2082, { 0x400, 10800, 135 } }, // 0x04 - { 0x0081, { 0, 10800, 0 } }, - { 0x0082, { 0, 10800, 0 } }, - { 0x2081, { 0x400, 10800, 5 } }, - { 0x2082, { 0x400, 10800, 5 } }, - { 0x0081, { 0, 10800, 11 } }, - { 0x0082, { 0, 10800, 11 } }, - { 0x2081, { 0x400, 10800, 16 } }, - { 0x2082, { 0x400, 10800, 16 } }, - { 0x0081, { 0, 10800, 22 } }, - { 0x0082, { 0, 10800, 22 } }, - { 0x2081, { 0x400, 10800, 28 } }, - { 0x2082, { 0x400, 10800, 28 } }, - { 0x0081, { 0, 10800, 33 } }, - { 0x0082, { 0, 10800, 33 } }, - { 0x2081, { 0x400, 10800, 39 } }, - { 0x2082, { 0x400, 10800, 39 } }, - { 0x0081, { 0, 10800, 45 } }, - { 0x0082, { 0, 10800, 45 } }, - { 0x2081, { 0x400, 10800, 50 } }, - { 0x2082, { 0x400, 10800, 50 } }, - { 0x0081, { 0, 10800, 56 } }, - { 0x0082, { 0, 10800, 56 } }, - { 0x2081, { 0x400, 10800, 61 } }, - { 0x2082, { 0x400, 10800, 61 } }, - { 0x0081, { 0, 10800, 67 } }, - { 0x0082, { 0, 10800, 67 } }, - { 0x2081, { 0x400, 10800, 73 } }, - { 0x2082, { 0x400, 10800, 73 } }, - { 0x0081, { 0, 10800, 78 } }, - { 0x0082, { 0, 10800, 78 } }, - { 0x2081, { 0x400, 10800, 84 } }, - { 0x2082, { 0x400, 10800, 84 } }, - { 0x0081, { 0, 10800, 90 } }, - { 0x0082, { 0, 10800, 90 } }, - { 0x2081, { 0x400, 10800, 95 } }, - { 0x2082, { 0x400, 10800, 95 } }, - { 0x0081, { 0, 10800, 101 } }, - { 0x0082, { 0, 10800, 101 } }, - { 0x2081, { 0x400, 10800, 106 } }, - { 0x2082, { 0x400, 10800, 106 } }, - { 0x0081, { 0, 10800, 112 } }, - { 0x0082, { 0, 10800, 112 } }, - { 0x2081, { 0x400, 10800, 118 } }, - { 0x2082, { 0x400, 10800, 118 } }, - { 0x0081, { 0, 10800, 123 } }, - { 0x0082, { 0, 10800, 123 } }, - { 0x2081, { 0x400, 10800, 129 } }, - { 0x2082, { 0x400, 10800, 129 } }, - { 0x0081, { 0, 10800, 135 } }, - { 0x0082, { 0, 10800, 135 } }, - { 0x2081, { 0x400, 10800, 140 } }, - { 0x2082, { 0x400, 10800, 140 } }, - { 0x0081, { 0, 10800, 146 } }, - { 0x0082, { 0, 10800, 146 } }, - { 0x2081, { 0x400, 10800, 151 } }, - { 0x2082, { 0x400, 10800, 151 } }, - { 0x0081, { 0, 10800, 157 } }, - { 0x0082, { 0, 10800, 157 } }, - { 0x2081, { 0x400, 10800, 163 } }, - { 0x2082, { 0x400, 10800, 163 } }, - { 0x0081, { 0, 10800, 168 } }, - { 0x0082, { 0, 10800, 168 } }, - { 0x2081, { 0x400, 10800, 174 } }, - { 0x2082, { 0x400, 10800, 174 } }, - { 0x0081, { 0, 10800, 180 } }, - { 0x0082, { 0, 10800, 180 } }, - { 0x2081, { 0x400, 10800, 185 } }, - { 0x2082, { 0x400, 10800, 185 } }, - { 0x0081, { 0, 10800, 191 } }, - { 0x0082, { 0, 10800, 191 } }, - { 0x2081, { 0x400, 10800, 196 } }, - { 0x2082, { 0x400, 10800, 196 } }, - { 0x0081, { 0, 10800, 202 } }, - { 0x0082, { 0, 10800, 202 } }, - { 0x2081, { 0x400, 10800, 208 } }, - { 0x2082, { 0x400, 10800, 208 } }, - { 0x0081, { 0, 10800, 213 } }, - { 0x0082, { 0, 10800, 213 } }, - { 0x2081, { 0x400, 10800, 219 } }, - { 0x2082, { 0x400, 10800, 219 } }, - { 0x0081, { 0, 10800, 225 } }, - { 0x0082, { 0, 10800, 225 } }, - { 0x2081, { 0x400, 10800, 230 } }, - { 0x2082, { 0x400, 10800, 230 } }, - { 0x0081, { 0, 10800, 236 } }, - { 0x0082, { 0, 10800, 236 } }, - { 0x2081, { 0x400, 10800, 241 } }, - { 0x2082, { 0x400, 10800, 241 } }, - { 0x0081, { 0, 10800, 247 } }, - { 0x0082, { 0, 10800, 247 } }, - { 0x2081, { 0x400, 10800, 253 } }, - { 0x2082, { 0x400, 10800, 253 } }, - { 0x0081, { 0, 10800, 258 } }, - { 0x0082, { 0, 10800, 258 } }, - { 0x2081, { 0x400, 10800, 264 } }, - { 0x2082, { 0x400, 10800, 264 } }, - { 0x0081, { 0, 10800, 270 } }, - { 0x0082, { 0, 10800, 270 } }, - { 0x2081, { 0x400, 10800, 275 } }, - { 0x2082, { 0x400, 10800, 275 } }, - { 0x0081, { 0, 10800, 281 } }, - { 0x0082, { 0, 10800, 281 } }, - { 0x2081, { 0x400, 10800, 286 } }, - { 0x2082, { 0x400, 10800, 286 } }, - { 0x0081, { 0, 10800, 292 } }, - { 0x0082, { 0, 10800, 292 } }, - { 0x2081, { 0x400, 10800, 298 } }, - { 0x2082, { 0x400, 10800, 298 } }, - { 0x0081, { 0, 10800, 303 } }, - { 0x0082, { 0, 10800, 303 } }, - { 0x2081, { 0x400, 10800, 309 } }, - { 0x2082, { 0x400, 10800, 309 } }, - { 0x0081, { 0, 10800, 315 } }, - { 0x0082, { 0, 10800, 315 } }, - { 0x2081, { 0x400, 10800, 320 } }, - { 0x2082, { 0x400, 10800, 320 } }, - { 0x0081, { 0, 10800, 326 } }, - { 0x0082, { 0, 10800, 326 } }, - { 0x2081, { 0x400, 10800, 331 } }, - { 0x2082, { 0x400, 10800, 331 } }, - { 0x0081, { 0, 10800, 337 } }, - { 0x0082, { 0, 10800, 337 } }, - { 0x2081, { 0x400, 10800, 343 } }, - { 0x2082, { 0x400, 10800, 343 } }, - { 0x0081, { 0, 10800, 348 } }, - { 0x0082, { 0, 10800, 348 } }, - { 0x2081, { 0x400, 10800, 354 } }, - { 0x2082, { 0x400, 10800, 354 } } -}; -static const SvxMSDffVertPair mso_sptSeal32Vert[] = -{ - { 0x05 MSO_I, 0x06 MSO_I }, { 0x07 MSO_I, 0x08 MSO_I }, { 0x09 MSO_I, 0x0a MSO_I }, { 0x0b MSO_I, 0x0c MSO_I }, - { 0x0d MSO_I, 0x0e MSO_I }, { 0x0f MSO_I, 0x10 MSO_I }, { 0x11 MSO_I, 0x12 MSO_I }, { 0x13 MSO_I, 0x14 MSO_I }, - { 0x15 MSO_I, 0x16 MSO_I }, { 0x17 MSO_I, 0x18 MSO_I }, { 0x19 MSO_I, 0x1a MSO_I }, { 0x1b MSO_I, 0x1c MSO_I }, - { 0x1d MSO_I, 0x1e MSO_I }, { 0x1f MSO_I, 0x20 MSO_I }, { 0x21 MSO_I, 0x22 MSO_I }, { 0x23 MSO_I, 0x24 MSO_I }, - { 0x25 MSO_I, 0x26 MSO_I }, { 0x27 MSO_I, 0x28 MSO_I }, { 0x29 MSO_I, 0x2a MSO_I }, { 0x2b MSO_I, 0x2c MSO_I }, - { 0x2d MSO_I, 0x2e MSO_I }, { 0x2f MSO_I, 0x30 MSO_I }, { 0x31 MSO_I, 0x32 MSO_I }, { 0x33 MSO_I, 0x34 MSO_I }, - { 0x35 MSO_I, 0x36 MSO_I }, { 0x37 MSO_I, 0x38 MSO_I }, { 0x39 MSO_I, 0x3a MSO_I }, { 0x3b MSO_I, 0x3c MSO_I }, - { 0x3d MSO_I, 0x3e MSO_I }, { 0x3f MSO_I, 0x40 MSO_I }, { 0x41 MSO_I, 0x42 MSO_I }, { 0x43 MSO_I, 0x44 MSO_I }, - { 0x45 MSO_I, 0x46 MSO_I }, { 0x47 MSO_I, 0x48 MSO_I }, { 0x49 MSO_I, 0x4a MSO_I }, { 0x4b MSO_I, 0x4c MSO_I }, - { 0x4d MSO_I, 0x4e MSO_I }, { 0x4f MSO_I, 0x50 MSO_I }, { 0x51 MSO_I, 0x52 MSO_I }, { 0x53 MSO_I, 0x54 MSO_I }, - { 0x55 MSO_I, 0x56 MSO_I }, { 0x57 MSO_I, 0x58 MSO_I }, { 0x59 MSO_I, 0x5a MSO_I }, { 0x5b MSO_I, 0x5c MSO_I }, - { 0x5d MSO_I, 0x5e MSO_I }, { 0x5f MSO_I, 0x60 MSO_I }, { 0x61 MSO_I, 0x62 MSO_I }, { 0x63 MSO_I, 0x64 MSO_I }, - { 0x65 MSO_I, 0x66 MSO_I }, { 0x67 MSO_I, 0x68 MSO_I }, { 0x69 MSO_I, 0x6a MSO_I }, { 0x6b MSO_I, 0x6c MSO_I }, - { 0x6d MSO_I, 0x6e MSO_I }, { 0x6f MSO_I, 0x70 MSO_I }, { 0x71 MSO_I, 0x72 MSO_I }, { 0x73 MSO_I, 0x74 MSO_I }, - { 0x75 MSO_I, 0x76 MSO_I }, { 0x77 MSO_I, 0x78 MSO_I }, { 0x79 MSO_I, 0x7a MSO_I }, { 0x7b MSO_I, 0x7c MSO_I }, - { 0x7d MSO_I, 0x7e MSO_I }, { 0x7f MSO_I, 0x80 MSO_I }, { 0x81 MSO_I, 0x82 MSO_I }, { 0x83 MSO_I, 0x84 MSO_I }, - { 0x05 MSO_I, 0x06 MSO_I } -}; -static const mso_CustomShape msoSeal32 = -{ - (SvxMSDffVertPair*)mso_sptSeal32Vert, sizeof( mso_sptSeal32Vert ) / sizeof( SvxMSDffVertPair ), - NULL, 0, - (SvxMSDffCalculationData*)mso_sptSeal32Calc, sizeof( mso_sptSeal32Calc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault2500, - (SvxMSDffTextRectangles*)mso_sptSealTextRect, sizeof( mso_sptSealTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptSealHandle, sizeof( mso_sptSealHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptRibbon2Vert[] = // adjustment1 : x 2700 - 8100 def 5400 -{ // adjustment2 : y 14400 - 21600 def 18900 - { 12 MSO_I, 1 MSO_I }, { 12 MSO_I, 13 MSO_I }, // pp - { 12 MSO_I, 14 MSO_I }, { 15 MSO_I, 21600 }, { 16 MSO_I, 21600 }, // ccp - { 0, 21600 }, { 2750, 7 MSO_I }, { 0, 2 MSO_I }, { 0 MSO_I, 2 MSO_I }, // pppp - { 0 MSO_I, 4 MSO_I }, // p - { 0 MSO_I, 5 MSO_I }, { 10 MSO_I, 0 }, { 11 MSO_I, 0 }, // ccp - { 17 MSO_I, 0 }, // p - { 18 MSO_I, 0 }, { 19 MSO_I, 5 MSO_I }, { 19 MSO_I, 4 MSO_I }, // ccp - { 19 MSO_I, 2 MSO_I }, { 21600, 2 MSO_I }, { 18850, 7 MSO_I }, { 21600, 21600 }, // pppp - { 20 MSO_I, 21600 }, // p - { 21 MSO_I, 21600 }, { 22 MSO_I, 14 MSO_I }, { 22 MSO_I, 13 MSO_I }, // ccp - { 22 MSO_I, 1 MSO_I }, { 12 MSO_I, 1 MSO_I }, { 12 MSO_I, 13 MSO_I }, // ppp - { 12 MSO_I, 23 MSO_I }, { 15 MSO_I, 24 MSO_I }, { 16 MSO_I, 24 MSO_I }, // ccp - { 11 MSO_I, 24 MSO_I }, // p - { 10 MSO_I, 24 MSO_I }, { 0 MSO_I, 26 MSO_I }, { 0 MSO_I, 25 MSO_I }, // ccp - { 0 MSO_I, 27 MSO_I }, { 10 MSO_I, 1 MSO_I }, { 11 MSO_I, 1 MSO_I }, // ccp - - { 22 MSO_I, 1 MSO_I }, { 22 MSO_I, 13 MSO_I }, // pp - { 22 MSO_I, 23 MSO_I }, { 21 MSO_I, 24 MSO_I }, { 20 MSO_I, 24 MSO_I }, // ccp - { 17 MSO_I, 24 MSO_I }, // p - { 18 MSO_I, 24 MSO_I }, { 19 MSO_I, 26 MSO_I }, { 19 MSO_I, 25 MSO_I }, // ccp - { 19 MSO_I, 27 MSO_I }, { 18 MSO_I, 1 MSO_I }, { 17 MSO_I, 1 MSO_I }, // ccp - - { 0 MSO_I, 25 MSO_I }, { 0 MSO_I, 2 MSO_I }, // pp - - { 19 MSO_I, 25 MSO_I }, { 19 MSO_I, 2 MSO_I } // pp -}; -static const sal_uInt16 mso_sptRibbon2Segm[] = -{ - 0x4000, 0x0001, 0x2001, 0x0005, 0x2001, 0x0001, 0x2001, 0x0005, 0x2001, 0x0001, 0x6001, 0x8000, - 0x4000, 0x0001, 0x2001, 0x0001, 0x2002, 0x6001, 0x8000, - 0x4000, 0x0001, 0x2001, 0x0001, 0x2002, 0x6001, 0x8000, - 0x4000, 0x0001, 0x8000, - 0x4000, 0x0001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptRibbon2Calc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 00 - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, // 01 - { 0x8000, { 21600, 0, 0x401 } }, // 02 - { 0x2001, { 0x402, 1, 2 } }, // 03 - { 0x2001, { 0x403, 1, 2 } }, // 04 - { 0x2001, { 0x404, 1, 2 } }, // 05 - { 0x2001, { 0x401, 1, 2 } }, // 06 - { 0x8000, { 21600, 0, 0x406 } }, // 07 - { 0x0000, { 420, 0, 0 } }, // 08 - { 0x2001, { 0x408, 2, 1 } }, // 09 - { 0x6000, { 0x400, 0x408, 0 } }, // 10 - { 0x6000, { 0x400, 0x409, 0 } }, // 11 - { 0x2000, { 0x400, 2700, 0 } }, // 12 - { 0x8000, { 21600, 0, 0x404 } }, // 13 - { 0x8000, { 21600, 0, 0x405 } }, // 14 - { 0xa000, { 0x40c, 0, 0x408 } }, // 15 - { 0xa000, { 0x40c, 0, 0x409 } }, // 16 - - { 0x8000, { 21600, 0, 0x40b } }, // 17 - { 0x8000, { 21600, 0, 0x40a } }, // 18 - { 0x8000, { 21600, 0, 0x400 } }, // 19 - { 0x8000, { 21600, 0, 0x410 } }, // 20 - { 0x8000, { 21600, 0, 0x40f } }, // 21 - { 0x8000, { 21600, 0, 0x40c } }, // 22 - - { 0xa000, { 0x40d, 0, 0x405 } }, // 23 - { 0x6000, { 0x401, 0x403, 0 } }, // 24 - { 0x6000, { 0x401, 0x404, 0 } }, // 25 - { 0x6000, { 0x419, 0x405, 0 } }, // 26 - { 0xa000, { 0x419, 0, 0x405 } } // 27 -}; -static const sal_Int32 mso_sptRibbon2Default[] = -{ - 2, 5400, 18900 -}; -static const SvxMSDffTextRectangles mso_sptRibbon2TextRect[] = -{ - { { 0 MSO_I, 0 }, { 19 MSO_I, 1 MSO_I } } -}; -static const SvxMSDffHandle mso_sptRibbon2Handle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 0, 10800, 10800, 2700, 8100, 0x80000000, 0x7fffffff }, - { MSDFF_HANDLE_FLAGS_RANGE, - 10800, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 14400, 21600 } -}; -static const mso_CustomShape msoRibbon2 = -{ - (SvxMSDffVertPair*)mso_sptRibbon2Vert, sizeof( mso_sptRibbon2Vert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptRibbon2Segm, sizeof( mso_sptRibbon2Segm ) >> 1, - (SvxMSDffCalculationData*)mso_sptRibbon2Calc, sizeof( mso_sptRibbon2Calc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptRibbon2Default, - (SvxMSDffTextRectangles*)mso_sptRibbon2TextRect, sizeof( mso_sptRibbon2TextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptRibbon2Handle, sizeof( mso_sptRibbon2Handle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptRibbonVert[] = -{ - { 0, 0 }, { 3 MSO_I, 0 }, - { 4 MSO_I, 11 MSO_I }, { 4 MSO_I, 10 MSO_I }, { 5 MSO_I, 10 MSO_I }, { 5 MSO_I, 11 MSO_I }, - { 6 MSO_I, 0 }, { 21600, 0 }, { 18 MSO_I, 14 MSO_I }, { 21600, 15 MSO_I }, { 9 MSO_I, 15 MSO_I }, { 9 MSO_I, 16 MSO_I }, { 8 MSO_I, 21600 }, { 1 MSO_I, 21600 }, - { 0 MSO_I, 16 MSO_I }, { 0 MSO_I, 15 MSO_I }, { 0, 15 MSO_I }, { 2700, 14 MSO_I }, - - { 4 MSO_I, 11 MSO_I }, - { 3 MSO_I, 12 MSO_I }, { 1 MSO_I, 12 MSO_I }, - { 0 MSO_I, 13 MSO_I }, { 1 MSO_I, 10 MSO_I }, { 4 MSO_I, 10 MSO_I }, - { 5 MSO_I, 11 MSO_I }, - { 6 MSO_I, 12 MSO_I }, { 8 MSO_I, 12 MSO_I }, - { 9 MSO_I, 13 MSO_I }, { 8 MSO_I, 10 MSO_I }, { 5 MSO_I, 10 MSO_I }, - { 0 MSO_I, 13 MSO_I }, - { 0 MSO_I, 15 MSO_I }, - { 9 MSO_I, 13 MSO_I }, - { 9 MSO_I, 15 MSO_I } -}; -static const sal_uInt16 mso_sptRibbonSegm[] = -{ - 0x4000, 0x0001, 0xa701, 0x0003, 0xa801, 0x0005, 0xa801, 0x0001, 0xa701, 0x0003, 0x6000, 0x8000, - 0x4000, 0xaa00, 0xa801, 0x0001, 0xa702, 0x0001, 0x8000, - 0x4000, 0xaa00, 0xa801, 0x0001, 0xa702, 0x0001, 0x8000, - 0x4000, 0xaa00, 0x0001, 0x8000, - 0x4000, 0xaa00, 0x0001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptRibbonCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 00 - { 0x2000, { 0x400, 675, 0 } }, // 01 - { 0x2000, { 0x401, 675, 0 } }, // 02 - { 0x2000, { 0x402, 675, 0 } }, // 03 - { 0x2000, { 0x403, 675, 0 } }, // 04 - { 0x8000, { 21600, 0, 0x404 } }, // 05 - { 0x8000, { 21600, 0, 0x403 } }, // 06 - { 0x8000, { 21600, 0, 0x402 } }, // 07 - { 0x8000, { 21600, 0, 0x401 } }, // 08 - { 0x8000, { 21600, 0, 0x400 } }, // 09 - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, // 10 - { 0x2001, { 0x40a, 1, 4 } }, // 11 - { 0x2001, { 0x40b, 2, 1 } }, // 12 - { 0x2001, { 0x40b, 3, 1 } }, // 13 - { 0x8000, { 10800, 0, 0x40c } }, // 14 - { 0x8000, { 21600, 0, 0x40a } }, // 15 - { 0x8000, { 21600, 0, 0x40b } }, // 16 - { 0x0001, { 21600, 1, 2 } }, // 17 - { 0x0000, { 21600, 0, 2700 } }, // 18 - { 0x2000, { 0x411, 0, 2700 } } // 19 -}; -static const sal_Int32 mso_sptRibbonDefault[] = -{ - 2, 5400, 2700 -}; -static const SvxMSDffTextRectangles mso_sptRibbonTextRect[] = -{ - { { 0 MSO_I, 10 MSO_I }, { 9 MSO_I, 21600 } } -}; -static const SvxMSDffVertPair mso_sptRibbonGluePoints[] = -{ - { 17 MSO_I, 10 MSO_I }, { 2700, 14 MSO_I }, { 17 MSO_I, 21600 }, { 18 MSO_I, 14 MSO_I } -}; -static const SvxMSDffHandle mso_sptRibbonHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 0, 10800, 10800, 2700, 8100, 0x80000000, 0x7fffffff }, - { MSDFF_HANDLE_FLAGS_RANGE, - 10800, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 7200 } -}; -static const mso_CustomShape msoRibbon = -{ - (SvxMSDffVertPair*)mso_sptRibbonVert, sizeof( mso_sptRibbonVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptRibbonSegm, sizeof( mso_sptRibbonSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptRibbonCalc, sizeof( mso_sptRibbonCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptRibbonDefault, - (SvxMSDffTextRectangles*)mso_sptRibbonTextRect, sizeof( mso_sptRibbonTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptRibbonGluePoints, sizeof( mso_sptRibbonGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptRibbonHandle, sizeof( mso_sptRibbonHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptVerticalScrollVert[] = // adjustment1 : 0 - 5400 -{ - { 1 MSO_I, 21600 }, { 0, 11 MSO_I }, { 1 MSO_I, 12 MSO_I }, { 0 MSO_I, 12 MSO_I }, - { 0 MSO_I, 1 MSO_I }, { 4 MSO_I, 0 }, { 2 MSO_I, 0 }, { 21600, 1 MSO_I }, - { 2 MSO_I, 0 MSO_I }, { 3 MSO_I, 0 MSO_I }, { 3 MSO_I, 11 MSO_I }, { 5 MSO_I, 21600 }, - - { 6 MSO_I, 1 MSO_I }, { 4 MSO_I, 0 MSO_I }, { 8 MSO_I, 9 MSO_I }, { 4 MSO_I, 1 MSO_I }, - - { 0 MSO_I, 11 MSO_I }, { 1 MSO_I, 21600 }, { 0, 11 MSO_I }, { 1 MSO_I, 12 MSO_I }, - { 9 MSO_I, 10 MSO_I }, { 1 MSO_I, 11 MSO_I }, - - { 4 MSO_I, 0 }, { 6 MSO_I, 1 MSO_I }, - - { 0 MSO_I, 12 MSO_I }, { 0 MSO_I, 11 MSO_I }, - - { 4 MSO_I, 0 MSO_I }, - { 2 MSO_I, 0 MSO_I } -}; -static const sal_uInt16 mso_sptVerticalScrollSegm[] = -{ - 0x4000, 0xa702, 0x0002, 0xa801, 0x0001, 0xa702, 0x0002, 0xa801, 0x6001, 0x8000, - 0x4000, 0xa801, 0xa702, 0x6000, 0x8000, - 0x4000, 0xa803, 0xa702, 0x6001, 0x8000, - 0x4000, 0xa701, 0x8000, - 0x4000, 0x0001, 0x8000, - 0x4000, 0x0001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptScrollCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x2001, { 0x400, 1, 2 } }, - { 0xa000, { DFF_Prop_geoRight, 0, 0x401 } }, - { 0xa000, { DFF_Prop_geoRight, 0, 0x400 } }, - { 0x6000, { 0x400, 0x401, 0 } }, - { 0xa000, { DFF_Prop_geoRight, 0, 0x404 } }, - { 0x2001, { 0x400, 2, 1 } }, - { 0x2001, { 0x401, 1, 2 } }, - { 0x6000, { 0x400, 0x407, 0 } }, - { 0x6000, { 0x401, 0x407, 0 } }, - { 0xa000, { DFF_Prop_geoBottom, 0, 0x409 } }, - { 0xa000, { DFF_Prop_geoBottom, 0, 0x401 } }, - { 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } }, - { 0xa000, { DFF_Prop_geoBottom, 0, 0x404 } } -}; -static const SvxMSDffTextRectangles mso_sptScrollTextRect[] = -{ - { { 0 MSO_I, 0 MSO_I }, { 3 MSO_I, 12 MSO_I } } -}; -static const SvxMSDffHandle mso_sptVerticalScrollHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 5400 } -}; -static const mso_CustomShape msoVerticalScroll = -{ - (SvxMSDffVertPair*)mso_sptVerticalScrollVert, sizeof( mso_sptVerticalScrollVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptVerticalScrollSegm, sizeof( mso_sptVerticalScrollSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptScrollCalc, sizeof( mso_sptScrollCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault2700, - (SvxMSDffTextRectangles*)mso_sptScrollTextRect, sizeof( mso_sptScrollTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 11000, 10800, - NULL, 0, - (SvxMSDffHandle*)mso_sptVerticalScrollHandle, sizeof( mso_sptVerticalScrollHandle ) / sizeof( SvxMSDffHandle ) -}; -static const SvxMSDffVertPair mso_sptHorizontalScrollVert[] = // adjustment1 : 0 - 5400 -{ - { 0, 4 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 3 MSO_I, 0 MSO_I }, { 3 MSO_I, 1 MSO_I }, - { 2 MSO_I, 0 }, { 21600, 1 MSO_I }, { 21600, 13 MSO_I }, { 2 MSO_I, 12 MSO_I }, - { 0 MSO_I, 12 MSO_I }, { 0 MSO_I, 11 MSO_I }, { 1 MSO_I, 21600 }, { 0, 11 MSO_I }, - - { 1 MSO_I, 4 MSO_I }, { 9 MSO_I, 8 MSO_I }, { 0 MSO_I, 4 MSO_I }, { 1 MSO_I, 6 MSO_I }, - - { 2 MSO_I, 1 MSO_I }, { 3 MSO_I, 9 MSO_I }, { 3 MSO_I, 1 MSO_I }, { 2 MSO_I, 0 }, - { 21600, 1 MSO_I }, { 2 MSO_I, 0 MSO_I }, - - { 1 MSO_I, 6 MSO_I }, - { 0, 4 MSO_I }, - - { 2 MSO_I, 0 MSO_I }, - { 3 MSO_I, 0 MSO_I }, - - { 0 MSO_I, 4 MSO_I }, - { 0 MSO_I, 11 MSO_I } -}; -static const sal_uInt16 mso_sptHorizontalScrollSegm[] = -{ - 0x4000, 0xa801, 0x0002, 0xa802, 0x0001, 0xa801, 0x0002, 0xa802, 0x6001, 0x8000, - 0x4000, 0xa803, 0x6000, 0x8000, - 0x4000, 0xa803, 0xa702, 0x6000, 0x8000, - 0x4000, 0xa701, 0x8000, - 0x4000, 0x0001, 0x8000, - 0x4000, 0x0001, 0x8000 -}; -static const SvxMSDffHandle mso_sptHorizontalScrollHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 0, 10800, 10800, 0, 5400, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoHorizontalScroll = -{ - (SvxMSDffVertPair*)mso_sptHorizontalScrollVert, sizeof( mso_sptHorizontalScrollVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptHorizontalScrollSegm, sizeof( mso_sptHorizontalScrollSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptScrollCalc, sizeof( mso_sptScrollCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault2700, - (SvxMSDffTextRectangles*)mso_sptScrollTextRect, sizeof( mso_sptScrollTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 10800, 11000, - NULL, 0, - (SvxMSDffHandle*)mso_sptHorizontalScrollHandle, sizeof( mso_sptHorizontalScrollHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptFlowChartProcessVert[] = -{ - { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 } -}; -static const mso_CustomShape msoFlowChartProcess = -{ - (SvxMSDffVertPair*)mso_sptFlowChartProcessVert, sizeof( mso_sptFlowChartProcessVert ) / sizeof( SvxMSDffVertPair ), - NULL, 0, - NULL, 0, - NULL, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptFlowChartAlternateProcessVert[] = -{ - { 0, 2 MSO_I }, { 0 MSO_I, 0 }, { 1 MSO_I, 0 }, { 21600, 2 MSO_I }, - { 21600, 3 MSO_I }, { 1 MSO_I, 21600 }, { 0 MSO_I, 21600 }, { 0, 3 MSO_I } -}; -static const sal_uInt16 mso_sptFlowChartAlternateProcessSegm[] = -{ - 0x4000, 0xa801, 0x0001, 0xa701, 0x0001, 0xa801, 0x0001, 0xa701, 0x6000, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptFlowChartAlternateProcessCalc[] = -{ - { 0x2000, { DFF_Prop_geoLeft, 2540, 0 } }, - { 0x2000, { DFF_Prop_geoRight, 0, 2540 } }, - { 0x2000, { DFF_Prop_geoTop, 2540, 0 } }, - { 0x2000, { DFF_Prop_geoBottom, 0, 2540 } }, - { 0x2000, { DFF_Prop_geoLeft, 800, 0 } }, - { 0x2000, { DFF_Prop_geoRight, 0, 800 } }, - { 0x2000, { DFF_Prop_geoTop, 800, 0 } }, - { 0x2000, { DFF_Prop_geoBottom,0, 800 } } -}; -static const SvxMSDffTextRectangles mso_sptFlowChartAlternateProcessTextRect[] = -{ - { { 4 MSO_I, 6 MSO_I }, { 5 MSO_I, 7 MSO_I } } -}; -static const mso_CustomShape msoFlowChartAlternateProcess = -{ - (SvxMSDffVertPair*)mso_sptFlowChartAlternateProcessVert, sizeof( mso_sptFlowChartAlternateProcessVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptFlowChartAlternateProcessSegm, sizeof( mso_sptFlowChartAlternateProcessSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptFlowChartAlternateProcessCalc, sizeof( mso_sptFlowChartAlternateProcessCalc ) / sizeof( SvxMSDffCalculationData ), - NULL, - (SvxMSDffTextRectangles*)mso_sptFlowChartAlternateProcessTextRect, sizeof( mso_sptFlowChartAlternateProcessTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptFlowChartDecisionVert[] = -{ - { 0, 10800 }, { 10800, 0 }, { 21600, 10800 }, { 10800, 21600 }, { 0, 10800 } -}; -static const SvxMSDffTextRectangles mso_sptFlowChartDecisionTextRect[] = -{ - { { 5400, 5400 }, { 16200, 16200 } } -}; -static const mso_CustomShape msoFlowChartDecision = -{ - (SvxMSDffVertPair*)mso_sptFlowChartDecisionVert, sizeof( mso_sptFlowChartDecisionVert ) / sizeof( SvxMSDffVertPair ), - NULL, 0, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptFlowChartDecisionTextRect, sizeof( mso_sptFlowChartDecisionTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptFlowChartInputOutputVert[] = -{ - { 4230, 0 }, { 21600, 0 }, { 17370, 21600 }, { 0, 21600 }, { 4230, 0 } -}; -static const SvxMSDffTextRectangles mso_sptFlowChartInputOutputTextRect[] = -{ - { { 4230, 0 }, { 17370, 21600 } } -}; -static const SvxMSDffVertPair mso_sptFlowChartInputOutputGluePoints[] = -{ - { 12960, 0 }, { 10800, 0 }, { 2160, 10800 }, { 8600, 21600 }, { 10800, 21600 }, { 19400, 10800 } -}; -static const mso_CustomShape msoFlowChartInputOutput = -{ - (SvxMSDffVertPair*)mso_sptFlowChartInputOutputVert, sizeof( mso_sptFlowChartInputOutputVert ) / sizeof( SvxMSDffVertPair ), - NULL, 0, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptFlowChartInputOutputTextRect, sizeof( mso_sptFlowChartInputOutputTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptFlowChartInputOutputGluePoints, sizeof( mso_sptFlowChartInputOutputGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptFlowChartPredefinedProcessVert[] = -{ - { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, - - { 2540, 0 }, { 2540, 21600 }, - - { 21600 - 2540, 0 }, { 21600 - 2540, 21600 } -}; -static const sal_uInt16 mso_sptFlowChartPredefinedProcessSegm[] = -{ - 0x4000, 0x0003, 0x6000, 0x8000, - 0x4000, 0x0001, 0x8000, - 0x4000, 0x0001, 0x8000 -}; -static const SvxMSDffTextRectangles mso_sptFlowChartPredefinedProcessTextRect[] = -{ - { { 2540, 0 }, { 21600 - 2540, 21600 } } -}; -static const mso_CustomShape msoFlowChartPredefinedProcess = -{ - (SvxMSDffVertPair*)mso_sptFlowChartPredefinedProcessVert, sizeof( mso_sptFlowChartPredefinedProcessVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptFlowChartPredefinedProcessSegm, sizeof( mso_sptFlowChartPredefinedProcessSegm ) >> 1, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptFlowChartPredefinedProcessTextRect, sizeof( mso_sptFlowChartPredefinedProcessTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptFlowChartInternalStorageVert[] = -{ - { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, - - { 4230, 0 }, { 4230, 21600 }, - - { 0, 4230 }, { 21600, 4230 } -}; -static const sal_uInt16 mso_sptFlowChartInternalStorageSegm[] = -{ - 0x4000, 0x0003, 0x6000, 0x8000, - 0x4000, 0x0001, 0x8000, - 0x4000, 0x0001, 0x8000 -}; -static const SvxMSDffTextRectangles mso_sptFlowChartInternalStorageTextRect[] = -{ - { { 4230, 4230 }, { 21600, 21600 } } -}; -static const mso_CustomShape msoFlowChartInternalStorage = -{ - (SvxMSDffVertPair*)mso_sptFlowChartInternalStorageVert, sizeof( mso_sptFlowChartInternalStorageVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptFlowChartInternalStorageSegm, sizeof( mso_sptFlowChartInternalStorageSegm ) >> 1, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptFlowChartInternalStorageTextRect, sizeof( mso_sptFlowChartInternalStorageTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptFlowChartDocumentVert[] = -{ - { 0, 0 }, { 21600, 0 }, { 21600, 17360 }, - { 13050, 17220 }, { 13340, 20770 }, { 5620, 21600 }, // ccp - { 2860, 21100 }, { 1850, 20700 }, { 0, 20120 } // ccp -}; -static const sal_uInt16 mso_sptFlowChartDocumentSegm[] = -{ - 0x4000, 0x0002, 0x2002, 0x6000, 0x8000 -}; -static const SvxMSDffTextRectangles mso_sptFlowChartDocumentTextRect[] = -{ - { { 0, 0 }, { 21600, 17360 } } -}; -static const SvxMSDffVertPair mso_sptFlowChartDocumentGluePoints[] = -{ - { 10800, 0 }, { 0, 10800 }, { 10800, 20320 }, { 21600, 10800 } -}; -static const mso_CustomShape msoFlowChartDocument = -{ - (SvxMSDffVertPair*)mso_sptFlowChartDocumentVert, sizeof( mso_sptFlowChartDocumentVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptFlowChartDocumentSegm, sizeof( mso_sptFlowChartDocumentSegm ) >> 1, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptFlowChartDocumentTextRect, sizeof( mso_sptFlowChartDocumentTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptFlowChartDocumentGluePoints, sizeof( mso_sptFlowChartDocumentGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptFlowChartMultidocumentVert[] = -{ - { 0, 3600 }, { 1500, 3600 }, { 1500, 1800 }, { 3000, 1800 }, - { 3000, 0 }, { 21600, 0 }, { 21600, 14409 }, { 21600 - 1500, 14409 }, - { 21600 - 1500, 14409 + 1800 }, { 21600 - 3000, 14409 + 1800 }, { 21600 - 3000, 14409 + 3600 }, - { 11610, 14293 + 3600 }, { 11472, 17239 + 3600 }, { 4833, 17928 + 3600 }, // ccp - { 2450, 17513 + 3600 }, { 1591, 17181 + 3600 }, { 0, 16700 + 3600 }, // ccp - - { 1500, 3600 }, { 21600 - 3000, 3600 }, { 21600 - 3000, 14409 + 1800 }, - - { 3000, 1800 }, { 21600 - 1500, 1800 }, { 21600 - 1500, 14409 } -}; -static const sal_uInt16 mso_sptFlowChartMultidocumentSegm[] = -{ - 0x4000, 0x000a, 0x2002, 0x6000, 0x8000, - 0x4000, 0xaa00, 0x0002, 0x8000, // NO FILL - 0x4000, 0xaa00, 0x0002, 0x8000 // NO FILL -}; -static const SvxMSDffTextRectangles mso_sptFlowChartMultidocumentTextRect[] = -{ - { { 0, 3600 }, { 21600 - 3000, 14409 + 3600 } } -}; -static const SvxMSDffVertPair mso_sptFlowChartMultidocumentGluePoints[] = -{ - { 10800, 0 }, { 0, 10800 }, { 10800, 19890 }, { 21600, 10800 } -}; -static const mso_CustomShape msoFlowChartMultidocument = -{ - (SvxMSDffVertPair*)mso_sptFlowChartMultidocumentVert, sizeof( mso_sptFlowChartMultidocumentVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptFlowChartMultidocumentSegm, sizeof( mso_sptFlowChartMultidocumentSegm ) >> 1, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptFlowChartMultidocumentTextRect, sizeof( mso_sptFlowChartMultidocumentTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptFlowChartMultidocumentGluePoints, sizeof( mso_sptFlowChartMultidocumentGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptFlowChartTerminatorVert[] = -{ - { 3470, 21600 }, { 0, 10800 }, { 3470, 0 }, { 18130, 0 }, - { 21600, 10800 }, { 18130, 21600 } -}; -static const sal_uInt16 mso_sptFlowChartTerminatorSegm[] = -{ - 0x4000, 0xa702, 0x0001, 0xa702, 0x6000, 0x8000 -}; -static const SvxMSDffTextRectangles mso_sptFlowChartTerminatorTextRect[] = -{ - { { 1060, 3180 }, { 20540, 18420 } } -}; -static const mso_CustomShape msoFlowChartTerminator = -{ - (SvxMSDffVertPair*)mso_sptFlowChartTerminatorVert, sizeof( mso_sptFlowChartTerminatorVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptFlowChartTerminatorSegm, sizeof( mso_sptFlowChartTerminatorSegm ) >> 1, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptFlowChartTerminatorTextRect, sizeof( mso_sptFlowChartTerminatorTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptFlowChartPreparationVert[] = -{ - { 4350, 0 }, { 17250, 0 }, { 21600, 10800 }, { 17250, 21600 }, - { 4350, 21600 }, { 0, 10800 }, { 4350, 0 } -}; -static const SvxMSDffTextRectangles mso_sptFlowChartPreparationTextRect[] = -{ - { { 4350, 0 }, { 17250, 21600 } } -}; -static const mso_CustomShape msoFlowChartPreparation = -{ - (SvxMSDffVertPair*)mso_sptFlowChartPreparationVert, sizeof( mso_sptFlowChartPreparationVert ) / sizeof( SvxMSDffVertPair ), - NULL, 0, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptFlowChartPreparationTextRect, sizeof( mso_sptFlowChartPreparationTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptFlowChartManualInputVert[] = -{ - { 0, 4300 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 4300 } -}; -static const SvxMSDffTextRectangles mso_sptFlowChartManualInputTextRect[] = -{ - { { 0, 4300 }, { 21600, 21600 } } -}; -static const SvxMSDffVertPair mso_sptFlowChartManualInputGluePoints[] = -{ - { 10800, 2150 }, { 0, 10800 }, { 10800, 19890 }, { 21600, 10800 } -}; -static const mso_CustomShape msoFlowChartManualInput = -{ - (SvxMSDffVertPair*)mso_sptFlowChartManualInputVert, sizeof( mso_sptFlowChartManualInputVert ) / sizeof( SvxMSDffVertPair ), - NULL, 0, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptFlowChartManualInputTextRect, sizeof( mso_sptFlowChartManualInputTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptFlowChartManualInputGluePoints, sizeof( mso_sptFlowChartManualInputGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptFlowChartManualOperationVert[] = -{ - { 0, 0 }, { 21600, 0 }, { 17250, 21600 }, { 4350, 21600 }, { 0, 0 } -}; -static const SvxMSDffTextRectangles mso_sptFlowChartManualOperationTextRect[] = -{ - { { 4350, 0 }, { 17250, 21600 } } -}; -static const SvxMSDffVertPair mso_sptFlowChartManualOperationGluePoints[] = -{ - { 10800, 0 }, { 2160, 10800 }, { 10800, 21600 }, { 19440, 10800 } -}; -static const mso_CustomShape msoFlowChartManualOperation = -{ - (SvxMSDffVertPair*)mso_sptFlowChartManualOperationVert, sizeof( mso_sptFlowChartManualOperationVert ) / sizeof( SvxMSDffVertPair ), - NULL, 0, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptFlowChartManualOperationTextRect, sizeof( mso_sptFlowChartManualOperationTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptFlowChartManualOperationGluePoints, sizeof( mso_sptFlowChartManualOperationGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptFlowChartConnectorVert[] = -{ - { 10800, 10800 }, { 10800, 10800 }, { 0, 360 } -}; -static const sal_uInt16 mso_sptFlowChartConnectorSegm[] = -{ - 0xa203, 0x6000, 0x8000 -}; -static const SvxMSDffTextRectangles mso_sptFlowChartConnectorTextRect[] = -{ - { { 3180, 3180 }, { 18420, 18420 } } -}; -static const mso_CustomShape msoFlowChartConnector = -{ - (SvxMSDffVertPair*)mso_sptFlowChartConnectorVert, sizeof( mso_sptFlowChartConnectorVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptFlowChartConnectorSegm, sizeof( mso_sptFlowChartConnectorSegm ) >> 1, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptFlowChartConnectorTextRect, sizeof( mso_sptFlowChartConnectorTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptFlowChartOffpageConnectorVert[] = -{ - { 0, 0 }, { 21600, 0 }, { 21600, 17150 }, { 10800, 21600 }, - { 0, 17150 }, { 0, 0 } -}; -static const SvxMSDffTextRectangles mso_sptFlowChartOffpageConnectorTextRect[] = -{ - { { 0, 0 }, { 21600, 17150 } } -}; -static const mso_CustomShape msoFlowChartOffpageConnector = -{ - (SvxMSDffVertPair*)mso_sptFlowChartOffpageConnectorVert, sizeof( mso_sptFlowChartOffpageConnectorVert ) / sizeof( SvxMSDffVertPair ), - NULL, 0, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptFlowChartOffpageConnectorTextRect, sizeof( mso_sptFlowChartOffpageConnectorTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptFlowChartPunchedCardVert[] = -{ - { 4300, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, - { 0, 4300 }, { 4300, 0 } -}; -static const SvxMSDffTextRectangles mso_sptFlowChartPunchedCardTextRect[] = -{ - { { 0, 4300 }, { 21600, 21600 } } -}; -static const mso_CustomShape msoFlowChartPunchedCard = -{ - (SvxMSDffVertPair*)mso_sptFlowChartPunchedCardVert, sizeof( mso_sptFlowChartPunchedCardVert ) / sizeof( SvxMSDffVertPair ), - NULL, 0, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptFlowChartPunchedCardTextRect, sizeof( mso_sptFlowChartPunchedCardTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptFlowChartPunchedTapeVert[] = -{ - { 0, 2230 }, // p - { 820, 3990 }, { 3410, 3980 }, { 5370, 4360 }, // ccp - { 7430, 4030 }, { 10110, 3890 }, { 10690, 2270 }, // ccp - { 11440, 300 }, { 14200, 160 }, { 16150, 0 }, // ccp - { 18670, 170 }, { 20690, 390 }, { 21600, 2230 }, // ccp - { 21600, 19420 }, // p - { 20640, 17510 }, { 18320, 17490 }, { 16140, 17240 }, // ccp - { 14710, 17370 }, { 11310, 17510 }, { 10770, 19430 }, // ccp - { 10150, 21150 }, { 7380, 21290 }, { 5290, 21600 }, // ccp - { 3220, 21250 }, { 610, 21130 }, { 0, 19420 } // ccp -}; -static const sal_uInt16 mso_sptFlowChartPunchedTapeSegm[] = -{ - 0x4000, 0x2004, 0x0001, 0x2004, 0x6000, 0x8000 -}; -static const SvxMSDffTextRectangles mso_sptFlowChartPunchedTapeTextRect[] = -{ - { { 0, 4360 }, { 21600, 17240 } } -}; -static const SvxMSDffVertPair mso_sptFlowChartPunchedTapeGluePoints[] = -{ - { 10800, 2020 }, { 0, 10800 }, { 10800, 19320 }, { 21600, 10800 } -}; -static const mso_CustomShape msoFlowChartPunchedTape = -{ - (SvxMSDffVertPair*)mso_sptFlowChartPunchedTapeVert, sizeof( mso_sptFlowChartPunchedTapeVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptFlowChartPunchedTapeSegm, sizeof( mso_sptFlowChartPunchedTapeSegm ) >> 1, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptFlowChartPunchedTapeTextRect, sizeof( mso_sptFlowChartPunchedTapeTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptFlowChartPunchedTapeGluePoints, sizeof( mso_sptFlowChartPunchedTapeGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptFlowChartSummingJunctionVert[] = -{ - { 10800, 10800 }, { 10800, 10800 }, { 0, 360 }, - - { 3100, 3100 }, - { 18500, 18500 }, - - { 3100, 18500 }, - { 18500, 3100 } -}; -static const sal_uInt16 mso_sptFlowChartSummingJunctionSegm[] = -{ - 0xa203, 0x6000, 0x8000, - 0x4000, 0x0001, 0x8000, - 0x4000, 0x0001, 0x8000 -}; -static const SvxMSDffTextRectangles mso_sptFlowChartSummingJunctionTextRect[] = -{ - { { 3100, 3100 }, { 18500, 18500 } } -}; -static const mso_CustomShape msoFlowChartSummingJunction = -{ - (SvxMSDffVertPair*)mso_sptFlowChartSummingJunctionVert, sizeof( mso_sptFlowChartSummingJunctionVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptFlowChartSummingJunctionSegm, sizeof( mso_sptFlowChartSummingJunctionSegm ) >> 1, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptFlowChartSummingJunctionTextRect, sizeof( mso_sptFlowChartSummingJunctionTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptFlowChartOrVert[] = -{ - { 10800, 10800 }, { 10800, 10800 }, { 0, 360 }, - - { 0, 10800 }, { 21600, 10800 }, - - { 10800, 0 }, { 10800, 21600 } -}; -static const sal_uInt16 mso_sptFlowChartOrSegm[] = -{ - 0xa203, 0x6000, 0x8000, - 0x4000, 0x0001, 0x8000, - 0x4000, 0x0001, 0x8000 -}; -static const SvxMSDffTextRectangles mso_sptFlowChartOrTextRect[] = -{ - { { 3100, 3100 }, { 18500, 18500 } } -}; -static const mso_CustomShape msoFlowChartOr = -{ - (SvxMSDffVertPair*)mso_sptFlowChartOrVert, sizeof( mso_sptFlowChartOrVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptFlowChartOrSegm, sizeof( mso_sptFlowChartOrSegm ) >> 1, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptFlowChartOrTextRect, sizeof( mso_sptFlowChartOrTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptFlowChartCollateVert[] = -{ - { 0, 0 }, { 21600, 21600 }, { 0, 21600 }, { 21600, 0 }, { 0, 0 } -}; -static const SvxMSDffTextRectangles mso_sptFlowChartCollateTextRect[] = -{ - { { 5400, 5400 }, { 16200, 16200 } } -}; -static const SvxMSDffVertPair mso_sptFlowChartCollateGluePoints[] = -{ - { 10800, 0 }, { 10800, 10800 }, { 10800, 21600 } -}; -static const mso_CustomShape msoFlowChartCollate = -{ - (SvxMSDffVertPair*)mso_sptFlowChartCollateVert, sizeof( mso_sptFlowChartCollateVert ) / sizeof( SvxMSDffVertPair ), - NULL, 0, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptFlowChartCollateTextRect, sizeof( mso_sptFlowChartCollateTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptFlowChartCollateGluePoints, sizeof( mso_sptFlowChartCollateGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptFlowChartSortVert[] = -{ - { 0, 10800 }, { 10800, 0 }, { 21600, 10800 }, { 10800, 21600 }, - - { 0, 10800 }, { 21600, 10800 } -}; -static const sal_uInt16 mso_sptFlowChartSortSegm[] = -{ - 0x4000, 0x0003, 0x6000, 0x8000, - 0x4000, 0x0001, 0x8000 -}; -static const SvxMSDffTextRectangles mso_sptFlowChartSortTextRect[] = -{ - { { 5400, 5400 }, { 16200, 16200 } } -}; -static const mso_CustomShape msoFlowChartSort = -{ - (SvxMSDffVertPair*)mso_sptFlowChartSortVert, sizeof( mso_sptFlowChartSortVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptFlowChartSortSegm, sizeof( mso_sptFlowChartSortSegm ) >> 1, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptFlowChartSortTextRect, sizeof( mso_sptFlowChartSortTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptFlowChartExtractVert[] = -{ - { 10800, 0 }, { 21600, 21600 }, { 0, 21600 }, { 10800, 0 } -}; -static const SvxMSDffTextRectangles mso_sptFlowChartExtractTextRect[] = -{ - { { 5400, 10800 }, { 16200, 21600 } } -}; -static const SvxMSDffVertPair mso_sptFlowChartExtractGluePoints[] = -{ - { 10800, 0 }, { 5400, 10800 }, { 10800, 21600 }, { 16200, 10800 } -}; -static const mso_CustomShape msoFlowChartExtract = -{ - (SvxMSDffVertPair*)mso_sptFlowChartExtractVert, sizeof( mso_sptFlowChartExtractVert ) / sizeof( SvxMSDffVertPair ), - NULL, 0, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptFlowChartExtractTextRect, sizeof( mso_sptFlowChartExtractTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptFlowChartExtractGluePoints, sizeof( mso_sptFlowChartExtractGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptFlowChartMergeVert[] = -{ - { 0, 0 }, { 21600, 0 }, { 10800, 21600 }, { 0, 0 } -}; -static const SvxMSDffTextRectangles mso_sptFlowChartMergeTextRect[] = -{ - { { 5400, 0 }, { 16200, 10800 } } -}; -static const mso_CustomShape msoFlowChartMerge = -{ - (SvxMSDffVertPair*)mso_sptFlowChartMergeVert, sizeof( mso_sptFlowChartMergeVert ) / sizeof( SvxMSDffVertPair ), - NULL, 0, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptFlowChartMergeTextRect, sizeof( mso_sptFlowChartMergeTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptFlowChartExtractGluePoints, sizeof( mso_sptFlowChartExtractGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptFlowChartOnlineStorageVert[] = -{ - { 3600, 21600 }, { 0, 10800 }, { 3600, 0 }, { 21600, 0 }, - { 18000, 10800 }, { 21600, 21600 } -}; -static const sal_uInt16 mso_sptFlowChartOnlineStorageSegm[] = -{ - 0x4000, 0xa702, 0x0001, 0xa702, 0x6000, 0x8000 -}; -static const SvxMSDffTextRectangles mso_sptFlowChartOnlineStorageTextRect[] = -{ - { { 3600, 0 }, { 18000, 21600 } } -}; -static const SvxMSDffVertPair mso_sptFlowChartOnlineStorageGluePoints[] = -{ - { 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 18000, 10800 } -}; -static const mso_CustomShape msoFlowChartOnlineStorage = -{ - (SvxMSDffVertPair*)mso_sptFlowChartOnlineStorageVert, sizeof( mso_sptFlowChartOnlineStorageVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptFlowChartOnlineStorageSegm, sizeof( mso_sptFlowChartOnlineStorageSegm ) >> 1, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptFlowChartOnlineStorageTextRect, sizeof( mso_sptFlowChartOnlineStorageTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptFlowChartOnlineStorageGluePoints, sizeof( mso_sptFlowChartOnlineStorageGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptFlowChartDelayVert[] = -{ - { 10800, 0 }, { 21600, 10800 }, { 10800, 21600 }, { 0, 21600 }, - { 0, 0 } -}; -static const sal_uInt16 mso_sptFlowChartDelaySegm[] = -{ - 0x4000, 0xa702, 0x0002, 0x6000, 0x8000 -}; -static const SvxMSDffTextRectangles mso_sptFlowChartDelayTextRect[] = -{ - { { 0, 3100 }, { 18500, 18500 } } -}; -static const mso_CustomShape msoFlowChartDelay = -{ - (SvxMSDffVertPair*)mso_sptFlowChartDelayVert, sizeof( mso_sptFlowChartDelayVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptFlowChartDelaySegm, sizeof( mso_sptFlowChartDelaySegm ) >> 1, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptFlowChartDelayTextRect, sizeof( mso_sptFlowChartDelayTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptFlowChartMagneticTapeVert[] = -{ - { 20980, 18150 }, { 20980, 21600 }, { 10670, 21600 }, - { 4770, 21540 }, { 0, 16720 }, { 0, 10800 }, // ccp - { 0, 4840 }, { 4840, 0 }, { 10800, 0 }, // ccp - { 16740, 0 }, { 21600, 4840 }, { 21600, 10800 }, // ccp - { 21600, 13520 }, { 20550, 16160 }, { 18670, 18170 } // ccp -}; -static const sal_uInt16 mso_sptFlowChartMagneticTapeSegm[] = -{ - 0x4000, 0x0002, 0x2004, 0x6000, 0x8000 -}; -static const SvxMSDffTextRectangles mso_sptFlowChartMagneticTapeTextRect[] = -{ - { { 3100, 3100 }, { 18500, 18500 } } -}; -static const mso_CustomShape msoFlowChartMagneticTape = -{ - (SvxMSDffVertPair*)mso_sptFlowChartMagneticTapeVert, sizeof( mso_sptFlowChartMagneticTapeVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptFlowChartMagneticTapeSegm, sizeof( mso_sptFlowChartMagneticTapeSegm ) >> 1, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptFlowChartMagneticTapeTextRect, sizeof( mso_sptFlowChartMagneticTapeTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptFlowChartMagneticDiskVert[] = -{ - { 0, 3400 }, { 10800, 0 }, { 21600, 3400 }, { 21600, 18200 }, - { 10800, 21600 }, { 0, 18200 }, - - { 0, 3400 }, { 10800, 6800 }, { 21600, 3400 } -}; -static const sal_uInt16 mso_sptFlowChartMagneticDiskSegm[] = -{ - 0x4000, 0xa802, 0x0001, 0xa802, 0x6000, 0x8000, - 0x4000, 0xa802, 0x8000 -}; -static const SvxMSDffTextRectangles mso_sptFlowChartMagneticDiskTextRect[] = -{ - { { 0, 6800 }, { 21600, 18200 } } -}; -static const SvxMSDffVertPair mso_sptFlowChartMagneticDiskGluePoints[] = -{ - { 10800, 6800 }, { 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 21600, 10800 } -}; -static const mso_CustomShape msoFlowChartMagneticDisk = -{ - (SvxMSDffVertPair*)mso_sptFlowChartMagneticDiskVert, sizeof( mso_sptFlowChartMagneticDiskVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptFlowChartMagneticDiskSegm, sizeof( mso_sptFlowChartMagneticDiskSegm ) >> 1, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptFlowChartMagneticDiskTextRect, sizeof( mso_sptFlowChartMagneticDiskTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptFlowChartMagneticDiskGluePoints, sizeof( mso_sptFlowChartMagneticDiskGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptFlowChartMagneticDrumVert[] = -{ - { 18200, 0 }, { 21600, 10800 }, { 18200, 21600 }, { 3400, 21600 }, - { 0, 10800 }, { 3400, 0 }, - - { 18200, 0 }, { 14800, 10800 }, { 18200, 21600 } -}; -static const sal_uInt16 mso_sptFlowChartMagneticDrumSegm[] = -{ - 0x4000, 0xa702, 0x0001, 0xa702, 0x6000, 0x8000, - 0x4000, 0xa702, 0x8000 -}; -static const SvxMSDffTextRectangles mso_sptFlowChartMagneticDrumTextRect[] = -{ - { { 3400, 0 }, { 14800, 21600 } } -}; -static const SvxMSDffVertPair mso_sptFlowChartMagneticDrumGluePoints[] = -{ - { 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 14800, 10800 }, { 21600, 10800 } -}; -static const mso_CustomShape msoFlowChartMagneticDrum = -{ - (SvxMSDffVertPair*)mso_sptFlowChartMagneticDrumVert, sizeof( mso_sptFlowChartMagneticDrumVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptFlowChartMagneticDrumSegm, sizeof( mso_sptFlowChartMagneticDrumSegm ) >> 1, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptFlowChartMagneticDrumTextRect, sizeof( mso_sptFlowChartMagneticDrumTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptFlowChartMagneticDrumGluePoints, sizeof( mso_sptFlowChartMagneticDrumGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptFlowChartDisplayVert[] = -{ - { 3600, 0 }, { 17800, 0 }, { 21600, 10800 }, { 17800, 21600 }, - { 3600, 21600 }, { 0, 10800 } -}; -static const sal_uInt16 mso_sptFlowChartDisplaySegm[] = -{ - 0x4000, 0x0001, 0xa702, 0x0002, 0x6000, 0x8000 -}; -static const SvxMSDffTextRectangles mso_sptFlowChartDisplayTextRect[] = -{ - { { 3600, 0 }, { 17800, 21600 } } -}; -static const mso_CustomShape msoFlowChartDisplay = -{ - (SvxMSDffVertPair*)mso_sptFlowChartDisplayVert, sizeof( mso_sptFlowChartDisplayVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptFlowChartDisplaySegm, sizeof( mso_sptFlowChartDisplaySegm ) >> 1, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptFlowChartDisplayTextRect, sizeof( mso_sptFlowChartDisplayTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ), - NULL, 0 // handles -}; - -static const SvxMSDffVertPair mso_sptWedgeRectCalloutVert[] = -{ - { 0, 0 }, - { 0, 3590 }, { 2 MSO_I, 3 MSO_I }, { 0, 8970 }, - { 0, 12630 },{ 4 MSO_I, 5 MSO_I }, { 0, 18010 }, - { 0, 21600 }, - { 3590, 21600 }, { 6 MSO_I, 7 MSO_I }, { 8970, 21600 }, - { 12630, 21600 }, { 8 MSO_I, 9 MSO_I }, { 18010, 21600 }, - { 21600, 21600 }, - { 21600, 18010 }, { 10 MSO_I, 11 MSO_I }, { 21600, 12630 }, - { 21600, 8970 }, { 12 MSO_I, 13 MSO_I }, { 21600, 3590 }, - { 21600, 0 }, - { 18010, 0 }, { 14 MSO_I, 15 MSO_I }, { 12630, 0 }, - { 8970, 0 }, { 16 MSO_I, 17 MSO_I }, { 3590, 0 }, - { 0, 0 } -}; -static const SvxMSDffCalculationData mso_sptWedgeRectCalloutCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 10800 } }, //0x400 - { 0x2000, { DFF_Prop_adjust2Value, 0,10800 } }, - { 0x6006, { 0x412, DFF_Prop_adjustValue, 0 } }, //0x402 - { 0x6006, { 0x412, DFF_Prop_adjust2Value, 6280 } }, - { 0x6006, { 0x417, DFF_Prop_adjustValue, 0 } }, //0x404 - { 0x6006, { 0x417, DFF_Prop_adjust2Value, 15320 } }, - { 0x6006, { 0x41a, DFF_Prop_adjustValue, 6280 } }, //0x406 - { 0x6006, { 0x41a, DFF_Prop_adjust2Value, 21600 } }, - { 0x6006, { 0x41d, DFF_Prop_adjustValue, 15320 } }, //0x408 - { 0x6006, { 0x41d, DFF_Prop_adjust2Value, 21600 } }, - { 0x6006, { 0x420, DFF_Prop_adjustValue, 21600 } }, //0x40a - { 0x6006, { 0x420, DFF_Prop_adjust2Value, 15320 } }, - { 0x6006, { 0x422, DFF_Prop_adjustValue, 21600 } }, //0x40c - { 0x6006, { 0x422, DFF_Prop_adjust2Value, 6280 } }, - { 0x6006, { 0x424, DFF_Prop_adjustValue, 15320 } }, //0x40e - { 0x6006, { 0x424, DFF_Prop_adjust2Value, 0 } }, - { 0x6006, { 0x426, DFF_Prop_adjustValue, 6280 } }, //0x410 - { 0x6006, { 0x426, DFF_Prop_adjust2Value, 0 } }, - { 0xa006, { DFF_Prop_adjustValue, -1, 0x413 } }, //0x412 - { 0xa006, { 0x401, -1, 0x416 } }, - { 0x2003, { 0x400, 0, 0 } }, //0x414 - { 0x2003, { 0x401, 0, 0 } }, - { 0xa000, { 0x414, 0, 0x415 } }, //0x416 - { 0xa006, { DFF_Prop_adjustValue, -1, 0x418 } }, - { 0x6006, { 0x401, 0x416, -1 } }, //0x418 - { 0x2000, { DFF_Prop_adjust2Value, 0, 21600 } }, - { 0x6006, { 0x419, 0x41b, -1 } }, //0x41a - { 0xa006, { 0x400, -1, 0x41c } }, - { 0xa000, { 0x415, 0, 0x414 } }, //0x41c - { 0x6006, { 0x419, 0x41e, -1 } }, - { 0x6006, { 0x400, 0x41c, -1 } }, //0x41e - { 0x2000, { DFF_Prop_adjustValue, 0, 21600 } }, - { 0x6006, { 0x41f, 0x421, -1 } }, //0x420 - { 0x6006, { 0x401, 0x416, -1 } }, - { 0x6006, { 0x41f, 0x423, -1 } }, //0x422 - { 0xa006, { 0x401, -1, 0x416 } }, - { 0xa006, { DFF_Prop_adjust2Value, -1, 0x425 } }, //0x424 - { 0x6006, { 0x400, 0x41c, -1 } }, - { 0xa006, { DFF_Prop_adjust2Value, -1, 0x427 } }, //0x426 - { 0xa006, { 0x400, -1, 0x41c } }, - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, //0x428 - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } } -}; -static const sal_Int32 mso_sptWedgeRectCalloutDefault[] = -{ - 2, 1400, 25920 -}; -static const SvxMSDffTextRectangles mso_sptWedgeRectCalloutTextRect[] = -{ - { { 0, 0 }, { 21600, 21600 } } -}; -static const SvxMSDffVertPair mso_sptWedgeRectCalloutGluePoints[] = -{ - { 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 21600, 10800 }, { 40 MSO_I, 41 MSO_I } -}; -static const SvxMSDffHandle mso_sptCalloutHandle[] = -{ - { - 0, - 0x100, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff - } -}; -static const mso_CustomShape msoWedgeRectCallout = -{ - (SvxMSDffVertPair*)mso_sptWedgeRectCalloutVert, sizeof( mso_sptWedgeRectCalloutVert ) / sizeof( SvxMSDffVertPair ), - NULL, 0, - (SvxMSDffCalculationData*)mso_sptWedgeRectCalloutCalc, sizeof( mso_sptWedgeRectCalloutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptWedgeRectCalloutDefault, - (SvxMSDffTextRectangles*)mso_sptWedgeRectCalloutTextRect, sizeof( mso_sptWedgeRectCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptWedgeRectCalloutGluePoints, sizeof( mso_sptWedgeRectCalloutGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptCalloutHandle, sizeof( mso_sptCalloutHandle ) / sizeof( SvxMSDffHandle ) // handles -}; -static const SvxMSDffVertPair mso_sptWedgeRRectCalloutVert[] = -{ - { 3590, 0 }, - { 0, 3590 }, - { 2 MSO_I, 3 MSO_I }, { 0, 8970 }, - { 0, 12630 },{ 4 MSO_I, 5 MSO_I }, { 0, 18010 }, - { 3590, 21600 }, - { 6 MSO_I, 7 MSO_I }, { 8970, 21600 }, - { 12630, 21600 }, { 8 MSO_I, 9 MSO_I }, { 18010, 21600 }, - { 21600, 18010 }, - { 10 MSO_I, 11 MSO_I }, { 21600, 12630 }, - { 21600, 8970 }, { 12 MSO_I, 13 MSO_I }, { 21600, 3590 }, - { 18010, 0 }, - { 14 MSO_I, 15 MSO_I }, { 12630, 0 }, - { 8970, 0 }, { 16 MSO_I, 17 MSO_I } -}; -static const sal_uInt16 mso_sptWedgeRRectCalloutSegm[] = -{ - 0x4000, 0xa701, 0x0005, 0xa801, 0x0005, 0xa701, 0x0005, 0xa801, 0x0004, 0x6001, 0x8000 -}; -static const SvxMSDffTextRectangles mso_sptWedgeRRectCalloutTextRect[] = -{ - { { 800, 800 }, { 20800, 20800 } } -}; -static const mso_CustomShape msoWedgeRRectCallout = -{ - (SvxMSDffVertPair*)mso_sptWedgeRRectCalloutVert, sizeof( mso_sptWedgeRRectCalloutVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptWedgeRRectCalloutSegm, sizeof( mso_sptWedgeRRectCalloutSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptWedgeRectCalloutCalc, sizeof( mso_sptWedgeRectCalloutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptWedgeRectCalloutDefault, - (SvxMSDffTextRectangles*)mso_sptWedgeRRectCalloutTextRect, sizeof( mso_sptWedgeRRectCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptCalloutHandle, sizeof( mso_sptCalloutHandle ) / sizeof( SvxMSDffHandle ) // handles -}; -static const SvxMSDffVertPair mso_sptBalloonVert[] = -{ - { 3590, 0 }, - { 0, 3590 }, - { 0, 14460 }, - { 3590, 18050 }, - { 40 MSO_I, 21600 }, { 5420, 18050 }, - { 18010, 18050 }, - { 21600, 14460 }, - { 21600, 3590 }, - { 18010, 0 } -}; -static const sal_uInt16 mso_sptBalloonSegm[] = -{ - 0x4000, 0xa701, 0x0001, 0xa801, 0x0003, 0xa701, 0x0001, 0xa801, 0x6001, 0x8000 -}; -static const SvxMSDffHandle mso_sptBalloonHandle[] = -{ - { - MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 1, 10800, 10800, 0, 8990, 0x80000000, 0x7fffffff - } -}; -static const SvxMSDffTextRectangles mso_sptBalloonTextRect[] = -{ - { { 800, 800 }, { 20800, 17250 } } -}; -static const mso_CustomShape msoBalloon = -{ - (SvxMSDffVertPair*)mso_sptBalloonVert, sizeof( mso_sptBalloonVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptBalloonSegm, sizeof( mso_sptBalloonSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptWedgeRectCalloutCalc, sizeof( mso_sptWedgeRectCalloutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptWedgeRectCalloutDefault, - (SvxMSDffTextRectangles*)mso_sptBalloonTextRect, sizeof( mso_sptBalloonTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptBalloonHandle, sizeof( mso_sptBalloonHandle ) / sizeof( SvxMSDffHandle ) // handles -}; -static const SvxMSDffVertPair mso_sptWedgeEllipseCalloutVert[] = -{ - { 0, 0 }, { 21600, 21600 }, { 0x16 MSO_I, 0x17 MSO_I }, { 0x12 MSO_I, 0x13 MSO_I }, { 0xe MSO_I, 0xf MSO_I } -}; -static const sal_uInt16 mso_sptWedgeEllipseCalloutSegm[] = -{ - 0xa504, 0x0001, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptWedgeEllipseCalloutCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 10800 } }, // 00 rad x - { 0x2000, { DFF_Prop_adjust2Value, 0, 10800 } }, // 01 rad y - { 0x6001, { 0x400, 0x400, 1 } }, // 02 rad x^2 - { 0x6001, { 0x401, 0x401, 1 } }, // 03 rad y^2 - { 0x6000, { 0x402, 0x403, 0 } }, // 04 - { 0x200d, { 0x404, 0, 0 } }, // 05 - { 0x2000, { 0x405, 0, 10800 } }, // 06 > 0 ? spur needs to be drawn : 10800 - { 0x6008, { 0x400, 0x401, 0 } }, // 07 atan2 -> angle - { 0x2000, { 0x407, 0, 10 } }, // 08 - { 0x2000, { 0x407, 10, 0 } }, // 09 - { 0x400a, { 10800, 0x407, 0 } }, // 0a - { 0x4009, { 10800, 0x407, 0 } }, // 0b - { 0x2000, { 0x40a, 10800, 0 } }, // 0c - { 0x2000, { 0x40b, 10800, 0 } }, // 0d - { 0xe006, { 0x406, DFF_Prop_adjustValue, 0x40c } }, // 0e - { 0xe006, { 0x406, DFF_Prop_adjust2Value, 0x40d } },// 0f - { 0x400a, { 10800, 0x408, 0 } }, // 10 - { 0x4009, { 10800, 0x408, 0 } }, // 11 - { 0x2000, { 0x410, 10800, 0 } }, // 12 - { 0x2000, { 0x411, 10800, 0 } }, // 13 - { 0x400a, { 10800, 0x409, 0 } }, // 14 - { 0x4009, { 10800, 0x409, 0 } }, // 15 - { 0x2000, { 0x414, 10800, 0 } }, // 16 - { 0x2000, { 0x415, 10800, 0 } } // 17 -}; -static const sal_Int32 mso_sptWedgeEllipseCalloutDefault[] = -{ - 2, 1350, 25920 -}; -static const SvxMSDffVertPair mso_sptWedgeEllipseCalloutGluePoints[] = -{ - { 10800, 0 }, { 3160, 3160 }, { 0, 10800 }, { 3160, 18440 }, { 10800, 21600 }, { 18440, 18440 }, { 21600, 10800 }, { 18440, 3160 }, { 0xe MSO_I, 0xf MSO_I } -}; -static const SvxMSDffTextRectangles mso_sptWedgeEllipseCalloutTextRect[] = -{ - { { 3200, 3200 }, { 18400, 18400 } } -}; -static const mso_CustomShape msoWedgeEllipseCallout = -{ - (SvxMSDffVertPair*)mso_sptWedgeEllipseCalloutVert, sizeof( mso_sptWedgeEllipseCalloutVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptWedgeEllipseCalloutSegm, sizeof( mso_sptWedgeEllipseCalloutSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptWedgeEllipseCalloutCalc, sizeof( mso_sptWedgeEllipseCalloutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptWedgeEllipseCalloutDefault, - (SvxMSDffTextRectangles*)mso_sptWedgeEllipseCalloutTextRect, sizeof( mso_sptWedgeEllipseCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptWedgeEllipseCalloutGluePoints, sizeof( mso_sptWedgeEllipseCalloutGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptCalloutHandle, sizeof( mso_sptCalloutHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -static const SvxMSDffVertPair mso_sptCloudCalloutVert[] = -{ - { 1930,7160 }, // p - { 1530,4490 }, { 3400,1970 }, { 5270,1970 }, // ccp - { 5860,1950 }, { 6470,2210 }, { 6970,2600 }, // ccp - { 7450,1390 }, { 8340,650 }, { 9340,650 }, // ccp - { 10004,690 }, { 10710,1050 }, { 11210,1700 }, // ccp - { 11570,630 }, { 12330,0 }, { 13150,0 }, // ccp - { 13840,0 }, { 14470,460 }, { 14870,1160 }, // ccp - { 15330,440 }, { 16020,0 }, { 16740,0 }, // ccp - { 17910,0 }, { 18900,1130 }, { 19110,2710 }, // ccp - { 20240,3150 }, { 21060,4580 }, { 21060,6220 }, // ccp - { 21060,6720 }, { 21000,7200 }, { 20830,7660 }, // ccp - { 21310,8460 }, { 21600,9450 }, { 21600,10460 }, // ccp - { 21600,12750 }, { 20310,14680 }, { 18650,15010 }, // ccp - { 18650,17200 }, { 17370,18920 }, { 15770,18920 }, // ccp - { 15220,18920 }, { 14700,18710 }, { 14240,18310 }, // ccp - { 13820,20240 }, { 12490,21600 }, { 11000,21600 }, // ccp - { 9890,21600 }, { 8840,20790 }, { 8210,19510 }, // ccp - { 7620,20000 }, { 7930,20290 }, { 6240,20290 }, // ccp - { 4850,20290 }, { 3570,19280 }, { 2900,17640 }, // ccp - { 1300,17600 }, { 480,16300 }, { 480,14660 }, // ccp - { 480,13900 }, { 690,13210 }, { 1070,12640 }, // ccp - { 380,12160 }, { 0,11210 }, { 0,10120 }, // ccp - { 0,8590 }, { 840,7330 }, { 1930,7160 }, // ccp - - { 1930, 7160 }, { 1950, 7410 }, { 2040, 7690 }, { 2090, 7920 }, // pccp - { 6970, 2600 }, { 7200, 2790 }, { 7480, 3050 }, { 7670, 3310 }, // pccp - { 11210, 1700 }, { 11130, 1910 }, { 11080, 2160 }, { 11030, 2400 }, // pccp - { 14870, 1160 }, { 14720, 1400 }, { 14640, 1720 }, { 14540, 2010 }, // pccp - { 19110, 2710 }, { 19130, 2890 }, { 19230, 3290 }, { 19190, 3380 }, // pccp - { 20830, 7660 }, { 20660, 8170 }, { 20430, 8620 }, { 20110, 8990 }, // pccp - { 18660, 15010 }, { 18740, 14200 }, { 18280, 12200 }, { 17000, 11450 }, // pccp - { 14240, 18310 }, { 14320, 17980 }, { 14350, 17680 }, { 14370, 17360 }, // pccp - { 8220, 19510 }, { 8060, 19250 }, { 7960, 18950 }, { 7860, 18640 }, // pccp - { 2900, 17640 }, { 3090, 17600 }, { 3280, 17540 }, { 3460, 17450 }, // pccp - { 1070, 12640 }, { 1400, 12900 }, { 1780, 13130 }, { 2330, 13040 }, // pccp - - { 0x11 MSO_I, 0x12 MSO_I }, { 1800, 1800 }, { 0, 360 }, // circ1 - { 0x13 MSO_I, 0x14 MSO_I }, { 1200, 1200 }, { 0, 360 }, // circ2 - { 0xd MSO_I, 0xe MSO_I }, { 700, 700 }, { 0, 360 } // circ3 -}; -static const sal_uInt16 mso_sptCloudCalloutSegm[] = -{ - 0x4000, 0x2016, 0x6001, 0x8000, - 0x4000, 0x2001, 0xaa00, 0x8000, - 0x4000, 0x2001, 0xaa00, 0x8000, - 0x4000, 0x2001, 0xaa00, 0x8000, - 0x4000, 0x2001, 0xaa00, 0x8000, - 0x4000, 0x2001, 0xaa00, 0x8000, - 0x4000, 0x2001, 0xaa00, 0x8000, - 0x4000, 0x2001, 0xaa00, 0x8000, - 0x4000, 0x2001, 0xaa00, 0x8000, - 0x4000, 0x2001, 0xaa00, 0x8000, - 0x4000, 0x2001, 0xaa00, 0x8000, - 0x4000, 0x2001, 0xaa00, 0x8000, - 0xa203, 0x6001, 0x8000, - 0xa203, 0x6001, 0x8000, - 0xa203, 0x6001, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptCloudCalloutCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 10800 } }, - { 0x2000, { DFF_Prop_adjust2Value, 0, 10800 } }, - { 0x6008, { 0x400, 0x401, 0 } }, - { 0x400a, { 10800, 0x402, 0 } }, // 3 - { 0x4009, { 10800, 0x402, 0 } }, // 4 - { 0x2000, { 0x403, 10800, 0 } }, // 5 - { 0x2000, { 0x404, 10800, 0 } }, // 6 - { 0xa000, { DFF_Prop_adjustValue, 0, 0x405 } }, // 7 - { 0xa000, { DFF_Prop_adjust2Value,0, 0x406 } }, // 8 - { 0x2001, { 0x407, 1, 3 } }, // 9 - { 0x2001, { 0x408, 1, 3 } }, // 0xa - { 0x2001, { 0x407, 2, 3 } }, // 0xb - { 0x2001, { 0x408, 2, 3 } }, // 0xc - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 0xd - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, // 0xe - { 0x2001, { 0x403, 1, 10800 / 900 } }, // 0xf taking half x distance of the radius from the first bobble - { 0x2001, { 0x404, 1, 10800 / 900 } }, // 0x10 - { 0xe000, { 0x409, 0x405, 0x40f } }, // 0x11 - { 0xe000, { 0x40a, 0x406, 0x410 } }, // 0x12 - { 0x6000, { 0x40b, 0x405, 0 } }, // 0x13 - { 0x6000, { 0x40c, 0x406, 0 } } // 0x14 -}; -static const sal_Int32 mso_sptCloudCalloutDefault[] = -{ - 2, 1350, 25920 -}; -static const SvxMSDffTextRectangles mso_sptCloudCalloutTextRect[] = -{ - { { 3000, 3320 }, { 17110, 17330 } } -}; -static const mso_CustomShape msoCloudCallout = -{ - (SvxMSDffVertPair*)mso_sptCloudCalloutVert, sizeof( mso_sptCloudCalloutVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptCloudCalloutSegm, sizeof( mso_sptCloudCalloutSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptCloudCalloutCalc, sizeof( mso_sptCloudCalloutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptCloudCalloutDefault, - (SvxMSDffTextRectangles*)mso_sptCloudCalloutTextRect, sizeof( mso_sptCloudCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptCalloutHandle, sizeof( mso_sptCalloutHandle ) / sizeof( SvxMSDffHandle ) // handles -}; - -static const SvxMSDffVertPair mso_sptWaveVert[] = // adjustment1 : 0 - 4460 -{ // adjustment2 : 8640 - 12960 - { 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 9 MSO_I }, { 16 MSO_I, 10 MSO_I }, { 12 MSO_I, 0 MSO_I }, - { 24 MSO_I, 1 MSO_I }, { 25 MSO_I, 26 MSO_I }, { 27 MSO_I, 28 MSO_I }, { 29 MSO_I, 1 MSO_I } -}; -static const SvxMSDffCalculationData mso_sptWaveCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, //400 (vert.adj) - { 0x8000, { 21600, 0, 0x400 } }, //401 - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },//402 (horz.adj) - { 0x2000, { 0x402, 0, 10800 } }, //403 -2160 -> 2160 (horz.adj) - { 0x2001, { 0x403, 2, 1 } }, //404 -4320 -> 4320 (horz.adj) - { 0x2003, { 0x404, 0, 0 } }, //405 abs( 0x404 ) (horz.adj) - { 0x8000, { 4320, 0, 0x405 } }, //406 - { 0xa006, { 0x403, 0, 0x405 } }, //407 - { 0x4001, { 15800, 0x400, 4460 } }, //408 0 -> 15800 (vert.adj) - { 0xa000, { 0x400, 0, 0x408 } }, //409 - { 0x6000, { 0x400, 0x408, 0 } }, //40a - { 0x8000, { 21600, 0, 0x404 } }, //40b - { 0x6006, { 0x403, 0x40b, 21600 } }, //40c - { 0xa000, { 0x40c, 0, 0x407 } }, //40d width between p0 and p1 - { 0x2001, { 0x405, 1, 2 } }, //40e - { 0xa000, { 0x407, 7200, 0x40e } }, //40f - { 0x6000, { 0x40c, 0x40e, 7200 } }, //410 - { 0x2001, { 0x40d, 1, 2 } }, //411 1/2 width - { 0x6000, { 0x407, 0x411, 0 } }, //412 top center glue xpos - { 0x8000, { 21600, 0, 0x412 } }, //413 bottom center glue xpos - { 0x2001, { 0x405, 1, 2 } }, //414 left glue x pos - { 0x8000, { 21600, 0, 0x414 } }, //415 right glue x pos - { 0x2001, { 0x400, 2, 1 } }, //416 y1 (textbox) - { 0x8000, { 21600, 0, 0x416 } }, //417 y2 (textbox) - - { 0x8000, { 21600, 0, 0x407 } }, //418 p2 - - { 0x8000, { 21600, 0, 0x40f } }, //419 c - { 0x6000, { 0x401, 0x408, 0 } }, //41a - - { 0x8000, { 21600, 0, 0x410 } }, //41b c - { 0xa000, { 0x401, 0, 0x408 } }, //41c - - { 0x8000, { 21600, 0, 0x40c } } //41d p3 -}; -static const SvxMSDffVertPair mso_sptWaveGluePoints[] = -{ - { 0x12 MSO_I, 0 MSO_I }, { 0x14 MSO_I, 10800 }, { 0x13 MSO_I, 1 MSO_I }, { 0x15 MSO_I, 10800 } -}; -static const sal_uInt16 mso_sptWaveSegm[] = -{ - 0x4000, 0x2001, 0x0001, 0x2001, 0x6000, 0x8000 -}; -static const SvxMSDffHandle mso_sptWaveHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 4460 }, - { MSDFF_HANDLE_FLAGS_RANGE, - 0x101, 21600, 10800, 10800, 8640, 12960, 0x80000000, 0x7fffffff } -}; -static const sal_Int32 mso_sptWaveDefault[] = -{ - 2, 1400, 10800 -}; -static const SvxMSDffTextRectangles mso_sptWaveTextRect[] = -{ - { { 5 MSO_I, 22 MSO_I }, { 11 MSO_I, 23 MSO_I } } -}; -static const mso_CustomShape msoWave = -{ - (SvxMSDffVertPair*)mso_sptWaveVert, sizeof( mso_sptWaveVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptWaveSegm, sizeof( mso_sptWaveSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptWaveCalc, sizeof( mso_sptWaveCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptWaveDefault, - (SvxMSDffTextRectangles*)mso_sptWaveTextRect, sizeof( mso_sptWaveTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptWaveGluePoints, sizeof( mso_sptWaveGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptWaveHandle, sizeof( mso_sptWaveHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptDoubleWaveVert[] = // adjustment1 : 0 - 2230 -{ // adjustment2 : 8640 - 12960 - { 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 9 MSO_I }, { 0x1e MSO_I, 10 MSO_I }, { 0x12 MSO_I, 0 MSO_I }, { 0x1f MSO_I, 9 MSO_I }, { 16 MSO_I, 10 MSO_I }, { 12 MSO_I, 0 MSO_I }, - { 24 MSO_I, 1 MSO_I }, { 25 MSO_I, 26 MSO_I }, { 0x21 MSO_I, 28 MSO_I }, { 0x13 MSO_I, 1 MSO_I }, { 0x20 MSO_I, 26 MSO_I }, { 27 MSO_I, 28 MSO_I }, { 29 MSO_I, 1 MSO_I } -}; -static const SvxMSDffCalculationData mso_sptDoubleWaveCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, //400 (vert.adj) - { 0x8000, { 21600, 0, 0x400 } }, //401 - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },//402 (horz.adj) - { 0x2000, { 0x402, 0, 10800 } }, //403 -2160 -> 2160 (horz.adj) - { 0x2001, { 0x403, 2, 1 } }, //404 -4320 -> 4320 (horz.adj) - { 0x2003, { 0x404, 0, 0 } }, //405 abs( 0x404 ) (horz.adj) - { 0x8000, { 4320, 0, 0x405 } }, //406 -> not used - { 0xa006, { 0x403, 0, 0x405 } }, //407 - { 0x4001, { 7900, 0x400, 2230 } }, //408 0 -> 7900 (vert.adj) - { 0xa000, { 0x400, 0, 0x408 } }, //409 - { 0x6000, { 0x400, 0x408, 0 } }, //40a - { 0x8000, { 21600, 0, 0x404 } }, //40b - { 0x6006, { 0x403, 0x40b, 21600 } }, //40c - { 0xa000, { 0x40c, 0, 0x407 } }, //40d width between p0 and p1 - { 0x2001, { 0x405, 1, 2 } }, //40e - { 0xa000, { 0x407, 3600, 0x40e } }, //40f - { 0x6000, { 0x40c, 0x40e, 3600 } }, //410 - { 0x2001, { 0x40d, 1, 2 } }, //411 1/2 width - { 0x6000, { 0x407, 0x411, 0 } }, //412 top center glue xpos - { 0x8000, { 21600, 0, 0x412 } }, //413 bottom center glue xpos - { 0x2001, { 0x405, 1, 2 } }, //414 left glue x pos - { 0x8000, { 21600, 0, 0x414 } }, //415 right glue x pos - { 0x2001, { 0x400, 2, 1 } }, //416 y1 (textbox) - { 0x8000, { 21600, 0, 0x416 } }, //417 y2 (textbox) - - { 0x8000, { 21600, 0, 0x407 } }, //418 p2 - - { 0x8000, { 21600, 0, 0x40f } }, //419 c - { 0x6000, { 0x401, 0x408, 0 } }, //41a - - { 0x8000, { 21600, 0, 0x410 } }, //41b c - { 0xa000, { 0x401, 0, 0x408 } }, //41c - - { 0x8000, { 21600, 0, 0x40c } }, //41d p3 - { 0xa000, { 0x412, 0, 0x40e } }, //41e - { 0x6000, { 0x412, 0x40e, 0 } }, //41f - { 0xa000, { 0x413, 0, 0x40e } }, //420 - { 0x6000, { 0x413, 0x40e, 0 } } //421 -}; -static const SvxMSDffVertPair mso_sptDoubleWaveGluePoints[] = -{ - { 0x12 MSO_I, 0 MSO_I }, { 0x14 MSO_I, 10800 }, { 0x13 MSO_I, 1 MSO_I }, { 0x15 MSO_I, 10800 } -}; -static const sal_uInt16 mso_sptDoubleWaveSegm[] = -{ - 0x4000, 0x2002, 0x0001, 0x2002, 0x6000, 0x8000 -}; -static const SvxMSDffHandle mso_sptDoubleWaveHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 2230 }, - { MSDFF_HANDLE_FLAGS_RANGE, - 0x101, 21600, 10800, 10800, 8640, 12960, 0x80000000, 0x7fffffff } -}; -static const sal_Int32 mso_sptDoubleWaveDefault[] = -{ - 2, 1400, 10800 -}; -static const SvxMSDffTextRectangles mso_sptDoubleWaveTextRect[] = -{ - { { 5 MSO_I, 22 MSO_I }, { 11 MSO_I, 23 MSO_I } } -}; -static const mso_CustomShape msoDoubleWave = -{ - (SvxMSDffVertPair*)mso_sptDoubleWaveVert, sizeof( mso_sptDoubleWaveVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptDoubleWaveSegm, sizeof( mso_sptDoubleWaveSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptDoubleWaveCalc, sizeof( mso_sptDoubleWaveCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDoubleWaveDefault, - (SvxMSDffTextRectangles*)mso_sptDoubleWaveTextRect, sizeof( mso_sptDoubleWaveTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptDoubleWaveGluePoints, sizeof( mso_sptDoubleWaveGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptDoubleWaveHandle, sizeof( mso_sptDoubleWaveHandle ) / sizeof( SvxMSDffHandle ) -}; - -// for each shapetype a bit of 1 is indicating that the shape is NOT filled by default -static const sal_uInt16 mso_DefaultFillingTable[] = -{ - 0x0000, 0x0018, 0x01ff, 0x0000, 0x0c00, 0x01e0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0600, 0x0000, 0x0000, 0x0000, 0x0000 -}; -sal_Bool IsCustomShapeFilledByDefault( MSO_SPT eSpType ) -{ - sal_Bool bIsFilledByDefault = sal_True; - sal_uInt32 i = (sal_uInt32)eSpType; - if ( i < 0x100 ) - bIsFilledByDefault = ( mso_DefaultFillingTable[ i >> 4 ] & ( 1 << ( i & 0xf ) ) ) == 0; - return bIsFilledByDefault; -} -sal_Int16 GetCustomShapeConnectionTypeDefault( MSO_SPT eSpType ) -{ - sal_Int16 nGluePointType = com::sun::star::drawing::EnhancedCustomShapeGluePointType::SEGMENTS; - const mso_CustomShape* pDefCustomShape = GetCustomShapeContent( eSpType ); - if ( pDefCustomShape && pDefCustomShape->nGluePoints ) - nGluePointType = com::sun::star::drawing::EnhancedCustomShapeGluePointType::CUSTOM; - else - { - switch( eSpType ) - { - case mso_sptRectangle : - case mso_sptRoundRectangle : - case mso_sptPictureFrame : - case mso_sptFlowChartProcess : - case mso_sptFlowChartPredefinedProcess : - case mso_sptFlowChartInternalStorage : - case mso_sptTextPlainText : - case mso_sptTextBox : - case mso_sptVerticalScroll : - case mso_sptHorizontalScroll : - nGluePointType = com::sun::star::drawing::EnhancedCustomShapeGluePointType::RECT; - default: break; - } - } - return nGluePointType; -} - -// for each shapetype a bit of 1 is indicating that the shape is NOT stroked by default -// #i28269# -static const sal_uInt16 mso_DefaultStrokingTable[] = -{ - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0800, 0x0000, 0x0000, 0x0000, // #i28269# Added shape 75 (mso_sptPictureFrame) - 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000 -}; -// #i28269# -sal_Bool IsCustomShapeStrokedByDefault( MSO_SPT eSpType ) -{ - sal_Bool bIsStrokedByDefault = sal_True; - sal_uInt32 i = (sal_uInt32)eSpType; - if ( i < 0x100 ) - bIsStrokedByDefault = ( mso_DefaultStrokingTable[ i >> 4 ] & ( 1 << ( i & 0xf ) ) ) == 0; - return bIsStrokedByDefault; -} - -static const sal_uInt16 msoSortFilledObjectsToBackTable[] = -{ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 -}; -sal_Bool SortFilledObjectsToBackByDefault( MSO_SPT eSpType ) -{ - sal_Bool bSortFilledObjectsToBackByDefault = sal_True; - sal_uInt32 i = (sal_uInt32)eSpType; - if ( i < 0x100 ) - bSortFilledObjectsToBackByDefault = ( msoSortFilledObjectsToBackTable[ i >> 4 ] & ( 1 << ( i & 0xf ) ) ) != 0; - return bSortFilledObjectsToBackByDefault; -} - -static const SvxMSDffVertPair mso_sptFontWorkVert[] = -{ - { 0, 0 }, { 21600, 0 }, { 0, 21600 }, { 21600, 21600 } -}; -static const sal_uInt16 mso_sptFontWorkSegm[] = -{ - 0x4000, 0x0001, 0x8000, - 0x4000, 0x0001, 0x8000 -}; -static const SvxMSDffTextRectangles mso_sptFontWorkTextRect[] = -{ - { { 0, 0 }, { 21600, 21600 } } -}; -static const mso_CustomShape msoFontWork = -{ - (SvxMSDffVertPair*)mso_sptFontWorkVert, sizeof( mso_sptFontWorkVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptFontWorkSegm, sizeof( mso_sptFontWorkSegm ) >> 1, - NULL, 0, - NULL, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - NULL, 0 // Handles -}; - -static const SvxMSDffVertPair mso_sptTextPlainTextVert[] = -{ - { 3 MSO_I, 0 }, { 5 MSO_I, 0 }, { 6 MSO_I, 21600 }, { 7 MSO_I, 21600 } -}; -static const SvxMSDffCalculationData mso_sptTextPlainTextCalc[] = // adjustment1 : 6629 - 14971 -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 10800 } }, - { 0x2001, { 0x400, 2, 1 } }, - { 0x2003, { 0x401, 0, 0 } }, - { 0xa006, { 0x401, 0, 0x402 } }, // x1(3) - { 0x8000, { 21600, 0, 0x402 } }, - { 0x6006, { 0x401, 0x404, 21600 } }, // x2(5) - { 0x6006, { 0x401, 0x402, 0 } }, // x2 - { 0xa006, { 0x401, 21600, 0x404 } } // x3(7) -}; -static const sal_uInt16 mso_sptTextPlainTextSegm[] = -{ - 0x4000, 0x0001, 0x8000, - 0x4000, 0x0001, 0x8000 -}; -static const SvxMSDffHandle mso_sptTextPlainTextHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 21600, 10800, 10800, 6629, 14971, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoTextPlainText = -{ - (SvxMSDffVertPair*)mso_sptTextPlainTextVert, sizeof( mso_sptTextPlainTextVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextPlainTextSegm, sizeof( mso_sptTextPlainTextSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextPlainTextCalc, sizeof( mso_sptTextPlainTextCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault10800, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextPlainTextHandle, sizeof( mso_sptTextPlainTextHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextStopVert[] = -{ - { 0, 0 MSO_I }, { 7200, 0 }, { 14400, 0 }, { 21600, 0 MSO_I }, - { 0, 1 MSO_I }, { 7200, 21600 }, { 14400, 21600 }, { 21600, 1 MSO_I } -}; -static const SvxMSDffCalculationData mso_sptTextStopCalc[] = // adjustment1 : 3080 - 10800 -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x8000, { 21600, 0, DFF_Prop_adjustValue } } -}; -static const sal_uInt16 mso_sptTextStopSegm[] = -{ - 0x4000, 0x0003, 0x8000, - 0x4000, 0x0003, 0x8000 -}; -static const sal_Int32 mso_sptTextStopDefault[] = -{ - 1, 2700 -}; -static const SvxMSDffHandle mso_sptTextStopHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 3080, 10800 } -}; -static const mso_CustomShape msoTextStop = -{ - (SvxMSDffVertPair*)mso_sptTextStopVert, sizeof( mso_sptTextStopVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextStopSegm, sizeof( mso_sptTextStopSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextStopCalc, sizeof( mso_sptTextStopCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptTextStopDefault, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextStopHandle, sizeof( mso_sptTextStopHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextTriangleVert[] = -{ - { 0, 0 MSO_I }, { 10800, 0 }, { 21600, 0 MSO_I }, { 0, 21600 }, { 21600, 21600 } -}; -static const SvxMSDffCalculationData mso_sptTextTriangleCalc[] = // adjustment1 : 6629 - 14971 -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } } -}; -static const sal_uInt16 mso_sptTextTriangleSegm[] = -{ - 0x4000, 0x0002, 0x8000, - 0x4000, 0x0001, 0x8000 -}; -static const SvxMSDffHandle mso_sptTextTriangleHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 21600 } -}; -static const mso_CustomShape msoTextTriangle = -{ - (SvxMSDffVertPair*)mso_sptTextTriangleVert, sizeof( mso_sptTextTriangleVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextTriangleSegm, sizeof( mso_sptTextTriangleSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextTriangleCalc, sizeof( mso_sptTextTriangleCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault10800, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextTriangleHandle, sizeof( mso_sptTextTriangleHandle ) / sizeof( SvxMSDffHandle ) -}; -static const SvxMSDffVertPair mso_sptTextTriangleInvertedVert[] = -{ - { 0, 0 }, { 21600, 0 }, { 0, 0 MSO_I }, { 10800, 21600 }, { 21600, 0 MSO_I } -}; -static const sal_uInt16 mso_sptTextTriangleInvertedSegm[] = -{ - 0x4000, 0x0001, 0x8000, - 0x4000, 0x0002, 0x8000 -}; -static const mso_CustomShape msoTextTriangleInverted = -{ - (SvxMSDffVertPair*)mso_sptTextTriangleInvertedVert, sizeof( mso_sptTextTriangleInvertedVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextTriangleInvertedSegm, sizeof( mso_sptTextTriangleInvertedSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextTriangleCalc, sizeof( mso_sptTextTriangleCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault10800, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextTriangleHandle, sizeof( mso_sptTextTriangleHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextChevronVert[] = -{ - { 0, 0 MSO_I }, { 10800, 0 }, { 21600, 0 MSO_I }, { 0, 21600 }, { 10800, 1 MSO_I }, { 21600, 21600 } -}; -static const SvxMSDffCalculationData mso_sptTextChevronCalc[] = // adjustment1 : 6629 - 14971 -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x8000, { 21600, 0, DFF_Prop_adjustValue } } -}; -static const sal_uInt16 mso_sptTextChevronSegm[] = -{ - 0x4000, 0x0002, 0x8000, - 0x4000, 0x0002, 0x8000 -}; -static const SvxMSDffHandle mso_sptTextChevronHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10800 } -}; -static const mso_CustomShape msoTextChevron = -{ - (SvxMSDffVertPair*)mso_sptTextChevronVert, sizeof( mso_sptTextChevronVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextChevronSegm, sizeof( mso_sptTextChevronSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextChevronCalc, sizeof( mso_sptTextChevronCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault5400, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextChevronHandle, sizeof( mso_sptTextChevronHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextChevronInvertedVert[] = -{ - { 0, 0 }, { 10800, 1 MSO_I }, { 21600, 0 }, { 0, 0 MSO_I }, { 10800, 21600 }, { 21600, 0 MSO_I } -}; -static const SvxMSDffCalculationData mso_sptTextChevronInvertedCalc[] = // adjustment1 : 6629 - 14971 -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x8000, { 21600, 0, DFF_Prop_adjustValue } } -}; -static const sal_uInt16 mso_sptTextChevronInvertedSegm[] = -{ - 0x4000, 0x0002, 0x8000, - 0x4000, 0x0002, 0x8000 -}; -static const SvxMSDffHandle mso_sptTextChevronInvertedHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 10800, 21600 } -}; -static const mso_CustomShape msoTextChevronInverted = -{ - (SvxMSDffVertPair*)mso_sptTextChevronInvertedVert, sizeof( mso_sptTextChevronInvertedVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextChevronInvertedSegm, sizeof( mso_sptTextChevronInvertedSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextChevronInvertedCalc, sizeof( mso_sptTextChevronInvertedCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault16200, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextChevronInvertedHandle, sizeof( mso_sptTextChevronInvertedHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextRingOutsideVert[] = -{ - { 10800, 0 MSO_I }, { 10800, 0 MSO_I }, { 180, 359 }, - { 10800, 1 MSO_I }, { 10800, 0 MSO_I }, { 180, 359 } -}; -static const SvxMSDffCalculationData mso_sptTextRingOutsideCalc[] = // adjustment1 : 6629 - 14971 -{ - { 0x2001, { DFF_Prop_adjustValue, 1, 2 } }, - { 0x8000, { 21600, 0, 0x400 } } -}; -static const sal_uInt16 mso_sptTextRingOutsideSegm[] = -{ - 0xA203, 0x8000, - 0xA203, 0x8000 -}; -static const SvxMSDffHandle mso_sptTextRingOutsideHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 10800, 21600 } -}; -static const mso_CustomShape msoTextRingOutside = -{ - (SvxMSDffVertPair*)mso_sptTextRingOutsideVert, sizeof( mso_sptTextRingOutsideVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextRingOutsideSegm, sizeof( mso_sptTextRingOutsideSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextRingOutsideCalc, sizeof( mso_sptTextRingOutsideCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault16200, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextRingOutsideHandle, sizeof( mso_sptTextRingOutsideHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextFadeRightVert[] = -{ - { 0, 0 }, { 21600, 0 MSO_I }, { 0, 21600 }, { 21600, 1 MSO_I } -}; -static const SvxMSDffCalculationData mso_sptTextFadeCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x8000, { 21600, 0, DFF_Prop_adjustValue } } -}; -static const sal_uInt16 mso_sptTextFadeSegm[] = -{ - 0x4000, 0x0001, 0x8000, - 0x4000, 0x0001, 0x8000 -}; -static const SvxMSDffHandle mso_sptTextFadeRightHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 21600, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10800 } -}; -static const mso_CustomShape msoTextFadeRight = -{ - (SvxMSDffVertPair*)mso_sptTextFadeRightVert, sizeof( mso_sptTextFadeRightVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault7200, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextFadeRightHandle, sizeof( mso_sptTextFadeRightHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextFadeLeftVert[] = -{ - { 0, 0 MSO_I }, { 21600, 0 }, { 0, 1 MSO_I }, { 21600, 21600 } -}; -static const SvxMSDffHandle mso_sptTextFadeLeftHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10800 } -}; -static const mso_CustomShape msoTextFadeLeft = -{ - (SvxMSDffVertPair*)mso_sptTextFadeLeftVert, sizeof( mso_sptTextFadeLeftVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault7200, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextFadeLeftHandle, sizeof( mso_sptTextFadeLeftHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextFadeUpVert[] = -{ - { 0 MSO_I, 0 }, { 1 MSO_I, 0 }, { 0, 21600 }, { 21600, 21600 } -}; -static const SvxMSDffHandle mso_sptTextFadeUpHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoTextFadeUp = -{ - (SvxMSDffVertPair*)mso_sptTextFadeUpVert, sizeof( mso_sptTextFadeUpVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault7200, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextFadeUpHandle, sizeof( mso_sptTextFadeUpHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextFadeDownVert[] = -{ - { 0, 0 }, { 21600, 0 }, { 0 MSO_I, 21600 }, { 1 MSO_I, 21600 } -}; -static const SvxMSDffHandle mso_sptTextFadeDownHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 21600, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoTextFadeDown = -{ - (SvxMSDffVertPair*)mso_sptTextFadeDownVert, sizeof( mso_sptTextFadeDownVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault7200, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextFadeDownHandle, sizeof( mso_sptTextFadeDownHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextSlantUpVert[] = -{ - { 0, 0 MSO_I }, { 21600, 0 }, { 0, 21600 }, { 21600, 1 MSO_I } -}; -static const SvxMSDffHandle mso_sptTextSlantUpHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 15400 } -}; -static const mso_CustomShape msoTextSlantUp = -{ - (SvxMSDffVertPair*)mso_sptTextSlantUpVert, sizeof( mso_sptTextSlantUpVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault12000, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextSlantUpHandle, sizeof( mso_sptTextSlantUpHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextSlantDownVert[] = -{ - { 0, 0 }, { 21600, 1 MSO_I }, { 0, 0 MSO_I }, { 21600, 21600 } -}; -static const SvxMSDffHandle mso_sptTextSlantDownHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 6200, 21600 } -}; -static const mso_CustomShape msoTextSlantDown = -{ - (SvxMSDffVertPair*)mso_sptTextSlantDownVert, sizeof( mso_sptTextSlantDownVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault12000, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextSlantDownHandle, sizeof( mso_sptTextSlantDownHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextCascadeUpVert[] = -{ - { 0, 2 MSO_I }, { 21600, 0 }, { 0, 21600 }, { 21600, 0 MSO_I } -}; -static const SvxMSDffCalculationData mso_sptTextCascadeCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, - { 0x2001, { 0x401, 1, 4 } } -}; -static const SvxMSDffHandle mso_sptTextCascadeUpHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 21600, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 6200, 21600 } -}; -static const mso_CustomShape msoTextCascadeUp = -{ - (SvxMSDffVertPair*)mso_sptTextCascadeUpVert, sizeof( mso_sptTextCascadeUpVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextCascadeCalc, sizeof( mso_sptTextCascadeCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault9600, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextCascadeUpHandle, sizeof( mso_sptTextCascadeUpHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextCascadeDownVert[] = -{ - { 0, 0 }, { 21600, 2 MSO_I }, { 0, 0 MSO_I }, { 21600, 21600 } -}; -static const SvxMSDffHandle mso_sptTextCascadeDownHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 6200, 21600 } -}; -static const mso_CustomShape msoTextCascadeDown = -{ - (SvxMSDffVertPair*)mso_sptTextCascadeDownVert, sizeof( mso_sptTextCascadeDownVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextCascadeCalc, sizeof( mso_sptTextCascadeCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault9600, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextCascadeDownHandle, sizeof( mso_sptTextCascadeDownHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextArchUpCurveVert[] = -{ - { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I } -}; -static const SvxMSDffCalculationData mso_sptTextArchCurveCalc[] = -{ - { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } }, - { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } }, - { 0x2000, { 0x400, 10800, 0 } }, - { 0x2000, { 0x401, 10800, 0 } }, - { 0x8000, { 21600, 0, 0x402 } } -}; -static const sal_uInt16 mso_sptTextArchUpCurveSegm[] = -{ - 0xA504, 0x8000 // clockw�se arc -}; -static const SvxMSDffHandle mso_sptTextArchUpCurveHandle[] = -{ - { MSDFF_HANDLE_FLAGS_POLAR, - 10800, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff } -}; -static const sal_Int32 mso_sptTextArchUpCurveDefault[] = -{ - 1, 180 -}; -static const mso_CustomShape msoTextArchUpCurve = -{ - (SvxMSDffVertPair*)mso_sptTextArchUpCurveVert, sizeof( mso_sptTextArchUpCurveVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextArchUpCurveSegm, sizeof( mso_sptTextArchUpCurveSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextArchCurveCalc, sizeof( mso_sptTextArchCurveCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptTextArchUpCurveDefault, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextArchUpCurveHandle, sizeof( mso_sptTextArchUpCurveHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextArchDownCurveVert[] = -{ - { 0, 0 }, { 21600, 21600 }, { 4 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I } -}; -static const sal_uInt16 mso_sptTextArchDownCurveSegm[] = -{ - 0xA304, 0x8000 // counter clockwise arc to -}; -static const SvxMSDffHandle mso_sptTextArchDownCurveHandle[] = -{ - { MSDFF_HANDLE_FLAGS_POLAR, - 10800, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff } -}; -static const sal_Int32 mso_sptTextArchDownCurveDefault[] = -{ - 1, 0 -}; -static const mso_CustomShape msoTextArchDownCurve = -{ - (SvxMSDffVertPair*)mso_sptTextArchDownCurveVert, sizeof( mso_sptTextArchDownCurveVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextArchDownCurveSegm, sizeof( mso_sptTextArchDownCurveSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextArchCurveCalc, sizeof( mso_sptTextArchCurveCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptTextArchDownCurveDefault, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextArchDownCurveHandle, sizeof( mso_sptTextArchDownCurveHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextCircleCurveVert[] = -{ - { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 4 MSO_I } -}; -static const SvxMSDffCalculationData mso_sptTextCircleCurveCalc[] = -{ - { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } }, - { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } }, - { 0x2000, { 0x400, 10800, 0 } }, - { 0x2000, { 0x401, 10800, 0 } }, - { 0x8000, { 21600, 0, 0x403 } } -}; -static const sal_uInt16 mso_sptTextCircleCurveSegm[] = -{ - 0xA504, 0x8000 // clockwise arc to -}; -static const SvxMSDffHandle mso_sptTextCircleCurveHandle[] = -{ - { MSDFF_HANDLE_FLAGS_POLAR, - 10800, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff } -}; -static const sal_Int32 mso_sptTextCircleCurveDefault[] = -{ - 1, -179 -}; -static const mso_CustomShape msoTextCircleCurve = -{ - (SvxMSDffVertPair*)mso_sptTextCircleCurveVert, sizeof( mso_sptTextCircleCurveVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextCircleCurveSegm, sizeof( mso_sptTextCircleCurveSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextCircleCurveCalc, sizeof( mso_sptTextCircleCurveCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptTextCircleCurveDefault, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextCircleCurveHandle, sizeof( mso_sptTextCircleCurveHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextButtonCurveVert[] = -{ - { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I }, - { 0, 10800 }, { 21600, 10800 }, - { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 5 MSO_I }, { 4 MSO_I, 5 MSO_I } -}; -static const SvxMSDffCalculationData mso_sptTextButtonCurveCalc[] = -{ - { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } }, - { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } }, - { 0x2000, { 0x400, 10800, 0 } }, - { 0x2000, { 0x401, 10800, 0 } }, - { 0x8000, { 21600, 0, 0x402 } }, - { 0x8000, { 21600, 0, 0x403 } } -}; -static const sal_uInt16 mso_sptTextButtonCurveSegm[] = -{ - 0xA504, 0x8000, // clockwise arc - 0x4000, 0x0001, 0x8000, - 0xA304, 0x8000 // counter clockwise -}; -static const SvxMSDffHandle mso_sptTextButtonCurveHandle[] = -{ - { MSDFF_HANDLE_FLAGS_POLAR, - 10800, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff } -}; -static const sal_Int32 mso_sptTextButtonCurveDefault[] = -{ - 1, 180 -}; -static const mso_CustomShape msoTextButtonCurve = -{ - (SvxMSDffVertPair*)mso_sptTextButtonCurveVert, sizeof( mso_sptTextButtonCurveVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextButtonCurveSegm, sizeof( mso_sptTextButtonCurveSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextButtonCurveCalc, sizeof( mso_sptTextButtonCurveCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptTextButtonCurveDefault, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextButtonCurveHandle, sizeof( mso_sptTextButtonCurveHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextArchUpPourVert[] = -{ - { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I }, - { 5 MSO_I, 5 MSO_I }, { 11 MSO_I, 11 MSO_I }, { 8 MSO_I, 9 MSO_I }, { 0xa MSO_I, 9 MSO_I } -}; -static const SvxMSDffCalculationData mso_sptTextArchPourCalc[] = -{ - { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } }, - { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } }, - { 0x2000, { 0x400, 10800, 0 } }, - { 0x2000, { 0x401, 10800, 0 } }, - { 0x8000, { 21600, 0, 0x402 } }, - { 0x8000, { 10800, 0, DFF_Prop_adjust2Value } }, - { 0x600a, { 0x405, DFF_Prop_adjustValue, 0 } }, // 6 - { 0x6009, { 0x405, DFF_Prop_adjustValue, 0 } }, - { 0x2000, { 0x406, 10800, 0 } }, // 8 - { 0x2000, { 0x407, 10800, 0 } }, - { 0x8000, { 21600, 0, 0x408 } }, // 10 - { 0x8000, { 21600, 0, 0x405 } } -}; -static const sal_uInt16 mso_sptTextArchUpPourSegm[] = -{ - 0xA504, 0x8000, 0xA504, 0x8000 -}; -static const SvxMSDffHandle mso_sptTextArchPourHandle[] = -{ - { MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE, - 0x101, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff } -}; -static const sal_Int32 mso_sptTextArchUpPourDefault[] = -{ - 2, 180, 5400 -}; -static const mso_CustomShape msoTextArchUpPour = -{ - (SvxMSDffVertPair*)mso_sptTextArchUpPourVert, sizeof( mso_sptTextArchUpPourVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextArchUpPourSegm, sizeof( mso_sptTextArchUpPourSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextArchPourCalc, sizeof( mso_sptTextArchPourCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptTextArchUpPourDefault, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextArchPourHandle, sizeof( mso_sptTextArchPourHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextArchDownPourVert[] = -{ - { 5 MSO_I, 5 MSO_I }, { 11 MSO_I, 11 MSO_I }, { 0xa MSO_I, 9 MSO_I }, { 8 MSO_I, 9 MSO_I }, - { 0, 0 }, { 21600, 21600 }, { 4 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I } -}; -static const sal_uInt16 mso_sptTextArchDownPourSegm[] = -{ - 0xA304, 0x8000, 0xA304, 0x8000 -}; -static const sal_Int32 mso_sptTextArchDownPourDefault[] = -{ - 2, 0, 5400 -}; -static const mso_CustomShape msoTextArchDownPour = -{ - (SvxMSDffVertPair*)mso_sptTextArchDownPourVert, sizeof( mso_sptTextArchDownPourVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextArchDownPourSegm, sizeof( mso_sptTextArchDownPourSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextArchPourCalc, sizeof( mso_sptTextArchPourCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptTextArchDownPourDefault, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextArchPourHandle, sizeof( mso_sptTextArchPourHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextCirclePourVert[] = -{ - { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 4 MSO_I }, - { 5 MSO_I, 5 MSO_I }, { 11 MSO_I, 11 MSO_I }, { 8 MSO_I, 9 MSO_I }, { 8 MSO_I, 0xa MSO_I } -}; -static const SvxMSDffCalculationData mso_sptTextCirclePourCalc[] = -{ - { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } }, - { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } }, - { 0x2000, { 0x400, 10800, 0 } }, - { 0x2000, { 0x401, 10800, 0 } }, - { 0x8000, { 21600, 0, 0x403 } }, - { 0x8000, { 10800, 0, DFF_Prop_adjust2Value } }, - { 0x600a, { 0x405, DFF_Prop_adjustValue, 0 } }, // 6 - { 0x6009, { 0x405, DFF_Prop_adjustValue, 0 } }, - { 0x2000, { 0x406, 10800, 0 } }, // 8 - { 0x2000, { 0x407, 10800, 0 } }, - { 0x8000, { 21600, 0, 0x409 } }, // 10 - { 0x8000, { 21600, 0, 0x405 } }, - { 0x000, { 21600, 0, 0 } } -}; -static const sal_uInt16 mso_sptTextCirclePourSegm[] = -{ - 0xA504, 0x8000, 0xA504, 0x8000 -}; -static const SvxMSDffHandle mso_sptTextCirclePourHandle[] = -{ - { MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE, - 0x101, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff } -}; -static const sal_Int32 mso_sptTextCirclePourDefault[] = -{ - 2, -179, 5400 -}; -static const mso_CustomShape msoTextCirclePour = -{ - (SvxMSDffVertPair*)mso_sptTextCirclePourVert, sizeof( mso_sptTextCirclePourVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextCirclePourSegm, sizeof( mso_sptTextCirclePourSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextCirclePourCalc, sizeof( mso_sptTextCirclePourCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptTextCirclePourDefault, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextCirclePourHandle, sizeof( mso_sptTextCirclePourHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextButtonPourVert[] = -{ - { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I }, - { 6 MSO_I, 6 MSO_I }, { 7 MSO_I, 7 MSO_I }, { 10 MSO_I, 11 MSO_I }, { 12 MSO_I, 11 MSO_I }, - { 0x16 MSO_I, 16 MSO_I }, { 0x15 MSO_I, 16 MSO_I }, - { 0x16 MSO_I, 15 MSO_I }, { 0x15 MSO_I, 15 MSO_I }, - { 6 MSO_I, 6 MSO_I }, { 7 MSO_I, 7 MSO_I }, { 10 MSO_I, 13 MSO_I }, { 12 MSO_I, 13 MSO_I }, - { 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 5 MSO_I }, { 4 MSO_I, 5 MSO_I } -}; -static const SvxMSDffCalculationData mso_sptTextButtonPourCalc[] = -{ - { 0x400a, { 10800, DFF_Prop_adjustValue, 0 } }, // 0x00 - { 0x4009, { 10800, DFF_Prop_adjustValue, 0 } }, // 0x01 - { 0x2000, { 0x400, 10800, 0 } }, // 0x02 - { 0x2000, { 0x401, 10800, 0 } }, // 0x03 - { 0x8000, { 21600, 0, 0x402 } }, // 0x04 - { 0x8000, { 21600, 0, 0x403 } }, // 0x05 - - { 0x8000, { 10800, 0, DFF_Prop_adjust2Value } }, // 0x06 - { 0x8000, { 21600, 0, 0x406 } }, // 0x07 - - { 0x600a, { DFF_Prop_adjust2Value, DFF_Prop_adjustValue, 0 } }, // 0x08 - { 0x6009, { DFF_Prop_adjust2Value, DFF_Prop_adjustValue, 0 } }, // 0x09 - { 0x2000, { 0x408, 10800, 0 } }, // 0x0a - { 0x2000, { 0x409, 10800, 0 } }, // 0x0b - { 0x8000, { 21600, 0, 0x40a } }, // 0x0c - { 0x8000, { 21600, 0, 0x40b } }, // 0x0d - { 0x2001, { 0x406, 1, 2 } }, // 0x0e - { 0x4000, { 10800, 0x40e, 0 } }, // 0x0f - { 0x8000, { 10800, 0, 0x40e } }, // 0x10 - { 0x6001, { 0x40e, 0x40e, 1 } }, // 0x11 - { 0x6001, { DFF_Prop_adjust2Value, DFF_Prop_adjust2Value, 1 } }, // 0x12 - { 0xA000, { 0x412, 0, 0x411 } }, // 0x13 - { 0x200d, { 0x413, 0, 0 } }, // 0x14 - { 0x4000, { 10800, 0x414, 0 } }, // 0x15 - { 0x8000, { 10800, 0, 0x414 } } // 0x16 -}; -static const sal_uInt16 mso_sptTextButtonPourSegm[] = -{ - 0xA504, 0x8000, // clockwise arc - 0xA504, 0x8000, // clockwise arc - 0x4000, 0x0001, 0x8000, - 0x4000, 0x0001, 0x8000, - 0xA304, 0x8000, // counter clockwise - 0xA304, 0x8000 // counter clockwise -}; -static const SvxMSDffHandle mso_sptTextButtonPourHandle[] = -{ - { MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE, - 0x101, 0x100, 10800, 10800, 4320, 10800, 0x80000000, 0x7fffffff } -}; -static const sal_Int32 mso_sptTextButtonPourDefault[] = -{ - 2, 180, 5400 -}; -static const mso_CustomShape msoTextButtonPour = -{ - (SvxMSDffVertPair*)mso_sptTextButtonPourVert, sizeof( mso_sptTextButtonPourVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextButtonPourSegm, sizeof( mso_sptTextButtonPourSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextButtonPourCalc, sizeof( mso_sptTextButtonPourCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptTextButtonPourDefault, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextButtonPourHandle, sizeof( mso_sptTextButtonPourHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextCurveUpVert[] = -{ - { 0, 0 MSO_I }, { 4900, 1 MSO_I /*12170->0 14250 ->0*/ }, { 11640, 2 MSO_I /*12170->0 12800 ->0*/ }, { 21600, 0 }, - { 0, 4 MSO_I /*12170->0 17220 ->21600*/ }, { 3700, 21600 }, { 8500, 21600 }, { 10100, 21600 }, { 14110, 21600 }, { 15910, 21600 }, { 21600, 4 MSO_I /*12170->0 17220 ->21600*/ } -}; -static const SvxMSDffCalculationData mso_sptTextCurveUpCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400 - { 0x4001, { 14250, 0x400, 12170 } }, // 401 - { 0x4001, { 12800, 0x400, 12170 } }, // 402 - { 0x4001, { 6380, 0x400, 12170 } }, // 403 - { 0x8000, { 21600, 0, 0x403 } } // 404 -}; -static const sal_uInt16 mso_sptTextCurveUpSegm[] = -{ - 0x4000, 0x2001, 0x8000, - 0x4000, 0x2002, 0x8000 -}; -static const SvxMSDffHandle mso_sptTextCurveUpHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 12170 } -}; -static const sal_Int32 mso_sptTextCurveUpDefault[] = -{ - 1, 9900 -}; -static const mso_CustomShape msoTextCurveUp = -{ - (SvxMSDffVertPair*)mso_sptTextCurveUpVert, sizeof( mso_sptTextCurveUpVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextCurveUpSegm, sizeof( mso_sptTextCurveUpSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextCurveUpCalc, sizeof( mso_sptTextCurveUpCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptTextCurveUpDefault, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextCurveUpHandle, sizeof( mso_sptTextCurveUpHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextCurveDownVert[] = -{ -// { 0, 0 MSO_I }, { 4900, 1 MSO_I /*12170->0 14250 ->0*/ }, { 11640, 2 MSO_I /*12170->0 12800 ->0*/ }, { 21600, 0 }, - { 0, 0 }, { 9960, 2 MSO_I }, { 16700, 1 MSO_I }, { 21600, 0 MSO_I }, - -// { 0, 4 MSO_I /*12170->0 17220 ->21600*/ }, { 3700, 21600 }, { 8500, 21600 }, { 10100, 21600 }, { 14110, 21600 }, { 15910, 21600 }, { 21600, 4 MSO_I /*12170->0 17220 ->21600*/ } - { 0, 4 MSO_I }, { 5690, 21600 }, { 7490, 21600 }, { 11500, 21600 }, { 13100, 21600 }, { 17900, 21600 }, { 21600, 4 MSO_I } -}; -static const SvxMSDffHandle mso_sptTextCurveDownHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 21600, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 12170 } -}; -static const mso_CustomShape msoTextCurveDown = -{ - (SvxMSDffVertPair*)mso_sptTextCurveDownVert, sizeof( mso_sptTextCurveDownVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextCurveUpSegm, sizeof( mso_sptTextCurveUpSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextCurveUpCalc, sizeof( mso_sptTextCurveUpCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptTextCurveUpDefault, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextCurveDownHandle, sizeof( mso_sptTextCurveDownHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextCanUpVert[] = -{ - { 0, 1 MSO_I }, { 900, 0 }, { 7100, 0 }, { 10800, 0 }, { 14500, 0 }, { 20700, 0 }, { 21600, 1 MSO_I }, - { 0, 21600 }, { 900, 4 MSO_I }, { 7100, 0 MSO_I }, { 10800, 0 MSO_I }, { 14500, 0 MSO_I }, { 20700, 4 MSO_I }, { 21600, 21600 } -}; -static const SvxMSDffCalculationData mso_sptTextCanUpCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400 - { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, // 401 - { 0x2000, { DFF_Prop_adjustValue, 0, 14400 } }, // 402 - { 0x4001, { 5470, 0x402, 7200 } }, // 403 - { 0x4000, { 16130, 0x403, 0 } } // 404 -}; -static const sal_uInt16 mso_sptTextCanUpSegm[] = -{ - 0x4000, 0x2002, 0x8000, - 0x4000, 0x2002, 0x8000 -}; -static const SvxMSDffHandle mso_sptTextCanUpHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 14400, 21600 } -}; -static const sal_Int32 mso_sptTextCanUpDefault[] = -{ - 1, 18500 -}; -static const mso_CustomShape msoTextCanUp = -{ - (SvxMSDffVertPair*)mso_sptTextCanUpVert, sizeof( mso_sptTextCanUpVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextCanUpSegm, sizeof( mso_sptTextCanUpSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextCanUpCalc, sizeof( mso_sptTextCanUpCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptTextCanUpDefault, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextCanUpHandle, sizeof( mso_sptTextCanUpHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextCanDownVert[] = -{ - { 0, 0 }, { 900, 2 MSO_I }, { 7100, 0 MSO_I }, { 10800, 0 MSO_I }, { 14500, 0 MSO_I }, { 20700, 2 MSO_I }, { 21600, 0 }, - { 0, 1 MSO_I }, { 900, 21600 }, { 7100, 21600 }, { 10800, 21600 }, { 14500, 21600 }, { 20700, 21600 }, { 21600, 1 MSO_I } -}; -static const SvxMSDffCalculationData mso_sptTextCanDownCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400 - { 0x8000, { 21600, 0, DFF_Prop_adjustValue } }, // 401 - { 0x4001, { 5470, 0x400, 7200 } } // 402 -}; -static const SvxMSDffHandle mso_sptTextCanDownHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 7200 } -}; -static const sal_Int32 mso_sptTextCanDownDefault[] = -{ - 1, 3100 -}; -static const mso_CustomShape msoTextCanDown = -{ - (SvxMSDffVertPair*)mso_sptTextCanDownVert, sizeof( mso_sptTextCanDownVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextCanUpSegm, sizeof( mso_sptTextCanUpSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextCanDownCalc, sizeof( mso_sptTextCanDownCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptTextCanDownDefault, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextCanDownHandle, sizeof( mso_sptTextCanDownHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextInflateVert[] = -{ - { 0, 0 MSO_I }, { 4100, 1 MSO_I }, { 7300, 0 }, { 10800, 0 }, { 14300, 0 }, { 17500, 1 MSO_I }, { 21600, 0 MSO_I }, - { 0, 2 MSO_I }, { 4100, 3 MSO_I }, { 7300, 21600 }, { 10800, 21600 }, { 14300, 21600 }, { 17500, 3 MSO_I }, { 21600, 2 MSO_I } -}; -static const SvxMSDffCalculationData mso_sptTextInflateCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400 - { 0x4001, { 1530, 0x400, 4650 } }, // 401 - { 0x8000, { 21600, 0, 0x400 } }, // 402 - { 0x8000, { 21600, 0, 0x401 } } // 403 -}; -static const SvxMSDffHandle mso_sptTextInflateHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 4650 } -}; -static const sal_Int32 mso_sptTextInflateDefault[] = -{ - 1, 2950 -}; -static const mso_CustomShape msoTextInflate = -{ - (SvxMSDffVertPair*)mso_sptTextInflateVert, sizeof( mso_sptTextInflateVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextCanUpSegm, sizeof( mso_sptTextCanUpSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextInflateCalc, sizeof( mso_sptTextInflateCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptTextInflateDefault, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextInflateHandle, sizeof( mso_sptTextInflateHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextDeflateVert[] = -{ - { 0, 0 }, { 3500, 1 MSO_I }, { 7100, 0 MSO_I }, { 10800, 0 MSO_I }, { 14500, 0 MSO_I }, { 18100, 1 MSO_I }, { 21600, 0 }, - { 0, 21600 }, { 3500, 3 MSO_I }, { 7100, 2 MSO_I }, { 10800, 2 MSO_I }, { 14500, 2 MSO_I }, { 18100, 3 MSO_I }, { 21600, 21600 } -}; -static const SvxMSDffCalculationData mso_sptTextDeflateCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400 - { 0x2001, { 0x400, 5320, 7100 } }, // 401 - { 0x8000, { 21600, 0, 0x400 } }, // 402 - { 0x8000, { 21600, 0, 0x401 } } // 403 -}; -static const SvxMSDffHandle mso_sptTextDeflateHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 8100 } -}; -static const mso_CustomShape msoTextDeflate = -{ - (SvxMSDffVertPair*)mso_sptTextDeflateVert, sizeof( mso_sptTextDeflateVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextCanUpSegm, sizeof( mso_sptTextCanUpSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextDeflateCalc, sizeof( mso_sptTextDeflateCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDefault8100, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextDeflateHandle, sizeof( mso_sptTextDeflateHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextInflateBottomVert[] = -{ - { 0, 0 }, { 21600, 0 }, - { 0, 0 MSO_I }, { 3500, 3 MSO_I }, { 7300, 21600 }, { 10800, 21600 }, { 14300, 21600 }, { 18100, 3 MSO_I }, { 21600, 0 MSO_I } -}; -static const SvxMSDffCalculationData mso_sptTextInflateBottomCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400 - { 0x2000, { 0x400, 0, 11150 } }, // 401 0->10450 - { 0x2001, { 0x401, 3900, 10450 } }, // 402 - { 0x2000, { 0x402, 17700, 0 } } // 403 -}; -static const sal_uInt16 mso_sptTextInflateBottomSegm[] = -{ - 0x4000, 0x0001, 0x8000, - 0x4000, 0x2002, 0x8000 -}; -static const SvxMSDffHandle mso_sptTextInflateBottomHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 11150, 21600 } -}; -static const sal_Int32 mso_sptTextInflateBottomDefault[] = -{ - 1, 14700 -}; -static const mso_CustomShape msoTextInflateBottom = -{ - (SvxMSDffVertPair*)mso_sptTextInflateBottomVert, sizeof( mso_sptTextInflateBottomVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextInflateBottomSegm, sizeof( mso_sptTextInflateBottomSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextInflateBottomCalc, sizeof( mso_sptTextInflateBottomCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptTextInflateBottomDefault, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextInflateBottomHandle, sizeof( mso_sptTextInflateBottomHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextDeflateBottomVert[] = -{ - { 0, 0 }, { 21600, 0 }, - { 0, 21600 }, { 2900, 3 MSO_I }, { 7200, 0 MSO_I }, { 10800, 0 MSO_I }, { 14400, 0 MSO_I }, { 18700, 3 MSO_I }, { 21600, 21600 } -}; -static const SvxMSDffCalculationData mso_sptTextDeflateBottomCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400 - { 0x2000, { 0x400, 0, 1350 } }, // 401 0->20250 - { 0x2001, { 0x401, 12070, 20250 } }, // 402 - { 0x2000, { 0x402, 9530, 0 } } // 403 -}; -static const sal_uInt16 mso_sptTextDeflateBottomSegm[] = -{ - 0x4000, 0x0001, 0x8000, - 0x4000, 0x2002, 0x8000 -}; -static const SvxMSDffHandle mso_sptTextDeflateBottomHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 1350, 21600 } -}; -static const sal_Int32 mso_sptTextDeflateBottomDefault[] = -{ - 1, 11500 -}; -static const mso_CustomShape msoTextDeflateBottom = -{ - (SvxMSDffVertPair*)mso_sptTextDeflateBottomVert, sizeof( mso_sptTextDeflateBottomVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextDeflateBottomSegm, sizeof( mso_sptTextDeflateBottomSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextDeflateBottomCalc, sizeof( mso_sptTextDeflateBottomCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptTextDeflateBottomDefault, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextDeflateBottomHandle, sizeof( mso_sptTextDeflateBottomHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextInflateTopVert[] = -{ - { 0, 0 MSO_I }, { 3500, 1 MSO_I }, { 7300, 0 }, { 10800, 0 }, { 14300, 0 }, { 18100, 1 MSO_I }, { 21600, 0 MSO_I }, - { 0, 21600 }, { 21600, 21600 } -}; -static const SvxMSDffCalculationData mso_sptTextInflateTopCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400 - { 0x2001, { 0x400, 3900, 10450 } } // 401 -}; -static const sal_uInt16 mso_sptTextInflateTopSegm[] = -{ - 0x4000, 0x2002, 0x8000, - 0x4000, 0x0001, 0x8000 -}; -static const SvxMSDffHandle mso_sptTextInflateTopHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10450 } -}; -static const sal_Int32 mso_sptTextInflateTopDefault[] = -{ - 1, 6900 -}; -static const mso_CustomShape msoTextInflateTop = -{ - (SvxMSDffVertPair*)mso_sptTextInflateTopVert, sizeof( mso_sptTextInflateTopVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextInflateTopSegm, sizeof( mso_sptTextInflateTopSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextInflateTopCalc, sizeof( mso_sptTextInflateTopCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptTextInflateTopDefault, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextInflateTopHandle, sizeof( mso_sptTextInflateTopHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextDeflateTopVert[] = -{ - { 0, 0 }, { 2900, 1 MSO_I }, { 7200, 0 MSO_I }, { 10800, 0 MSO_I }, { 14400, 0 MSO_I }, { 18700, 1 MSO_I }, { 21600, 0 }, - { 0, 21600 }, { 21600, 21600 } -}; -static const SvxMSDffCalculationData mso_sptTextDeflateTopCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400 - { 0x2001, { 0x400, 12070, 20250 } } // 402 -}; -static const sal_uInt16 mso_sptTextDeflateTopSegm[] = -{ - 0x4000, 0x2002, 0x8000, - 0x4000, 0x0001, 0x8000 -}; -static const SvxMSDffHandle mso_sptTextDeflateTopHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 20250 } -}; -static const sal_Int32 mso_sptTextDeflateTopDefault[] = -{ - 1, 10100 -}; -static const mso_CustomShape msoTextDeflateTop = -{ - (SvxMSDffVertPair*)mso_sptTextDeflateTopVert, sizeof( mso_sptTextDeflateTopVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextDeflateTopSegm, sizeof( mso_sptTextDeflateTopSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextDeflateTopCalc, sizeof( mso_sptTextDeflateTopCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptTextDeflateTopDefault, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextDeflateTopHandle, sizeof( mso_sptTextDeflateTopHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextDeflateInflateVert[] = -{ - { 0, 0 }, { 21600, 0 }, - { 0, 10100 }, { 3300, 3 MSO_I }, { 7100, 5 MSO_I }, { 10800, 5 MSO_I }, { 14500, 5 MSO_I }, { 18300, 3 MSO_I }, { 21600, 10100 }, - { 0, 11500 }, { 3300, 4 MSO_I }, { 7100, 6 MSO_I }, { 10800, 6 MSO_I }, { 14500, 6 MSO_I }, { 18300, 4 MSO_I }, { 21600, 11500 }, - { 0, 21600 }, { 21600, 21600 } -}; -static const SvxMSDffCalculationData mso_sptTextDeflateInflateCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, // 400 - { 0x8000, { 10800, 0, 0x400 } }, // 401 - { 0x2001, { 0x401, 5770, 9500 } }, // 402 - { 0x8000, { 10100, 0, 0x402 } }, // 403 - { 0x8000, { 11500, 0, 0x402 } }, // 404 - { 0x2000, { 0x400, 0, 700 } }, // 405 - { 0x2000, { 0x400, 700, 0 } } // 406 -}; -static const sal_uInt16 mso_sptTextDeflateInflateSegm[] = -{ - 0x4000, 0x0001, 0x8000, - 0x4000, 0x2002, 0x8000, - 0x4000, 0x2002, 0x8000, - 0x4000, 0x0001, 0x8000 -}; -static const SvxMSDffHandle mso_sptTextDeflateInflateHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 1300, 20300 } -}; -static const sal_Int32 mso_sptTextDeflateInflateDefault[] = -{ - 1, 6500 -}; -static const mso_CustomShape msoTextDeflateInflate = -{ - (SvxMSDffVertPair*)mso_sptTextDeflateInflateVert, sizeof( mso_sptTextDeflateInflateVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextDeflateInflateSegm, sizeof( mso_sptTextDeflateInflateSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextDeflateInflateCalc, sizeof( mso_sptTextDeflateInflateCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptTextDeflateInflateDefault, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextDeflateInflateHandle, sizeof( mso_sptTextDeflateInflateHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextDeflateInflateDeflateVert[] = -{ - { 0, 0 }, { 21600, 0 }, - { 0, 6600 }, { 3600, 3 MSO_I }, { 7250, 4 MSO_I }, { 10800, 4 MSO_I }, { 14350, 4 MSO_I }, { 18000, 3 MSO_I }, { 21600, 6600 }, - { 0, 7500 }, { 3600, 5 MSO_I }, { 7250, 6 MSO_I }, { 10800, 6 MSO_I }, { 14350, 6 MSO_I }, { 18000, 5 MSO_I }, { 21600, 7500 }, - { 0, 14100 }, { 3600, 9 MSO_I }, { 7250, 10 MSO_I }, { 10800, 10 MSO_I }, { 14350, 10 MSO_I }, { 18000, 9 MSO_I }, { 21600, 14100 }, - { 0, 15000 }, { 3600, 7 MSO_I }, { 7250, 8 MSO_I }, { 10800, 8 MSO_I }, { 14350, 8 MSO_I }, { 18000, 7 MSO_I }, { 21600, 15000 }, - { 0, 21600 }, { 21600, 21600 } -}; -static const SvxMSDffCalculationData mso_sptTextDeflateInflateDeflateCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 850 } }, // 400 - { 0x2001, { 0x400, 6120, 8700 } }, - { 0x2000, { 0x401, 0, 4280 } }, - { 0x4000, { 6600, 0x402, 0 } }, - { 0x2000, { DFF_Prop_adjustValue, 0, 450 } }, // 404 - { 0x2000, { 0x403, 900, 0 } }, // 405 - { 0x2000, { 0x404, 900, 0 } }, // 406 - { 0x8000, { 21600, 0, 0x403 } }, // 407 - { 0x8000, { 21600, 0, 0x404 } }, // 408 - { 0x8000, { 21600, 0, 0x405 } }, // 409 - { 0x8000, { 21600, 0, 0x406 } } // 410 -}; -static const sal_uInt16 mso_sptTextDeflateInflateDeflateSegm[] = -{ - 0x4000, 0x0001, 0x8000, - 0x4000, 0x2002, 0x8000, - 0x4000, 0x2002, 0x8000, - 0x4000, 0x2002, 0x8000, - 0x4000, 0x2002, 0x8000, - 0x4000, 0x0001, 0x8000 -}; -static const SvxMSDffHandle mso_sptTextDeflateInflateDeflateHandle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 850, 9550 } -}; -static const sal_Int32 mso_sptTextDeflateInflateDeflateDefault[] = -{ - 1, 6050 -}; -static const mso_CustomShape msoTextDeflateInflateDeflate = -{ - (SvxMSDffVertPair*)mso_sptTextDeflateInflateDeflateVert, sizeof( mso_sptTextDeflateInflateDeflateVert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextDeflateInflateDeflateSegm, sizeof( mso_sptTextDeflateInflateDeflateSegm ) >> 1, - (SvxMSDffCalculationData*)mso_sptTextDeflateInflateDeflateCalc, sizeof( mso_sptTextDeflateInflateDeflateCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptTextDeflateInflateDeflateDefault, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptTextDeflateInflateDeflateHandle, sizeof( mso_sptTextDeflateInflateDeflateHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextWave1Vert[] = // adjustment1 : 0 - 4459 -{ // adjustment2 : 8640 - 12960 - { 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 9 MSO_I }, { 16 MSO_I, 10 MSO_I }, { 12 MSO_I, 0 MSO_I }, - { 29 MSO_I, 1 MSO_I }, { 27 MSO_I, 28 MSO_I }, { 25 MSO_I, 26 MSO_I }, { 24 MSO_I, 1 MSO_I } -}; -static const sal_uInt16 mso_sptTextWave1Segm[] = -{ - 0x4000, 0x2001, 0x8000, - 0x4000, 0x2001, 0x8000 -}; -static const mso_CustomShape msoTextWave1 = -{ - (SvxMSDffVertPair*)mso_sptTextWave1Vert, sizeof( mso_sptTextWave1Vert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextWave1Segm, sizeof( mso_sptTextWave1Segm ) >> 1, - (SvxMSDffCalculationData*)mso_sptWaveCalc, sizeof( mso_sptWaveCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptWaveDefault, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptWaveGluePoints, sizeof( mso_sptWaveGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptWaveHandle, sizeof( mso_sptWaveHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextWave2Vert[] = // adjustment1 : 0 - 4459 -{ // adjustment2 : 8640 - 12960 - { 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 10 MSO_I }, { 16 MSO_I, 9 MSO_I }, { 12 MSO_I, 0 MSO_I }, - { 29 MSO_I, 1 MSO_I }, { 27 MSO_I, 26 MSO_I }, { 25 MSO_I, 28 MSO_I }, { 24 MSO_I, 1 MSO_I } -}; -static const mso_CustomShape msoTextWave2 = -{ - (SvxMSDffVertPair*)mso_sptTextWave2Vert, sizeof( mso_sptTextWave2Vert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextWave1Segm, sizeof( mso_sptTextWave1Segm ) >> 1, - (SvxMSDffCalculationData*)mso_sptWaveCalc, sizeof( mso_sptWaveCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptWaveDefault, - (SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptWaveGluePoints, sizeof( mso_sptWaveGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptWaveHandle, sizeof( mso_sptWaveHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextWave3Vert[] = // adjustment1 : 0 - 2230 -{ // adjustment2 : 8640 - 12960 - { 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 9 MSO_I }, { 0x1e MSO_I, 10 MSO_I }, { 0x12 MSO_I, 0 MSO_I }, { 0x1f MSO_I, 9 MSO_I }, { 16 MSO_I, 10 MSO_I }, { 12 MSO_I, 0 MSO_I }, - { 29 MSO_I, 1 MSO_I }, { 27 MSO_I, 28 MSO_I }, { 0x20 MSO_I, 26 MSO_I }, { 0x13 MSO_I, 1 MSO_I }, { 0x21 MSO_I, 28 MSO_I }, { 25 MSO_I, 26 MSO_I }, { 24 MSO_I, 1 MSO_I } -}; -static const sal_uInt16 mso_sptTextWave3Segm[] = -{ - 0x4000, 0x2002, 0x8000, - 0x4000, 0x2002, 0x8000 -}; -static const mso_CustomShape msoTextWave3 = -{ - (SvxMSDffVertPair*)mso_sptTextWave3Vert, sizeof( mso_sptTextWave3Vert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextWave3Segm, sizeof( mso_sptTextWave3Segm ) >> 1, - (SvxMSDffCalculationData*)mso_sptDoubleWaveCalc, sizeof( mso_sptDoubleWaveCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDoubleWaveDefault, - (SvxMSDffTextRectangles*)mso_sptDoubleWaveTextRect, sizeof( mso_sptDoubleWaveTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptDoubleWaveGluePoints, sizeof( mso_sptDoubleWaveGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptDoubleWaveHandle, sizeof( mso_sptDoubleWaveHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptTextWave4Vert[] = // adjustment1 : 0 - 2230 -{ // adjustment2 : 8640 - 12960 - { 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 10 MSO_I }, { 0x1e MSO_I, 9 MSO_I }, { 0x12 MSO_I, 0 MSO_I }, { 0x1f MSO_I, 10 MSO_I }, { 16 MSO_I, 9 MSO_I }, { 12 MSO_I, 0 MSO_I }, - { 29 MSO_I, 1 MSO_I }, { 27 MSO_I, 26 MSO_I }, { 0x20 MSO_I, 28 MSO_I }, { 0x13 MSO_I, 1 MSO_I }, { 0x21 MSO_I, 26 MSO_I }, { 25 MSO_I, 28 MSO_I }, { 24 MSO_I, 1 MSO_I } -}; -static const mso_CustomShape msoTextWave4 = -{ - (SvxMSDffVertPair*)mso_sptTextWave4Vert, sizeof( mso_sptTextWave4Vert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptTextWave3Segm, sizeof( mso_sptTextWave3Segm ) >> 1, - (SvxMSDffCalculationData*)mso_sptDoubleWaveCalc, sizeof( mso_sptDoubleWaveCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptDoubleWaveDefault, - (SvxMSDffTextRectangles*)mso_sptDoubleWaveTextRect, sizeof( mso_sptDoubleWaveTextRect ) / sizeof( SvxMSDffTextRectangles ), - 21600, 21600, - 0x80000000, 0x80000000, - (SvxMSDffVertPair*)mso_sptDoubleWaveGluePoints, sizeof( mso_sptDoubleWaveGluePoints ) / sizeof( SvxMSDffVertPair ), - (SvxMSDffHandle*)mso_sptDoubleWaveHandle, sizeof( mso_sptDoubleWaveHandle ) / sizeof( SvxMSDffHandle ) -}; - -static const sal_Int32 mso_sptCalloutDefault1[] = -{ - 4, -1800, 24500, -1800, 4000 -}; -static const sal_Int32 mso_sptCalloutDefault2[] = -{ - 4, -8300, 24500, -1800, 4000 -}; -static const sal_Int32 mso_sptCalloutDefault3[] = -{ - 6, -10000, 24500, -3600, 4000, -1800, 4000 -}; -static const sal_Int32 mso_sptCalloutDefault4[] = -{ - 8, 23400, 24500, 25200, 21600, 25200, 4000, 23400, 4000 -}; -static const SvxMSDffVertPair mso_sptCalloutVert1[] = -{ - { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I } -}; -static const SvxMSDffHandle mso_sptCalloutHandle1[] = -{ - { 0, - 0x100, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff }, - { 0, - 0x102, 0x103, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff } -}; -static const sal_uInt16 mso_sptCalloutSegm1a[] = -{ - 0x4000, 0x0003, 0x6000, 0x8000, - 0x4000, 0x0001, 0x8000 -}; -static const sal_uInt16 mso_sptCalloutSegm1b[] = -{ - 0x4000, 0xab00, 0x0003, 0x6000, 0x8000, // NO STROKE - 0x4000, 0x0001, 0x8000 -}; -static const SvxMSDffVertPair mso_sptCallout1Vert[] = -{ - { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 0 }, { 2 MSO_I, 21600 } -}; -static const sal_uInt16 mso_sptCallout1Segm1a[] = -{ - 0x4000, 0x0003, 0x6000, 0x8000, - 0x4000, 0x0001, 0x8000, - 0x4000, 0x0001, 0x8000 -}; -static const sal_uInt16 mso_sptCallout1Segm1b[] = -{ - 0x4000, 0xab00, 0x0003, 0x6000, 0x8000, // NO STROKE - 0x4000, 0x0001, 0x8000, - 0x4000, 0x0001, 0x8000 -}; -static const SvxMSDffVertPair mso_sptCallout2Verta[] = -{ - { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 5 MSO_I } -}; -static const SvxMSDffVertPair mso_sptCallout2Vertb[] = -{ - { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 5 MSO_I }, { 4 MSO_I, 0 }, { 4 MSO_I, 21600 } -}; -static const SvxMSDffHandle mso_sptCalloutHandle2[] = -{ - { 0, - 0x100, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff }, - { 0, - 0x102, 0x103, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff }, - { 0, - 0x104, 0x105, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff } -}; -static const sal_uInt16 mso_sptCallout2Segm1a[] = -{ - 0x4000, 0x0003, 0x6000, 0x8000, - 0x4000, 0x0001, 0x8000, - 0x4000, 0x0001, 0x8000, - 0x4000, 0x0001, 0x8000 -}; -static const sal_uInt16 mso_sptCallout2Segm1b[] = -{ - 0x4000, 0xab00, 0x0003, 0x6000, 0x8000, // NO STROKE - 0x4000, 0x0001, 0x8000, - 0x4000, 0x0001, 0x8000, - 0x4000, 0x0001, 0x8000 -}; -static const sal_uInt16 mso_sptCallout2Segm1c[] = -{ - 0x4000, 0x0003, 0x6000, 0x8000, - 0x4000, 0x0001, 0x8000, - 0x4000, 0x0001, 0x8000, - 0x4000, 0x0001, 0x8000, - 0x4000, 0x0001, 0x8000 -}; -static const sal_uInt16 mso_sptCallout2Segm1d[] = -{ - 0x4000, 0xab00, 0x0003, 0x6000, 0x8000, // NO STROKE - 0x4000, 0x0001, 0x8000, - 0x4000, 0x0001, 0x8000, - 0x4000, 0x0001, 0x8000, - 0x4000, 0x0001, 0x8000 -}; -static const SvxMSDffVertPair mso_sptCallout3Verta[] = -{ - { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 6 MSO_I, 7 MSO_I }, { 4 MSO_I, 5 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 1 MSO_I } -}; -static const SvxMSDffVertPair mso_sptCallout3Vertb[] = -{ - { 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 6 MSO_I, 7 MSO_I }, { 4 MSO_I, 5 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 1 MSO_I }, { 6 MSO_I, 0 }, { 6 MSO_I, 21600 } -}; -static const SvxMSDffHandle mso_sptCalloutHandle3[] = -{ - { 0, - 0x100, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff }, - { 0, - 0x102, 0x103, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff }, - { 0, - 0x104, 0x105, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff }, - { 0, - 0x106, 0x107, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff } -}; -static const sal_uInt16 mso_sptCallout3Segm1a[] = -{ - 0x4000, 0x0003, 0x6000, 0x8000, - 0x4000, 0xaa00, 0x0003, 0x8000 // NO_FILL -}; -static const sal_uInt16 mso_sptCallout3Segm1b[] = -{ - 0x4000, 0xab00, 0x0003, 0x6000, 0x8000, // NO STROKE - 0x4000, 0xaa00, 0x0003, 0x8000 // NO FILL -}; -static const sal_uInt16 mso_sptCallout3Segm1c[] = -{ - 0x4000, 0x0003, 0x6000, 0x8000, - 0x4000, 0xaa00, 0x0003, 0x8000, // NO FILL - 0x4000, 0x0001, 0x8000 -}; -static const sal_uInt16 mso_sptCallout3Segm1d[] = -{ - 0x4000, 0xab00, 0x0003, 0x6000, 0x8000, // NO STROKE - 0x4000, 0xaa00, 0x0003, 0x8000, // NO FILL - 0x4000, 0x0001, 0x8000 -}; - -static const SvxMSDffCalculationData mso_sptCalloutCalc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust4Value, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust5Value, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust6Value, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust7Value, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust8Value, 0, 0 } } -}; - -static const mso_CustomShape msoCallout90 = -{ - (SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptCalloutSegm1b, sizeof( mso_sptCalloutSegm1b ) >> 1, - (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptCalloutDefault1, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle ) -}; -static const mso_CustomShape msoCallout1 = -{ - (SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptCalloutSegm1b, sizeof( mso_sptCalloutSegm1b ) >> 1, - (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptCalloutDefault2, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle ) -}; -static const mso_CustomShape msoCallout2 = -{ - (SvxMSDffVertPair*)mso_sptCallout2Verta, sizeof( mso_sptCallout2Verta ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptCallout2Segm1b, sizeof( mso_sptCallout2Segm1b ) >> 1, - (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptCalloutDefault3, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptCalloutHandle2, sizeof( mso_sptCalloutHandle2 ) / sizeof( SvxMSDffHandle ) -}; -static const mso_CustomShape msoCallout3 = -{ - (SvxMSDffVertPair*)mso_sptCallout3Verta, sizeof( mso_sptCallout3Verta ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptCallout3Segm1b, sizeof( mso_sptCallout3Segm1b ) >> 1, - (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptCalloutDefault4, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptCalloutHandle3, sizeof( mso_sptCalloutHandle3 ) / sizeof( SvxMSDffHandle ) -}; -static const mso_CustomShape msoAccentCallout90 = -{ - (SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptCalloutSegm1b, sizeof( mso_sptCalloutSegm1b ) >> 1, - (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptCalloutDefault1, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle ) -}; -static const mso_CustomShape msoAccentCallout1 = -{ - (SvxMSDffVertPair*)mso_sptCallout1Vert, sizeof( mso_sptCallout1Vert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptCallout1Segm1b, sizeof( mso_sptCallout1Segm1b ) >> 1, - (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptCalloutDefault2, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle ) -}; -static const mso_CustomShape msoAccentCallout2 = -{ - (SvxMSDffVertPair*)mso_sptCallout2Vertb, sizeof( mso_sptCallout2Vertb ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptCallout2Segm1d, sizeof( mso_sptCallout2Segm1d ) >> 1, - (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptCalloutDefault3, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptCalloutHandle2, sizeof( mso_sptCalloutHandle2 ) / sizeof( SvxMSDffHandle ) -}; -static const mso_CustomShape msoAccentCallout3 = -{ - (SvxMSDffVertPair*)mso_sptCallout3Vertb, sizeof( mso_sptCallout3Vertb ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptCallout3Segm1d, sizeof( mso_sptCallout3Segm1d ) >> 1, - (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptCalloutDefault4, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptCalloutHandle3, sizeof( mso_sptCalloutHandle3 ) / sizeof( SvxMSDffHandle ) -}; -static const mso_CustomShape msoBorderCallout90 = -{ - (SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptCalloutSegm1a, sizeof( mso_sptCalloutSegm1a ) >> 1, - (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptCalloutDefault1, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle ) -}; -static const mso_CustomShape msoBorderCallout1 = -{ - (SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptCalloutSegm1a, sizeof( mso_sptCalloutSegm1a ) >> 1, - (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptCalloutDefault2, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle ) -}; -static const mso_CustomShape msoBorderCallout2 = -{ - (SvxMSDffVertPair*)mso_sptCallout2Verta, sizeof( mso_sptCallout2Verta ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptCallout2Segm1a, sizeof( mso_sptCallout2Segm1a ) >> 1, - (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptCalloutDefault3, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptCalloutHandle2, sizeof( mso_sptCalloutHandle2 ) / sizeof( SvxMSDffHandle ) -}; -static const mso_CustomShape msoBorderCallout3 = -{ - (SvxMSDffVertPair*)mso_sptCallout3Verta, sizeof( mso_sptCallout3Verta ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptCallout3Segm1a, sizeof( mso_sptCallout3Segm1a ) >> 1, - (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptCalloutDefault4, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptCalloutHandle3, sizeof( mso_sptCalloutHandle3 ) / sizeof( SvxMSDffHandle ) -}; -static const mso_CustomShape msoAccentBorderCallout90 = -{ - (SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptCalloutSegm1a, sizeof( mso_sptCalloutSegm1a ) >> 1, - (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptCalloutDefault1, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle ) -}; -static const mso_CustomShape msoAccentBorderCallout1 = -{ - (SvxMSDffVertPair*)mso_sptCallout1Vert, sizeof( mso_sptCallout1Vert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptCallout1Segm1a, sizeof( mso_sptCallout1Segm1a ) >> 1, - (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptCalloutDefault2, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle ) -}; -static const mso_CustomShape msoAccentBorderCallout2 = -{ - (SvxMSDffVertPair*)mso_sptCallout2Vertb, sizeof( mso_sptCallout2Vertb ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptCallout2Segm1c, sizeof( mso_sptCallout2Segm1c ) >> 1, - (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptCalloutDefault3, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptCalloutHandle2, sizeof( mso_sptCalloutHandle2 ) / sizeof( SvxMSDffHandle ) -}; -static const mso_CustomShape msoAccentBorderCallout3 = -{ - (SvxMSDffVertPair*)mso_sptCallout3Vertb, sizeof( mso_sptCallout3Vertb ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptCallout3Segm1c, sizeof( mso_sptCallout3Segm1c ) >> 1, - (SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptCalloutDefault4, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptCalloutHandle3, sizeof( mso_sptCalloutHandle3 ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptStraightConnector1Vert[] = -{ - { 0, 0 }, { 21600, 21600 } -}; -static const sal_uInt16 mso_sptStraightConnector1Segm[] = -{ - 0x4000, 0x0001, 0x8000 -}; -static const mso_CustomShape msoStraightConnector1 = -{ - (SvxMSDffVertPair*)mso_sptStraightConnector1Vert, sizeof( mso_sptStraightConnector1Vert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptStraightConnector1Segm, sizeof( mso_sptStraightConnector1Segm ) >> 1, - (SvxMSDffCalculationData*)NULL, 0, - (sal_Int32*)NULL, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)NULL, 0 -}; - -static const SvxMSDffVertPair mso_sptBentConnector2Vert[] = -{ - { 0, 0 }, { 21600, 0 }, { 21600, 21600 } -}; -static const sal_uInt16 mso_sptBentConnector2Segm[] = -{ - 0x4000, 0x0002, 0x8000 -}; -static const mso_CustomShape msoBentConnector2 = -{ - (SvxMSDffVertPair*)mso_sptBentConnector2Vert, sizeof( mso_sptBentConnector2Vert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptBentConnector2Segm, sizeof( mso_sptBentConnector2Segm ) >> 1, - (SvxMSDffCalculationData*)NULL, 0, - (sal_Int32*)NULL, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)NULL, 0 -}; - -static const SvxMSDffVertPair mso_sptBentConnector3Vert[] = -{ - { 0, 0 }, { 0 MSO_I, 0 }, { 0 MSO_I, 21600 }, { 21600, 21600 } -}; -static const sal_uInt16 mso_sptBentConnector3Segm[] = -{ - 0x4000, 0x0003, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptBentConnector3Calc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } } -}; -static const sal_Int32 mso_sptBentConnector3Default[] = -{ - 1, 10800 -}; -static const SvxMSDffHandle mso_sptBentConnector3Handle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 10800, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoBentConnector3 = -{ - (SvxMSDffVertPair*)mso_sptBentConnector3Vert, sizeof( mso_sptBentConnector3Vert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptBentConnector3Segm, sizeof( mso_sptBentConnector3Segm ) >> 1, - (SvxMSDffCalculationData*)mso_sptBentConnector3Calc, sizeof( mso_sptBentConnector3Calc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptBentConnector3Default, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptBentConnector3Handle, sizeof( mso_sptBentConnector3Handle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptBentConnector4Vert[] = -{ - { 0, 0 }, { 0 MSO_I, 0 }, { 0 MSO_I, 1 MSO_I }, { 21600, 1 MSO_I }, { 21600, 21600 } -}; -static const sal_uInt16 mso_sptBentConnector4Segm[] = -{ - 0x4000, 0x0004, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptBentConnector4Calc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, - { 0x2000, { 0x400, 21600, 0 } }, - { 0x2001, { 0x402, 1, 2 } }, - { 0x2001, { 0x401, 1, 2 } } -}; -static const sal_Int32 mso_sptBentConnector4Default[] = -{ - 2, 10800, 10800 -}; -static const SvxMSDffHandle mso_sptBentConnector4Handle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL, - 0x100, 4 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 4 + 3, 4 + 3 }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL, - 3 + 3, 0x101, 10800, 10800, 3 + 3, 3 + 3, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoBentConnector4 = -{ - (SvxMSDffVertPair*)mso_sptBentConnector4Vert, sizeof( mso_sptBentConnector4Vert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptBentConnector4Segm, sizeof( mso_sptBentConnector4Segm ) >> 1, - (SvxMSDffCalculationData*)mso_sptBentConnector4Calc, sizeof( mso_sptBentConnector4Calc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptBentConnector4Default, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptBentConnector4Handle, sizeof( mso_sptBentConnector4Handle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptBentConnector5Vert[] = -{ - { 0, 0 }, { 0 MSO_I, 0 }, { 0 MSO_I, 4 MSO_I }, { 1 MSO_I, 4 MSO_I }, { 1 MSO_I, 21600 }, { 21600, 21600 } -}; -static const sal_uInt16 mso_sptBentConnector5Segm[] = -{ - 0x4000, 0x0005, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptBentConnector5Calc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } }, - { 0x6000, { 0x400, 0x401, 0 } }, - { 0x2001, { 0x402, 1, 2 } }, - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, - { 0x2001, { 0x404, 1, 2 } }, - { 0x4000, { 21600, 0x404, 0 } }, - { 0x2001, { 0x406, 1, 2 } } -}; -static const sal_Int32 mso_sptBentConnector5Default[] = -{ - 3, 10800, 10800, 10800 -}; -static const SvxMSDffHandle mso_sptBentConnector5Handle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL, - 0x100, 5 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 5 + 3, 5 + 3 }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL, - 3 + 3, 0x101, 10800, 10800, 3 + 3, 3 + 3, 0x80000000, 0x7fffffff }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL, - 0x102, 7 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 7 + 3, 7 + 3 } -}; -static const mso_CustomShape msoBentConnector5 = -{ - (SvxMSDffVertPair*)mso_sptBentConnector5Vert, sizeof( mso_sptBentConnector5Vert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptBentConnector5Segm, sizeof( mso_sptBentConnector5Segm ) >> 1, - (SvxMSDffCalculationData*)mso_sptBentConnector5Calc, sizeof( mso_sptBentConnector5Calc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptBentConnector5Default, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptBentConnector5Handle, sizeof( mso_sptBentConnector5Handle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptCurvedConnector2Vert[] = -{ - { 0, 0 }, { 10800, 0 }, { 21600, 10800 }, { 21600, 21600 } -}; -static const sal_uInt16 mso_sptCurvedConnector2Segm[] = -{ - 0x4000, 0x2001, 0x8000 -}; -static const mso_CustomShape msoCurvedConnector2 = -{ - (SvxMSDffVertPair*)mso_sptCurvedConnector2Vert, sizeof( mso_sptCurvedConnector2Vert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptCurvedConnector2Segm, sizeof( mso_sptCurvedConnector2Segm ) >> 1, - (SvxMSDffCalculationData*)NULL, 0, - (sal_Int32*)NULL, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)NULL, 0 -}; - -static const SvxMSDffVertPair mso_sptCurvedConnector3Vert[] = -{ - { 0, 0 }, { 1 MSO_I, 0 }, { 0 MSO_I, 5400 }, { 0 MSO_I, 10800 }, { 0 MSO_I, 16200 }, { 3 MSO_I, 21600 }, { 21600, 21600 } -}; -static const sal_uInt16 mso_sptCurvedConnector3Segm[] = -{ - 0x4000, 0x2002, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptCurvedConnector3Calc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x2001, { 0x400, 1, 2 } }, - { 0x2000, { 0x400, 21600, 0 } }, - { 0x2001, { 0x402, 1, 2 } } -}; -static const sal_Int32 mso_sptCurvedConnector3Default[] = -{ - 1, 10800 -}; -static const SvxMSDffHandle mso_sptCurvedConnector3Handle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE, - 0x100, 10800, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoCurvedConnector3 = -{ - (SvxMSDffVertPair*)mso_sptCurvedConnector3Vert, sizeof( mso_sptCurvedConnector3Vert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptCurvedConnector3Segm, sizeof( mso_sptCurvedConnector3Segm ) >> 1, - (SvxMSDffCalculationData*)mso_sptCurvedConnector3Calc, sizeof( mso_sptCurvedConnector3Calc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptCurvedConnector3Default, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptCurvedConnector3Handle, sizeof( mso_sptCurvedConnector3Handle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptCurvedConnector4Vert[] = -{ - { 0, 0 }, { 1 MSO_I, 0 }, { 0 MSO_I, 10 MSO_I }, { 0 MSO_I, 9 MSO_I }, - { 0 MSO_I, 12 MSO_I }, { 5 MSO_I, 8 MSO_I }, { 3 MSO_I, 8 MSO_I }, - { 7 MSO_I, 8 MSO_I }, { 21600, 14 MSO_I }, { 21600, 21600 } - -}; -static const sal_uInt16 mso_sptCurvedConnector4Segm[] = -{ - 0x4000, 0x2003, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptCurvedConnector4Calc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x2001, { 0x400, 1, 2 } }, - { 0x4000, { 21600, 0x400, 0 } }, - { 0x2001, { 0x402, 1, 2 } }, - { 0x6000, { 0x400, 0x403, 0 } }, - { 0x2001, { 0x404, 1, 2 } }, - { 0x2000, { 0x403, 21600, 0 } }, - { 0x2001, { 0x406, 1, 2 } }, - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, - { 0x2001, { DFF_Prop_adjust2Value, 1, 2 } }, - { 0x2001, { DFF_Prop_adjust2Value, 1, 4 } }, - { 0x6000, { 0x408, 0x409, 0 } }, - { 0x2001, { 0x40b, 1, 2 } }, - { 0x2000, { 0x408, 21600, 0 } }, - { 0x2001, { 0x40d, 1, 2 } } -}; -static const sal_Int32 mso_sptCurvedConnector4Default[] = -{ - 2, 10800, 10800 -}; -static const SvxMSDffHandle mso_sptCurvedConnector4Handle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL, - 0x100, 9 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 9 + 3, 9 + 3 }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL, - 3 + 3, 0x101, 10800, 10800, 3 + 3, 3 + 3, 0x80000000, 0x7fffffff } -}; -static const mso_CustomShape msoCurvedConnector4 = -{ - (SvxMSDffVertPair*)mso_sptCurvedConnector4Vert, sizeof( mso_sptCurvedConnector4Vert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptCurvedConnector4Segm, sizeof( mso_sptCurvedConnector4Segm ) >> 1, - (SvxMSDffCalculationData*)mso_sptCurvedConnector4Calc, sizeof( mso_sptCurvedConnector4Calc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptCurvedConnector4Default, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptCurvedConnector4Handle, sizeof( mso_sptCurvedConnector4Handle ) / sizeof( SvxMSDffHandle ) -}; - -static const SvxMSDffVertPair mso_sptCurvedConnector5Vert[] = -{ - { 0, 0 }, - { 21 MSO_I, 0 }, { 0 MSO_I, 12 MSO_I }, { 0 MSO_I, 11 MSO_I }, - { 0 MSO_I, 14 MSO_I }, { 6 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I }, - { 8 MSO_I, 4 MSO_I }, { 1 MSO_I, 18 MSO_I }, { 1 MSO_I, 16 MSO_I }, - { 1 MSO_I, 20 MSO_I }, { 10 MSO_I, 21600 }, { 21600, 21600 } -}; -static const sal_uInt16 mso_sptCurvedConnector5Segm[] = -{ - 0x4000, 0x2004, 0x8000 -}; -static const SvxMSDffCalculationData mso_sptCurvedConnector5Calc[] = -{ - { 0x2000, { DFF_Prop_adjustValue, 0, 0 } }, - { 0x2000, { DFF_Prop_adjust3Value, 0, 0 } }, - { 0x6000, { 0x400, 0x401, 0 } }, - { 0x2001, { 0x402, 1, 2 } }, - { 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }, - { 0x6000, { 0x400, 0x403, 0 } }, - { 0x2001, { 0x405, 1, 2 } }, - { 0x6000, { 0x401, 0x403, 0 } }, - { 0x2001, { 0x407, 1, 2 } }, - { 0x2000, { 0x401, 21600, 0 } }, - { 0x2001, { 0x409, 1, 2 } }, - { 0x2001, { 0x404, 1, 2 } }, - { 0x2001, { 0x40b, 1, 2 } }, - { 0x6000, { 0x404, 0x40b, 0 } }, - { 0x2001, { 0x40d, 1, 2 } }, - { 0x2000, { 0x404, 21600, 0 } }, - { 0x2001, { 0x40f, 1, 2 } }, - { 0x6000, { 0x404, 0x410, 0 } }, - { 0x2001, { 0x411, 1, 2 } }, - { 0x2000, { 0x410, 21600, 0 } }, - { 0x2001, { 0x413, 1, 2 } }, - { 0x2001, { 0x400, 1, 2 } } -}; -static const sal_Int32 mso_sptCurvedConnector5Default[] = -{ - 3, 10800, 10800, 10800 -}; -static const SvxMSDffHandle mso_sptCurvedConnector5Handle[] = -{ - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL, - 0x100, 11 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 11 + 3, 11 + 3 }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL, - 3 + 3, 0x101, 10800, 10800, 3 + 3, 3 + 3, 0x80000000, 0x7fffffff }, - { MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL, - 0x102, 16 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 16 + 3, 16 + 3 } -}; -static const mso_CustomShape msoCurvedConnector5 = -{ - (SvxMSDffVertPair*)mso_sptCurvedConnector5Vert, sizeof( mso_sptCurvedConnector5Vert ) / sizeof( SvxMSDffVertPair ), - (sal_uInt16*)mso_sptCurvedConnector5Segm, sizeof( mso_sptCurvedConnector5Segm ) >> 1, - (SvxMSDffCalculationData*)mso_sptCurvedConnector5Calc, sizeof( mso_sptCurvedConnector5Calc ) / sizeof( SvxMSDffCalculationData ), - (sal_Int32*)mso_sptCurvedConnector5Default, - NULL, 0, - 21600, 21600, - 0x80000000, 0x80000000, - NULL, 0, - (SvxMSDffHandle*)mso_sptCurvedConnector5Handle, sizeof( mso_sptCurvedConnector5Handle ) / sizeof( SvxMSDffHandle ) -}; - -const mso_CustomShape* GetCustomShapeContent( MSO_SPT eSpType ) -{ - const mso_CustomShape* pCustomShape = NULL; - switch( eSpType ) - { - case mso_sptArc : pCustomShape = &msoArc; break; - case mso_sptRectangle : pCustomShape = &msoRectangle; break; - case mso_sptParallelogram : pCustomShape = &msoParallelogram; break; - case mso_sptTrapezoid : pCustomShape = &msoTrapezoid; break; - case mso_sptDiamond : pCustomShape = &msoDiamond; break; - case mso_sptRoundRectangle : pCustomShape = &msoRoundRectangle; break; - case mso_sptOctagon : pCustomShape = &msoOctagon; break; - case mso_sptIsocelesTriangle : pCustomShape = &msoIsocelesTriangle; break; - case mso_sptRightTriangle : pCustomShape = &msoRightTriangle; break; - case mso_sptEllipse : pCustomShape = &msoEllipse; break; - case mso_sptHexagon : pCustomShape = &msoHexagon; break; - case mso_sptPlus : pCustomShape = &msoPlus; break; - case mso_sptPentagon : pCustomShape = &msoPentagon; break; - case mso_sptCan : pCustomShape = &msoCan; break; - case mso_sptCube : pCustomShape = &msoCube; break; - case mso_sptBalloon : pCustomShape = &msoBalloon; break; - case mso_sptActionButtonBlank : pCustomShape = &msoActionButtonBlank; break; - case mso_sptActionButtonHome : pCustomShape = &msoActionButtonHome; break; - case mso_sptActionButtonHelp : pCustomShape = &msoActionButtonHelp; break; - case mso_sptActionButtonInformation : pCustomShape = &msoActionButtonInformation; break; - case mso_sptActionButtonBackPrevious : pCustomShape = &msoActionButtonBackPrevious; break; - case mso_sptActionButtonForwardNext : pCustomShape = &msoActionButtonForwardNext; break; - case mso_sptActionButtonBeginning : pCustomShape = &msoActionButtonBeginning; break; - case mso_sptActionButtonEnd : pCustomShape = &msoActionButtonEnd; break; - case mso_sptActionButtonReturn : pCustomShape = &msoActionButtonReturn; break; - case mso_sptActionButtonDocument : pCustomShape = &msoActionButtonDocument; break; - case mso_sptActionButtonSound : pCustomShape = &msoActionButtonSound; break; - case mso_sptActionButtonMovie : pCustomShape = &msoActionButtonMovie; break; - case mso_sptBevel : pCustomShape = &msoBevel; break; - case mso_sptFoldedCorner : pCustomShape = &msoFoldedCorner; break; - case mso_sptSmileyFace : pCustomShape = &msoSmileyFace; break; - case mso_sptDonut : pCustomShape = &msoDonut; break; - case mso_sptNoSmoking : pCustomShape = &msoNoSmoking; break; - case mso_sptBlockArc : pCustomShape = &msoBlockArc; break; - case mso_sptHeart : pCustomShape = &msoHeart; break; - case mso_sptLightningBolt : pCustomShape = &msoLightningBold; break; - case mso_sptSun : pCustomShape = &msoSun; break; - case mso_sptMoon : pCustomShape = &msoMoon; break; - case mso_sptBracketPair : pCustomShape = &msoBracketPair; break; - case mso_sptBracePair : pCustomShape = &msoBracePair; break; - case mso_sptPlaque : pCustomShape = &msoPlaque; break; - case mso_sptLeftBracket : pCustomShape = &msoLeftBracket; break; - case mso_sptRightBracket : pCustomShape = &msoRightBracket; break; - case mso_sptLeftBrace : pCustomShape = &msoLeftBrace; break; - case mso_sptRightBrace : pCustomShape = &msoRightBrace; break; - case mso_sptArrow : pCustomShape = &msoArrow; break; - case mso_sptUpArrow : pCustomShape = &msoUpArrow; break; - case mso_sptDownArrow : pCustomShape = &msoDownArrow; break; - case mso_sptLeftArrow : pCustomShape = &msoLeftArrow; break; - case mso_sptLeftRightArrow : pCustomShape = &msoLeftRightArrow; break; - case mso_sptUpDownArrow : pCustomShape = &msoUpDownArrow; break; - case mso_sptQuadArrow : pCustomShape = &msoQuadArrow; break; - case mso_sptLeftRightUpArrow : pCustomShape = &msoLeftRightUpArrow; break; - case mso_sptBentArrow : pCustomShape = &msoBentArrow; break; - case mso_sptUturnArrow : pCustomShape = &msoUturnArrow; break; - case mso_sptLeftUpArrow : pCustomShape = &msoLeftUpArrow; break; - case mso_sptBentUpArrow : pCustomShape = &msoBentUpArrow; break; - case mso_sptCurvedRightArrow : pCustomShape = &msoCurvedRightArrow; break; - case mso_sptCurvedLeftArrow : pCustomShape = &msoCurvedLeftArrow; break; - case mso_sptCurvedUpArrow : pCustomShape = &msoCurvedUpArrow; break; - case mso_sptCurvedDownArrow : pCustomShape = &msoCurvedDownArrow; break; - case mso_sptStripedRightArrow : pCustomShape = &msoStripedRightArrow; break; - case mso_sptNotchedRightArrow : pCustomShape = &msoNotchedRightArrow; break; - case mso_sptHomePlate : pCustomShape = &msoHomePlate; break; - case mso_sptChevron : pCustomShape = &msoChevron; break; - case mso_sptRightArrowCallout : pCustomShape = &msoRightArrowCallout; break; - case mso_sptLeftArrowCallout : pCustomShape = &msoLeftArrowCallout; break; - case mso_sptUpArrowCallout : pCustomShape = &msoUpArrowCallout; break; - case mso_sptDownArrowCallout : pCustomShape = &msoDownArrowCallout; break; - case mso_sptLeftRightArrowCallout : pCustomShape = &msoLeftRightArrowCallout; break; - case mso_sptUpDownArrowCallout : pCustomShape = &msoUpDownArrowCallout; break; - case mso_sptQuadArrowCallout : pCustomShape = &msoQuadArrowCallout; break; - case mso_sptCircularArrow : pCustomShape = &msoCircularArrow; break; - case mso_sptIrregularSeal1 : pCustomShape = &msoIrregularSeal1; break; - case mso_sptIrregularSeal2 : pCustomShape = &msoIrregularSeal2; break; - case mso_sptSeal4 : pCustomShape = &msoSeal4; break; - case mso_sptStar : pCustomShape = &msoStar; break; - case mso_sptSeal8 : pCustomShape = &msoSeal8; break; - case mso_sptSeal : - case mso_sptSeal16 : pCustomShape = &msoSeal16; break; - case mso_sptSeal24 : pCustomShape = &msoSeal24; break; - case mso_sptSeal32 : pCustomShape = &msoSeal32; break; - case mso_sptRibbon2 : pCustomShape = &msoRibbon2; break; - case mso_sptRibbon : pCustomShape = &msoRibbon; break; - case mso_sptEllipseRibbon2 : pCustomShape = &msoRibbon2; break; // SJ: TODO - case mso_sptEllipseRibbon : pCustomShape = &msoRibbon; break; // SJ: TODO - case mso_sptVerticalScroll : pCustomShape = &msoVerticalScroll; break; - case mso_sptHorizontalScroll : pCustomShape = &msoHorizontalScroll; break; - case mso_sptFlowChartProcess : pCustomShape = &msoFlowChartProcess; break; - case mso_sptFlowChartAlternateProcess : pCustomShape = &msoFlowChartAlternateProcess; break; - case mso_sptFlowChartDecision : pCustomShape = &msoFlowChartDecision; break; - case mso_sptFlowChartInputOutput : pCustomShape = &msoFlowChartInputOutput; break; - case mso_sptFlowChartPredefinedProcess :pCustomShape = &msoFlowChartPredefinedProcess; break; - case mso_sptFlowChartInternalStorage : pCustomShape = &msoFlowChartInternalStorage; break; - case mso_sptFlowChartDocument : pCustomShape = &msoFlowChartDocument; break; - case mso_sptFlowChartMultidocument : pCustomShape = &msoFlowChartMultidocument; break; - case mso_sptFlowChartTerminator : pCustomShape = &msoFlowChartTerminator; break; - case mso_sptFlowChartPreparation : pCustomShape = &msoFlowChartPreparation; break; - case mso_sptFlowChartManualInput : pCustomShape = &msoFlowChartManualInput; break; - case mso_sptFlowChartManualOperation : pCustomShape = &msoFlowChartManualOperation; break; - case mso_sptFlowChartConnector : pCustomShape = &msoFlowChartConnector; break; - case mso_sptFlowChartOffpageConnector : pCustomShape = &msoFlowChartOffpageConnector; break; - case mso_sptFlowChartPunchedCard : pCustomShape = &msoFlowChartPunchedCard; break; - case mso_sptFlowChartPunchedTape : pCustomShape = &msoFlowChartPunchedTape; break; - case mso_sptFlowChartSummingJunction : pCustomShape = &msoFlowChartSummingJunction; break; - case mso_sptFlowChartOr : pCustomShape = &msoFlowChartOr; break; - case mso_sptFlowChartCollate : pCustomShape = &msoFlowChartCollate; break; - case mso_sptFlowChartSort : pCustomShape = &msoFlowChartSort; break; - case mso_sptFlowChartExtract : pCustomShape = &msoFlowChartExtract; break; - case mso_sptFlowChartMerge : pCustomShape = &msoFlowChartMerge; break; - case mso_sptFlowChartOnlineStorage : pCustomShape = &msoFlowChartOnlineStorage; break; - case mso_sptFlowChartDelay : pCustomShape = &msoFlowChartDelay; break; - case mso_sptFlowChartMagneticTape : pCustomShape = &msoFlowChartMagneticTape; break; - case mso_sptFlowChartMagneticDisk : pCustomShape = &msoFlowChartMagneticDisk; break; - case mso_sptFlowChartMagneticDrum : pCustomShape = &msoFlowChartMagneticDrum; break; - case mso_sptFlowChartDisplay : pCustomShape = &msoFlowChartDisplay; break; - case mso_sptWedgeRectCallout : pCustomShape = &msoWedgeRectCallout; break; - case mso_sptWedgeRRectCallout : pCustomShape = &msoWedgeRRectCallout; break; - case mso_sptWedgeEllipseCallout : pCustomShape = &msoWedgeEllipseCallout; break; - case mso_sptCloudCallout : pCustomShape = &msoCloudCallout; break; - case mso_sptWave : pCustomShape = &msoWave; break; - case mso_sptDoubleWave : pCustomShape = &msoDoubleWave; break; - - // callout - case mso_sptCallout1 : pCustomShape = &msoCallout1; break; - case mso_sptCallout2 : pCustomShape = &msoCallout2; break; - case mso_sptCallout3 : pCustomShape = &msoCallout3; break; - case mso_sptAccentCallout1 : pCustomShape = &msoAccentCallout1; break; - case mso_sptAccentCallout2 : pCustomShape = &msoAccentCallout2; break; - case mso_sptAccentCallout3 : pCustomShape = &msoAccentCallout3; break; - case mso_sptBorderCallout1 : pCustomShape = &msoBorderCallout1; break; - case mso_sptBorderCallout2 : pCustomShape = &msoBorderCallout2; break; - case mso_sptBorderCallout3 : pCustomShape = &msoBorderCallout3; break; - case mso_sptAccentBorderCallout1 : pCustomShape = &msoAccentBorderCallout1; break; - case mso_sptAccentBorderCallout2 : pCustomShape = &msoAccentBorderCallout2; break; - case mso_sptAccentBorderCallout3 : pCustomShape = &msoAccentBorderCallout3; break; - case mso_sptCallout90 : pCustomShape = &msoCallout90; break; - case mso_sptAccentCallout90 : pCustomShape = &msoAccentCallout90; break; - case mso_sptBorderCallout90 : pCustomShape = &msoBorderCallout90; break; - case mso_sptAccentBorderCallout90 : pCustomShape = &msoAccentBorderCallout90; break; - - // connectors - case mso_sptStraightConnector1 : pCustomShape = &msoStraightConnector1; break; - case mso_sptBentConnector2 : pCustomShape = &msoBentConnector2; break; - case mso_sptBentConnector3 : pCustomShape = &msoBentConnector3; break; - case mso_sptBentConnector4 : pCustomShape = &msoBentConnector4; break; - case mso_sptBentConnector5 : pCustomShape = &msoBentConnector5; break; - case mso_sptCurvedConnector2 : pCustomShape = &msoCurvedConnector2; break; - case mso_sptCurvedConnector3 : pCustomShape = &msoCurvedConnector3; break; - case mso_sptCurvedConnector4 : pCustomShape = &msoCurvedConnector4; break; - case mso_sptCurvedConnector5 : pCustomShape = &msoCurvedConnector5; break; - - // Dont know, simply mapping to TextSimple - case mso_sptTextOnRing : - case mso_sptTextOnCurve : - case mso_sptTextRing : - case mso_sptTextWave : - case mso_sptTextCurve : - case mso_sptTextHexagon : - case mso_sptTextOctagon : - case mso_sptTextBox : pCustomShape = &msoTextSimple; break; - - // FontWork - case mso_sptTextSimple : - case mso_sptTextPlainText : pCustomShape = &msoTextPlainText; break; - case mso_sptTextStop : pCustomShape = &msoTextStop; break; - case mso_sptTextTriangle : pCustomShape = &msoTextTriangle; break; - case mso_sptTextTriangleInverted : pCustomShape = &msoTextTriangleInverted; break; - case mso_sptTextChevron : pCustomShape = &msoTextChevron; break; - case mso_sptTextChevronInverted : pCustomShape = &msoTextChevronInverted; break; - case mso_sptTextRingInside : pCustomShape = &msoTextRingOutside; break; // SJ: TODO->the orientation of the ellipse needs to be changed - case mso_sptTextRingOutside : pCustomShape = &msoTextRingOutside; break; - case mso_sptTextFadeRight : pCustomShape = &msoTextFadeRight; break; - case mso_sptTextFadeLeft : pCustomShape = &msoTextFadeLeft; break; - case mso_sptTextFadeUp : pCustomShape = &msoTextFadeUp; break; - case mso_sptTextFadeDown : pCustomShape = &msoTextFadeDown; break; - case mso_sptTextSlantUp : pCustomShape = &msoTextSlantUp; break; - case mso_sptTextSlantDown : pCustomShape = &msoTextSlantDown; break; - case mso_sptTextCascadeUp : pCustomShape = &msoTextCascadeUp; break; - case mso_sptTextCascadeDown : pCustomShape = &msoTextCascadeDown; break; - case mso_sptTextArchUpCurve : pCustomShape = &msoTextArchUpCurve; break; - case mso_sptTextArchDownCurve : pCustomShape = &msoTextArchDownCurve; break; - case mso_sptTextCircleCurve : pCustomShape = &msoTextCircleCurve; break; - case mso_sptTextButtonCurve : pCustomShape = &msoTextButtonCurve; break; - case mso_sptTextArchUpPour : pCustomShape = &msoTextArchUpPour; break; - case mso_sptTextArchDownPour : pCustomShape = &msoTextArchDownPour; break; - case mso_sptTextCirclePour : pCustomShape = &msoTextCirclePour; break; - case mso_sptTextButtonPour : pCustomShape = &msoTextButtonPour; break; - case mso_sptTextCurveUp : pCustomShape = &msoTextCurveUp; break; - case mso_sptTextCurveDown : pCustomShape = &msoTextCurveDown; break; - case mso_sptTextCanUp : pCustomShape = &msoTextCanUp; break; - case mso_sptTextCanDown : pCustomShape = &msoTextCanDown; break; - case mso_sptTextInflate : pCustomShape = &msoTextInflate; break; - case mso_sptTextDeflate : pCustomShape = &msoTextDeflate; break; - case mso_sptTextInflateBottom : pCustomShape = &msoTextInflateBottom; break; - case mso_sptTextDeflateBottom : pCustomShape = &msoTextDeflateBottom; break; - case mso_sptTextInflateTop : pCustomShape = &msoTextInflateTop; break; - case mso_sptTextDeflateTop : pCustomShape = &msoTextDeflateTop; break; - case mso_sptTextDeflateInflate : pCustomShape = &msoTextDeflateInflate; break; - case mso_sptTextDeflateInflateDeflate : pCustomShape = &msoTextDeflateInflateDeflate; break; - case mso_sptTextWave1 : pCustomShape = &msoTextWave1; break; - case mso_sptTextWave2 : pCustomShape = &msoTextWave2; break; - case mso_sptTextWave3 : pCustomShape = &msoTextWave3; break; - case mso_sptTextWave4 : pCustomShape = &msoTextWave4; break; - default : - break; - } - return pCustomShape; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svx/source/customshapes/EnhancedCustomShapeHandle.cxx b/svx/source/customshapes/EnhancedCustomShapeHandle.cxx deleted file mode 100644 index db094d5862..0000000000 --- a/svx/source/customshapes/EnhancedCustomShapeHandle.cxx +++ /dev/null @@ -1,96 +0,0 @@ -/* -*- 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. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_svx.hxx" -#include "EnhancedCustomShapeHandle.hxx" -#include "svx/EnhancedCustomShape2d.hxx" -#include "svx/unoapi.hxx" - -// ----------------------------------------------------------------------------- - -EnhancedCustomShapeHandle::EnhancedCustomShapeHandle( com::sun::star::uno::Reference< com::sun::star::drawing::XShape >& xCustomShape, sal_uInt32 nIndex ) : - mnIndex ( nIndex ), - mxCustomShape ( xCustomShape ) -{ -} - -// ----------------------------------------------------------------------------- - -EnhancedCustomShapeHandle::~EnhancedCustomShapeHandle() -{ -} - -// ----------------------------------------------------------------------------- - -void SAL_CALL EnhancedCustomShapeHandle::acquire() throw() -{ - OWeakObject::acquire(); -} - -// ----------------------------------------------------------------------------- - -void SAL_CALL EnhancedCustomShapeHandle::release() throw() -{ - OWeakObject::release(); -} - -// XCustomShapeHandle -com::sun::star::awt::Point SAL_CALL EnhancedCustomShapeHandle::getPosition() - throw ( com::sun::star::uno::RuntimeException ) -{ - SdrObject* pSdrObjCustomShape( GetSdrObjectFromXShape( mxCustomShape ) ); - if ( !pSdrObjCustomShape ) - throw com::sun::star::uno::RuntimeException(); - - Point aPosition; - EnhancedCustomShape2d aCustomShape2d( pSdrObjCustomShape ); - if ( !aCustomShape2d.GetHandlePosition( mnIndex, aPosition ) ) - throw com::sun::star::uno::RuntimeException(); - return com::sun::star::awt::Point( aPosition.X(), aPosition.Y() ); -} - -void SAL_CALL EnhancedCustomShapeHandle::setControllerPosition( const com::sun::star::awt::Point& aPnt ) - throw ( com::sun::star::uno::RuntimeException ) -{ - SdrObject* pSdrObjCustomShape( GetSdrObjectFromXShape( mxCustomShape ) ); - if ( !pSdrObjCustomShape ) - throw com::sun::star::uno::RuntimeException(); - - EnhancedCustomShape2d aCustomShape2d( pSdrObjCustomShape ); - if ( !aCustomShape2d.SetHandleControllerPosition( mnIndex, aPnt ) ) - throw com::sun::star::uno::RuntimeException(); -} - -// XInitialization -void SAL_CALL EnhancedCustomShapeHandle::initialize( const com::sun::star::uno::Sequence< com::sun::star::uno::Any >& /* aArguments */ ) - throw ( com::sun::star::uno::Exception, com::sun::star::uno::RuntimeException ) -{ -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svx/source/customshapes/EnhancedCustomShapeHandle.hxx b/svx/source/customshapes/EnhancedCustomShapeHandle.hxx deleted file mode 100644 index 68ac2bc784..0000000000 --- a/svx/source/customshapes/EnhancedCustomShapeHandle.hxx +++ /dev/null @@ -1,72 +0,0 @@ -/* -*- 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 _ENHANCED_CUSTOMSHAPE_HANDLE_HXX -#define _ENHANCED_CUSTOMSHAPE_HANDLE_HXX - -#include <com/sun/star/uno/RuntimeException.hpp> -#include <cppuhelper/implbase2.hxx> -#include <com/sun/star/lang/XInitialization.hpp> -#include <com/sun/star/lang/XServiceInfo.hpp> -#include <com/sun/star/drawing/XShape.hpp> -#include <com/sun/star/drawing/XCustomShapeHandle.hpp> -#include <com/sun/star/awt/Point.hpp> -#include <cppuhelper/weakref.hxx> - -class EnhancedCustomShapeHandle : public cppu::WeakImplHelper2 -< - com::sun::star::drawing::XCustomShapeHandle, - com::sun::star::lang::XInitialization -> -{ - sal_uInt32 mnIndex; - com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > mxCustomShape; - -public: - - EnhancedCustomShapeHandle( com::sun::star::uno::Reference< com::sun::star::drawing::XShape >& xCustomShape, sal_uInt32 nIndex ); - virtual ~EnhancedCustomShapeHandle(); - - // XInterface - virtual void SAL_CALL acquire() throw(); - virtual void SAL_CALL release() throw(); - - // XCustomShapeHandle - virtual com::sun::star::awt::Point SAL_CALL getPosition() - throw ( com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL setControllerPosition( const com::sun::star::awt::Point& ) - throw ( com::sun::star::uno::RuntimeException ); - - // XInitialization - virtual void SAL_CALL initialize( const com::sun::star::uno::Sequence< com::sun::star::uno::Any >& aArguments ) - throw ( com::sun::star::uno::Exception, com::sun::star::uno::RuntimeException ); -}; - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svx/source/customshapes/EnhancedCustomShapeTypeNames.cxx b/svx/source/customshapes/EnhancedCustomShapeTypeNames.cxx deleted file mode 100644 index b7afa68e36..0000000000 --- a/svx/source/customshapes/EnhancedCustomShapeTypeNames.cxx +++ /dev/null @@ -1,331 +0,0 @@ -/* -*- 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. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_svx.hxx" -#include "svx/EnhancedCustomShapeTypeNames.hxx" -#include <osl/mutex.hxx> -#include <boost/unordered_map.hpp> - -struct THash -{ - size_t operator()( const char* s ) const - { - return rtl_str_hashCode(s); - } -}; -struct TCheck -{ - bool operator()( const char* s1, const char* s2 ) const - { - return strcmp( s1, s2 ) == 0; - } -}; -typedef boost::unordered_map< const char*, MSO_SPT, THash, TCheck> TypeNameHashMap; -static TypeNameHashMap* pHashMap = NULL; -static ::osl::Mutex& getHashMapMutex() -{ - static osl::Mutex s_aHashMapProtection; - return s_aHashMapProtection; -} - -struct NameTypeTable -{ - const char* pS; - MSO_SPT pE; -}; -static const NameTypeTable pNameTypeTableArray[] = -{ - { "non-primitive", mso_sptMin }, - { "rectangle", mso_sptRectangle }, - { "round-rectangle", mso_sptRoundRectangle }, - { "ellipse", mso_sptEllipse }, - { "diamond", mso_sptDiamond }, - { "isosceles-triangle", mso_sptIsocelesTriangle }, - { "right-triangle", mso_sptRightTriangle }, - { "parallelogram", mso_sptParallelogram }, - { "trapezoid", mso_sptTrapezoid }, - { "hexagon", mso_sptHexagon }, - { "octagon", mso_sptOctagon }, - { "cross", mso_sptPlus }, - { "star5", mso_sptStar }, - { "right-arrow", mso_sptArrow }, - { "mso-spt14", mso_sptThickArrow }, - { "pentagon-right", mso_sptHomePlate }, - { "cube", mso_sptCube }, - { "mso-spt17", mso_sptBalloon }, - { "mso-spt18", mso_sptSeal }, - { "mso-spt19", mso_sptArc }, - { "mso-spt20", mso_sptLine }, - { "mso-spt21", mso_sptPlaque }, - { "can", mso_sptCan }, - { "ring", mso_sptDonut }, - { "mso-spt24", mso_sptTextSimple }, - { "mso-spt25", mso_sptTextOctagon }, - { "mso-spt26", mso_sptTextHexagon }, - { "mso-spt27", mso_sptTextCurve }, - { "mso-spt28", mso_sptTextWave }, - { "mso-spt29", mso_sptTextRing }, - { "mso-spt30", mso_sptTextOnCurve }, - { "mso-spt31", mso_sptTextOnRing }, - { "mso-spt32", mso_sptStraightConnector1 }, - { "mso-spt33", mso_sptBentConnector2 }, - { "mso-spt34", mso_sptBentConnector3 }, - { "mso-spt35", mso_sptBentConnector4 }, - { "mso-spt36", mso_sptBentConnector5 }, - { "mso-spt37", mso_sptCurvedConnector2 }, - { "mso-spt38", mso_sptCurvedConnector3 }, - { "mso-spt39", mso_sptCurvedConnector4 }, - { "mso-spt40", mso_sptCurvedConnector5 }, - { "mso-spt41", mso_sptCallout1 }, - { "mso-spt42", mso_sptCallout2 }, - { "mso-spt43", mso_sptCallout3 }, - { "mso-spt44", mso_sptAccentCallout1 }, - { "mso-spt45", mso_sptAccentCallout2 }, - { "mso-spt46", mso_sptAccentCallout3 }, - { "line-callout-1", mso_sptBorderCallout1 }, - { "line-callout-2", mso_sptBorderCallout2 }, - { "mso-spt49", mso_sptBorderCallout3 }, - { "mso-spt50", mso_sptAccentBorderCallout1 }, - { "mso-spt51", mso_sptAccentBorderCallout2 }, - { "mso-spt52", mso_sptAccentBorderCallout3 }, - { "mso-spt53", mso_sptRibbon }, - { "mso-spt54", mso_sptRibbon2 }, - { "chevron", mso_sptChevron }, - { "pentagon", mso_sptPentagon }, - { "forbidden", mso_sptNoSmoking }, - { "star8", mso_sptSeal8 }, - { "mso-spt59", mso_sptSeal16 }, - { "mso-spt60", mso_sptSeal32 }, - { "rectangular-callout", mso_sptWedgeRectCallout }, - { "round-rectangular-callout", mso_sptWedgeRRectCallout }, - { "round-callout", mso_sptWedgeEllipseCallout }, - { "mso-spt64", mso_sptWave }, - { "paper", mso_sptFoldedCorner }, - { "left-arrow", mso_sptLeftArrow }, - { "down-arrow", mso_sptDownArrow }, - { "up-arrow", mso_sptUpArrow }, - { "left-right-arrow", mso_sptLeftRightArrow }, - { "up-down-arrow", mso_sptUpDownArrow }, - { "mso-spt71", mso_sptIrregularSeal1 }, - { "bang", mso_sptIrregularSeal2 }, - { "lightning", mso_sptLightningBolt }, - { "heart", mso_sptHeart }, - { "mso-spt75", mso_sptPictureFrame }, - { "quad-arrow", mso_sptQuadArrow }, - { "left-arrow-callout", mso_sptLeftArrowCallout }, - { "right-arrow-callout", mso_sptRightArrowCallout }, - { "up-arrow-callout", mso_sptUpArrowCallout }, - { "down-arrow-callout", mso_sptDownArrowCallout }, - { "left-right-arrow-callout", mso_sptLeftRightArrowCallout }, - { "up-down-arrow-callout", mso_sptUpDownArrowCallout }, - { "quad-arrow-callout", mso_sptQuadArrowCallout }, - { "quad-bevel", mso_sptBevel }, - { "left-bracket", mso_sptLeftBracket }, - { "right-bracket", mso_sptRightBracket }, - { "left-brace", mso_sptLeftBrace }, - { "right-brace", mso_sptRightBrace }, - { "mso-spt89", mso_sptLeftUpArrow }, - { "mso-spt90", mso_sptBentUpArrow }, - { "mso-spt91", mso_sptBentArrow }, - { "star24", mso_sptSeal24 }, - { "striped-right-arrow", mso_sptStripedRightArrow }, - { "notched-right-arrow", mso_sptNotchedRightArrow }, - { "block-arc", mso_sptBlockArc }, - { "smiley", mso_sptSmileyFace }, - { "vertical-scroll", mso_sptVerticalScroll }, - { "horizontal-scroll", mso_sptHorizontalScroll }, - { "circular-arrow", mso_sptCircularArrow }, - { "mso-spt100", mso_sptNotchedCircularArrow }, - { "mso-spt101", mso_sptUturnArrow }, - { "mso-spt102", mso_sptCurvedRightArrow }, - { "mso-spt103", mso_sptCurvedLeftArrow }, - { "mso-spt104", mso_sptCurvedUpArrow }, - { "mso-spt105", mso_sptCurvedDownArrow }, - { "cloud-callout", mso_sptCloudCallout }, - { "mso-spt107", mso_sptEllipseRibbon }, - { "mso-spt108", mso_sptEllipseRibbon2 }, - { "flowchart-process", mso_sptFlowChartProcess }, - { "flowchart-decision", mso_sptFlowChartDecision }, - { "flowchart-data", mso_sptFlowChartInputOutput }, - { "flowchart-predefined-process", mso_sptFlowChartPredefinedProcess }, - { "flowchart-internal-storage", mso_sptFlowChartInternalStorage }, - { "flowchart-document", mso_sptFlowChartDocument }, - { "flowchart-multidocument", mso_sptFlowChartMultidocument }, - { "flowchart-terminator", mso_sptFlowChartTerminator }, - { "flowchart-preparation", mso_sptFlowChartPreparation }, - { "flowchart-manual-input", mso_sptFlowChartManualInput }, - { "flowchart-manual-operation", mso_sptFlowChartManualOperation }, - { "flowchart-connector", mso_sptFlowChartConnector }, - { "flowchart-card", mso_sptFlowChartPunchedCard }, - { "flowchart-punched-tape", mso_sptFlowChartPunchedTape }, - { "flowchart-summing-junction", mso_sptFlowChartSummingJunction }, - { "flowchart-or", mso_sptFlowChartOr }, - { "flowchart-collate", mso_sptFlowChartCollate }, - { "flowchart-sort", mso_sptFlowChartSort }, - { "flowchart-extract", mso_sptFlowChartExtract }, - { "flowchart-merge", mso_sptFlowChartMerge }, - { "mso-spt129", mso_sptFlowChartOfflineStorage }, - { "flowchart-stored-data", mso_sptFlowChartOnlineStorage }, - { "flowchart-sequential-access", mso_sptFlowChartMagneticTape }, - { "flowchart-magnetic-disk", mso_sptFlowChartMagneticDisk }, - { "flowchart-direct-access-storage", mso_sptFlowChartMagneticDrum }, - { "flowchart-display", mso_sptFlowChartDisplay }, - { "flowchart-delay", mso_sptFlowChartDelay }, - { "fontwork-plain-text", mso_sptTextPlainText }, - { "fontwork-stop", mso_sptTextStop }, - { "fontwork-triangle-up", mso_sptTextTriangle }, - { "fontwork-triangle-down", mso_sptTextTriangleInverted }, - { "fontwork-chevron-up", mso_sptTextChevron }, - { "fontwork-chevron-down", mso_sptTextChevronInverted }, - { "mso-spt142", mso_sptTextRingInside }, - { "mso-spt143", mso_sptTextRingOutside }, - { "fontwork-arch-up-curve", mso_sptTextArchUpCurve }, - { "fontwork-arch-down-curve", mso_sptTextArchDownCurve }, - { "fontwork-circle-curve", mso_sptTextCircleCurve }, - { "fontwork-open-circle-curve", mso_sptTextButtonCurve }, - { "fontwork-arch-up-pour", mso_sptTextArchUpPour }, - { "fontwork-arch-down-pour", mso_sptTextArchDownPour }, - { "fontwork-circle-pour", mso_sptTextCirclePour }, - { "fontwork-open-circle-pour", mso_sptTextButtonPour }, - { "fontwork-curve-up", mso_sptTextCurveUp }, - { "fontwork-curve-down", mso_sptTextCurveDown }, - { "fontwork-fade-up-and-right", mso_sptTextCascadeUp }, - { "fontwork-fade-up-and-left", mso_sptTextCascadeDown }, - { "fontwork-wave", mso_sptTextWave1 }, - { "mso-spt157", mso_sptTextWave2 }, - { "mso-spt158", mso_sptTextWave3 }, - { "mso-spt159", mso_sptTextWave4 }, - { "fontwork-inflate", mso_sptTextInflate }, - { "mso-spt161", mso_sptTextDeflate }, - { "mso-spt162", mso_sptTextInflateBottom }, - { "mso-spt163", mso_sptTextDeflateBottom }, - { "mso-spt164", mso_sptTextInflateTop }, - { "mso-spt165", mso_sptTextDeflateTop }, - { "mso-spt166", mso_sptTextDeflateInflate }, - { "mso-spt167", mso_sptTextDeflateInflateDeflate }, - { "fontwork-fade-right", mso_sptTextFadeRight }, - { "fontwork-fade-left", mso_sptTextFadeLeft }, - { "fontwork-fade-up", mso_sptTextFadeUp }, - { "fontwork-fade-down", mso_sptTextFadeDown }, - { "fontwork-slant-up", mso_sptTextSlantUp }, - { "fontwork-slant-down", mso_sptTextSlantDown }, - { "mso-spt174", mso_sptTextCanUp }, - { "mso-spt175", mso_sptTextCanDown }, - { "flowchart-alternate-process", mso_sptFlowChartAlternateProcess }, - { "flowchart-off-page-connector", mso_sptFlowChartOffpageConnector }, - { "mso-spt178", mso_sptCallout90 }, - { "mso-spt179", mso_sptAccentCallout90 }, - { "mso-spt180", mso_sptBorderCallout90 }, - { "line-callout-3", mso_sptAccentBorderCallout90 }, - { "mso-spt182", mso_sptLeftRightUpArrow }, - { "sun", mso_sptSun }, - { "moon", mso_sptMoon }, - { "bracket-pair", mso_sptBracketPair }, - { "brace-pair", mso_sptBracePair }, - { "star4", mso_sptSeal4 }, - { "mso-spt188", mso_sptDoubleWave }, - { "mso-spt189", mso_sptActionButtonBlank }, - { "mso-spt190", mso_sptActionButtonHome }, - { "mso-spt191", mso_sptActionButtonHelp }, - { "mso-spt192", mso_sptActionButtonInformation }, - { "mso-spt193", mso_sptActionButtonForwardNext }, - { "mso-spt194", mso_sptActionButtonBackPrevious }, - { "mso-spt195", mso_sptActionButtonEnd }, - { "mso-spt196", mso_sptActionButtonBeginning }, - { "mso-spt197", mso_sptActionButtonReturn }, - { "mso-spt198", mso_sptActionButtonDocument }, - { "mso-spt199", mso_sptActionButtonSound }, - { "mso-spt200", mso_sptActionButtonMovie }, - { "mso-spt201", mso_sptHostControl }, - { "mso-spt202", mso_sptTextBox } -}; - - // gallery: quadrat - // gallery: round-quadrat - // gallery: circle - // gallery: circle-pie - // gallery: frame - // gallery: flower - // gallery: cloud - // gallery: puzzle - // gallery: octagon-bevel - // gallery: diamond-bevel - // gallery: up-right-arrow - // gallery: up-right-down-arrow - // gallery: corner-right-arrow - // gallery: split-arrow - // gallery: up-right-arrow-callout - // gallery: split-round-arrow - // gallery: s-sharped-arrow - // Gallery: star6 - // Gallery: star12 - // Gallery: concave-star6 - // Gallery: signet - // Gallery: doorplate - // gallery: fontwork-arch-left-curve - // gallery: fontwork-arch-right-curve - // gallery: fontwork-arch-left-pour - // gallery: fontwork-arch-right-pour - -MSO_SPT EnhancedCustomShapeTypeNames::Get( const rtl::OUString& rShapeType ) -{ - if ( !pHashMap ) - { // init hash map - ::osl::MutexGuard aGuard( getHashMapMutex() ); - if ( !pHashMap ) - { - TypeNameHashMap* pH = new TypeNameHashMap; - const NameTypeTable* pPtr = pNameTypeTableArray; - const NameTypeTable* pEnd = pPtr + ( sizeof( pNameTypeTableArray ) / sizeof( NameTypeTable ) ); - for ( ; pPtr < pEnd; pPtr++ ) - (*pH)[ pPtr->pS ] = pPtr->pE; - pHashMap = pH; - } - } - MSO_SPT eRetValue = mso_sptNil; - int i, nLen = rShapeType.getLength(); - char* pBuf = new char[ nLen + 1 ]; - for ( i = 0; i < nLen; i++ ) - pBuf[ i ] = (char)rShapeType[ i ]; - pBuf[ i ] = 0; - TypeNameHashMap::iterator aHashIter( pHashMap->find( pBuf ) ); - delete[] pBuf; - if ( aHashIter != pHashMap->end() ) - eRetValue = (*aHashIter).second; - return eRetValue; -} - -rtl::OUString EnhancedCustomShapeTypeNames::Get( const MSO_SPT eShapeType ) -{ - return eShapeType <= mso_sptTextBox - ? rtl::OUString::createFromAscii( pNameTypeTableArray[ eShapeType ].pS ) - : rtl::OUString(); -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svx/source/customshapes/tbxcustomshapes.cxx b/svx/source/customshapes/tbxcustomshapes.cxx deleted file mode 100644 index 511a7987fc..0000000000 --- a/svx/source/customshapes/tbxcustomshapes.cxx +++ /dev/null @@ -1,204 +0,0 @@ -/* -*- 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. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_svx.hxx" - -#include <string> - -#include <svx/svxids.hrc> -#include <tools/shl.hxx> -#include <svl/eitem.hxx> -#include <sfx2/dispatch.hxx> -#include <sfx2/viewsh.hxx> -#include <sfx2/viewfrm.hxx> -#include <vcl/toolbox.hxx> -#include <osl/mutex.hxx> - -#include <sfx2/imagemgr.hxx> -#include <vcl/svapp.hxx> -#include "svx/tbxcustomshapes.hxx" - -SFX_IMPL_TOOLBOX_CONTROL(SvxTbxCtlCustomShapes, SfxBoolItem); - -/************************************************************************* -|* -|* -|* -\************************************************************************/ - -SvxTbxCtlCustomShapes::SvxTbxCtlCustomShapes( sal_uInt16 nSlotId, sal_uInt16 nId, ToolBox& rTbx ) : - SfxToolBoxControl( nSlotId, nId, rTbx ), - m_aSubTbxResName( RTL_CONSTASCII_USTRINGPARAM( "private:resource/toolbar/" ) ) -{ - switch( nSlotId ) - { - default : - { - DBG_ASSERT( false, "SvxTbxCtlCustomShapes: unknown slot executed. ?" ); - } - case SID_DRAWTBX_CS_BASIC : - { - m_aCommand = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:BasicShapes.diamond" ) ); - m_aSubTbName = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "basicshapes" ) ); - } - break; - - case SID_DRAWTBX_CS_SYMBOL : - { - m_aCommand = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:SymbolShapes.smiley" ) ); - m_aSubTbName = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "symbolshapes" ) ); - } - break; - - case SID_DRAWTBX_CS_ARROW : - { - m_aCommand = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:ArrowShapes.left-right-arrow" ) ); - m_aSubTbName = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "arrowshapes" ) ); - } - break; - case SID_DRAWTBX_CS_FLOWCHART : - { - m_aCommand = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FlowChartShapes.flowchart-internal-storage" ) ); - m_aSubTbName = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "flowchartshapes" ) ); - } - break; - case SID_DRAWTBX_CS_CALLOUT : - { - m_aCommand = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:CalloutShapes.round-rectangular-callout" ) ); - m_aSubTbName = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "calloutshapes" ) ); - } - break; - case SID_DRAWTBX_CS_STAR : - { - m_aCommand = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:StarShapes.star5" ) ); - m_aSubTbName = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "starshapes" ) ); - } - break; - } - m_aSubTbxResName += m_aSubTbName; - rTbx.SetItemBits( nId, TIB_DROPDOWN | rTbx.GetItemBits( nId ) ); - rTbx.Invalidate(); -} - -/************************************************************************* -|* -|* Notification when the application status has changed -|* -\************************************************************************/ - -void SvxTbxCtlCustomShapes::StateChanged( sal_uInt16 nSID, SfxItemState eState, - const SfxPoolItem* pState ) -{ - SfxToolBoxControl::StateChanged( nSID, eState, pState ); -} - -/************************************************************************* -|* -|* when one wants to create a popup window -|* -\************************************************************************/ - -SfxPopupWindowType SvxTbxCtlCustomShapes::GetPopupWindowType() const -{ - return( m_aCommand.getLength() == 0 ? SFX_POPUPWINDOW_ONCLICK : SFX_POPUPWINDOW_ONTIMEOUT); -} - -/************************************************************************* -|* -|* Here is the window created -|* The location of the Toolbox is queried through GetToolBox() -|* rItemRect are the screen coordinates -|* -\************************************************************************/ - -SfxPopupWindow* SvxTbxCtlCustomShapes::CreatePopupWindow() -{ - createAndPositionSubToolBar( m_aSubTbxResName ); - return NULL; -} - -// ----------------------------------------------------------------------- - -void SvxTbxCtlCustomShapes::Select( sal_Bool /*bMod1*/ ) -{ - if ( m_aCommand.getLength() > 0 ) - { - com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue > aParamSeq( 0 ); - Dispatch( m_aCommand, aParamSeq ); - } -} - - -::sal_Bool SAL_CALL SvxTbxCtlCustomShapes::opensSubToolbar() throw (::com::sun::star::uno::RuntimeException) -{ - // We control a sub-toolbar therefore we have to return true. - return sal_True; -} - -::rtl::OUString SAL_CALL SvxTbxCtlCustomShapes::getSubToolbarName() throw (::com::sun::star::uno::RuntimeException) -{ - // Provide the controlled sub-toolbar name, so we are notified whenever - // this toolbar executes a function. - return m_aSubTbName; -} - -void SAL_CALL SvxTbxCtlCustomShapes::functionSelected( const ::rtl::OUString& rCommand ) throw (::com::sun::star::uno::RuntimeException) -{ - // remind the new command - m_aCommand = rCommand; - // Our sub-toolbar wants to execute a function. - // We have to change the image of our toolbar button to reflect the new function. - SolarMutexGuard aGuard; - if ( !m_bDisposed ) - { - if ( m_aCommand.getLength() > 0 ) - { - ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > xFrame( getFrameInterface()); - Image aImage = GetImage( xFrame, m_aCommand, hasBigImages() ); - if ( !!aImage ) - GetToolBox().SetItemImage( GetId(), aImage ); - } - } -} - -void SAL_CALL SvxTbxCtlCustomShapes::updateImage( ) throw (::com::sun::star::uno::RuntimeException) -{ - // We should update the button image of our parent (toolbar). - // Use the stored command to set the correct current image. - SolarMutexGuard aGuard; - if ( m_aCommand.getLength() > 0 ) - { - ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > xFrame( getFrameInterface()); - Image aImage = GetImage( xFrame, m_aCommand, hasBigImages() ); - if ( !!aImage ) - GetToolBox().SetItemImage( GetId(), aImage ); - } -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |