20#ifndef INCLUDED_SLIDESHOW_SOURCE_INC_TOOLS_HXX
21#define INCLUDED_SLIDESHOW_SOURCE_INC_TOOLS_HXX
23#include <com/sun/star/uno/Sequence.hxx>
24#include <com/sun/star/beans/XPropertySet.hpp>
25#include <com/sun/star/uno/Reference.hxx>
26#include <com/sun/star/animations/XAnimationNode.hpp>
27#include <com/sun/star/container/XEnumerationAccess.hpp>
28#include <com/sun/star/container/XEnumeration.hpp>
61 class ShapeAttributeLayer;
68 ::std::size_t
d =
static_cast< ::std::size_t
>(
69 reinterpret_cast< ::std::ptrdiff_t
>(
p) );
87 css::uno::Reference<T>
const& x )
91 css::uno::Reference< css::uno::XInterface>
const xRoot(
x, css::uno::UNO_QUERY );
106 const css::uno::Any& rSourceAny,
112 const css::uno::Any& rSourceAny,
118 const css::uno::Any& rSourceAny,
124 const css::uno::Any& rSourceAny,
130 const css::uno::Any& rSourceAny,
136 const css::uno::Any& rSourceAny,
142 const css::uno::Any& rSourceAny,
148 const css::uno::Any& rSourceAny,
157 bool findNamedValue( css::uno::Sequence< css::beans::NamedValue >
const& rSequence,
158 const css::beans::NamedValue& rSearchKey );
277 template <
typename ValueType>
281 css::beans::XPropertySet>
const & xPropSet,
282 OUString
const & propName )
285 const css::uno::Any&
a(
286 xPropSet->getPropertyValue( propName ) );
287 bool const bRet = css::uno::fromAny(
a, &rValue);
288#if OSL_DEBUG_LEVEL > 0
290 SAL_INFO(
"slideshow", __func__ <<
": while retrieving property " << propName <<
", cannot extract Any of type "
291 <<
a.getValueTypeRef()->pTypeName);
295 catch (css::uno::RuntimeException &)
299 catch (css::uno::Exception &)
305 template <
typename ValueType>
307 css::uno::Reference< ValueType >& rIfc,
308 css::uno::Reference< css::beans::XPropertySet>
const & xPropSet,
309 OUString
const & propName )
313 const css::uno::Any&
a(xPropSet->getPropertyValue( propName ));
314 rIfc.set(
a, css::uno::UNO_QUERY );
316 bool const bRet = rIfc.is();
317#if OSL_DEBUG_LEVEL > 0
319 SAL_INFO(
"slideshow", __func__ <<
": while retrieving property " << propName <<
", cannot extract Any of type "
320 <<
a.getValueTypeRef()->pTypeName <<
" to interface");
324 catch (css::uno::RuntimeException &)
328 catch (css::uno::Exception &)
365 template<
typename Functor >
inline bool for_each_childNode(
const css::uno::Reference< css::animations::XAnimationNode >& xNode,
371 css::uno::Reference< css::container::XEnumerationAccess >
372 xEnumerationAccess( xNode,
373 css::uno::UNO_QUERY_THROW );
374 css::uno::Reference< css::container::XEnumeration >
375 xEnumeration( xEnumerationAccess->createEnumeration(),
376 css::uno::UNO_SET_THROW );
378 while( xEnumeration->hasMoreElements() )
380 css::uno::Reference< css::animations::XAnimationNode >
381 xChildNode( xEnumeration->nextElement(),
382 css::uno::UNO_QUERY_THROW );
383 rFunctor( xChildNode );
387 catch( css::uno::Exception& )
#define SAL_INFO(area, stream)
inline ::std::size_t hash_value(css::uno::Reference< T > const &x)
size_t uniform_size_distribution(size_t a, size_t b)
std::shared_ptr< Canvas > CanvasSharedPtr
::basegfx::B2DRectangle getShapePosSize(const ::basegfx::B2DRectangle &rOrigBounds, const ShapeAttributeLayerSharedPtr &pAttr)
sal_Int32 RGBAColor2UnoColor(::cppcanvas::IntSRGBA aColor)
::basegfx::B2DRectangle getShapeUpdateArea(const ::basegfx::B2DRectangle &rUnitBounds, const ::basegfx::B2DHomMatrix &rShapeTransform, const ShapeAttributeLayerSharedPtr &pAttr)
::std::shared_ptr< ShapeAttributeLayer > ShapeAttributeLayerSharedPtr
basegfx::B2IVector getSlideSizePixel(const basegfx::B2DVector &rSlideSize, const UnoViewSharedPtr &pView)
bool getPropertyValue(ValueType &rValue, css::uno::Reference< css::beans::XPropertySet > const &xPropSet, OUString const &propName)
::basegfx::B2DHomMatrix getShapeTransformation(const ::basegfx::B2DRectangle &rShapeBounds, const ShapeAttributeLayerSharedPtr &pAttr)
bool findNamedValue(uno::Sequence< beans::NamedValue > const &rSequence, const beans::NamedValue &rSearchKey)
::basegfx::B2DRectangle getAPIShapeBounds(const uno::Reference< drawing::XShape > &xShape)
std::shared_ptr< GDIMetaFile > GDIMetaFileSharedPtr
RGBColor unoColor2RGBColor(sal_Int32)
Convert a plain UNO API 32 bit int to RGBColor.
void fillRect(const ::cppcanvas::CanvasSharedPtr &rCanvas, const ::basegfx::B2DRectangle &rRect, ::cppcanvas::IntSRGBA aFillColor)
inline ::std::size_t hash_value(T const *p)
inline ::std::size_t getRandomOrdinal(const ::std::size_t n)
Gets a random ordinal [0,n)
void initSlideBackground(const ::cppcanvas::CanvasSharedPtr &rCanvas, const ::basegfx::B2ISize &rSize)
::std::shared_ptr< Shape > ShapeSharedPtr
std::shared_ptr< UnoView > UnoViewSharedPtr
bool extractValue(double &o_rValue, const uno::Any &rSourceAny, const ShapeSharedPtr &rShape, const ::basegfx::B2DVector &rSlideBounds)
extract unary double value from Any
::basegfx::B2DHomMatrix getSpriteTransformation(const ::basegfx::B2DVector &rPixelSize, const ::basegfx::B2DVector &rOrigSize, const ShapeAttributeLayerSharedPtr &pAttr)
basegfx::B2DRange calcRelativeShapeBounds(const basegfx::B2DVector &rPageSize, const basegfx::B2DRange &rShapeBounds)
bool for_each_childNode(const css::uno::Reference< css::animations::XAnimationNode > &xNode, Functor &rFunctor)
Apply given functor to every animation node child.
::std::size_t operator()(T const &val) const