1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef _ENHANCEDCUSTOMSHAPEGEOMETRY_HXX
21 #define _ENHANCEDCUSTOMSHAPEGEOMETRY_HXX
23 #include <sal/types.h>
24 #include <svx/msdffdef.hxx>
26 struct SvxMSDffVertPair
31 struct SvxMSDffCalculationData
36 struct SvxMSDffTextRectangles
38 SvxMSDffVertPair nPairA
;
39 SvxMSDffVertPair nPairB
;
42 #define MSDFF_HANDLE_FLAGS_MIRRORED_X 0x0001
43 #define MSDFF_HANDLE_FLAGS_MIRRORED_Y 0x0002
44 #define MSDFF_HANDLE_FLAGS_SWITCHED 0x0004
45 #define MSDFF_HANDLE_FLAGS_POLAR 0x0008
46 #define MSDFF_HANDLE_FLAGS_MAP 0x0010
47 #define MSDFF_HANDLE_FLAGS_RANGE 0x0020
48 #define MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL 0x0080
49 #define MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL 0x0100
50 #define MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL 0x0200
51 #define MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL 0x0400
52 #define MSDFF_HANDLE_FLAGS_CENTER_X_IS_SPECIAL 0x0800
53 #define MSDFF_HANDLE_FLAGS_CENTER_Y_IS_SPECIAL 0x1000
54 #define MSDFF_HANDLE_FLAGS_RADIUS_RANGE 0x2000
59 sal_Int32 nPositionX
, nPositionY
, nCenterX
, nCenterY
, nRangeXMin
, nRangeXMax
, nRangeYMin
, nRangeYMax
;
61 struct mso_CustomShape
63 SvxMSDffVertPair
* pVertices
;
65 sal_uInt16
* pElements
;
67 SvxMSDffCalculationData
* pCalculation
;
68 sal_uInt32 nCalculation
;
70 SvxMSDffTextRectangles
* pTextRect
;
72 sal_Int32 nCoordWidth
;
73 sal_Int32 nCoordHeight
;
76 SvxMSDffVertPair
* pGluePoints
;
77 sal_uInt32 nGluePoints
;
78 SvxMSDffHandle
* pHandles
;
82 #define MSO_I | (sal_Int32)0x80000000
84 sal_Bool
SortFilledObjectsToBackByDefault( MSO_SPT eSpType
);
85 SVX_DLLPUBLIC sal_Bool
IsCustomShapeFilledByDefault( MSO_SPT eSpType
);
86 SVX_DLLPUBLIC sal_Int16
GetCustomShapeConnectionTypeDefault( MSO_SPT eSpType
);
89 SVX_DLLPUBLIC sal_Bool
IsCustomShapeStrokedByDefault( MSO_SPT eSpType
);
91 SVX_DLLPUBLIC
const mso_CustomShape
* GetCustomShapeContent( MSO_SPT eSpType
);
95 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */