Bump version to 6.4-15
[LibreOffice.git] / include / svx / IAccessibleParent.hxx
blob19284a7d0ce7a6b5ff6f20c2ddb631a4aaf40736
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef INCLUDED_SVX_IACCESSIBLEPARENT_HXX
21 #define INCLUDED_SVX_IACCESSIBLEPARENT_HXX
23 #include <com/sun/star/uno/Reference.hxx>
25 namespace accessibility { class AccessibleControlShape; }
26 namespace com::sun::star::accessibility { class XAccessible; }
27 namespace com::sun::star::beans { class XPropertySet; }
28 namespace com::sun::star::drawing { class XShape; }
30 namespace accessibility {
32 class AccessibleShape;
33 class AccessibleShapeTreeInfo;
35 /** This interface contains methods missing from the
36 XAccessibleContext interface that allow the modification of
37 parent/child relationship.
39 class IAccessibleParent
41 public:
42 /** Allow for a virtual destructor.
44 virtual ~IAccessibleParent(){};
46 /** A call to this method requests the implementor to replace one child
47 with another and send the appropriate notifications. That are two
48 child events: One notifying the removal of the current child and one
49 about the existence of the new child. The index of the new child is
50 implementation dependent, i.e. it is not guaranteed that the
51 replacement has the same index as the current child has.
53 <p>A default implementation can just use the ShapeTypeHandler::CreateAccessibleObject
54 to let a factory create the new instance with the parameters given, and then
55 place the new shape into the own structures.</p>
57 @param pCurrentChild
58 This child is about to be replaced.
60 @param _rxShape
61 The UNO shape which the old and new child represent
63 @param _nIndex
64 The IndexInParent of the old child. Note that the index in
65 parent of the replacement is not necessarily the same as
66 that of the current child.
68 @param _rShapeTreeInfo
69 The TreeInfo for the old child.
71 @return
72 If the replacement has taken place successfully <TRUE/> is
73 returned. If the replacement can not be carried out or an error
74 occurs that does not result in an exception then <FALSE/> is
75 returned.
77 @throws RuntimeException
78 in case something went heavily wrong
80 virtual bool ReplaceChild (
81 AccessibleShape* pCurrentChild,
82 const css::uno::Reference< css::drawing::XShape >& _rxShape,
83 const long _nIndex,
84 const AccessibleShapeTreeInfo& _rShapeTreeInfo
85 ) = 0;
86 //Add this method to support Form Controls
87 /// @throws css::uno::RuntimeException
88 virtual AccessibleControlShape* GetAccControlShapeFromModel
89 (css::beans::XPropertySet*){return nullptr;};
90 /// @throws css::uno::RuntimeException
91 virtual css::uno::Reference<
92 css::accessibility::XAccessible>
93 GetAccessibleCaption (const css::uno::Reference<
94 css::drawing::XShape>&){return nullptr;};
95 virtual bool IsDocumentSelAll(){ return false; }
98 } // end of namespace accessibility
100 #endif
102 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */