20#ifndef INCLUDED_UNOTOOLS_CONFIGITEM_HXX
21#define INCLUDED_UNOTOOLS_CONFIGITEM_HXX
24#include <rtl/ustring.hxx>
25#include <com/sun/star/uno/Sequence.h>
26#include <com/sun/star/uno/Reference.h>
39 class XHierarchicalNameAccess;
42 class XChangesListener;
73 css::uno::Reference< css::container::XHierarchicalNameAccess>
75 css::uno::Reference< css::util::XChangesListener >
82 void RemoveChangesListener();
84 const css::uno::Sequence<OUString>& aPropertyNames);
96 static void impl_packLocalizedProperties (
const css::uno::Sequence< OUString >& lInNames ,
97 const css::uno::Sequence< css::uno::Any >& lInValues ,
98 css::uno::Sequence< css::uno::Any >& lOutValues );
99 static void impl_unpackLocalizedProperties (
100 const css::uno::Sequence< OUString >& lInNames ,
101 const css::uno::Sequence< css::uno::Any >& lInValues ,
102 css::uno::Sequence< OUString >& lOutNames ,
103 css::uno::Sequence< css::uno::Any >& lOutValues);
105 css::uno::Reference< css::container::XHierarchicalNameAccess>
116 void ClearModified();
118 css::uno::Sequence< css::uno::Any>
121 css::uno::Sequence< sal_Bool >
122 GetReadOnlyStates(
const css::uno::Sequence< OUString >& rNames);
125 const css::uno::Sequence< OUString >& rNames,
126 const css::uno::Sequence< css::uno::Any>& rValues);
136 bool EnableNotification(
const css::uno::Sequence< OUString >& rNames,
137 bool bEnableInternalNotification =
false);
143 void DisableNotification();
146 css::uno::Sequence< OUString >
147 GetNodeNames(
const OUString& rNode);
149 css::uno::Sequence< OUString >
152 bool ClearNodeSet(
const OUString& rNode);
154 bool ClearNodeElements(
const OUString& rNode,
155 css::uno::Sequence< OUString >
const & rElements);
157 bool SetSetProperties(
const OUString& rNode,
const css::uno::Sequence< css::beans::PropertyValue >& rValues);
159 bool ReplaceSetProperties(
const OUString& rNode,
const css::uno::Sequence< css::beans::PropertyValue >& rValues);
161 bool AddNode(
const OUString& rNode,
const OUString& rNewNode);
173 virtual void Notify(
const css::uno::Sequence<OUString>& aPropertyNames)=0;
184 static css::uno::Sequence< OUString > GetNodeNames(
185 css::uno::Reference<css::container::XHierarchicalNameAccess>
const & xHierarchyAccess,
188 css::uno::Reference<css::container::XHierarchicalNameAccess>
const & xHierarchyAccess,
189 const css::uno::Sequence< OUString >& rNames,
192 css::uno::Reference<css::container::XHierarchicalNameAccess>
const & xHierarchyAccess,
193 const css::uno::Sequence< OUString >& rNames,
194 const css::uno::Sequence< css::uno::Any>& rValues,
197 static bool ClearNodeSet(
198 css::uno::Reference<css::container::XHierarchicalNameAccess>
const & xHierarchyAccess,
199 const OUString& rNode);
202 css::uno::Reference<css::container::XHierarchicalNameAccess>
const & xHierarchyAccess,
203 const OUString& rNode,
204 const css::uno::Sequence< css::beans::PropertyValue >& rValues,
208 css::uno::Reference<css::container::XHierarchicalNameAccess>
const & xHierarchyAccess,
209 const OUString& rNode,
210 const css::uno::Sequence< css::beans::PropertyValue >& rValues);
css::uno::Sequence< css::uno::Any > GetProperties(const css::uno::Sequence< OUString > &rNames)
ConfigItem(ConfigItem &&)=default
bool SetSetProperties(const OUString &rNode, const css::uno::Sequence< css::beans::PropertyValue > &rValues)
static bool PutProperties(css::uno::Reference< css::container::XHierarchicalNameAccess > const &xHierarchyAccess, const css::uno::Sequence< OUString > &rNames, const css::uno::Sequence< css::uno::Any > &rValues, bool bAllLocales)
static bool SetSetProperties(css::uno::Reference< css::container::XHierarchicalNameAccess > const &xHierarchyAccess, const OUString &rNode, const css::uno::Sequence< css::beans::PropertyValue > &rValues)
sal_Int16 m_nInValueChange
virtual void Notify(const css::uno::Sequence< OUString > &aPropertyNames)=0
is called from the ConfigManager before application ends of from the PropertyChangeListener if the su...
virtual void ImplCommit()=0
writes the changed values into the sub tree.
ConfigItem(ConfigItem const &)=default
css::uno::Reference< css::util::XChangesListener > xChangeLstnr
const OUString & GetSubTreeName() const
css::uno::Reference< css::container::XHierarchicalNameAccess > m_xHierarchyAccess
bool m_bEnableInternalNotification
static css::uno::Sequence< css::uno::Any > GetProperties(css::uno::Reference< css::container::XHierarchicalNameAccess > const &xHierarchyAccess, const css::uno::Sequence< OUString > &rNames, bool bAllLocales)
bool PutProperties(const css::uno::Sequence< OUString > &rNames, const css::uno::Sequence< css::uno::Any > &rValues)
bool ReplaceSetProperties(const OUString &rNode, const css::uno::Sequence< css::beans::PropertyValue > &rValues)
ConfigItemMode GetMode() const
static bool ReplaceSetProperties(css::uno::Reference< css::container::XHierarchicalNameAccess > const &xHierarchyAccess, const OUString &rNode, const css::uno::Sequence< css::beans::PropertyValue > &rValues, bool bAllLocales)