namespace com::sun::star::drawing
{ class XShape; struct EnhancedCustomShapeAdjustmentValue;
}
namespace oox::core
{ class XmlFilterBase;
}
namespace oox::drawingml
{ /// Class for exporting the custom shapes to OOXML preset ones, if possible. /// This functionality needed for keeping the information for the office programs /// about the shape type, and geometry data. Before these shapes were exported /// with custom geometry, and they kept their geometry but has no information /// about the shape itself. This lead to lost textbox size/position/padding for /// example. class DMLPresetShapeExporter
{ private: // the shape to export
css::uno::Reference<css::drawing::XShape> m_xShape; // the DMLwriter
DrawingML* m_pDMLexporter; // the type of the custom shape (diamond/rectangle/circle/triangle...)
OUString m_sPresetShapeType; // True if the shape has points where its geometry can be modified bool m_bHasHandleValues; // The first the x the second the y coordinate, of flipping
std::pair<bool, bool> m_bIsFlipped;
// Custom Shape Geometry information for export:
// The adjusting values stored in this sequence:
css::uno::Sequence<css::drawing::EnhancedCustomShapeAdjustmentValue> m_AdjustmentValues; // Shapes what have adjusting points, the range of these points // and the index of the value stored in this sequence:
css::uno::Sequence<css::uno::Sequence<css::beans::PropertyValue>> m_HandleValues;
// Returns with the shape type, like triangle for example const OUString& GetShapeType() const; // Returns with the handle points const css::uno::Sequence<css::uno::Sequence<css::beans::PropertyValue>>&
GetHandleValues() const; // Returns with the adjustment values const css::uno::Sequence<css::drawing::EnhancedCustomShapeAdjustmentValue>&
GetAdjustmentValues() const; // Returns with the raw value of the given property of the shape geometry.
css::uno::Any GetHandleValueOfModificationPoint(sal_Int32 nPoint, std::u16string_view sType); // Returns with the appropriate value of the handle point.
RadiusAdjustmentValue GetAdjustmentPointRadiusValue(sal_Int32 nPoint);
AngleAdjustmentValue GetAdjustmentPointAngleValue(sal_Int32 nPoint);
XAdjustmentValue GetAdjustmentPointXValue(sal_Int32 nPoint);
YAdjustmentValue GetAdjustmentPointYValue(sal_Int32 nPoint);
// Finds the given value in the sequence static css::uno::Any FindHandleValue(css::uno::Sequence<css::beans::PropertyValue> aValues,
std::u16string_view sKey); // Writes and converts the adjustment points from sdr to ooxml ones per shape type. bool WriteShapeWithAVlist();
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.