Kaydet (Commit) 57a23fcb authored tarafından Caolán McNamara's avatar Caolán McNamara

allow a OutputDevice parent where that is sufficient

Change-Id: I2920ea1a82de5eacbfeceafbb3c63693dd4365db
Reviewed-on: https://gerrit.libreoffice.org/72414
Tested-by: Jenkins
Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst aaa44dc0
......@@ -50,7 +50,7 @@ AccessibleChartShape::AccessibleChartShape(
m_aShapeTreeInfo.SetSdrView( rAccInfo.m_pSdrView );
m_aShapeTreeInfo.SetController( nullptr );
m_aShapeTreeInfo.SetWindow( VCLUnoHelper::GetWindow( rAccInfo.m_xWindow ) );
m_aShapeTreeInfo.SetDevice( VCLUnoHelper::GetWindow( rAccInfo.m_xWindow ) );
m_aShapeTreeInfo.SetViewForwarder( rAccInfo.m_pViewForwarder );
::accessibility::ShapeTypeHandler& rShapeHandler = ::accessibility::ShapeTypeHandler::Instance();
......
......@@ -22,7 +22,7 @@
#include <com/sun/star/uno/Reference.hxx>
#include <svx/svxdllapi.h>
#include <vcl/vclptr.hxx>
#include <vcl/window.hxx>
namespace com { namespace sun { namespace star {
namespace accessibility { class XAccessibleComponent; }
......@@ -31,7 +31,6 @@ namespace com { namespace sun { namespace star {
} } }
class SdrView;
namespace vcl { class Window; }
namespace accessibility {
......@@ -135,13 +134,19 @@ public:
/** Set the window that is used to construct SvxTextEditSources which in
turn is used to create accessible edit engines.
*/
void SetWindow (vcl::Window* pWindow);
void SetDevice(OutputDevice* pWindow);
/** Return the current Window.
@return
The returned value may be NULL.
*/
vcl::Window* GetWindow() const { return mpWindow;}
vcl::Window* GetWindow() const
{
if (mpWindow && mpWindow->GetOutDevType() == OUTDEV_WINDOW)
return static_cast<vcl::Window*>(mpWindow.get());
return nullptr;
}
OutputDevice* GetDevice() const { return mpWindow;}
/** The view forwarder allows the transformation between internal
and pixel coordinates and can be asked for the visible area.
......@@ -183,7 +188,7 @@ private:
/** This window is necessary to construct an SvxTextEditSource which in
turn is used to create an accessible edit engine.
*/
VclPtr<vcl::Window> mpWindow;
VclPtr<OutputDevice> mpWindow;
/** The view forwarder allows the transformation between internal
and pixel coordinates and can be asked for the visible area.
......
......@@ -317,7 +317,7 @@ ScChildrenShapes::ScChildrenShapes(ScAccessibleDocument* pAccessibleDocument, Sc
maShapeTreeInfo.SetModelBroadcaster( new ScDrawModelBroadcaster(rViewData.GetDocument()->GetDrawLayer()) );
maShapeTreeInfo.SetSdrView(rViewData.GetScDrawView());
maShapeTreeInfo.SetController(nullptr);
maShapeTreeInfo.SetWindow(pViewShell->GetWindowByPos(meSplitPos));
maShapeTreeInfo.SetDevice(pViewShell->GetWindowByPos(meSplitPos));
maShapeTreeInfo.SetViewForwarder(mpAccessibleDocument);
}
}
......@@ -350,7 +350,7 @@ void ScChildrenShapes::SetDrawBroadcaster()
maShapeTreeInfo.SetModelBroadcaster( new ScDrawModelBroadcaster(rViewData.GetDocument()->GetDrawLayer()) );
maShapeTreeInfo.SetSdrView(rViewData.GetScDrawView());
maShapeTreeInfo.SetController(nullptr);
maShapeTreeInfo.SetWindow(mpViewShell->GetWindowByPos(meSplitPos));
maShapeTreeInfo.SetDevice(mpViewShell->GetWindowByPos(meSplitPos));
maShapeTreeInfo.SetViewForwarder(mpAccessibleDocument);
}
}
......
......@@ -919,7 +919,7 @@ uno::Reference<XAccessible> ScShapeChildren::GetBackgroundShapeAt(const awt::Poi
::accessibility::AccessibleShapeTreeInfo aShapeTreeInfo;
aShapeTreeInfo.SetSdrView(mpViewShell->GetPreview()->GetDrawView());
aShapeTreeInfo.SetController(nullptr);
aShapeTreeInfo.SetWindow(mpViewShell->GetWindow());
aShapeTreeInfo.SetDevice(mpViewShell->GetWindow());
aShapeTreeInfo.SetViewForwarder(&(maShapeRanges[rShape.mnRangeId].maViewForwarder));
rShape.mpAccShape = rShapeHandler.CreateAccessibleObject(aShapeInfo, aShapeTreeInfo);
if (rShape.mpAccShape.is())
......
......@@ -80,7 +80,7 @@ AccessibleDocumentViewBase::AccessibleDocumentViewBase (
mxModel, uno::UNO_QUERY));
maShapeTreeInfo.SetController (mxController);
maShapeTreeInfo.SetSdrView (pViewShell->GetView());
maShapeTreeInfo.SetWindow (pSdWindow);
maShapeTreeInfo.SetDevice (pSdWindow);
maShapeTreeInfo.SetViewForwarder (&maViewForwarder);
mxWindow = ::VCLUnoHelper::GetInterface (pSdWindow);
......
......@@ -189,7 +189,7 @@ void AccessibleControlShape::Init()
// I'm aware of at the moment .....
// get the control which belongs to our model (relative to our view)
const OutputDevice* pViewWindow = maShapeTreeInfo.GetWindow();
const OutputDevice* pViewWindow = maShapeTreeInfo.GetDevice();
SdrUnoObj* pUnoObjectImpl = dynamic_cast<SdrUnoObj*>( GetSdrObjectFromXShape(mxShape) );
SdrView* pView = maShapeTreeInfo.GetSdrView();
OSL_ENSURE( pView && pViewWindow && pUnoObjectImpl, "AccessibleControlShape::Init: no view, or no view window, no SdrUnoObj!" );
......@@ -637,7 +637,7 @@ void SAL_CALL AccessibleControlShape::disposing()
if ( m_bWaitingForControl )
{
OSL_FAIL( "AccessibleControlShape::disposing: this should never happen!" );
Reference< XContainer > xContainer = lcl_getControlContainer( maShapeTreeInfo.GetWindow(), maShapeTreeInfo.GetSdrView() );
Reference< XContainer > xContainer = lcl_getControlContainer( maShapeTreeInfo.GetDevice(), maShapeTreeInfo.GetSdrView() );
if ( xContainer.is() )
{
m_bWaitingForControl = false;
......
......@@ -72,14 +72,12 @@ AccessibleShapeTreeInfo& AccessibleShapeTreeInfo::operator= (const AccessibleSha
return *this;
}
AccessibleShapeTreeInfo::~AccessibleShapeTreeInfo()
{
SolarMutexGuard g;
mpWindow.reset();
}
void AccessibleShapeTreeInfo::SetDocumentWindow (
const Reference<XAccessibleComponent>& rxDocumentWindow)
{
......@@ -93,32 +91,27 @@ void AccessibleShapeTreeInfo::SetModelBroadcaster (
mxModelBroadcaster = rxModelBroadcaster;
}
void AccessibleShapeTreeInfo::SetSdrView (SdrView* pView)
{
mpView = pView;
}
void AccessibleShapeTreeInfo::SetController (
const Reference<frame::XController>& rxController)
{
mxController = rxController;
}
void AccessibleShapeTreeInfo::SetWindow (vcl::Window* pWindow)
void AccessibleShapeTreeInfo::SetDevice(OutputDevice* pDevice)
{
mpWindow = pWindow;
mpWindow = pDevice;
}
void AccessibleShapeTreeInfo::SetViewForwarder (const IAccessibleViewForwarder* pViewForwarder)
{
mpViewForwarder = pViewForwarder;
}
} // end of namespace accessibility
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
......@@ -96,7 +96,7 @@ SvxGraphCtrlAccessibleContext::SvxGraphCtrlAccessibleContext(
}
maTreeInfo.SetSdrView( mpView );
maTreeInfo.SetWindow( mpControl );
maTreeInfo.SetDevice( mpControl );
maTreeInfo.SetViewForwarder( this );
}
......
......@@ -243,7 +243,7 @@ public:
: maMap()
{
maInfo.SetSdrView( pMap->GetShell()->GetDrawView() );
maInfo.SetWindow( pMap->GetShell()->GetWin() );
maInfo.SetDevice( pMap->GetShell()->GetWin() );
maInfo.SetViewForwarder( pMap );
uno::Reference < document::XEventBroadcaster > xModelBroadcaster =
new SwDrawModellListener_Impl(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment