| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| |
| #ifndef INCLUDED_SLIDESHOW_DOCTREENODESUPPLIER_HXX |
| #define INCLUDED_SLIDESHOW_DOCTREENODESUPPLIER_HXX |
| |
| #include "doctreenode.hxx" |
| |
| |
| /* Definition of DocTreeNodeSupplier interface */ |
| |
| namespace slideshow |
| { |
| namespace internal |
| { |
| /** Interface to retrieve DocTreeNodes from subsettable |
| shapes. |
| |
| Shapes which implement the AttributableShape interface |
| also provides this interface, providing methods to |
| retrieve specific DocTreeNode objects from the shape. The |
| methods mainly distinguish various ways on how to specify |
| the actual DocTreeNode to return. |
| |
| If a requested DocTreeNode is not available when one of |
| the methods below is called, an empty DocTreeNode will be |
| returned (the predicate DocTreeNode::isEmpty() will return |
| true). If, on the other hand, the shape cannot determine, |
| for internal reasons, the internal tree node structure, |
| all those methods will throw an |
| ShapeLoadFailedException. This is, in fact, a delayed error |
| that could also have been reported during shape |
| construction, but might be postponed until the missing |
| information is actually requested. |
| */ |
| class DocTreeNodeSupplier |
| { |
| public: |
| /** Query number of tree nodes of the given type this |
| shape contains. |
| |
| The value returned by this method minus one is the |
| maximum value permissible at the getTreeNode() |
| method, for the given node type. |
| |
| @throws ShapeLoadFailedException, if tree node structure |
| cannot be determined. |
| */ |
| virtual sal_Int32 getNumberOfTreeNodes( DocTreeNode::NodeType eNodeType ) const = 0; // throw ShapeLoadFailedException; |
| |
| /** Create DocTreeNode from shape. |
| |
| This method creates a DocTreeNode from a shape, a |
| given node type and a running index into the shape's |
| DocTreeNodes of the given type. |
| |
| @param nNodeIndex |
| Starting with 0, every DocTreeNode of the shape that |
| has type eNodeType is indexed. The DocTreeNode whose |
| index equals nNodeIndex will be returned. |
| |
| @param eNodeType |
| Type of the node to return |
| |
| @return the DocTreeNode found, or the empty |
| DocTreeNode, if nothing was found. |
| |
| @throws ShapeLoadFailedException, if tree node structure |
| cannot be determined. |
| */ |
| virtual DocTreeNode getTreeNode( sal_Int32 nNodeIndex, |
| DocTreeNode::NodeType eNodeType ) const = 0; // throw ShapeLoadFailedException; |
| |
| /** Query number of tree nodes of the given type this |
| subset contains. |
| |
| The value returned by this method minus one is the |
| maximum value permissible at the |
| getSubsetTreeNode() method, for the given node |
| type. |
| |
| @param rParentNode |
| The parent node, below which the number of tree nodes |
| of the given type shall be counted. |
| |
| @param eNodeType |
| Node type to count. |
| |
| @throws ShapeLoadFailedException, if tree node structure |
| cannot be determined. |
| */ |
| virtual sal_Int32 getNumberOfSubsetTreeNodes( const DocTreeNode& rParentNode, |
| DocTreeNode::NodeType eNodeType ) const = 0; // throw ShapeLoadFailedException; |
| |
| /** Create DocTreeNode from shape subset. |
| |
| This method creates a DocTreeNode from a shape, a |
| parent tree node, a given node type and a running |
| index into the shape's DocTreeNodes of the given type. |
| |
| @param rParentNode |
| Parent node, below which the tree node with the given |
| type shall be selected. |
| |
| @param nNodeIndex |
| Starting with 0, every DocTreeNode of the shape that |
| has type eNodeType is indexed. The DocTreeNode whose |
| index equals nNodeIndex will be returned. |
| |
| @param eNodeType |
| Type of the node to return |
| |
| @return the DocTreeNode found, or the empty |
| DocTreeNode, if nothing was found. |
| |
| @throws ShapeLoadFailedException, if tree node structure |
| cannot be determined. |
| */ |
| virtual DocTreeNode getSubsetTreeNode( const DocTreeNode& rParentNode, |
| sal_Int32 nNodeIndex, |
| DocTreeNode::NodeType eNodeType ) const = 0; // throw ShapeLoadFailedException; |
| }; |
| |
| } |
| } |
| |
| #endif /* INCLUDED_SLIDESHOW_DOCTREENODESUPPLIER_HXX */ |