namespace com::sun::star { namespace drawing { class XShape;
}
}
namespace oox::drawingml { class DrawingML;
}
namespace sax_fastparser { class FastAttributeList;
}
namespace tools { class Rectangle; } class SdrObject;
namespace oox::vml {
/// Interface to be implemented by the parent exporter that knows how to handle shape text. class OOX_DLLPUBLIC VMLTextExport
{ public: virtualvoid WriteOutliner(const OutlinerParaObject& rParaObj) = 0; virtual oox::drawingml::DrawingML& GetDrawingML() = 0; /// Write the contents of the textbox that is associated to this shape in VML format. virtualvoid WriteVMLTextBox(css::uno::Reference<css::drawing::XShape> xShape) = 0; protected:
VMLTextExport() {} virtual ~VMLTextExport() {}
};
class OOX_DLLPUBLIC VMLExport : public EscherEx
{ /// Fast serializer to output the data
::sax_fastparser::FSHelperPtr m_pSerializer;
/// Parent exporter, used for text callback.
VMLTextExport* m_pTextExport;
/// The object we're exporting. const SdrObject* m_pSdrObject;
/// Fill the shape attributes as they come.
rtl::Reference<::sax_fastparser::FastAttributeList> m_pShapeAttrList;
/// Remember the shape type.
sal_uInt32 m_nShapeType;
/// Remember the shape flags.
ShapeFlag m_nShapeFlags;
/// Remember style, the most important shape attribute ;-)
OStringBuffer m_ShapeStyle;
/// style for textbox
OStringBuffer m_TextboxStyle;
/// Remember the generated shape id.
OString m_sShapeId;
/// Remember which shape types we had already written.
std::vector<bool> m_aShapeTypeWritten;
/// It seems useless to write out an XML_ID attribute next to XML_id which defines the actual shape id bool m_bSkipwzName;
/// Use '#' mark for type attribute (check Type Attribute of VML shape in OOXML documentation) bool m_bUseHashMarkForType;
/** There is a shapeid generation mechanism in EscherEx, but it does not seem to work *sooverridetheexistingbehaviortogetactuallyuniqueids.
*/ bool m_bOverrideShapeIdGeneration;
/// Prefix for overridden shape id generation (used if m_bOverrideShapeIdGeneration is true)
OString m_sShapeIDPrefix;
/// Counter for generating shape ids (used if m_bOverrideShapeIdGeneration is true)
sal_uInt64 m_nShapeIDCounter;
protected: /// Add an attribute to the generated <v:shape/> element. /// /// This should be called from within StartShape() to ensure that the /// added attribute is preserved. void AddShapeAttribute(sal_Int32 nAttribute, std::string_view sValue);
using EscherEx::StartShape; using EscherEx::EndShape;
/// Override shape ID generation when m_bOverrideShapeIdGeneration is set to true virtual sal_uInt32 GenerateShapeId() override;
/// Start the shape for which we just collected the information. /// /// Returns the element's tag number, -1 means we wrote nothing. virtual sal_Int32 StartShape();
/// End the shape. /// /// The parameter is just what we got from StartShape(). virtualvoid EndShape( sal_Int32 nShapeElement ); virtualvoid Commit( EscherPropertyContainer& rProps, const tools::Rectangle& rRect ) override;
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.