25#include <document.hxx>
36#include <com/sun/star/accessibility/AccessibleEventId.hpp>
37#include <com/sun/star/accessibility/AccessibleStateType.hpp>
38#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
77 : mpTextHelper(
nullptr)
94 uno::Reference<XAccessible>
GetChild(sal_Int32 nIndex)
const;
95 uno::Reference<XAccessible>
GetAt(
const awt::Point& rPoint)
const;
121 : mpViewShell(pViewShell),
133 delete i.mpTextHelper;
134 i.mpTextHelper =
nullptr;
139 delete i.mpTextHelper;
140 i.mpTextHelper =
nullptr;
160 sal_Int32 nParagraphs(0);
165 aNote.mbMarkNote = bMark;
167 aNote.mnParaCount = 1;
180 aNote.maNoteText = pNote->GetText();
181 aNote.mpTextHelper =
CreateTextHelper(aNote.maNoteText, aNote.maRect, aNote.maNoteCell, aNote.mbMarkNote, nParagraphs +
mnOffset);
182 if (aNote.mpTextHelper)
183 aNote.mnParaCount = aNote.mpTextHelper->GetChildCount();
185 nParagraphs += aNote.mnParaCount;
186 rNotes.push_back(aNote);
211 bool operator() (
const ScAccNote& rNote)
214 if (rNote.mnParaCount > mnIndex)
226 uno::Reference<XAccessible> xAccessible;
232 ScAccNotes::iterator aEndItr =
maMarks.end();
233 ScParaFound aParaFound(
nIndex);
234 ScAccNotes::iterator aItr = std::find_if(
maMarks.begin(), aEndItr, aParaFound);
237 OSL_ENSURE((aItr->maNoteCell ==
maMarks[
nIndex].maNoteCell) && (aItr->mbMarkNote ==
maMarks[
nIndex].mbMarkNote),
"wrong note found");
238 if (!aItr->mpTextHelper)
240 xAccessible = aItr->mpTextHelper->GetChild(aParaFound.mnIndex + aItr->mpTextHelper->GetStartIndex());
244 OSL_FAIL(
"wrong note found");
250 ScAccNotes::iterator aEndItr =
maNotes.end();
251 ScParaFound aParaFound(
nIndex);
252 ScAccNotes::iterator aItr = std::find_if(
maNotes.begin(), aEndItr, aParaFound);
255 if (!aItr->mpTextHelper)
257 xAccessible = aItr->mpTextHelper->GetChild(aParaFound.mnIndex + aItr->mpTextHelper->GetStartIndex());
270 sal_Int32 mnParagraphs;
271 explicit ScPointFound(
const Point& rPoint) :
maPoint(rPoint,
Size(0, 0)), mnParagraphs(0) {}
272 bool operator() (
const ScAccNote& rNote)
275 if (
maPoint.Contains(rNote.maRect))
278 mnParagraphs += rNote.mnParaCount;
287 uno::Reference<XAccessible> xAccessible;
289 ScPointFound aPointFound(
Point(rPoint.X, rPoint.Y));
291 ScAccNotes::iterator aEndItr =
maMarks.end();
292 ScAccNotes::iterator aItr = std::find_if(
maMarks.begin(), aEndItr, aPointFound);
296 aItr = std::find_if(
maNotes.begin(), aEndItr, aPointFound);
300 if (!aItr->mpTextHelper)
301 aItr->mpTextHelper =
CreateTextHelper(aItr->maNoteText, aItr->maRect, aItr->maNoteCell, aItr->mbMarkNote, aPointFound.mnParagraphs +
mnOffset);
302 xAccessible = aItr->mpTextHelper->GetAt(rPoint);
310 OSL_ENSURE(aCell1.
Tab() == aCell2.
Tab(),
"the notes should be on the same table");
312 if (aCell1 != aCell2)
314 if (aCell1.
Row() == aCell2.
Row())
315 nResult = (aCell1.
Col() < aCell2.
Col()) ? -1 : 1;
317 nResult = (aCell1.
Row() < aCell2.
Row()) ? -1 : 1;
324 if (rNote.mpTextHelper)
325 for (sal_Int32
i = 0;
i < rNote.mnParaCount; ++
i)
326 rVector.push_back(rNote.mpTextHelper->GetChild(
i + rNote.mpTextHelper->GetStartIndex()));
335 rNewNotes.reserve(
nCount);
337 sal_Int32 nParagraphs(0);
342 aNote.mbMarkNote = bMark;
344 aNote.mnParaCount = 1;
345 ScAccNotes::iterator aItr = rOldNotes.begin();
346 ScAccNotes::iterator aEndItr = rOldNotes.end();
347 bool bAddNote(
false);
360 aNote.maNoteText = pNote->GetText();
365 nCompare =
CompareCell(aNote.maNoteCell, aItr->maNoteCell);
368 if (aNote.maNoteText == aItr->maNoteText)
370 aNote.mpTextHelper = aItr->mpTextHelper;
371 if (aNote.maRect != aItr->maRect)
373 aNote.mpTextHelper->SetOffset(aNote.maRect.TopLeft());
374 aNote.mpTextHelper->UpdateChildren();
381 aNote.mpTextHelper =
CreateTextHelper(aNote.maNoteText, aNote.maRect, aNote.maNoteCell, aNote.mbMarkNote, nParagraphs +
mnOffset);
382 if (aNote.mpTextHelper)
383 aNote.mnParaCount = aNote.mpTextHelper->GetChildCount();
386 delete aItr->mpTextHelper;
387 aItr->mpTextHelper =
nullptr;;
396 else if (nCompare < 0)
398 aNote.mpTextHelper =
CreateTextHelper(aNote.maNoteText, aNote.maRect, aNote.maNoteCell, aNote.mbMarkNote, nParagraphs +
mnOffset);
399 if (aNote.mpTextHelper)
400 aNote.mnParaCount = aNote.mpTextHelper->GetChildCount();
409 delete aItr->mpTextHelper;
410 aItr->mpTextHelper =
nullptr;
419 nParagraphs += aNote.mnParaCount;
420 rNewNotes.push_back(aNote);
435 void operator() (
const uno::Reference<XAccessible>& xAccessible)
const
439 AccessibleEventObject
aEvent;
440 aEvent.EventId = AccessibleEventId::CHILD;
441 aEvent.Source = uno::Reference< XAccessibleContext >(mpAccDoc);
442 aEvent.OldValue <<= xAccessible;
454 void operator() (
const uno::Reference<XAccessible>& xAccessible)
const
458 AccessibleEventObject
aEvent;
459 aEvent.EventId = AccessibleEventId::CHILD;
460 aEvent.Source = uno::Reference< XAccessibleContext >(mpAccDoc);
461 aEvent.NewValue <<= xAccessible;
485 std::for_each(aOldParas.begin(), aOldParas.end(), ScChildGone(
mpAccDoc));
486 std::for_each(aNewParas.begin(), aNewParas.end(), ScChildNew(
mpAccDoc));
502 ScIAccessibleViewForwarder();
521ScIAccessibleViewForwarder::ScIAccessibleViewForwarder()
522 : mpViewShell(nullptr), mpAccDoc(nullptr)
526ScIAccessibleViewForwarder::ScIAccessibleViewForwarder(
ScPreviewShell* pViewShell,
529 : mpViewShell(pViewShell),
553Point ScIAccessibleViewForwarder::LogicToPixel (
const Point& rPoint)
const
558 if (pWin && mpAccDoc)
561 aPoint = pWin->
LogicToPixel(rPoint, maMapMode) + aRect.TopLeft();
567Size ScIAccessibleViewForwarder::LogicToPixel (
const Size& rSize)
const
585 ScShapeChild(ScShapeChild
const &) =
delete;
586 ScShapeChild(ScShapeChild &&) =
default;
588 ScShapeChild & operator =(ScShapeChild
const &) =
delete;
589 ScShapeChild & operator =(ScShapeChild && other) {
590 std::swap(mpAccShape, other.mpAccShape);
591 mxShape = std::move(other.mxShape);
592 mnRangeId = other.mnRangeId;
597 css::uno::Reference< css::drawing::XShape >
mxShape;
603ScShapeChild::~ScShapeChild()
607 mpAccShape->dispose();
613struct ScShapeChildLess
615 bool operator()(
const ScShapeChild& rChild1,
const ScShapeChild& rChild2)
const
618 if (rChild1.mxShape.is() && rChild2.mxShape.is())
619 bResult = (rChild1.mxShape.get() < rChild2.mxShape.get());
632 ScShapeRange() =
default;
633 ScShapeRange(ScShapeRange
const &) =
delete;
634 ScShapeRange(ScShapeRange &&) =
default;
635 ScShapeRange & operator =(ScShapeRange
const &) =
delete;
636 ScShapeRange & operator =(ScShapeRange &&) =
default;
641 ScIAccessibleViewForwarder maViewForwarder;
657 const css::uno::Reference< css::drawing::XShape >& _rxShape,
659 const ::accessibility::AccessibleShapeTreeInfo& _rShapeTreeInfo
684 void FindChanged(ScShapeRange& aOld, ScShapeRange& aNew)
const;
697 mpViewShell(pViewShell),
704 ScShapeChildVec::iterator aOldItr = rOld.begin();
705 ScShapeChildVec::iterator aOldEnd = rOld.end();
706 ScShapeChildVec::const_iterator aNewItr = rNew.begin();
707 ScShapeChildVec::const_iterator aNewEnd = rNew.end();
708 uno::Reference<XAccessible> xAcc;
709 while ((aNewItr != aNewEnd) && (aOldItr != aOldEnd))
711 if (aNewItr->mxShape.get() == aOldItr->mxShape.get())
716 else if (aNewItr->mxShape.get() < aOldItr->mxShape.get())
719 AccessibleEventObject
aEvent;
721 aEvent.EventId = AccessibleEventId::CHILD;
730 AccessibleEventObject
aEvent;
732 aEvent.EventId = AccessibleEventId::CHILD;
739 while (aOldItr != aOldEnd)
742 AccessibleEventObject
aEvent;
744 aEvent.EventId = AccessibleEventId::CHILD;
750 while (aNewItr != aNewEnd)
753 AccessibleEventObject
aEvent;
755 aEvent.EventId = AccessibleEventId::CHILD;
784 struct ScVisAreaChanged
786 void operator() (
const ScShapeChild& rAccShapeData)
const
788 if (rAccShapeData.mpAccShape.is())
790 rAccShapeData.mpAccShape->ViewForwarderChanged();
800 ScVisAreaChanged aVisAreaChanged;
801 std::for_each(shape.maBackShapes.begin(), shape.maBackShapes.end(), aVisAreaChanged);
802 std::for_each(shape.maControls.begin(), shape.maControls.end(), aVisAreaChanged);
803 std::for_each(shape.maForeShapes.begin(), shape.maForeShapes.end(), aVisAreaChanged);
810 const css::uno::Reference< css::drawing::XShape >& ,
811 const tools::Long , const ::accessibility::AccessibleShapeTreeInfo& )
813 OSL_FAIL(
"should not be called in the page preview");
832 FillShapes(aPixelPaintRect, aMapMode, nRangeId);
840 nCount += shape.maBackShapes.size();
846 uno::Reference<XAccessible> xAccessible;
849 sal_Int32
nCount(rShapeRange.maBackShapes.size());
853 if (xAccessible.is())
858 throw lang::IndexOutOfBoundsException();
867 nCount += shape.maForeShapes.size();
873 uno::Reference<XAccessible> xAccessible;
876 sal_Int32
nCount(rShapeRange.maForeShapes.size());
880 if (xAccessible.is())
885 throw lang::IndexOutOfBoundsException();
894 nCount += shape.maControls.size();
900 uno::Reference<XAccessible> xAccessible;
903 sal_Int32
nCount(rShapeRange.maControls.size());
907 if (xAccessible.is())
912 throw lang::IndexOutOfBoundsException();
919struct ScShapePointFound
922 explicit ScShapePointFound(
const awt::Point& rPoint) :
maPoint(
VCLPoint(rPoint)) {}
923 bool operator() (
const ScShapeChild& rShape)
936 uno::Reference<XAccessible> xAcc;
938 for(
const auto& rShapeRange : maShapeRanges)
940 ScShapeChildVec::const_iterator aFindItr = std::find_if(rShapeRange.maForeShapes.begin(), rShapeRange.maForeShapes.end(), ScShapePointFound(rPoint));
941 if (aFindItr != rShapeRange.maForeShapes.end())
942 xAcc = GetAccShape(*aFindItr);
945 ScShapeChildVec::const_iterator aCtrlItr = std::find_if(rShapeRange.maControls.begin(), rShapeRange.maControls.end(), ScShapePointFound(rPoint));
946 if (aCtrlItr != rShapeRange.maControls.end())
947 xAcc = GetAccShape(*aCtrlItr);
959 uno::Reference<XAccessible> xAcc;
963 ScShapeChildVec::const_iterator aFindItr = std::find_if(rShapeRange.maBackShapes.begin(), rShapeRange.maBackShapes.end(), ScShapePointFound(rPoint));
964 if (aFindItr != rShapeRange.maBackShapes.end())
975 if (!rShape.mpAccShape.is())
988 if (rShape.mpAccShape.is())
990 rShape.mpAccShape->Init();
994 return rShape.mpAccShape.get();
1004 OSL_ENSURE(nRangeId <
maShapeRanges.size(),
"this is not a valid range for draw objects");
1007 if (!(pPage && pWin))
1010 bool bForeAdded(
false);
1011 bool bBackAdded(
false);
1012 bool bControlAdded(
false);
1027 uno::Reference< drawing::XShape > xShape(pObj->
getUnoShape(), uno::UNO_QUERY);
1034 ScShapeChild aShape;
1035 aShape.mxShape = xShape;
1036 aShape.mnRangeId = nRangeId;
1039 maShapeRanges[nRangeId].maForeShapes.push_back(std::move(aShape));
1044 maShapeRanges[nRangeId].maBackShapes.push_back(std::move(aShape));
1049 maShapeRanges[nRangeId].maControls.push_back(std::move(aShape));
1050 bControlAdded =
true;
1054 OSL_FAIL(
"I don't know this layer.");
1077 pDrawPage = pDrawLayer->
GetPage(
static_cast<sal_uInt16
>(
static_cast<sal_Int16
>(nTab)));
1084struct ScPagePreviewCountData
1102 return nBackShapes + nHeaders + nTables + nNoteParagraphs + nFooters + nForeShapes + nControls;
1114 nNoteParagraphs( 0 ),
1148 const uno::Reference<XAccessible>& rxParent,
ScPreviewShell* pViewShell ) :
1150 mpViewShell(pViewShell)
1205 if (rHint.
GetId() == SfxHintId::ScDataChanged)
1210 uno::Reference<XAccessible> xAcc =
mpTable;
1211 AccessibleEventObject
aEvent;
1212 aEvent.EventId = AccessibleEventId::CHILD;
1213 aEvent.Source = uno::Reference< XAccessibleContext >(
this);
1214 aEvent.OldValue <<= xAcc;
1235 if (aCount.nTables > 0)
1238 sal_Int32
nIndex (aCount.nBackShapes + aCount.nHeaders);
1244 uno::Reference<XAccessible> xAcc =
mpTable;
1245 AccessibleEventObject
aEvent;
1246 aEvent.EventId = AccessibleEventId::CHILD;
1247 aEvent.Source = uno::Reference< XAccessibleContext >(
this);
1248 aEvent.NewValue <<= xAcc;
1254 else if (rHint.
GetId() == SfxHintId::ScAccVisAreaChanged)
1265 AccessibleEventObject
aEvent;
1266 aEvent.EventId = AccessibleEventId::VISIBLE_DATA_CHANGED;
1267 aEvent.Source = uno::Reference< XAccessibleContext >(
this);
1278 uno::Reference<XAccessible> xAccessible;
1287 if (!xAccessible.is())
1292 if ( !
mpTable.is() && (aCount.nTables > 0) )
1295 sal_Int32
nIndex (aCount.nBackShapes + aCount.nHeaders);
1303 if (!xAccessible.is())
1305 if (!xAccessible.is())
1329 if (!xAccessible.is())
1344 if (xAccessibleComponent.is())
1347 xAccessibleComponent->grabFocus();
1363 nRet = aCount.GetTotal();
1373 uno::Reference<XAccessible> xAccessible;
1380 if (
nIndex < aCount.nBackShapes )
1384 else if (
nIndex < aCount.nBackShapes + aCount.nHeaders )
1393 else if (
nIndex < aCount.nBackShapes + aCount.nHeaders + aCount.nTables )
1402 else if (
nIndex < aCount.nBackShapes + aCount.nHeaders + aCount.nNoteParagraphs )
1406 else if (
nIndex < aCount.nBackShapes + aCount.nHeaders + aCount.nTables + aCount.nNoteParagraphs + aCount.nFooters )
1416 sal_Int64 nIdx(
nIndex - (aCount.nBackShapes + aCount.nHeaders + aCount.nTables + aCount.nNoteParagraphs + aCount.nFooters));
1417 if (nIdx < aCount.nForeShapes)
1424 if ( !xAccessible.is() )
1425 throw lang::IndexOutOfBoundsException();
1434 sal_Int64 nParentStates = 0;
1437 uno::Reference<XAccessibleContext> xParentContext =
getAccessibleParent()->getAccessibleContext();
1438 nParentStates = xParentContext->getAccessibleStateSet();
1440 sal_Int64 nStateSet = 0;
1442 nStateSet |= AccessibleStateType::DEFUNC;
1446 nStateSet |= AccessibleStateType::ENABLED;
1447 nStateSet |= AccessibleStateType::OPAQUE;
1449 nStateSet |= AccessibleStateType::SHOWING;
1451 nStateSet |= AccessibleStateType::VISIBLE;
1460 return "ScAccessibleDocumentPagePreview";
1465 const css::uno::Sequence<OUString> vals {
"com.sun.star.AccessibleSpreadsheetPageView" };
1471uno::Sequence<sal_Int8> SAL_CALL
1474 return css::uno::Sequence<sal_Int8>();
1517 (nParentStates & AccessibleStateType::DEFUNC);
1530 mpNotesChildren->Init(aCount.aVisRect, aCount.nBackShapes + aCount.nHeaders);
1562 if (aFileName.isEmpty())
1565 if (!aFileName.isEmpty())
std::vector< ScShapeRange > ScShapeRangeVec
std::vector< uno::Reference< XAccessible > > ScXAccVector
std::vector< ScShapeChild > ScShapeChildVec
virtual sal_Bool SAL_CALL containsPoint(const css::awt::Point &rPoint) override
===== XAccessibleComponent ============================================
void IsObjectValid() const
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext() override
===== XAccessible =====================================================
virtual void SAL_CALL disposing() override
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
Returns a list of all supported services.
void CommitFocusLost() const
Calls all FocusListener to tell they that the focus is lost.
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
===== SfxListener =====================================================
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent() override
Return a reference to the parent.
void CommitFocusGained() const
Calls all FocusListener to tell they that the focus is gained.
void CommitChange(const css::accessibility::AccessibleEventObject &rEvent) const
Calls all Listener to tell they the change.
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
Returns a list of all supported services.
rtl::Reference< ScAccessiblePreviewTable > mpTable
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override
===== XTypeProvider ===================================================
virtual OUString SAL_CALL getAccessibleName() override
Return the object's current name.
virtual OUString createAccessibleName() override
Return the object's current name.
rtl::Reference< ScAccessiblePageHeader > mpFooter
ScShapeChildren * GetShapeChildren()
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint(const css::awt::Point &rPoint) override
===== XAccessibleComponent ============================================
ScNotesChildren * GetNotesChildren()
virtual void SAL_CALL disposing() override
ScPreviewShell * mpViewShell
virtual tools::Rectangle GetBoundingBox() const override
Return the object's current bounding box relative to the parent object.
virtual sal_Int64 SAL_CALL getAccessibleChildCount() override
===== XAccessibleContext ==============================================
virtual OUString createAccessibleDescription() override
===== internal ========================================================
std::unique_ptr< ScNotesChildren > mpNotesChildren
virtual void SAL_CALL grabFocus() override
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild(sal_Int64 nIndex) override
Return the specified child or NULL if index is invalid.
rtl::Reference< ScAccessiblePageHeader > mpHeader
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
===== SfxListener =====================================================
virtual sal_Int64 SAL_CALL getAccessibleStateSet() override
Return the set of current states.
virtual tools::Rectangle GetBoundingBoxOnScreen() const override
Return the object's current bounding box relative to the desktop.
virtual OUString SAL_CALL getImplementationName() override
===== XServiceInfo ====================================================
virtual ~ScAccessibleDocumentPagePreview() override
ScAccessibleDocumentPagePreview(const css::uno::Reference< css::accessibility::XAccessible > &rxParent, ScPreviewShell *pViewShell)
std::unique_ptr< ScShapeChildren > mpShapeChildren
SC_DLLPUBLIC ScPostIt * GetNote(const ScAddress &rPos)
SC_DLLPUBLIC ScDrawLayer * GetDrawLayer()
SfxObjectShell * GetDocumentShell() const
ScPreviewShell * mpViewShell
sal_Int32 GetChildrenCount() const
void Init(const tools::Rectangle &rVisRect, sal_Int32 nOffset)
sal_Int32 CheckChanges(const ScPreviewLocationData &rData, const tools::Rectangle &rVisRect, bool bMark, ScAccNotes &rOldNotes, ScAccNotes &rNewNotes, ScXAccVector &rOldParas, ScXAccVector &rNewParas)
uno::Reference< XAccessible > GetChild(sal_Int32 nIndex) const
::accessibility::AccessibleTextHelper * CreateTextHelper(const OUString &rString, const tools::Rectangle &rVisRect, const ScAddress &aCellPos, bool bMarkNote, sal_Int32 nChildOffset) const
uno::Reference< XAccessible > GetAt(const awt::Point &rPoint) const
std::vector< ScAccNote > ScAccNotes
static void CollectChildren(const ScAccNote &rNote, ScXAccVector &rVector)
sal_Int32 AddNotes(const ScPreviewLocationData &rData, const tools::Rectangle &rVisRect, bool bMark, ScAccNotes &rNotes)
ScNotesChildren(ScPreviewShell *pViewShell, ScAccessibleDocumentPagePreview *pAccDoc)
void DataChanged(const tools::Rectangle &rVisRect)
static sal_Int8 CompareCell(const ScAddress &aCell1, const ScAddress &aCell2)
ScDocument * GetDocument() const
ScAccessibleDocumentPagePreview * mpAccDoc
Additional class containing cell annotation data.
bool GetHeaderPosition(tools::Rectangle &rHeaderRect) const
bool GetNoteInRange(const tools::Rectangle &rVisiblePixel, tools::Long nIndex, bool bNoteMarks, ScAddress &rCellPos, tools::Rectangle &rNoteRect) const
sal_uInt16 GetDrawRanges() const
bool HasCellsInRange(const tools::Rectangle &rVisiblePixel) const
tools::Long GetNoteCountInRange(const tools::Rectangle &rVisiblePixel, bool bNoteMarks) const
bool GetFooterPosition(tools::Rectangle &rFooterRect) const
SCTAB GetPrintTab() const
void GetDrawRange(sal_uInt16 nPos, tools::Rectangle &rPixelRect, MapMode &rMapMode, sal_uInt8 &rRangeId) const
const ScPreviewLocationData & GetLocationData()
void AddAccessibilityObject(SfxListener &rObject)
ScDocument & GetDocument()
void RemoveAccessibilityObject(SfxListener &rObject)
FmFormView * GetDrawView()
void FillShapes(const tools::Rectangle &aPixelPaintRect, const MapMode &aMapMode, sal_uInt8 nRangeId)
void Init()
===== Internal ========================================================
uno::Reference< XAccessible > GetControl(sal_Int32 nIndex) const
ScAccessibleDocumentPagePreview * mpAccDoc
uno::Reference< XAccessible > GetForegroundShapeAt(const awt::Point &rPoint) const
uno::Reference< XAccessible > GetBackShape(sal_Int32 nIndex) const
void VisAreaChanged() const
SdrPage * GetDrawPage() const
uno::Reference< XAccessible > GetForeShape(sal_Int32 nIndex) const
ScShapeRangeVec maShapeRanges
ScPreviewShell * mpViewShell
ScShapeChildren(ScPreviewShell *pViewShell, ScAccessibleDocumentPagePreview *pAccDoc)
sal_Int32 GetControlCount() const
void FindChanged(ScShapeChildVec &aOld, ScShapeChildVec &aNew) const
uno::Reference< XAccessible > GetBackgroundShapeAt(const awt::Point &rPoint) const
sal_Int32 GetForeShapeCount() const
sal_Int32 GetBackShapeCount() const
virtual bool ReplaceChild(::accessibility::AccessibleShape *pCurrentChild, const css::uno::Reference< css::drawing::XShape > &_rxShape, const tools::Long _nIndex, const ::accessibility::AccessibleShapeTreeInfo &_rShapeTreeInfo) override
===== IAccessibleParent ==============================================
::accessibility::AccessibleShape * GetAccShape(const ScShapeChild &rShape) const
const SdrPage * GetPage(sal_uInt16 nPgNum) const
sal_uInt16 GetPageCount() const
SdrObject * GetObj(size_t nNum) const
size_t GetObjCount() const
virtual css::uno::Reference< css::drawing::XShape > getUnoShape()
virtual SdrLayerID GetLayer() const
const OUString & GetName() const
SfxMedium * GetMedium() const
OUString GetTitle(sal_uInt16 nMaxLen=0) const
vcl::Window * GetWindow() const
void SetViewForwarder(const IAccessibleViewForwarder *pViewForwarder)
void SetSdrView(SdrView *pView)
void SetWindow(vcl::Window *pWindow)
void SetController(const css::uno::Reference< css::frame::XController > &rxController)
void SetStartIndex(sal_Int32 nOffset)
void SetEventSource(const css::uno::Reference< css::accessibility::XAccessible > &rInterface)
void SetOffset(const Point &rPoint)
virtual Point LogicToPixel(const Point &rPoint) const=0
virtual tools::Rectangle GetVisibleArea() const=0
rtl::Reference< AccessibleShape > CreateAccessibleObject(const AccessibleShapeInfo &rShapeInfo, const AccessibleShapeTreeInfo &rShapeTreeInfo) const
static ShapeTypeHandler & Instance()
tools::Rectangle GetWindowExtentsAbsolute() const
Point LogicToPixel(const Point &rLogicPt) const
vcl::Window * GetWindow(GetWindowType nType) const
vcl::Window * GetAccessibleParentWindow() const
Point PixelToLogic(const Point &rDevicePt) const
Size GetOutputSizePixel() const
tools::Rectangle GetWindowExtentsRelative(const vcl::Window &rRelativeWindow) const
inline ::tools::Rectangle VCLRectangle(const css::awt::Rectangle &rAWTRect)
inline ::Size VCLSize(const css::awt::Size &rAWTSize)
inline ::Point VCLPoint(const css::awt::Point &rAWTPoint)
constexpr SdrLayerID SC_LAYER_FRONT(0)
constexpr SdrLayerID SC_LAYER_INTERN(2)
constexpr SdrLayerID SC_LAYER_BACK(1)
constexpr SdrLayerID SC_LAYER_CONTROLS(3)
css::uno::Sequence< T > concatSequences(const css::uno::Sequence< T > &rS1, const Ss &... rSn)
#define SFX_TITLE_APINAME
#define SC_PREVIEW_MAXRANGES
OUString ScResId(TranslateId aId)
uno::Reference< drawing::XShape > const mxShape
constexpr OUStringLiteral STR_ACC_PREVIEWDOC_DESCR
bool anyOf(strong_int v) const