summaryrefslogtreecommitdiff
path: root/sdext/source/presenter/PresenterConfigurationAccess.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sdext/source/presenter/PresenterConfigurationAccess.hxx')
-rw-r--r--sdext/source/presenter/PresenterConfigurationAccess.hxx208
1 files changed, 0 insertions, 208 deletions
diff --git a/sdext/source/presenter/PresenterConfigurationAccess.hxx b/sdext/source/presenter/PresenterConfigurationAccess.hxx
deleted file mode 100644
index 3a8d872..0000000
--- a/sdext/source/presenter/PresenterConfigurationAccess.hxx
+++ /dev/null
@@ -1,208 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef SDEXT_PRESENTER_CONFIGURATION_ACCESS_HXX
-#define SDEXT_PRESENTER_CONFIGURATION_ACCESS_HXX
-
-#include <rtl/ustring.hxx>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/container/XNameAccess.hpp>
-#include <com/sun/star/container/XHierarchicalNameAccess.hpp>
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include <vector>
-#include <boost/function.hpp>
-
-namespace css = ::com::sun::star;
-
-namespace sdext { namespace presenter {
-
-/** This class gives access to the configuration. Create an object of this
- class for one node of the configuration. This will be the root node.
- From this one you can use this class in two ways.
-
- <p>In a stateless mode (with exception of the root node) you can use static
- methods for obtaining child nodes, get values from properties at leaf
- nodes and iterate over children of inner nodes.</p>
-
- <p>In a stateful mode use non-static methods like GoToChild() to
- navigate to children.</p>
-
- <p>Note to call CommitChanges() after making changes to
- PresenterConfigurationAccess object that was opened in READ_WRITE mode.</p>
-*/
-class PresenterConfigurationAccess
-{
-public:
- enum WriteMode { READ_WRITE, READ_ONLY };
- typedef ::boost::function<bool(
- const ::rtl::OUString&,
- const css::uno::Reference<css::beans::XPropertySet>&)> Predicate;
- static const ::rtl::OUString msPresenterScreenRootName;
-
- /** Create a new object to access the configuration entries below the
- given root.
- @param rsRootName
- Name of the root. You can use msPresenterScreenRootName to
- access the configuration of the presenter screen.
- @param eMode
- This flag specifies whether to give read-write or read-only
- access.
- */
- PresenterConfigurationAccess(
- const css::uno::Reference<css::uno::XComponentContext>& rxContext,
- const ::rtl::OUString& rsRootName,
- WriteMode eMode);
-
- ~PresenterConfigurationAccess (void);
-
- /** Return a configuration node below the root of the called object.
- @param rsPathToNode
- The relative path from the root (as given the constructor) to the node.
- */
- css::uno::Any GetConfigurationNode (
- const ::rtl::OUString& rsPathToNode);
- css::uno::Reference<css::beans::XPropertySet> GetNodeProperties (
- const ::rtl::OUString& rsPathToNode);
-
- /** Return <TRUE/> when opening the configuration (via creating a new
- PresenterConfigurationAccess object) or previous calls to
- GoToChild() left the called PresenterConfigurationAccess object in a
- valid state.
- */
- bool IsValid (void) const;
-
- /** Move the focused node to the (possibly indirect) child specified by the given path.
- */
- bool GoToChild (const ::rtl::OUString& rsPathToNode);
-
- /** Move the focused node to the first direct child that fulfills the the given predicate.
- */
- bool GoToChild (const Predicate& rPredicate);
-
- /** Modify the property child of the currently focused node. Keep in
- mind to call CommitChanges() to write the change back to the
- configuration.
- */
- bool SetProperty (const ::rtl::OUString& rsPropertyName, const css::uno::Any& rValue);
-
- /** Return a configuration node below the given node.
- @param rxNode
- The node that acts as root to the given relative path.
- @param rsPathToNode
- The relative path from the given node to the requested node.
- When this string is empty then rxNode is returned.
- @return
- The type of the returned node varies with the requested node.
- It is empty when the node was not found.
- */
- static css::uno::Any GetConfigurationNode (
- const css::uno::Reference<css::container::XHierarchicalNameAccess>& rxNode,
- const ::rtl::OUString& rsPathToNode);
-
- static css::uno::Reference<css::beans::XPropertySet> GetNodeProperties (
- const css::uno::Reference<css::container::XHierarchicalNameAccess>& rxNode,
- const ::rtl::OUString& rsPathToNode);
-
- /** Write any changes that have been made back to the configuration.
- This call is ignored when the called ConfigurationAccess object was
- not create with read-write mode.
- */
- void CommitChanges (void);
-
- css::uno::Any GetValue (const rtl::OUString& sKey);
-
- typedef ::boost::function<void(
- const ::rtl::OUString&,
- const ::std::vector<css::uno::Any>&) > ItemProcessor;
- typedef ::boost::function<void(
- const ::rtl::OUString&,
- const ::css::uno::Reference<css::beans::XPropertySet>&) > PropertySetProcessor;
-
- /** Execute a functor for all elements of the given container.
- @param rxContainer
- The container is a XNameAccess to a list of the configuration.
- This can be a node returned by GetConfigurationNode().
- @param rArguments
- The functor is called with arguments that are children of each
- element of the container. The set of children is specified this
- list.
- @param rFunctor
- The functor to be executed for some or all of the elements in
- the given container.
- */
- static void ForAll (
- const css::uno::Reference<css::container::XNameAccess>& rxContainer,
- const ::std::vector<rtl::OUString>& rArguments,
- const ItemProcessor& rProcessor);
- static void ForAll (
- const css::uno::Reference<css::container::XNameAccess>& rxContainer,
- const PropertySetProcessor& rProcessor);
-
- /** Fill a list with the string contents of all sub-elements in the given container.
- @param rxContainer
- The container is a XNameAccess to a list of the configuration.
- This can be a node returned by GetConfigurationNode().
- @param rsArgument
- This specifies which string children of the elements in the
- container are to be inserted into the list. The specified child
- has to be of type string.
- @param rList
- The list to be filled.
- */
- static void FillList(
- const css::uno::Reference<css::container::XNameAccess>& rxContainer,
- const ::rtl::OUString& rsArgument,
- ::std::vector<rtl::OUString>& rList);
-
- static css::uno::Any Find (
- const css::uno::Reference<css::container::XNameAccess>& rxContainer,
- const Predicate& rPredicate);
-
- static bool IsStringPropertyEqual (
- const ::rtl::OUString& rsValue,
- const ::rtl::OUString& rsPropertyName,
- const css::uno::Reference<css::beans::XPropertySet>& rxNode);
-
- /** This method wraps a call to getPropertyValue() and returns an empty
- Any instead of throwing an exception when the property does not
- exist.
- */
- static css::uno::Any GetProperty (
- const css::uno::Reference<css::beans::XPropertySet>& rxProperties,
- const ::rtl::OUString& rsKey);
-
-private:
- css::uno::Reference<css::uno::XInterface> mxRoot;
- css::uno::Any maNode;
-};
-
-} } // end of namespace sdext::tools
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */