23#include <com/sun/star/drawing/XPresenterHelper.hpp>
24#include <com/sun/star/lang/XMultiComponentFactory.hpp>
26#include <osl/diagnose.h>
36 const OUString& rsConfigurationBase,
37 std::shared_ptr<PresenterBitmapContainer> xParentContainer,
38 const css::uno::Reference<css::uno::XComponentContext>& rxComponentContext,
39 css::uno::Reference<css::rendering::XCanvas> xCanvas,
40 css::uno::Reference<css::drawing::XPresenterHelper> xPresenterHelper)
41 : mpParentContainer(
std::move(xParentContainer)),
50 "org.openoffice.Office.PresenterScreen",
52 Reference<container::XNameAccess> xBitmapList (
60 const css::uno::Reference<css::container::XNameAccess>& rxRootNode,
61 std::shared_ptr<PresenterBitmapContainer> xParentContainer,
62 const css::uno::Reference<css::uno::XComponentContext>& rxComponentContext,
63 css::uno::Reference<css::rendering::XCanvas> xCanvas,
64 css::uno::Reference<css::drawing::XPresenterHelper> xPresenterHelper)
65 : mpParentContainer(
std::move(xParentContainer)),
75 const css::uno::Reference<css::uno::XComponentContext>& rxComponentContext)
82 Reference<lang::XMultiComponentFactory>
xFactory =
83 rxComponentContext->getServiceManager();
88 "com.sun.star.drawing.PresenterHelper",
99 const OUString& rsName)
const
111 const css::uno::Reference<css::container::XNameAccess>& rxBitmapList)
116 if ( ! rxBitmapList.is())
122 if (rxBitmapList.is())
126 [
this](OUString
const& rKey, Reference<beans::XPropertySet>
const& xProps)
139 const css::uno::Reference<css::container::XHierarchicalNameAccess>& rxNode,
140 const OUString& rsPath,
141 const css::uno::Reference<css::drawing::XPresenterHelper>& rxPresenterHelper,
142 const css::uno::Reference<css::rendering::XCanvas>& rxCanvas,
143 const std::shared_ptr<BitmapDescriptor>& rpDefault)
151 Reference<beans::XPropertySet> xBitmapProperties (
154 if (xBitmapProperties.is())
171 const OUString& rsKey,
172 const Reference<beans::XPropertySet>& rxProperties)
186 const Reference<beans::XPropertySet>& rxProperties,
187 const css::uno::Reference<css::drawing::XPresenterHelper>& rxPresenterHelper,
188 const css::uno::Reference<css::rendering::XCanvas>& rxCanvas,
189 const std::shared_ptr<BitmapDescriptor>& rpDefault)
191 OSL_ASSERT(rxCanvas.is());
192 OSL_ASSERT(rxPresenterHelper.is());
196 if ( ! rxProperties.is())
207 rxPresenterHelper->loadBitmap(sFileName, rxCanvas));
216 rxPresenterHelper->loadBitmap(sFileName, rxCanvas));
225 rxPresenterHelper->loadBitmap(sFileName, rxCanvas));
234 rxPresenterHelper->loadBitmap(sFileName, rxCanvas));
243 rxPresenterHelper->loadBitmap(sFileName, rxCanvas));
256 OUString sTexturingMode;
268 if (rsTexturingMode ==
u"Once")
270 else if (rsTexturingMode ==
u"Repeat")
272 else if (rsTexturingMode ==
u"Stretch")
287 maReplacementColor(0x00000000),
288 meHorizontalTexturingMode(Once),
289 meVerticalTexturingMode(Once)
294 const std::shared_ptr<PresenterBitmapContainer::BitmapDescriptor>& rpDefault)
301 maReplacementColor(0x00000000),
302 meHorizontalTexturingMode(Once),
303 meVerticalTexturingMode(Once)
305 if (rpDefault ==
nullptr)
324const css::uno::Reference<css::rendering::XBitmap>&
327 return mxNormalBitmap;
330css::uno::Reference<css::rendering::XBitmap>
const &
337 return mxNormalBitmap;
340 if (mxMouseOverBitmap.is())
341 return mxMouseOverBitmap;
343 return mxNormalBitmap;
346 if (mxButtonDownBitmap.is())
347 return mxButtonDownBitmap;
349 return mxNormalBitmap;
352 if (mxDisabledBitmap.is())
353 return mxDisabledBitmap;
355 return mxNormalBitmap;
364 const css::uno::Reference<css::rendering::XBitmap>& rxBitmap)
370 mxNormalBitmap = rxBitmap;
371 if (mxNormalBitmap.is())
373 const geometry::IntegerSize2D aSize (mxNormalBitmap->getSize());
380 mxMouseOverBitmap = rxBitmap;
384 mxButtonDownBitmap = rxBitmap;
388 mxDisabledBitmap = rxBitmap;
392 mxMaskBitmap = rxBitmap;
Reference< rendering::XCanvas > mxCanvas
Reference< drawing::XPresenterHelper > mxPresenterHelper
const css::uno::Reference< css::rendering::XBitmap > & GetNormalBitmap() const
css::uno::Reference< css::rendering::XBitmap > mxDisabledBitmap
TexturingMode meVerticalTexturingMode
void SetBitmap(const Mode eMode, const css::uno::Reference< css::rendering::XBitmap > &rxBitmap)
css::uno::Reference< css::rendering::XBitmap > mxMouseOverBitmap
css::uno::Reference< css::rendering::XBitmap > const & GetBitmap(const Mode eMode) const
css::uno::Reference< css::rendering::XBitmap > mxNormalBitmap
css::uno::Reference< css::rendering::XBitmap > mxButtonDownBitmap
css::util::Color maReplacementColor
TexturingMode meHorizontalTexturingMode
css::uno::Reference< css::rendering::XBitmap > mxMaskBitmap
void LoadBitmaps(const css::uno::Reference< css::container::XNameAccess > &rsRootNode)
std::shared_ptr< PresenterBitmapContainer > mpParentContainer
void Initialize(const css::uno::Reference< css::uno::XComponentContext > &rxComponentContext)
PresenterBitmapContainer(const OUString &rsConfigurationBase, std::shared_ptr< PresenterBitmapContainer > xParentContainer, const css::uno::Reference< css::uno::XComponentContext > &rxComponentContext, css::uno::Reference< css::rendering::XCanvas > xCanvas, css::uno::Reference< css::drawing::XPresenterHelper > xPresenterHelper=nullptr)
Create a new bitmap container from a section of the configuration.
static std::shared_ptr< BitmapDescriptor > LoadBitmap(const css::uno::Reference< css::container::XHierarchicalNameAccess > &rxNode, const OUString &rsPathToBitmapNode, const css::uno::Reference< css::drawing::XPresenterHelper > &rxPresenterHelper, const css::uno::Reference< css::rendering::XCanvas > &rxCanvas, const std::shared_ptr< BitmapDescriptor > &rpDefaultBitmap)
BitmapContainer maIconContainer
static BitmapDescriptor::TexturingMode StringToTexturingMode(std::u16string_view rsTexturingMode)
std::shared_ptr< BitmapDescriptor > GetBitmap(const OUString &rsName) const
Return the bitmap set that is associated with the given name.
~PresenterBitmapContainer()
css::uno::Reference< css::drawing::XPresenterHelper > mxPresenterHelper
void ProcessBitmap(const OUString &rsKey, const css::uno::Reference< css::beans::XPropertySet > &rProperties)
css::uno::Reference< css::rendering::XCanvas > mxCanvas
This class gives access to the configuration.
css::uno::Any GetConfigurationNode(const OUString &rsPathToNode)
Return a configuration node below the root of the called object.
static css::uno::Any GetProperty(const css::uno::Reference< css::beans::XPropertySet > &rxProperties, const OUString &rsKey)
This method wraps a call to getPropertyValue() and returns an empty Any instead of throwing an except...
static void ForAll(const css::uno::Reference< css::container::XNameAccess > &rxContainer, const ::std::vector< OUString > &rArguments, const ItemProcessor &rProcessor)
Execute a functor for all elements of the given container.
Reference< XSingleServiceFactory > xFactory
std::shared_ptr< PresenterBitmapContainer::BitmapDescriptor > SharedBitmapDescriptor