20#ifndef INCLUDED_SDEXT_SOURCE_PRESENTER_PRESENTERCONFIGURATIONACCESS_HXX
21#define INCLUDED_SDEXT_SOURCE_PRESENTER_PRESENTERCONFIGURATIONACCESS_HXX
23#include <rtl/ustring.hxx>
24#include <com/sun/star/beans/XPropertySet.hpp>
25#include <com/sun/star/container/XNameAccess.hpp>
26#include <com/sun/star/container/XHierarchicalNameAccess.hpp>
27#include <com/sun/star/uno/XComponentContext.hpp>
52 typedef ::std::function<bool (
54 const css::uno::Reference<css::beans::XPropertySet>&)>
Predicate;
56 u"/org.openoffice.Office.PresenterScreen/";
68 const css::uno::Reference<css::uno::XComponentContext>& rxContext,
69 const OUString& rsRootName,
79 const OUString& rsPathToNode);
90 bool GoToChild (
const OUString& rsPathToNode);
100 bool SetProperty (
const OUString& rsPropertyName,
const css::uno::Any& rValue);
113 const css::uno::Reference<css::container::XHierarchicalNameAccess>& rxNode,
114 const OUString& rsPathToNode);
117 const css::uno::Reference<css::container::XHierarchicalNameAccess>& rxNode,
118 const OUString& rsPathToNode);
126 typedef ::std::function<void (
128 typedef ::std::function<void (
145 const css::uno::Reference<css::container::XNameAccess>& rxContainer,
146 const ::std::vector<OUString>& rArguments,
149 const css::uno::Reference<css::container::XNameAccess>& rxContainer,
152 static css::uno::Any
Find (
153 const css::uno::Reference<css::container::XNameAccess>& rxContainer,
157 std::u16string_view rsValue,
158 const OUString& rsPropertyName,
159 const css::uno::Reference<css::beans::XPropertySet>& rxNode);
166 const css::uno::Reference<css::beans::XPropertySet>& rxProperties,
167 const OUString& rsKey);
170 css::uno::Reference<css::uno::XInterface>
mxRoot;
This class gives access to the configuration.
~PresenterConfigurationAccess()
bool IsValid() const
Return <TRUE> when opening the configuration (via creating a new PresenterConfigurationAccess object)...
css::uno::Reference< css::uno::XInterface > mxRoot
bool SetProperty(const OUString &rsPropertyName, const css::uno::Any &rValue)
Modify the property child of the currently focused node.
PresenterConfigurationAccess(const css::uno::Reference< css::uno::XComponentContext > &rxContext, const OUString &rsRootName, WriteMode eMode)
Create a new object to access the configuration entries below the given root.
bool GoToChild(const OUString &rsPathToNode)
Move the focused node to the (possibly indirect) child specified by the given path.
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.
void CommitChanges()
Write any changes that have been made back to the configuration.
static bool IsStringPropertyEqual(std::u16string_view rsValue, const OUString &rsPropertyName, const css::uno::Reference< css::beans::XPropertySet > &rxNode)
::std::function< void(const OUString &, const css::uno::Reference< css::beans::XPropertySet > &) > PropertySetProcessor
static void ForAll(const css::uno::Reference< css::container::XNameAccess > &rxContainer, const PropertySetProcessor &rProcessor)
static css::uno::Reference< css::beans::XPropertySet > GetNodeProperties(const css::uno::Reference< css::container::XHierarchicalNameAccess > &rxNode, const OUString &rsPathToNode)
static css::uno::Any Find(const css::uno::Reference< css::container::XNameAccess > &rxContainer, const Predicate &rPredicate)
static constexpr OUStringLiteral msPresenterScreenRootName
::std::function< bool(const OUString &, const css::uno::Reference< css::beans::XPropertySet > &)> Predicate
::std::function< void(const ::std::vector< css::uno::Any > &) > ItemProcessor