LibreOffice Module oox (master) 1
effectproperties.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
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/.
8 */
9
10#ifndef INCLUDED_OOX_DRAWINGML_EFFECTPROPERTIES_HXX
11#define INCLUDED_OOX_DRAWINGML_EFFECTPROPERTIES_HXX
12
15
16#include <memory>
17#include <vector>
18#include <map>
19
20namespace model {
21enum class RectangleAlignment;
22}
23
24namespace oox::drawingml {
25
27{
28 std::optional< sal_Int64 > moGlowRad; // size of glow effect
30 // TODO saturation and luminance missing
31
32 void assignUsed( const EffectGlowProperties& rSourceProps );
33};
34
36{
37 std::optional<sal_Int64> moRad; // size of effect
38
39 void assignUsed(const EffectSoftEdgeProperties& rSourceProps);
40};
41
43{
44 std::optional< sal_Int64 > moShadowDist;
45 std::optional< sal_Int64 > moShadowDir;
46 std::optional< sal_Int64 > moShadowSx;
47 std::optional< sal_Int64 > moShadowSy;
49 std::optional< sal_Int64 > moShadowBlur; // size of blur effect
50 std::optional< model::RectangleAlignment > moShadowAlignment;
51
53 void assignUsed( const EffectShadowProperties& rSourceProps );
54};
55
56struct Effect
57{
58 OUString msName;
59 std::map< OUString, css::uno::Any > maAttribs;
61
62 css::beans::PropertyValue getEffect();
63};
64
66{
70
72 std::vector<std::unique_ptr<Effect>> m_Effects;
73
76 {
77 assignUsed(rOther);
78 }
79
81 void assignUsed( const EffectProperties& rSourceProps );
82
84 void pushToPropMap(
85 PropertyMap& rPropMap,
86 const GraphicHelper& rGraphicHelper ) const;
87};
88
89} // namespace oox::drawingml
90
91#endif
92
93/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Provides helper functions for colors, device measurement conversion, graphics, and graphic objects ha...
A helper that maps property identifiers to property values.
Definition: propertymap.hxx:52
RectangleAlignment
std::optional< sal_Int64 > moGlowRad
void assignUsed(const EffectGlowProperties &rSourceProps)
EffectProperties(EffectProperties const &rOther)
EffectSoftEdgeProperties maSoftEdge
std::vector< std::unique_ptr< Effect > > m_Effects
Stores all effect properties, including those not supported by core yet.
void assignUsed(const EffectProperties &rSourceProps)
Overwrites all members that are explicitly set in rSourceProps.
void pushToPropMap(PropertyMap &rPropMap, const GraphicHelper &rGraphicHelper) const
Writes the properties to the passed property map.
std::optional< sal_Int64 > moShadowDist
std::optional< sal_Int64 > moShadowSx
std::optional< sal_Int64 > moShadowBlur
std::optional< sal_Int64 > moShadowSy
std::optional< sal_Int64 > moShadowDir
std::optional< model::RectangleAlignment > moShadowAlignment
void assignUsed(const EffectShadowProperties &rSourceProps)
Overwrites all members that are explicitly set in rSourceProps.
void assignUsed(const EffectSoftEdgeProperties &rSourceProps)
std::map< OUString, css::uno::Any > maAttribs
css::beans::PropertyValue getEffect()