[Libreoffice-commits] core.git: basctl/source canvas/source canvas/workben chart2/source compilerplugins/clang cppcanvas/qa cppcanvas/source dbaccess/source desktop/source editeng/source forms/source framework/source include/sfx2 include/svtools include/toolkit include/vcl qadevOOo/tests reportdesign/source sc/source sd/source sfx2/source starmath/source svtools/source svx/source sw/source toolkit/source vcl/headless vcl/inc vcl/qa vcl/source vcl/unx vcl/workben
Noel Grandin (via logerrit)
logerrit at kemper.freedesktop.org
Mon May 17 10:57:54 UTC 2021
basctl/source/basicide/baside2b.cxx | 8
basctl/source/basicide/baside3.cxx | 2
basctl/source/basicide/layout.cxx | 4
basctl/source/dlged/dlged.cxx | 4
basctl/source/dlged/dlgedfunc.cxx | 18
basctl/source/dlged/dlgedobj.cxx | 2
basctl/source/dlged/dlgedview.cxx | 2
canvas/source/cairo/cairo_canvas.cxx | 2
canvas/source/cairo/cairo_spritecanvas.cxx | 2
canvas/source/cairo/cairo_spritedevicehelper.cxx | 2
canvas/source/directx/dx_canvas.cxx | 1
canvas/source/vcl/canvas.cxx | 1
canvas/source/vcl/outdevholder.hxx | 1
canvas/source/vcl/spritecanvashelper.cxx | 4
canvas/source/vcl/windowoutdevholder.hxx | 4
canvas/workben/canvasdemo.cxx | 4
chart2/source/controller/accessibility/AccessibleTextHelper.cxx | 2
chart2/source/controller/main/ChartController.cxx | 2
chart2/source/controller/main/ChartController_Window.cxx | 12
chart2/source/controller/main/ChartWindow.cxx | 4
compilerplugins/clang/vclwidgets.cxx | 12
cppcanvas/qa/unit/test.cxx | 2
cppcanvas/source/wrapper/vclfactory.cxx | 2
dbaccess/source/ui/app/AppView.cxx | 2
dbaccess/source/ui/querydesign/JoinTableView.cxx | 2
dbaccess/source/ui/querydesign/TableWindow.cxx | 2
desktop/source/splash/splash.cxx | 6
editeng/source/editeng/editeng.cxx | 6
editeng/source/editeng/impedit.cxx | 8
editeng/source/editeng/impedit2.cxx | 2
editeng/source/editeng/impedit3.cxx | 3
editeng/source/uno/unoviwou.cxx | 4
forms/source/richtext/richtextimplcontrol.cxx | 6
framework/source/helper/vclstatusindicator.cxx | 2
include/sfx2/LokControlHandler.hxx | 4
include/svtools/brwbox.hxx | 4
include/toolkit/awt/vclxwindow.hxx | 10
include/vcl/outdev.hxx | 5
include/vcl/toolbox.hxx | 2
include/vcl/toolkit/ivctrl.hxx | 2
include/vcl/window.hxx | 179 ++++-
qadevOOo/tests/java/mod/_toolkit/AccessibleFixedText.java | 3
reportdesign/source/ui/inc/UITools.hxx | 2
reportdesign/source/ui/misc/UITools.cxx | 2
reportdesign/source/ui/report/DesignView.cxx | 2
reportdesign/source/ui/report/EndMarker.cxx | 4
reportdesign/source/ui/report/FixedTextColor.cxx | 2
reportdesign/source/ui/report/FormattedFieldBeautifier.cxx | 2
reportdesign/source/ui/report/ReportController.cxx | 6
reportdesign/source/ui/report/ReportSection.cxx | 2
reportdesign/source/ui/report/ScrollHelper.cxx | 2
reportdesign/source/ui/report/SectionView.cxx | 4
reportdesign/source/ui/report/StartMarker.cxx | 2
reportdesign/source/ui/report/dlgedfunc.cxx | 8
sc/source/ui/Accessibility/AccessibleEditObject.cxx | 2
sc/source/ui/app/scmod.cxx | 2
sc/source/ui/drawfunc/fuconpol.cxx | 6
sc/source/ui/drawfunc/fudraw.cxx | 4
sc/source/ui/drawfunc/fusel.cxx | 2
sc/source/ui/drawfunc/futext.cxx | 10
sc/source/ui/drawfunc/futext2.cxx | 2
sc/source/ui/unoobj/viewuno.cxx | 4
sc/source/ui/view/colrowba.cxx | 4
sc/source/ui/view/drawview.cxx | 2
sc/source/ui/view/gridwin.cxx | 26
sc/source/ui/view/gridwin2.cxx | 4
sc/source/ui/view/gridwin3.cxx | 2
sc/source/ui/view/gridwin4.cxx | 10
sc/source/ui/view/gridwin5.cxx | 2
sc/source/ui/view/gridwin_dbgutil.cxx | 2
sc/source/ui/view/hdrcont.cxx | 46 -
sc/source/ui/view/notemark.cxx | 8
sc/source/ui/view/olinewin.cxx | 32
sc/source/ui/view/preview.cxx | 82 +-
sc/source/ui/view/prevwsh.cxx | 4
sc/source/ui/view/spelldialog.cxx | 2
sc/source/ui/view/tabsplit.cxx | 2
sc/source/ui/view/tabview5.cxx | 10
sc/source/ui/view/tabvwsh2.cxx | 2
sc/source/ui/view/viewdata.cxx | 8
sc/source/ui/view/viewfun4.cxx | 4
sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx | 2
sd/source/ui/accessibility/AccessibleViewForwarder.cxx | 3
sd/source/ui/animations/motionpathtag.cxx | 4
sd/source/ui/annotations/annotationtag.cxx | 5
sd/source/ui/dlg/animobjs.cxx | 2
sd/source/ui/func/fuconbez.cxx | 4
sd/source/ui/func/fudraw.cxx | 6
sd/source/ui/func/fuediglu.cxx | 10
sd/source/ui/func/fusnapln.cxx | 2
sd/source/ui/func/futext.cxx | 4
sd/source/ui/slideshow/showwin.cxx | 34 -
sd/source/ui/slideshow/slideshow.cxx | 2
sd/source/ui/slideshow/slideshowimpl.cxx | 8
sd/source/ui/slidesorter/controller/SlideSorterController.cxx | 6
sd/source/ui/slidesorter/shell/SlideSorterViewShell.cxx | 8
sd/source/ui/slidesorter/view/SlideSorterView.cxx | 4
sd/source/ui/slidesorter/view/SlsInsertAnimator.cxx | 2
sd/source/ui/slidesorter/view/SlsInsertionIndicatorOverlay.cxx | 2
sd/source/ui/slidesorter/view/SlsLayeredDevice.cxx | 8
sd/source/ui/slidesorter/view/SlsPageObjectLayouter.cxx | 2
sd/source/ui/slidesorter/view/SlsPageObjectPainter.cxx | 2
sd/source/ui/unoidl/DrawController.cxx | 4
sd/source/ui/view/WindowUpdater.cxx | 4
sd/source/ui/view/drviews1.cxx | 2
sd/source/ui/view/drviews2.cxx | 2
sd/source/ui/view/drviews3.cxx | 2
sd/source/ui/view/drviews4.cxx | 4
sd/source/ui/view/drviews5.cxx | 12
sd/source/ui/view/drviewsa.cxx | 2
sd/source/ui/view/drviewsf.cxx | 2
sd/source/ui/view/drviewsh.cxx | 4
sd/source/ui/view/outlview.cxx | 4
sd/source/ui/view/sdview.cxx | 3
sd/source/ui/view/sdview4.cxx | 2
sd/source/ui/view/sdwindow.cxx | 6
sd/source/ui/view/viewoverlaymanager.cxx | 2
sd/source/ui/view/viewshe2.cxx | 16
sd/source/ui/view/viewshel.cxx | 4
sfx2/source/doc/doctemplates.cxx | 2
sfx2/source/sidebar/SidebarController.cxx | 2
starmath/source/document.cxx | 2
svtools/source/brwbox/brwbox1.cxx | 6
svtools/source/brwbox/brwbox2.cxx | 18
svtools/source/brwbox/brwbox3.cxx | 2
svtools/source/brwbox/datwin.cxx | 6
svtools/source/brwbox/editbrowsebox.cxx | 10
svtools/source/control/ruler.cxx | 16
svtools/source/control/tabbar.cxx | 38 -
svtools/source/table/tablecontrol.cxx | 2
svtools/source/table/tabledatawindow.cxx | 4
svx/source/accessibility/AccessibleControlShape.cxx | 6
svx/source/accessibility/AccessibleShape.cxx | 4
svx/source/accessibility/GraphCtlAccessibleContext.cxx | 2
svx/source/dialog/svxruler.cxx | 4
svx/source/fmcomp/gridcell.cxx | 12
svx/source/fmcomp/gridctrl.cxx | 6
svx/source/form/fmshell.cxx | 4
svx/source/form/fmshimp.cxx | 2
svx/source/form/fmview.cxx | 6
svx/source/form/fmvwimp.cxx | 14
svx/source/form/navigatortree.cxx | 4
svx/source/sdr/contact/viewobjectcontactofsdrmediaobj.cxx | 2
svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx | 8
svx/source/sdr/overlay/overlaymanager.cxx | 2
svx/source/sdr/overlay/overlaymanagerbuffered.cxx | 10
svx/source/svdraw/sdrpagewindow.cxx | 4
svx/source/svdraw/sdrpaintwindow.cxx | 6
svx/source/svdraw/svdedxv.cxx | 47 -
svx/source/svdraw/svdmrkv.cxx | 9
svx/source/svdraw/svdpntv.cxx | 18
svx/source/svdraw/svdview.cxx | 16
svx/source/table/accessiblecell.cxx | 2
svx/source/table/tablecontroller.cxx | 2
svx/source/tbxctrls/tbxcolorupdate.cxx | 2
sw/source/core/access/accmap.cxx | 6
sw/source/core/crsr/viscrs.cxx | 2
sw/source/core/doc/notxtfrm.cxx | 4
sw/source/core/frmedt/fecopy.cxx | 2
sw/source/core/layout/layact.cxx | 10
sw/source/core/layout/paintfrm.cxx | 4
sw/source/core/text/itratr.cxx | 2
sw/source/core/text/porrst.cxx | 2
sw/source/core/text/txtdrop.cxx | 2
sw/source/core/txtnode/fntcache.cxx | 4
sw/source/core/view/viewimp.cxx | 3
sw/source/core/view/viewsh.cxx | 32
sw/source/core/view/vnew.cxx | 10
sw/source/filter/html/htmlform.cxx | 2
sw/source/filter/html/htmlforw.cxx | 2
sw/source/uibase/docvw/PageBreakWin.cxx | 2
sw/source/uibase/docvw/edtwin.cxx | 14
sw/source/uibase/docvw/edtwin2.cxx | 2
sw/source/uibase/docvw/srcedtw.cxx | 6
sw/source/uibase/inc/srcedtw.hxx | 1
sw/source/uibase/misc/swruler.cxx | 2
sw/source/uibase/shells/txtcrsr.cxx | 4
sw/source/uibase/uiview/pview.cxx | 14
sw/source/uibase/uiview/view.cxx | 2
sw/source/uibase/uiview/viewport.cxx | 4
sw/source/uibase/uno/unotxvw.cxx | 4
sw/source/uibase/utlui/shdwcrsr.cxx | 12
toolkit/source/awt/vclxcontainer.cxx | 10
toolkit/source/awt/vclxwindow.cxx | 23
toolkit/source/awt/vclxwindows.cxx | 8
toolkit/source/controls/unocontrol.cxx | 4
toolkit/source/helper/btndlg.cxx | 2
vcl/headless/svpgdi.cxx | 13
vcl/inc/brdwin.hxx | 1
vcl/inc/svdata.hxx | 4
vcl/inc/window.h | 5
vcl/inc/windowdev.hxx | 82 ++
vcl/qa/cppunit/complextext.cxx | 4
vcl/qa/cppunit/outdev.cxx | 11
vcl/source/app/help.cxx | 8
vcl/source/app/salvtables.cxx | 25
vcl/source/app/svapp.cxx | 18
vcl/source/app/svdata.cxx | 1
vcl/source/app/svmain.cxx | 1
vcl/source/app/weldutils.cxx | 6
vcl/source/control/PriorityHBox.cxx | 6
vcl/source/control/PriorityMergedHBox.cxx | 4
vcl/source/control/button.cxx | 12
vcl/source/control/calendar.cxx | 2
vcl/source/control/combobox.cxx | 2
vcl/source/control/ctrl.cxx | 6
vcl/source/control/edit.cxx | 32
vcl/source/control/fixed.cxx | 38 -
vcl/source/control/fixedhyper.cxx | 4
vcl/source/control/imgctrl.cxx | 18
vcl/source/control/imivctl1.cxx | 6
vcl/source/control/imp_listbox.cxx | 26
vcl/source/control/ivctrl.cxx | 6
vcl/source/control/listbox.cxx | 6
vcl/source/control/notebookbar.cxx | 4
vcl/source/control/prgsbar.cxx | 4
vcl/source/control/scrbar.cxx | 46 -
vcl/source/control/spinbtn.cxx | 10
vcl/source/control/spinfld.cxx | 24
vcl/source/control/tabctrl.cxx | 6
vcl/source/edit/texteng.cxx | 2
vcl/source/edit/textview.cxx | 2
vcl/source/edit/vclmedit.cxx | 2
vcl/source/gdi/gdimtf.cxx | 6
vcl/source/gdi/impanmvw.cxx | 4
vcl/source/gdi/virdev.cxx | 2
vcl/source/outdev/font.cxx | 8
vcl/source/toolkit/group.cxx | 2
vcl/source/treelist/headbar.cxx | 30
vcl/source/treelist/svimpbox.cxx | 24
vcl/source/treelist/svlbitm.cxx | 8
vcl/source/treelist/svtabbx.cxx | 2
vcl/source/treelist/treelistbox.cxx | 6
vcl/source/uitest/uiobject.cxx | 4
vcl/source/window/accessibility.cxx | 2
vcl/source/window/brdwin.cxx | 26
vcl/source/window/bubblewindow.cxx | 20
vcl/source/window/clipping.cxx | 52 -
vcl/source/window/cursor.cxx | 4
vcl/source/window/decoview.cxx | 8
vcl/source/window/dndeventdispatcher.cxx | 2
vcl/source/window/dockmgr.cxx | 2
vcl/source/window/dockwin.cxx | 2
vcl/source/window/event.cxx | 4
vcl/source/window/floatwin.cxx | 6
vcl/source/window/globalization.cxx | 17
vcl/source/window/layout.cxx | 2
vcl/source/window/menu.cxx | 18
vcl/source/window/menubarwindow.cxx | 8
vcl/source/window/menufloatingwindow.cxx | 12
vcl/source/window/menuwindow.cxx | 2
vcl/source/window/mouse.cxx | 20
vcl/source/window/paint.cxx | 183 ++---
vcl/source/window/settings.cxx | 30
vcl/source/window/split.cxx | 12
vcl/source/window/stacking.cxx | 2
vcl/source/window/status.cxx | 10
vcl/source/window/syswin.cxx | 2
vcl/source/window/toolbox.cxx | 22
vcl/source/window/toolbox2.cxx | 8
vcl/source/window/window.cxx | 328 +++++-----
vcl/source/window/window2.cxx | 35 -
vcl/source/window/window3.cxx | 244 +++++++
vcl/source/window/winproc.cxx | 12
vcl/source/window/wrkwin.cxx | 2
vcl/unx/generic/gdi/salgdi.cxx | 4
vcl/unx/gtk3/gtkframe.cxx | 2
vcl/workben/mtfdemo.cxx | 2
vcl/workben/svptest.cxx | 2
vcl/workben/vcldemo.cxx | 20
270 files changed, 1766 insertions(+), 1271 deletions(-)
New commits:
commit 9090dc1f3b27195f5defd35586ac79357992be21
Author: Noel Grandin <noelgrandin at gmail.com>
AuthorDate: Mon Jan 18 18:27:19 2021 +0200
Commit: Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Mon May 17 12:56:51 2021 +0200
split OutputDevice from Window
as part of a longer-term goal of doing our
widget rendering only inside a top-level render-
context.
I moved all of the OutputDevice-related code that existed in vcl::Window
into a new subclass of OutputDevice called WindowOutputDevice.
Notes for further work
(*) not sure why we are getting an 1x1 surface in
SvpSalGraphics::releaseCairoContext, but to fix it I clamp
the size there
(*) might have to dump VCLXDevice, and move it's code down into VCLXWindow and VCLXVirtualDevice
(*) can we remove use of VCLXDevice in other places, in favour of just talking to the VCL code?
Change-Id: I105946377f5322677d6f7d0c1c23847178a720b6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113204
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/basctl/source/basicide/baside2b.cxx b/basctl/source/basicide/baside2b.cxx
index 5a1bae42fd93..7d06e117d072 100644
--- a/basctl/source/basicide/baside2b.cxx
+++ b/basctl/source/basicide/baside2b.cxx
@@ -1239,13 +1239,13 @@ void EditorWindow::ImplSetFont()
{
vcl::Font aTmpFont(OutputDevice::GetDefaultFont(DefaultFontType::FIXED,
Application::GetSettings().GetUILanguageTag().getLanguageType(),
- GetDefaultFontFlags::NONE, this));
+ GetDefaultFontFlags::NONE, GetOutDev()));
sFontName = aTmpFont.GetFamilyName();
}
Size aFontSize(0, officecfg::Office::Common::Font::SourceViewFont::FontHeight::get());
vcl::Font aFont(sFontName, aFontSize);
aFont.SetColor(rModulWindow.GetLayout().GetFontColor());
- SetPointFont(*this, aFont); // FIXME RenderContext
+ SetPointFont(*GetOutDev(), aFont); // FIXME RenderContext
aFont = GetFont();
rModulWindow.GetBreakPointWindow().SetFont(aFont);
@@ -1330,7 +1330,7 @@ void EditorWindow::ParagraphInsertedDeleted( sal_uLong nPara, bool bInserted )
rModulWindow.GetBreakPoints().AdjustBreakPoints( static_cast<sal_uInt16>(nPara)+1, bInserted );
tools::Long nLineHeight = GetTextHeight();
- Size aSz = rModulWindow.GetBreakPointWindow().GetOutputSize();
+ Size aSz = rModulWindow.GetBreakPointWindow().GetOutDev()->GetOutputSize();
tools::Rectangle aInvRect( Point( 0, 0 ), aSz );
tools::Long nY = nPara*nLineHeight - rModulWindow.GetBreakPointWindow().GetCurYOffset();
aInvRect.SetTop( nY );
@@ -1417,7 +1417,7 @@ void BreakPointWindow::ShowMarker(vcl::RenderContext& rRenderContext)
if (nMarkerPos == NoMarker)
return;
- Size const aOutSz = GetOutputSize();
+ Size const aOutSz = GetOutDev()->GetOutputSize();
tools::Long const nLineHeight = GetTextHeight();
Image aMarker = GetImage(OUString(bErrorMarker ? std::u16string_view(u"" RID_BMP_ERRORMARKER) : std::u16string_view(u"" RID_BMP_STEPMARKER)));
diff --git a/basctl/source/basicide/baside3.cxx b/basctl/source/basicide/baside3.cxx
index 69fc19b74329..b2ed314ebf25 100644
--- a/basctl/source/basicide/baside3.cxx
+++ b/basctl/source/basicide/baside3.cxx
@@ -1232,7 +1232,7 @@ void DialogWindow::InitSettings()
// FIXME RenderContext
const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings();
vcl::Font aFont = rStyleSettings.GetFieldFont();
- SetPointFont(*this, aFont);
+ SetPointFont(*GetOutDev(), aFont);
SetTextColor( rStyleSettings.GetFieldTextColor() );
SetTextFillColor();
diff --git a/basctl/source/basicide/layout.cxx b/basctl/source/basicide/layout.cxx
index 8ec80e8e20a4..e6b6676ed6c6 100644
--- a/basctl/source/basicide/layout.cxx
+++ b/basctl/source/basicide/layout.cxx
@@ -420,8 +420,8 @@ void Layout::SplittedSide::InitSplitter (Splitter& rSplitter)
rSplitter.SetSplitHdl(LINK(this, SplittedSide, SplitHdl));
// color
Color aColor = rLayout.GetSettings().GetStyleSettings().GetShadowColor();
- rSplitter.SetLineColor(aColor);
- rSplitter.SetFillColor(aColor);
+ rSplitter.GetOutDev()->SetLineColor(aColor);
+ rSplitter.GetOutDev()->SetFillColor(aColor);
}
diff --git a/basctl/source/dlged/dlged.cxx b/basctl/source/dlged/dlged.cxx
index 2d5154a6f8e0..34467260c140 100644
--- a/basctl/source/dlged/dlged.cxx
+++ b/basctl/source/dlged/dlged.cxx
@@ -198,7 +198,7 @@ DlgEditor::DlgEditor (
,m_xDocument( xModel )
{
pDlgEdModel->GetItemPool().FreezeIdRanges();
- pDlgEdView.reset(new DlgEdView(*pDlgEdModel, rWindow_, *this));
+ pDlgEdView.reset(new DlgEdView(*pDlgEdModel, *rWindow_.GetOutDev(), *this));
pDlgEdModel->SetScaleUnit( MapUnit::Map100thMM );
SdrLayerAdmin& rAdmin = pDlgEdModel->GetLayerAdmin();
@@ -274,7 +274,7 @@ void DlgEditor::InitScrollBars()
if ( !pHScroll || !pVScroll )
return;
- Size aOutSize = rWindow.GetOutputSize();
+ Size aOutSize = rWindow.GetOutDev()->GetOutputSize();
Size aPgSize = pDlgEdPage->GetSize();
pHScroll->SetRange( Range( 0, aPgSize.Width() ));
diff --git a/basctl/source/dlged/dlgedfunc.cxx b/basctl/source/dlged/dlgedfunc.cxx
index b16cf695a26a..593f0370f635 100644
--- a/basctl/source/dlged/dlgedfunc.cxx
+++ b/basctl/source/dlged/dlgedfunc.cxx
@@ -342,7 +342,7 @@ void DlgEdFuncInsert::MouseButtonDown( const MouseEvent& rMEvt )
SdrView& rView = rParent.GetView();
vcl::Window& rWindow = rParent.GetWindow();
- rView.SetActualWin(&rWindow);
+ rView.SetActualWin(rWindow.GetOutDev());
Point aPos = rWindow.PixelToLogic( rMEvt.GetPosPixel() );
sal_uInt16 nHitLog = static_cast<sal_uInt16>(rWindow.PixelToLogic(Size(3, 0)).Width());
@@ -378,7 +378,7 @@ bool DlgEdFuncInsert::MouseButtonUp( const MouseEvent& rMEvt )
SdrView& rView = rParent.GetView();
vcl::Window& rWindow = rParent.GetWindow();
- rView.SetActualWin(&rWindow);
+ rView.SetActualWin(rWindow.GetOutDev());
rWindow.ReleaseMouse();
@@ -408,7 +408,7 @@ void DlgEdFuncInsert::MouseMove( const MouseEvent& rMEvt )
{
SdrView& rView = rParent.GetView();
vcl::Window& rWindow = rParent.GetWindow();
- rView.SetActualWin(&rWindow);
+ rView.SetActualWin(rWindow.GetOutDev());
Point aPos = rWindow.PixelToLogic(rMEvt.GetPosPixel());
sal_uInt16 nHitLog = static_cast<sal_uInt16>(rWindow.PixelToLogic(Size(3, 0)).Width());
@@ -419,7 +419,7 @@ void DlgEdFuncInsert::MouseMove( const MouseEvent& rMEvt )
rView.MovAction(aPos);
}
- rWindow.SetPointer( rView.GetPreferredPointer( aPos, &rWindow, nHitLog ) );
+ rWindow.SetPointer( rView.GetPreferredPointer( aPos, rWindow.GetOutDev(), nHitLog ) );
}
DlgEdFuncSelect::DlgEdFuncSelect (DlgEditor& rParent_) :
@@ -436,7 +436,7 @@ void DlgEdFuncSelect::MouseButtonDown( const MouseEvent& rMEvt )
// get view from parent
SdrView& rView = rParent.GetView();
vcl::Window& rWindow = rParent.GetWindow();
- rView.SetActualWin(&rWindow);
+ rView.SetActualWin(rWindow.GetOutDev());
sal_uInt16 nDrgLog = static_cast<sal_uInt16>(rWindow.PixelToLogic(Size(3, 0)).Width());
sal_uInt16 nHitLog = static_cast<sal_uInt16>(rWindow.PixelToLogic(Size(3, 0)).Width());
@@ -497,7 +497,7 @@ bool DlgEdFuncSelect::MouseButtonUp( const MouseEvent& rMEvt )
// get view from parent
SdrView& rView = rParent.GetView();
vcl::Window& rWindow = rParent.GetWindow();
- rView.SetActualWin(&rWindow);
+ rView.SetActualWin(rWindow.GetOutDev());
Point aPnt = rWindow.PixelToLogic(rMEvt.GetPosPixel());
sal_uInt16 nHitLog = static_cast<sal_uInt16>(rWindow.PixelToLogic(Size(3, 0)).Width());
@@ -516,7 +516,7 @@ bool DlgEdFuncSelect::MouseButtonUp( const MouseEvent& rMEvt )
}
}
- rWindow.SetPointer( rView.GetPreferredPointer( aPnt, &rWindow, nHitLog ) );
+ rWindow.SetPointer( rView.GetPreferredPointer( aPnt, rWindow.GetOutDev(), nHitLog ) );
rWindow.ReleaseMouse();
return true;
@@ -526,7 +526,7 @@ void DlgEdFuncSelect::MouseMove( const MouseEvent& rMEvt )
{
SdrView& rView = rParent.GetView();
vcl::Window& rWindow = rParent.GetWindow();
- rView.SetActualWin(&rWindow);
+ rView.SetActualWin(rWindow.GetOutDev());
Point aPnt = rWindow.PixelToLogic(rMEvt.GetPosPixel());
sal_uInt16 nHitLog = static_cast<sal_uInt16>(rWindow.PixelToLogic(Size(3, 0)).Width());
@@ -540,7 +540,7 @@ void DlgEdFuncSelect::MouseMove( const MouseEvent& rMEvt )
rView.MovAction(aPnt_);
}
- rWindow.SetPointer( rView.GetPreferredPointer( aPnt, &rWindow, nHitLog ) );
+ rWindow.SetPointer( rView.GetPreferredPointer( aPnt, rWindow.GetOutDev(), nHitLog ) );
}
} // namespace basctl
diff --git a/basctl/source/dlged/dlgedobj.cxx b/basctl/source/dlged/dlgedobj.cxx
index e4047abace14..6353ddf9ecd6 100644
--- a/basctl/source/dlged/dlgedobj.cxx
+++ b/basctl/source/dlged/dlgedobj.cxx
@@ -152,7 +152,7 @@ uno::Reference< awt::XControl > DlgEdObj::GetControl() const
if (DlgEdForm const* pForm = GetDlgEdForm())
{
DlgEditor const& rEditor = pForm->GetDlgEditor();
- xControl = GetUnoControl(rEditor.GetView(), rEditor.GetWindow());
+ xControl = GetUnoControl(rEditor.GetView(), *rEditor.GetWindow().GetOutDev());
}
return xControl;
}
diff --git a/basctl/source/dlged/dlgedview.cxx b/basctl/source/dlged/dlgedview.cxx
index f9371b10bac3..0878596d8f41 100644
--- a/basctl/source/dlged/dlgedview.cxx
+++ b/basctl/source/dlged/dlgedview.cxx
@@ -58,7 +58,7 @@ void DlgEdView::MakeVisible( const tools::Rectangle& rRect, vcl::Window& rWin )
// visible area
MapMode aMap( rWin.GetMapMode() );
Point aOrg( aMap.GetOrigin() );
- Size aVisSize( rWin.GetOutputSize() );
+ Size aVisSize( rWin.GetOutDev()->GetOutputSize() );
tools::Rectangle RectTmp( Point(-aOrg.X(),-aOrg.Y()), aVisSize );
tools::Rectangle aVisRect( RectTmp );
diff --git a/canvas/source/cairo/cairo_canvas.cxx b/canvas/source/cairo/cairo_canvas.cxx
index 10edc0681843..5b727905673a 100644
--- a/canvas/source/cairo/cairo_canvas.cxx
+++ b/canvas/source/cairo/cairo_canvas.cxx
@@ -26,6 +26,7 @@
#include <tools/diagnose_ex.h>
#include <vcl/sysdata.hxx>
#include <vcl/skia/SkiaHelper.hxx>
+#include <vcl/window.hxx>
#include <cppuhelper/supportsservice.hxx>
#include "cairo_canvas.hxx"
@@ -68,7 +69,6 @@ namespace cairocanvas
sal_Int64 nPtr = 0;
maArguments[0] >>= nPtr;
OutputDevice* pOutDev = reinterpret_cast<OutputDevice*>(nPtr);
-
ENSURE_ARG_OR_THROW( pOutDev != nullptr,
"Canvas::initialize: invalid OutDev pointer" );
diff --git a/canvas/source/cairo/cairo_spritecanvas.cxx b/canvas/source/cairo/cairo_spritecanvas.cxx
index 91ac7c376b4d..562157f52c60 100644
--- a/canvas/source/cairo/cairo_spritecanvas.cxx
+++ b/canvas/source/cairo/cairo_spritecanvas.cxx
@@ -77,7 +77,7 @@ namespace cairocanvas
throw lang::NoSupportException(
"Parent window not VCL window, or canvas out-of-process!", nullptr);
- bool bHasCairo = pParentWindow->SupportsCairo();
+ bool bHasCairo = pParentWindow->GetOutDev()->SupportsCairo();
ENSURE_ARG_OR_THROW(bHasCairo,
"CairoSpriteCanvas::SpriteCanvas: No Cairo capability");
diff --git a/canvas/source/cairo/cairo_spritedevicehelper.cxx b/canvas/source/cairo/cairo_spritedevicehelper.cxx
index 825d6f343b43..f2d018937be2 100644
--- a/canvas/source/cairo/cairo_spritedevicehelper.cxx
+++ b/canvas/source/cairo/cairo_spritedevicehelper.cxx
@@ -46,7 +46,7 @@ namespace cairocanvas
bool bFullscreen )
{
DeviceHelper::init(rSpriteCanvas,
- rOutputWindow);
+ *rOutputWindow.GetOutDev());
mpSpriteCanvas = &rSpriteCanvas;
mbFullScreen = bFullscreen;
diff --git a/canvas/source/directx/dx_canvas.cxx b/canvas/source/directx/dx_canvas.cxx
index 3d5bda00288b..7f29813c953b 100644
--- a/canvas/source/directx/dx_canvas.cxx
+++ b/canvas/source/directx/dx_canvas.cxx
@@ -39,6 +39,7 @@
#include <tools/diagnose_ex.h>
#include <vcl/sysdata.hxx>
#include <vcl/skia/SkiaHelper.hxx>
+#include <vcl/window.hxx>
#include <canvas/canvastools.hxx>
diff --git a/canvas/source/vcl/canvas.cxx b/canvas/source/vcl/canvas.cxx
index e9ebf85b3b3a..2ad0a61fc9fd 100644
--- a/canvas/source/vcl/canvas.cxx
+++ b/canvas/source/vcl/canvas.cxx
@@ -25,6 +25,7 @@
#include <sal/log.hxx>
#include <tools/diagnose_ex.h>
#include <vcl/outdev.hxx>
+#include <vcl/window.hxx>
#include "outdevholder.hxx"
diff --git a/canvas/source/vcl/outdevholder.hxx b/canvas/source/vcl/outdevholder.hxx
index 78f3badf8bb6..28dfd4317fe0 100644
--- a/canvas/source/vcl/outdevholder.hxx
+++ b/canvas/source/vcl/outdevholder.hxx
@@ -35,6 +35,7 @@ public:
explicit OutDevHolder(OutputDevice& rOutDev)
: mrOutDev(rOutDev)
{
+ assert(&rOutDev);
}
private:
diff --git a/canvas/source/vcl/spritecanvashelper.cxx b/canvas/source/vcl/spritecanvashelper.cxx
index 0c1a454c3260..1796c8ac7ffe 100644
--- a/canvas/source/vcl/spritecanvashelper.cxx
+++ b/canvas/source/vcl/spritecanvashelper.cxx
@@ -220,7 +220,7 @@ namespace vclcanvas
vcl::Window* pTargetWindow = nullptr;
if( rOutDev.GetOutDevType() == OUTDEV_WINDOW )
{
- pTargetWindow = &static_cast<vcl::Window&>(rOutDev); // TODO(Q3): Evil downcast.
+ pTargetWindow = rOutDev.GetOwnerWindow(); // TODO(Q3): Evil downcast.
// we're double-buffered, thus no need for paint area-limiting
// clips. besides that, will interfere with animations (as for
@@ -309,7 +309,7 @@ namespace vclcanvas
if( pTargetWindow )
{
// commit to screen
- pTargetWindow->Flush();
+ pTargetWindow->GetOutDev()->Flush();
}
return true;
diff --git a/canvas/source/vcl/windowoutdevholder.hxx b/canvas/source/vcl/windowoutdevholder.hxx
index d9d69e9a37c9..87138a8a9106 100644
--- a/canvas/source/vcl/windowoutdevholder.hxx
+++ b/canvas/source/vcl/windowoutdevholder.hxx
@@ -36,8 +36,8 @@ namespace vclcanvas
explicit WindowOutDevHolder( const css::uno::Reference< css::awt::XWindow>& xWin );
private:
- virtual OutputDevice& getOutDev() override { return mrOutputWindow; }
- virtual const OutputDevice& getOutDev() const override { return mrOutputWindow; }
+ virtual OutputDevice& getOutDev() override { return *mrOutputWindow.GetOutDev(); }
+ virtual const OutputDevice& getOutDev() const override { return *mrOutputWindow.GetOutDev(); }
// TODO(Q2): Lifetime issue. Though WindowGraphicDeviceBase
// now listens to the window component, I still consider
diff --git a/canvas/workben/canvasdemo.cxx b/canvas/workben/canvasdemo.cxx
index e19e1f45f2af..9d48b84132d6 100644
--- a/canvas/workben/canvasdemo.cxx
+++ b/canvas/workben/canvasdemo.cxx
@@ -536,7 +536,7 @@ void TestWindow::Paint(vcl::RenderContext&, const tools::Rectangle&)
{
try
{
- uno::Reference< rendering::XCanvas > xVDevCanvas( GetCanvas(),
+ uno::Reference< rendering::XCanvas > xVDevCanvas( GetOutDev()->GetCanvas(),
uno::UNO_SET_THROW );
uno::Reference< rendering::XGraphicDevice > xVDevDevice( xVDevCanvas->getDevice(),
uno::UNO_SET_THROW );
@@ -551,7 +551,7 @@ void TestWindow::Paint(vcl::RenderContext&, const tools::Rectangle&)
aVDevRenderer.drawArcs();
aVDevRenderer.drawPolygons();
- uno::Reference< rendering::XCanvas > xCanvas( GetSpriteCanvas(),
+ uno::Reference< rendering::XCanvas > xCanvas( GetOutDev()->GetSpriteCanvas(),
uno::UNO_QUERY_THROW );
uno::Reference< rendering::XGraphicDevice > xDevice( xCanvas->getDevice(),
uno::UNO_SET_THROW );
diff --git a/chart2/source/controller/accessibility/AccessibleTextHelper.cxx b/chart2/source/controller/accessibility/AccessibleTextHelper.cxx
index 620897210db1..d2b56b2b7364 100644
--- a/chart2/source/controller/accessibility/AccessibleTextHelper.cxx
+++ b/chart2/source/controller/accessibility/AccessibleTextHelper.cxx
@@ -84,7 +84,7 @@ void SAL_CALL AccessibleTextHelper::initialize( const Sequence< uno::Any >& aArg
SdrObject * pTextObj = m_pDrawViewWrapper->getNamedSdrObject( aCID );
if( pTextObj )
{
- m_pTextHelper.reset( new ::accessibility::AccessibleTextHelper(std::make_unique<SvxTextEditSource>(*pTextObj, nullptr, *pView, *pWindow)) );
+ m_pTextHelper.reset( new ::accessibility::AccessibleTextHelper(std::make_unique<SvxTextEditSource>(*pTextObj, nullptr, *pView, *pWindow->GetOutDev())) );
m_pTextHelper->SetEventSource( xEventSource );
}
}
diff --git a/chart2/source/controller/main/ChartController.cxx b/chart2/source/controller/main/ChartController.cxx
index 08b8c65c31f7..5adc15f78a09 100644
--- a/chart2/source/controller/main/ChartController.cxx
+++ b/chart2/source/controller/main/ChartController.cxx
@@ -718,7 +718,7 @@ void ChartController::impl_createDrawViewController()
{
if( m_pDrawModelWrapper )
{
- m_pDrawViewWrapper.reset( new DrawViewWrapper(m_pDrawModelWrapper->getSdrModel(),GetChartWindow()) );
+ m_pDrawViewWrapper.reset( new DrawViewWrapper(m_pDrawModelWrapper->getSdrModel(),GetChartWindow()->GetOutDev()) );
m_pDrawViewWrapper->attachParentReferenceDevice( getModel() );
}
}
diff --git a/chart2/source/controller/main/ChartController_Window.cxx b/chart2/source/controller/main/ChartController_Window.cxx
index afd4de8a5e75..a63da0791c30 100644
--- a/chart2/source/controller/main/ChartController_Window.cxx
+++ b/chart2/source/controller/main/ChartController_Window.cxx
@@ -279,7 +279,7 @@ void SAL_CALL ChartController::setPosSize(
//a correct work area is at least necessary for correct values in the position and size dialog and for dragging area
if(m_pDrawViewWrapper)
{
- tools::Rectangle aRect(Point(0,0), pChartWindow->GetOutputSize());
+ tools::Rectangle aRect(Point(0,0), pChartWindow->GetOutDev()->GetOutputSize());
m_pDrawViewWrapper->SetWorkArea( aRect );
}
pChartWindow->Invalidate();
@@ -600,7 +600,7 @@ void ChartController::execute_MouseButtonDown( const MouseEvent& rMEvt )
// #i12587# support for shapes in chart
( rMEvt.IsRight() && pDrawViewWrapper->PickAnything( rMEvt, SdrMouseEventKind::BUTTONDOWN, aVEvt ) == SdrHitKind::MarkedObject ) )
{
- pDrawViewWrapper->MouseButtonDown(rMEvt, pChartWindow);
+ pDrawViewWrapper->MouseButtonDown(rMEvt, pChartWindow->GetOutDev());
return;
}
else
@@ -725,7 +725,7 @@ void ChartController::execute_MouseMove( const MouseEvent& rMEvt )
if( m_pDrawViewWrapper->IsTextEdit() )
{
- if( m_pDrawViewWrapper->MouseMove(rMEvt,pChartWindow) )
+ if( m_pDrawViewWrapper->MouseMove(rMEvt,pChartWindow->GetOutDev()) )
return;
}
@@ -771,7 +771,7 @@ void ChartController::execute_MouseButtonUp( const MouseEvent& rMEvt )
if(pDrawViewWrapper->IsTextEdit())
{
- if( pDrawViewWrapper->MouseButtonUp(rMEvt,pChartWindow) )
+ if( pDrawViewWrapper->MouseButtonUp(rMEvt,pChartWindow->GetOutDev()) )
return;
}
@@ -1925,7 +1925,7 @@ void ChartController::impl_SetMousePointer( const MouseEvent & rEvent )
if( m_pDrawViewWrapper->IsTextEditHit( aMousePos ) )
{
pChartWindow->SetPointer( m_pDrawViewWrapper->GetPreferredPointer(
- aMousePos, pChartWindow, nModifier, bLeftDown ) );
+ aMousePos, pChartWindow->GetOutDev(), nModifier, bLeftDown ) );
return;
}
}
@@ -1941,7 +1941,7 @@ void ChartController::impl_SetMousePointer( const MouseEvent & rEvent )
if( pHitSelectionHdl )
{
PointerStyle aPointer = m_pDrawViewWrapper->GetPreferredPointer(
- aMousePos, pChartWindow, nModifier, bLeftDown );
+ aMousePos, pChartWindow->GetOutDev(), nModifier, bLeftDown );
bool bForceArrowPointer = false;
ObjectIdentifier aOID( m_aSelection.getSelectedOID() );
diff --git a/chart2/source/controller/main/ChartWindow.cxx b/chart2/source/controller/main/ChartWindow.cxx
index 6ab1fae77b99..73e642446be1 100644
--- a/chart2/source/controller/main/ChartWindow.cxx
+++ b/chart2/source/controller/main/ChartWindow.cxx
@@ -61,7 +61,7 @@ ChartWindow::ChartWindow( ChartController* pController, vcl::Window* pParent, Wi
SetMapMode( MapMode(MapUnit::Map100thMM) );
adjustHighContrastMode();
// chart does not depend on exact pixel painting => enable antialiased drawing
- SetAntialiasing( AntialiasingFlags::Enable | GetAntialiasing() );
+ GetOutDev()->SetAntialiasing( AntialiasingFlags::Enable | GetOutDev()->GetAntialiasing() );
EnableRTL( false );
if( pParent )
pParent->EnableRTL( false );// #i96215# necessary for a correct position of the context menu in rtl mode
@@ -252,7 +252,7 @@ void ChartWindow::adjustHighContrastMode()
DrawModeFlags::SettingsText | DrawModeFlags::SettingsGradient;
bool bUseContrast = GetSettings().GetStyleSettings().GetHighContrastMode();
- SetDrawMode( bUseContrast ? nContrastMode : DrawModeFlags::Default );
+ GetOutDev()->SetDrawMode( bUseContrast ? nContrastMode : DrawModeFlags::Default );
}
void ChartWindow::ForceInvalidate()
diff --git a/compilerplugins/clang/vclwidgets.cxx b/compilerplugins/clang/vclwidgets.cxx
index 92bc4a0c3911..804b4cc26489 100644
--- a/compilerplugins/clang/vclwidgets.cxx
+++ b/compilerplugins/clang/vclwidgets.cxx
@@ -596,11 +596,13 @@ bool VCLWidgets::VisitFunctionDecl( const FunctionDecl* functionDecl )
// check the last thing that the dispose() method does, is to call into the superclass dispose method
if (loplugin::DeclCheck(functionDecl).Function("dispose")) {
if (!isDisposeCallingSuperclassDispose(pMethodDecl)) {
- report(
- DiagnosticsEngine::Warning,
- BASE_REF_COUNTED_CLASS " subclass dispose() function MUST call dispose() of its superclass as the last thing it does",
- compat::getBeginLoc(functionDecl))
- << functionDecl->getSourceRange();
+ // We specifically have to clear a member variable AFTER calling super::dispose() here, unfortunately
+ if (!loplugin::DeclCheck(pMethodDecl->getParent()).Class("WindowOutputDevice"))
+ report(
+ DiagnosticsEngine::Warning,
+ BASE_REF_COUNTED_CLASS " subclass dispose() function MUST call dispose() of its superclass as the last thing it does",
+ compat::getBeginLoc(functionDecl))
+ << functionDecl->getSourceRange();
}
}
}
diff --git a/cppcanvas/qa/unit/test.cxx b/cppcanvas/qa/unit/test.cxx
index c02d466dfedd..7c5ca6b9d2c6 100644
--- a/cppcanvas/qa/unit/test.cxx
+++ b/cppcanvas/qa/unit/test.cxx
@@ -37,7 +37,7 @@ void CanvasTest::testComposite()
#ifdef LINUX
ScopedVclPtrInstance<WorkWindow> pWin( nullptr, WB_STDWORK );
- uno::Reference<rendering::XCanvas> xCanvas = pWin->GetCanvas ();
+ uno::Reference<rendering::XCanvas> xCanvas = pWin->GetOutDev()->GetCanvas ();
if( !xCanvas.is() )
return; // can't get a canvas working at all - truly headless ?
diff --git a/cppcanvas/source/wrapper/vclfactory.cxx b/cppcanvas/source/wrapper/vclfactory.cxx
index a750b2e88066..825368859d1e 100644
--- a/cppcanvas/source/wrapper/vclfactory.cxx
+++ b/cppcanvas/source/wrapper/vclfactory.cxx
@@ -45,7 +45,7 @@ namespace cppcanvas
SpriteCanvasSharedPtr VCLFactory::createSpriteCanvas( const vcl::Window& rVCLWindow )
{
return std::make_shared<internal::ImplSpriteCanvas>(
- rVCLWindow.GetSpriteCanvas() );
+ rVCLWindow.GetOutDev()->GetSpriteCanvas() );
}
SpriteCanvasSharedPtr VCLFactory::createSpriteCanvas( const uno::Reference< rendering::XSpriteCanvas >& xCanvas )
diff --git a/dbaccess/source/ui/app/AppView.cxx b/dbaccess/source/ui/app/AppView.cxx
index 5873bc712404..b300df8dfe6c 100644
--- a/dbaccess/source/ui/app/AppView.cxx
+++ b/dbaccess/source/ui/app/AppView.cxx
@@ -462,7 +462,7 @@ void OApplicationView::ImplInitSettings()
vcl::Font aFont = rStyleSettings.GetFieldFont();
aFont.SetColor( rStyleSettings.GetWindowTextColor() );
- SetPointFont(*this, aFont);
+ SetPointFont(*GetOutDev(), aFont);
SetTextColor( rStyleSettings.GetFieldTextColor() );
SetTextFillColor();
diff --git a/dbaccess/source/ui/querydesign/JoinTableView.cxx b/dbaccess/source/ui/querydesign/JoinTableView.cxx
index 2111cf0232dc..ff31bcefddc0 100644
--- a/dbaccess/source/ui/querydesign/JoinTableView.cxx
+++ b/dbaccess/source/ui/querydesign/JoinTableView.cxx
@@ -1434,7 +1434,7 @@ void OJoinTableView::StateChanged( StateChangedType nType )
vcl::Font aFont = rStyleSettings.GetGroupFont();
if ( IsControlFont() )
aFont.Merge( GetControlFont() );
- SetZoomedPointFont(*this, aFont);
+ SetZoomedPointFont(*GetOutDev(), aFont);
for (auto const& elem : m_aTableMap)
{
diff --git a/dbaccess/source/ui/querydesign/TableWindow.cxx b/dbaccess/source/ui/querydesign/TableWindow.cxx
index 8a523b467e5f..8660a503f1a4 100644
--- a/dbaccess/source/ui/querydesign/TableWindow.cxx
+++ b/dbaccess/source/ui/querydesign/TableWindow.cxx
@@ -509,7 +509,7 @@ void OTableWindow::StateChanged( StateChangedType nType )
vcl::Font aFont = rStyleSettings.GetGroupFont();
if ( IsControlFont() )
aFont.Merge( GetControlFont() );
- SetZoomedPointFont(*this, aFont);
+ SetZoomedPointFont(*GetOutDev(), aFont);
m_xTitle->SetZoom(GetZoom());
m_xListBox->SetZoom(GetZoom());
diff --git a/desktop/source/splash/splash.cxx b/desktop/source/splash/splash.cxx
index 250765832cec..e61f87041207 100644
--- a/desktop/source/splash/splash.cxx
+++ b/desktop/source/splash/splash.cxx
@@ -122,7 +122,7 @@ public:
SplashScreenWindow::SplashScreenWindow(SplashScreen *pSplash)
: IntroWindow()
, pSpl( pSplash )
- , _vdev(VclPtr<VirtualDevice>::Create(*this))
+ , _vdev(VclPtr<VirtualDevice>::Create(*GetOutDev()))
{
_vdev->EnableRTL(IsRTLEnabled());
}
@@ -138,8 +138,8 @@ void SplashScreenWindow::Redraw()
Invalidate();
// Trigger direct painting too - otherwise the splash screen won't be
// shown in some cases (when the idle timer won't be hit).
- Paint(*this, tools::Rectangle());
- Flush();
+ Paint(*GetOutDev(), tools::Rectangle());
+ GetOutDev()->Flush();
}
SplashScreen::SplashScreen()
diff --git a/editeng/source/editeng/editeng.cxx b/editeng/source/editeng/editeng.cxx
index 992d3f3c515f..f42b494ab139 100644
--- a/editeng/source/editeng/editeng.cxx
+++ b/editeng/source/editeng/editeng.cxx
@@ -1051,9 +1051,9 @@ bool EditEngine::PostKeyEvent( const KeyEvent& rKeyEvent, EditView* pEditView, v
Point P2( P1 );
P2.AdjustX(n20 );
P2.AdjustY(nH );
- pEditView->GetWindow()->SetLineColor();
- pEditView->GetWindow()->SetFillColor( (n%2) ? COL_YELLOW : COL_LIGHTGREEN );
- pEditView->GetWindow()->DrawRect( tools::Rectangle( P1, P2 ) );
+ pEditView->GetWindow()->GetOutDev()->SetLineColor();
+ pEditView->GetWindow()->GetOutDev()->SetFillColor( (n%2) ? COL_YELLOW : COL_LIGHTGREEN );
+ pEditView->GetWindow()->GetOutDev()->DrawRect( tools::Rectangle( P1, P2 ) );
aPos.AdjustY(nH );
}
}
diff --git a/editeng/source/editeng/impedit.cxx b/editeng/source/editeng/impedit.cxx
index 1d852ecec784..8e99f56156bc 100644
--- a/editeng/source/editeng/impedit.cxx
+++ b/editeng/source/editeng/impedit.cxx
@@ -349,7 +349,7 @@ void ImpEditView::lokSelectionCallback(const std::unique_ptr<tools::PolyPolygon>
}
else
{
- pOutWin->Push(PushFlags::MAPMODE);
+ pOutWin->GetOutDev()->Push(PushFlags::MAPMODE);
if (pOutWin->GetMapMode().GetMapUnit() == MapUnit::MapTwip)
{
// Find the parent that is not right
@@ -442,7 +442,7 @@ void ImpEditView::lokSelectionCallback(const std::unique_ptr<tools::PolyPolygon>
mpViewShell->NotifyOtherViews(LOK_CALLBACK_TEXT_VIEW_SELECTION, "selection", sRectangle);
}
- pOutWin->Pop();
+ pOutWin->GetOutDev()->Pop();
}
}
@@ -705,7 +705,7 @@ void ImpEditView::ImplDrawHighlightRect( OutputDevice& rTarget, const Point& rDo
if (pWindow)
{
- pWindow->Invert( aRect );
+ pWindow->GetOutDev()->Invert( aRect );
}
else
{
@@ -822,7 +822,7 @@ OutputDevice& ImpEditView::GetOutputDevice() const
{
if (EditViewCallbacks* pCallbacks = getEditViewCallbacks())
return pCallbacks->EditViewOutputDevice();
- return *pOutWin;
+ return *pOutWin->GetOutDev();
}
weld::Widget* ImpEditView::GetPopupParent(tools::Rectangle& rRect) const
diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx
index 207de9d1ca30..012342ce4d06 100644
--- a/editeng/source/editeng/impedit2.cxx
+++ b/editeng/source/editeng/impedit2.cxx
@@ -582,7 +582,7 @@ bool ImpEditEngine::MouseButtonUp( const MouseEvent& rMEvt, EditView* pView )
{
if ( ( rMEvt.GetClicks() == 1 ) && rMEvt.IsLeft() && !rMEvt.IsMod2() )
{
- const OutputDevice& rOutDev = pView->getEditViewCallbacks() ? pView->getEditViewCallbacks()->EditViewOutputDevice() : *pView->GetWindow();
+ const OutputDevice& rOutDev = pView->getEditViewCallbacks() ? pView->getEditViewCallbacks()->EditViewOutputDevice() : *pView->GetWindow()->GetOutDev();
Point aLogicClick = rOutDev.PixelToLogic(rMEvt.GetPosPixel());
if (const SvxFieldItem* pFld = pView->GetField(aLogicClick))
{
diff --git a/editeng/source/editeng/impedit3.cxx b/editeng/source/editeng/impedit3.cxx
index 6c3933c0ca54..ee9c0bb1a202 100644
--- a/editeng/source/editeng/impedit3.cxx
+++ b/editeng/source/editeng/impedit3.cxx
@@ -22,6 +22,7 @@
#include <vcl/metaact.hxx>
#include <vcl/gdimtf.hxx>
#include <vcl/settings.hxx>
+#include <vcl/window.hxx>
#include <editeng/tstpitem.hxx>
#include <editeng/lspcitem.hxx>
@@ -3782,7 +3783,7 @@ void ImpEditEngine::Paint( ImpEditView* pView, const tools::Rectangle& rRect, Ou
tools::Rectangle aClipRect( pView->GetOutputArea() );
aClipRect.Intersection( rRect );
- OutputDevice& rTarget = pTargetDevice ? *pTargetDevice : pView->GetOutputDevice();
+ OutputDevice& rTarget = pTargetDevice ? *pTargetDevice : *pView->GetWindow()->GetOutDev();
Point aStartPos;
if ( !IsVertical() )
diff --git a/editeng/source/uno/unoviwou.cxx b/editeng/source/uno/unoviwou.cxx
index d1d20110c75c..cbad84836610 100644
--- a/editeng/source/uno/unoviwou.cxx
+++ b/editeng/source/uno/unoviwou.cxx
@@ -52,7 +52,7 @@ bool SvxDrawOutlinerViewForwarder::IsValid() const
Point SvxDrawOutlinerViewForwarder::LogicToPixel( const Point& rPoint, const MapMode& rMapMode ) const
{
- OutputDevice* pOutDev = mrOutlinerView.GetWindow();
+ OutputDevice* pOutDev = mrOutlinerView.GetWindow()->GetOutDev();
if( pOutDev )
{
@@ -74,7 +74,7 @@ Point SvxDrawOutlinerViewForwarder::LogicToPixel( const Point& rPoint, const Map
Point SvxDrawOutlinerViewForwarder::PixelToLogic( const Point& rPoint, const MapMode& rMapMode ) const
{
- OutputDevice* pOutDev = mrOutlinerView.GetWindow();
+ OutputDevice* pOutDev = mrOutlinerView.GetWindow()->GetOutDev();
if( pOutDev )
{
diff --git a/forms/source/richtext/richtextimplcontrol.cxx b/forms/source/richtext/richtextimplcontrol.cxx
index 36c28323bd94..eb61fc60a78a 100644
--- a/forms/source/richtext/richtextimplcontrol.cxx
+++ b/forms/source/richtext/richtextimplcontrol.cxx
@@ -77,7 +77,7 @@ namespace frm
}
// ensure that it's initially scrolled to the upper left
- m_pView->SetVisArea( tools::Rectangle( Point( ), m_pViewport->GetOutputSize() ) );
+ m_pView->SetVisArea( tools::Rectangle( Point( ), m_pViewport->GetOutDev()->GetOutputSize() ) );
ensureScrollbars();
@@ -451,10 +451,10 @@ namespace frm
tools::Long nFontWidth = m_pEngine->GetStandardFont(0).GetFontSize().Width();
if ( !nFontWidth )
{
- m_pViewport->Push( PushFlags::FONT );
+ m_pViewport->GetOutDev()->Push( PushFlags::FONT );
m_pViewport->SetFont( m_pEngine->GetStandardFont(0) );
nFontWidth = m_pViewport->GetTextWidth( "x" );
- m_pViewport->Pop();
+ m_pViewport->GetOutDev()->Pop();
}
// ... is the scroll size for the horizontal scrollbar
m_pHScroll->SetLineSize( 5 * nFontWidth );
diff --git a/framework/source/helper/vclstatusindicator.cxx b/framework/source/helper/vclstatusindicator.cxx
index 8173c3b48e8b..b6729ffc7d08 100644
--- a/framework/source/helper/vclstatusindicator.cxx
+++ b/framework/source/helper/vclstatusindicator.cxx
@@ -58,7 +58,7 @@ void SAL_CALL VCLStatusIndicator::start(const OUString& sText ,
// force repaint!
pParentWindow->Show();
pParentWindow->Invalidate(InvalidateFlags::Children);
- pParentWindow->Flush();
+ pParentWindow->GetOutDev()->Flush();
m_nRange = nRange;
m_nValue = 0;
diff --git a/include/sfx2/LokControlHandler.hxx b/include/sfx2/LokControlHandler.hxx
index 5617dae4b2f8..5a6d87529fb4 100644
--- a/include/sfx2/LokControlHandler.hxx
+++ b/include/sfx2/LokControlHandler.hxx
@@ -37,7 +37,7 @@ public:
if (aControlRectHMM.IsInside(aPointHmm))
{
css::uno::Reference<css::awt::XControl> xControl
- = pUnoObect->GetUnoControl(*pDrawView, rMainWindow);
+ = pUnoObect->GetUnoControl(*pDrawView, *rMainWindow.GetOutDev());
if (!xControl.is())
return false;
@@ -73,7 +73,7 @@ public:
tools::Rectangle const& rTileRectHMM, double scaleX, double scaleY)
{
css::uno::Reference<css::awt::XControl> xControl
- = pUnoObect->GetUnoControl(*pDrawView, rMainWindow);
+ = pUnoObect->GetUnoControl(*pDrawView, *rMainWindow.GetOutDev());
if (!xControl.is())
return;
diff --git a/include/svtools/brwbox.hxx b/include/svtools/brwbox.hxx
index 8a016ac5eb26..004e939a7fbc 100644
--- a/include/svtools/brwbox.hxx
+++ b/include/svtools/brwbox.hxx
@@ -839,10 +839,6 @@ private:
// upper module, you should investigate whether you really wanted to call base class methods,
// or the versions at this class. In the latter case, use the renamed versions above.
- // Set/GetLineColor - superseded by Set/GetGridLineColor
- using OutputDevice::SetLineColor;
- using OutputDevice::GetLineColor;
-
// ToTop/ToBottom were never property implemented. If you currently call it, this is most probably wrong
// and not doing as intended
using Window::ToTop;
diff --git a/include/toolkit/awt/vclxwindow.hxx b/include/toolkit/awt/vclxwindow.hxx
index 5e5ac617a26a..24cefd4e5a6a 100644
--- a/include/toolkit/awt/vclxwindow.hxx
+++ b/include/toolkit/awt/vclxwindow.hxx
@@ -123,10 +123,14 @@ public:
virtual void SetWindow( const VclPtr< vcl::Window > &pWindow );
template< class derived_type > derived_type* GetAs() const {
- return static_cast< derived_type * >( GetOutputDevice().get() ); }
+ return static_cast< derived_type * >( GetWindow() ); }
template< class derived_type > derived_type* GetAsDynamic() const {
- return dynamic_cast< derived_type * >( GetOutputDevice().get() ); }
- vcl::Window* GetWindow() const { return GetAs<vcl::Window>(); }
+ return dynamic_cast< derived_type * >( GetWindow() ); }
+ vcl::Window* GetWindow() const
+ {
+ auto p = GetOutputDevice().get();
+ return p ? p->GetOwnerWindow() : nullptr;
+ }
void suspendVclEventListening( );
void resumeVclEventListening( );
diff --git a/include/vcl/outdev.hxx b/include/vcl/outdev.hxx
index 90e2fda67918..7c5f28455b25 100644
--- a/include/vcl/outdev.hxx
+++ b/include/vcl/outdev.hxx
@@ -103,6 +103,7 @@ namespace vcl
struct FontCapabilities;
class TextLayoutCache;
class Window;
+ class WindowOutputDevice;
namespace font {
struct Feature;
}
@@ -163,6 +164,7 @@ class SAL_WARN_UNUSED VCL_DLLPUBLIC OutputDevice : public virtual VclReferenceBa
friend class Printer;
friend class VirtualDevice;
friend class vcl::Window;
+ friend class vcl::WindowOutputDevice;
friend class WorkWindow;
friend void ImplHandleResize( vcl::Window* pWindow, tools::Long nNewWidth, tools::Long nNewHeight );
@@ -1898,6 +1900,9 @@ public:
public:
virtual css::awt::DeviceInfo GetDeviceInfo() const;
+ /** Get the vcl::Window that this OutputDevice belongs to, if any */
+ virtual vcl::Window* GetOwnerWindow() const { return nullptr; }
+
protected:
css::awt::DeviceInfo GetCommonDeviceInfo(Size const& aDevSize) const;
diff --git a/include/vcl/toolbox.hxx b/include/vcl/toolbox.hxx
index 649cc0fe3093..68a57930b2e0 100644
--- a/include/vcl/toolbox.hxx
+++ b/include/vcl/toolbox.hxx
@@ -227,6 +227,8 @@ public:
SAL_DLLPRIVATE int ImplGetDragWidth() const;
static SAL_DLLPRIVATE int ImplGetDragWidth( const vcl::RenderContext& rRenderContext,
bool bHorz );
+ static SAL_DLLPRIVATE int ImplGetDragWidth( const vcl::Window& rWindow,
+ bool bHorz );
SAL_DLLPRIVATE void ImplUpdateDragArea() const;
SAL_DLLPRIVATE void ImplCalcBorder( WindowAlign eAlign, tools::Long& rLeft, tools::Long& rTop,
tools::Long& rRight, tools::Long& rBottom ) const;
diff --git a/include/vcl/toolkit/ivctrl.hxx b/include/vcl/toolkit/ivctrl.hxx
index e322631036a3..b572448e006f 100644
--- a/include/vcl/toolkit/ivctrl.hxx
+++ b/include/vcl/toolkit/ivctrl.hxx
@@ -220,7 +220,7 @@ public:
void SetClickHdl( const Link<SvtIconChoiceCtrl*,void>& rLink ) { _aClickIconHdl = rLink; }
- using OutputDevice::SetBackground;
+ using Window::SetBackground;
void SetBackground( const Wallpaper& rWallpaper );
void ArrangeIcons();
diff --git a/include/vcl/window.hxx b/include/vcl/window.hxx
index 17fbf4d876ed..3021bb95870a 100644
--- a/include/vcl/window.hxx
+++ b/include/vcl/window.hxx
@@ -389,6 +389,7 @@ const char* ImplDbgCheckWindow( const void* pObj );
namespace vcl { class Window; }
namespace vcl { class Cursor; }
+namespace vcl { class WindowOutputDevice; }
class Dialog;
class Edit;
class WindowImpl;
@@ -449,9 +450,10 @@ public:
Color const * pPaintColor = nullptr);
};
-class VCL_DLLPUBLIC Window : public ::OutputDevice
+class VCL_DLLPUBLIC Window : public virtual VclReferenceBase
{
friend class ::vcl::Cursor;
+ friend class ::vcl::WindowOutputDevice;
friend class ::OutputDevice;
friend class ::Application;
friend class ::SystemWindow;
@@ -595,8 +597,6 @@ protected:
SAL_DLLPRIVATE void PushPaintHelper(PaintHelper* pHelper, vcl::RenderContext& rRenderContext);
SAL_DLLPRIVATE void PopPaintHelper(PaintHelper const * pHelper);
- virtual css::uno::Reference< css::rendering::XCanvas > ImplGetCanvas( bool bSpriteCanvas ) const override;
-
private:
SAL_DLLPRIVATE void ImplSetFrameParent( const vcl::Window* pParent );
@@ -708,10 +708,6 @@ private:
virtual void ImplPaintToDevice( ::OutputDevice* pTargetOutDev, const Point& rPos );
-public:
- virtual vcl::Region GetActiveClipRegion() const override;
- virtual vcl::Region GetOutputBoundsClipRegion() const override;
-
protected:
// Single argument ctors shall be explicit.
explicit Window( WindowType nType );
@@ -720,24 +716,9 @@ protected:
void CallEventListeners( VclEventId nEvent, void* pData = nullptr );
- virtual bool AcquireGraphics() const override;
- virtual void ReleaseGraphics( bool bRelease = true ) override;
-
- virtual void InitClipRegion() override;
-
- void ImplClearFontData(bool bNewFontLists) override;
- void ImplRefreshFontData(bool bNewFontLists) override;
- void ImplInitMapModeObjects() override;
-
// FIXME: this is a hack to workaround missing layout functionality
virtual void ImplAdjustNWFSizes();
- virtual void CopyDeviceArea( SalTwoRect& aPosAry, bool bWindowInvalidate) override;
- virtual const OutputDevice* DrawOutDevDirectCheck(const OutputDevice& rSrcDev) const override;
- virtual void DrawOutDevDirectProcess(const OutputDevice& rSrcDev, SalTwoRect& rPosAry, SalGraphics* pSrcGraphics) override;
- virtual void ClipToPaintRegion( tools::Rectangle& rDstRect ) override;
- virtual bool UsePolyPolygonForComplexGradient() override;
-
virtual void ApplySettings(vcl::RenderContext& rRenderContext);
public:
@@ -749,12 +730,13 @@ public:
::OutputDevice const* GetOutDev() const;
::OutputDevice* GetOutDev();
- bool CanEnableNativeWidget() const override { return IsNativeWidgetEnabled(); }
+ Color GetBackgroundColor() const;
+ const Wallpaper & GetBackground() const;
+ bool IsBackground() const;
+ const MapMode& GetMapMode() const;
+ void SetBackground();
+ void SetBackground( const Wallpaper& rBackground );
- Color GetBackgroundColor() const override;
-
- size_t GetSyncCount() const override { return 0x000000ff; }
- virtual void EnableRTL ( bool bEnable = true ) override;
virtual void MouseMove( const MouseEvent& rMEvt );
virtual void MouseButtonDown( const MouseEvent& rMEvt );
virtual void MouseButtonUp( const MouseEvent& rMEvt );
@@ -764,7 +746,6 @@ public:
virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect);
virtual void PostPaint(vcl::RenderContext& rRenderContext);
- using OutputDevice::Erase;
void Erase(vcl::RenderContext& rRenderContext);
virtual void Draw( ::OutputDevice* pDev, const Point& rPos, DrawFlags nFlags );
@@ -865,9 +846,6 @@ public:
void SetCompositionCharRect( const tools::Rectangle* pRect, tools::Long nCompositionLength, bool bVertical = false );
- using ::OutputDevice::SetSettings;
- virtual void SetSettings( const AllSettings& rSettings ) override;
- void SetSettings( const AllSettings& rSettings, bool bChild );
void UpdateSettings( const AllSettings& rSettings, bool bChild = false );
void NotifyAllChildren( DataChangedEvent& rDCEvt );
@@ -1013,7 +991,6 @@ public:
void Validate();
bool HasPaintEvent() const;
void PaintImmediately();
- void Flush() override;
// toggles new docking support, enabled via toolkit
void EnableDocking( bool bEnable = true );
@@ -1123,9 +1100,6 @@ public:
ScrollBar* pHScrl,
ScrollBar* pVScrl );
- void SaveBackground(VirtualDevice& rSaveDevice,
- const Point& rPos, const Size& rSize, const Size&) const override;
-
virtual const SystemEnvData* GetSystemData() const;
// API to set/query the component interfaces
@@ -1510,7 +1484,140 @@ public:
void SetModalHierarchyHdl(const Link<bool, void>& rLink);
void SetDumpAsPropertyTreeHdl(const Link<tools::JsonWriter&, void>& rLink);
- css::awt::DeviceInfo GetDeviceInfo() const override;
+ Size GetOutputSizePixel() const;
+ tools::Rectangle GetOutputRectPixel() const;
+
+ Point LogicToPixel( const Point& rLogicPt ) const;
+ Size LogicToPixel( const Size& rLogicSize ) const;
+ tools::Rectangle LogicToPixel( const tools::Rectangle& rLogicRect ) const;
+ tools::Polygon LogicToPixel( const tools::Polygon& rLogicPoly ) const;
+ tools::PolyPolygon LogicToPixel( const tools::PolyPolygon& rLogicPolyPoly ) const;
+ basegfx::B2DPolyPolygon LogicToPixel( const basegfx::B2DPolyPolygon& rLogicPolyPoly ) const;
+ vcl::Region LogicToPixel( const vcl::Region& rLogicRegion )const;
+ Point LogicToPixel( const Point& rLogicPt,
+ const MapMode& rMapMode ) const;
+ Size LogicToPixel( const Size& rLogicSize,
+ const MapMode& rMapMode ) const;
+ tools::Rectangle LogicToPixel( const tools::Rectangle& rLogicRect,
+ const MapMode& rMapMode ) const;
+ tools::Polygon LogicToPixel( const tools::Polygon& rLogicPoly,
+ const MapMode& rMapMode ) const;
+ basegfx::B2DPolyPolygon LogicToPixel( const basegfx::B2DPolyPolygon& rLogicPolyPoly,
+ const MapMode& rMapMode ) const;
+
+ Point PixelToLogic( const Point& rDevicePt ) const;
+ Size PixelToLogic( const Size& rDeviceSize ) const;
+ tools::Rectangle PixelToLogic( const tools::Rectangle& rDeviceRect ) const;
+ tools::Polygon PixelToLogic( const tools::Polygon& rDevicePoly ) const;
+ tools::PolyPolygon PixelToLogic( const tools::PolyPolygon& rDevicePolyPoly ) const;
+ basegfx::B2DPolyPolygon PixelToLogic( const basegfx::B2DPolyPolygon& rDevicePolyPoly ) const;
+ vcl::Region PixelToLogic( const vcl::Region& rDeviceRegion ) const;
+ Point PixelToLogic( const Point& rDevicePt,
+ const MapMode& rMapMode ) const;
+ Size PixelToLogic( const Size& rDeviceSize,
+ const MapMode& rMapMode ) const;
+ tools::Rectangle PixelToLogic( const tools::Rectangle& rDeviceRect,
+ const MapMode& rMapMode ) const;
+ tools::Polygon PixelToLogic( const tools::Polygon& rDevicePoly,
+ const MapMode& rMapMode ) const;
+ basegfx::B2DPolygon PixelToLogic( const basegfx::B2DPolygon& rDevicePoly,
+ const MapMode& rMapMode ) const;
+ basegfx::B2DPolyPolygon PixelToLogic( const basegfx::B2DPolyPolygon& rDevicePolyPoly,
+ const MapMode& rMapMode ) const;
+
+ Point LogicToLogic( const Point& rPtSource,
+ const MapMode* pMapModeSource,
+ const MapMode* pMapModeDest ) const;
+ Size LogicToLogic( const Size& rSzSource,
+ const MapMode* pMapModeSource,
+ const MapMode* pMapModeDest ) const;
+ tools::Rectangle LogicToLogic( const tools::Rectangle& rRectSource,
+ const MapMode* pMapModeSource,
+ const MapMode* pMapModeDest ) const;
+
+ const AllSettings& GetSettings() const;
+ void SetSettings( const AllSettings& rSettings );
+ void SetSettings( const AllSettings& rSettings, bool bChild );
+
+ tools::Rectangle GetTextRect( const tools::Rectangle& rRect,
+ const OUString& rStr, DrawTextFlags nStyle = DrawTextFlags::WordBreak,
+ TextRectInfo* pInfo = nullptr,
+ const vcl::ITextLayout* _pTextLayout = nullptr ) const;
+ float GetDPIScaleFactor() const;
+ sal_Int32 GetDPIScalePercentage() const;
+ tools::Long GetOutOffXPixel() const;
+ tools::Long GetOutOffYPixel() const;
+ void SetOutOffXPixel(tools::Long nOutOffX);
+ void SetOutOffYPixel(tools::Long nOutOffY);
+
+ void EnableMapMode( bool bEnable = true );
+ bool IsMapModeEnabled() const;
+ void SetMapMode();
+ void SetMapMode( const MapMode& rNewMapMode );
+
+ // Enabling/disabling RTL only makes sense for OutputDevices that use a mirroring SalGraphicsLayout
+ virtual void EnableRTL( bool bEnable = true);
+ bool IsRTLEnabled() const;
+
+ void SetFont( const vcl::Font& rNewFont );
+ const vcl::Font& GetFont() const;
+
+ /** Width of the text.
+
+ See also GetTextBoundRect() for more explanation + code examples.
+ */
+ tools::Long GetTextWidth( const OUString& rStr, sal_Int32 nIndex = 0, sal_Int32 nLen = -1,
+ vcl::TextLayoutCache const* = nullptr,
+ SalLayoutGlyphs const*const pLayoutCache = nullptr) const;
+
+ /** Height where any character of the current font fits; in logic coordinates.
+
+ See also GetTextBoundRect() for more explanation + code examples.
+ */
+ tools::Long GetTextHeight() const;
+ float approximate_digit_width() const;
+
+ void SetTextColor( const Color& rColor );
+ const Color& GetTextColor() const;
+
+ void SetTextFillColor();
+ void SetTextFillColor( const Color& rColor );
+ Color GetTextFillColor() const;
+ bool IsTextFillColor() const;
+
+ void SetTextLineColor();
+ void SetTextLineColor( const Color& rColor );
+ const Color& GetTextLineColor() const;
+ bool IsTextLineColor() const;
+
+ void SetOverlineColor();
+ void SetOverlineColor( const Color& rColor );
+ const Color& GetOverlineColor() const;
+ bool IsOverlineColor() const;
+
+ void SetTextAlign( TextAlign eAlign );
+ TextAlign GetTextAlign() const;
+
+ /** Query the platform layer for control support
+ */
+ bool IsNativeControlSupported( ControlType nType, ControlPart nPart ) const;
+
+ static OUString GetNonMnemonicString(const OUString& rStr) { return OutputDevice::GetNonMnemonicString(rStr); }
+
+ /** Query the native control's actual drawing region (including adornment)
+ */
+ bool GetNativeControlRegion(
+ ControlType nType,
+ ControlPart nPart,
+ const tools::Rectangle& rControlRegion,
+ ControlState nState,
+ const ImplControlValue& aValue,
+ tools::Rectangle &rNativeBoundingRegion,
+ tools::Rectangle &rNativeContentRegion ) const;
+protected:
+ SAL_DLLPRIVATE float approximate_char_width() const;
+private:
+ SAL_DLLPRIVATE void ImplEnableRTL(bool bEnable);
};
}
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleFixedText.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleFixedText.java
index 0fc71d679153..f7a756685b80 100644
--- a/qadevOOo/tests/java/mod/_toolkit/AccessibleFixedText.java
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleFixedText.java
@@ -183,6 +183,7 @@ public class AccessibleFixedText extends TestCase {
@Override
protected void cleanup(TestParameters Param, PrintWriter log) {
log.println(" Closing dialog ... ");
- xWinDlg.dispose();
+ if (xWinDlg != null)
+ xWinDlg.dispose();
}
}
diff --git a/reportdesign/source/ui/inc/UITools.hxx b/reportdesign/source/ui/inc/UITools.hxx
index 5fe175440e61..13aafb14fc90 100644
--- a/reportdesign/source/ui/inc/UITools.hxx
+++ b/reportdesign/source/ui/inc/UITools.hxx
@@ -174,7 +174,7 @@ namespace rptui
@param _aZoom the zoom scale
@param _rWindow where to set the map mode
*/
- void setZoomFactor(const Fraction& _aZoom, OutputDevice& _rWindow);
+ void setZoomFactor(const Fraction& _aZoom, vcl::Window& _rWindow);
}
#endif // INCLUDED_REPORTDESIGN_SOURCE_UI_INC_UITOOLS_HXX
diff --git a/reportdesign/source/ui/misc/UITools.cxx b/reportdesign/source/ui/misc/UITools.cxx
index 773e4d24a034..2b806af28aeb 100644
--- a/reportdesign/source/ui/misc/UITools.cxx
+++ b/reportdesign/source/ui/misc/UITools.cxx
@@ -1018,7 +1018,7 @@ void correctOverlapping(SdrObject* _pControl,OReportSection const & _aReportSect
rSectionView.InsertObjectAtView(_pControl,*rSectionView.GetSdrPageView(), SdrInsertFlags::ADDMARK);
}
-void setZoomFactor(const Fraction& _aZoom, OutputDevice& _rWindow)
+void setZoomFactor(const Fraction& _aZoom, vcl::Window& _rWindow)
{
MapMode aMapMode( _rWindow.GetMapMode() );
aMapMode.SetScaleX(_aZoom);
diff --git a/reportdesign/source/ui/report/DesignView.cxx b/reportdesign/source/ui/report/DesignView.cxx
index 6accf6c82559..a3027c61287d 100644
--- a/reportdesign/source/ui/report/DesignView.cxx
+++ b/reportdesign/source/ui/report/DesignView.cxx
@@ -393,7 +393,7 @@ void ODesignView::GetFocus()
void ODesignView::ImplInitSettings()
{
SetBackground( Wallpaper( Application::GetSettings().GetStyleSettings().GetFaceColor() ));
- SetFillColor( Application::GetSettings().GetStyleSettings().GetFaceColor() );
+ GetOutDev()->SetFillColor( Application::GetSettings().GetStyleSettings().GetFaceColor() );
SetTextFillColor( Application::GetSettings().GetStyleSettings().GetFaceColor() );
}
diff --git a/reportdesign/source/ui/report/EndMarker.cxx b/reportdesign/source/ui/report/EndMarker.cxx
index ae79c968f12c..fdd28f4db5e6 100644
--- a/reportdesign/source/ui/report/EndMarker.cxx
+++ b/reportdesign/source/ui/report/EndMarker.cxx
@@ -71,7 +71,7 @@ void OEndMarker::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangl
tools::Rectangle aRect(Point(-nCornerSpace, nCornerSpace),
Size(aSize.Width() - nCornerSpace,
aSize.Height() - nCornerSpace - nCornerSpace));
- ColorChanger aColors(this, COL_WHITE, COL_WHITE);
+ ColorChanger aColors(GetOutDev(), COL_WHITE, COL_WHITE);
rRenderContext.DrawPolyLine( tools::Polygon(PixelToLogic(aRect)), LineInfo(LineStyle::Solid, 2));
}
}
@@ -83,7 +83,7 @@ void OEndMarker::ImplInitSettings()
SetPaintTransparent( true );
SetBackground( Wallpaper( svtools::ColorConfig().GetColorValue(::svtools::APPBACKGROUND).nColor) );
- SetFillColor( Application::GetSettings().GetStyleSettings().GetShadowColor() );
+ GetOutDev()->SetFillColor( Application::GetSettings().GetStyleSettings().GetShadowColor() );
}
void OEndMarker::MouseButtonDown( const MouseEvent& rMEvt )
diff --git a/reportdesign/source/ui/report/FixedTextColor.cxx b/reportdesign/source/ui/report/FixedTextColor.cxx
index 4815dbbc412a..17f8ce20d1b7 100644
--- a/reportdesign/source/ui/report/FixedTextColor.cxx
+++ b/reportdesign/source/ui/report/FixedTextColor.cxx
@@ -168,7 +168,7 @@ namespace rptui
{
OReportSection& aOutputDevice = pSectionWindow->getReportSection(); // OutputDevice
OSectionView& aSdrView = aOutputDevice.getSectionView(); // SdrView
- xControl = pUnoObj->GetUnoControl(aSdrView, aOutputDevice);
+ xControl = pUnoObj->GetUnoControl(aSdrView, *aOutputDevice.GetOutDev());
}
}
}
diff --git a/reportdesign/source/ui/report/FormattedFieldBeautifier.cxx b/reportdesign/source/ui/report/FormattedFieldBeautifier.cxx
index eacd4a83c305..b4af3352c21b 100644
--- a/reportdesign/source/ui/report/FormattedFieldBeautifier.cxx
+++ b/reportdesign/source/ui/report/FormattedFieldBeautifier.cxx
@@ -164,7 +164,7 @@ namespace rptui
{
OReportSection& aOutputDevice = pSectionWindow->getReportSection(); // OutputDevice
OSectionView& aSdrView = aOutputDevice.getSectionView(); // SdrView
- uno::Reference<awt::XControl> xControl = pUnoObj->GetUnoControl(aSdrView, aOutputDevice);
+ uno::Reference<awt::XControl> xControl = pUnoObj->GetUnoControl(aSdrView, *aOutputDevice.GetOutDev());
xVclWindowPeer.set( xControl->getPeer(), uno::UNO_QUERY);
}
}
diff --git a/reportdesign/source/ui/report/ReportController.cxx b/reportdesign/source/ui/report/ReportController.cxx
index de4be54c181e..03bfb73160a1 100644
--- a/reportdesign/source/ui/report/ReportController.cxx
+++ b/reportdesign/source/ui/report/ReportController.cxx
@@ -3152,7 +3152,7 @@ void OReportController::createControl(const Sequence< PropertyValue >& _aArgs,co
std::unique_ptr<SdrUnoObj, SdrObjectFreeOp> pControl;
FmFormView::createControlLabelPair(
- getDesignView(),
+ getDesignView()->GetOutDev(),
nLeftMargin,
0,
nullptr,
@@ -3459,7 +3459,7 @@ void OReportController::addPairControls(const Sequence< PropertyValue >& aArgs)
// find this in svx
FmFormView::createControlLabelPair(
- getDesignView(),
+ getDesignView()->GetOutDev(),
nLeftMargin,
0,
xField,
@@ -4115,7 +4115,7 @@ void OReportController::impl_fillState_nothrow(const OUString& _sProperty,dbaui:
void OReportController::impl_zoom_nothrow()
{
Fraction aZoom(m_nZoomValue,100);
- setZoomFactor( aZoom,*getDesignView() );
+ setZoomFactor( aZoom, *getDesignView() );
getDesignView()->zoom(aZoom);
InvalidateFeature(SID_ATTR_ZOOM,Reference< XStatusListener >(), true);
InvalidateFeature(SID_ATTR_ZOOMSLIDER,Reference< XStatusListener >(), true);
diff --git a/reportdesign/source/ui/report/ReportSection.cxx b/reportdesign/source/ui/report/ReportSection.cxx
index acc0f7d0190c..e74ba7739fa5 100644
--- a/reportdesign/source/ui/report/ReportSection.cxx
+++ b/reportdesign/source/ui/report/ReportSection.cxx
@@ -145,7 +145,7 @@ void OReportSection::Paint( vcl::RenderContext& rRenderContext, const tools::Rec
// mark repaint start
if (pPgView)
{
- pTargetPaintWindow = pPgView->GetView().BeginDrawLayers(this, aPaintRectRegion);
+ pTargetPaintWindow = pPgView->GetView().BeginDrawLayers(GetOutDev(), aPaintRectRegion);
OSL_ENSURE(pTargetPaintWindow, "BeginDrawLayers: Got no SdrPaintWindow (!)");
// draw background self using wallpaper
OutputDevice& rTargetOutDev = pTargetPaintWindow->GetTargetOutputDevice();
diff --git a/reportdesign/source/ui/report/ScrollHelper.cxx b/reportdesign/source/ui/report/ScrollHelper.cxx
index bb9691e8eabf..07dd4fd50016 100644
--- a/reportdesign/source/ui/report/ScrollHelper.cxx
+++ b/reportdesign/source/ui/report/ScrollHelper.cxx
@@ -353,7 +353,7 @@ void OScrollWindowHelper::alignMarkedObjects(ControlModification _nControlModifi
void OScrollWindowHelper::ImplInitSettings()
{
SetBackground( Wallpaper( Application::GetSettings().GetStyleSettings().GetFaceColor() ));
- SetFillColor( Application::GetSettings().GetStyleSettings().GetFaceColor() );
+ GetOutDev()->SetFillColor( Application::GetSettings().GetStyleSettings().GetFaceColor() );
SetTextFillColor( Application::GetSettings().GetStyleSettings().GetFaceColor() );
}
diff --git a/reportdesign/source/ui/report/SectionView.cxx b/reportdesign/source/ui/report/SectionView.cxx
index 3b5694c997dd..b711b13dff33 100644
--- a/reportdesign/source/ui/report/SectionView.cxx
+++ b/reportdesign/source/ui/report/SectionView.cxx
@@ -35,7 +35,7 @@ OSectionView::OSectionView(
SdrModel& rSdrModel,
OReportSection* _pSectionWindow,
OReportWindow* pEditor)
-: SdrView(rSdrModel, _pSectionWindow)
+: SdrView(rSdrModel, _pSectionWindow->GetOutDev())
,m_pReportWindow( pEditor )
,m_pSectionWindow(_pSectionWindow)
{
@@ -71,7 +71,7 @@ void OSectionView::MakeVisible( const tools::Rectangle& rRect, vcl::Window& rWin
// visible area
MapMode aMap( rWin.GetMapMode() );
const Point aOrg( aMap.GetOrigin() );
- const Size aVisSize( rWin.GetOutputSize() );
+ const Size aVisSize( rWin.GetOutDev()->GetOutputSize() );
const tools::Rectangle aVisRect( Point(-aOrg.X(),-aOrg.Y()), aVisSize );
// check, if rectangle is inside visible area
diff --git a/reportdesign/source/ui/report/StartMarker.cxx b/reportdesign/source/ui/report/StartMarker.cxx
index 60b6b50c53e1..a5871fc52524 100644
--- a/reportdesign/source/ui/report/StartMarker.cxx
+++ b/reportdesign/source/ui/report/StartMarker.cxx
@@ -211,7 +211,7 @@ void OStartMarker::ApplySettings(vcl::RenderContext& rRenderContext)
void OStartMarker::ImplInitSettings()
{
- ApplySettings(*this);
+ ApplySettings(*GetOutDev());
}
void OStartMarker::Resize()
diff --git a/reportdesign/source/ui/report/dlgedfunc.cxx b/reportdesign/source/ui/report/dlgedfunc.cxx
index d2be2d012406..961927174959 100644
--- a/reportdesign/source/ui/report/dlgedfunc.cxx
+++ b/reportdesign/source/ui/report/dlgedfunc.cxx
@@ -117,7 +117,7 @@ DlgEdFunc::DlgEdFunc( OReportSection* _pParent )
, m_bShowPropertyBrowser(false)
{
aScrollTimer.SetInvokeHandler( LINK( this, DlgEdFunc, ScrollTimeout ) );
- m_rView.SetActualWin( m_pParent);
+ m_rView.SetActualWin( m_pParent->GetOutDev() );
aScrollTimer.SetTimeout( SELENG_AUTOREPEAT_INTERVAL );
}
@@ -758,7 +758,7 @@ bool DlgEdFuncInsert::MouseMove( const MouseEvent& rMEvt )
}
if ( !bIsSetPoint )
- m_pParent->SetPointer( m_rView.GetPreferredPointer( aPos, m_pParent) );
+ m_pParent->SetPointer( m_rView.GetPreferredPointer( aPos, m_pParent->GetOutDev()) );
return true;
}
@@ -834,7 +834,7 @@ bool DlgEdFuncSelect::MouseButtonUp( const MouseEvent& rMEvt )
m_pParent->getSectionWindow()->getViewsWindow()->EndAction();
checkTwoClicks(rMEvt);
- m_pParent->SetPointer( m_rView.GetPreferredPointer( aPnt, m_pParent) );
+ m_pParent->SetPointer( m_rView.GetPreferredPointer( aPnt, m_pParent->GetOutDev() ) );
if ( !m_bUiActive )
m_pParent->getSectionWindow()->getViewsWindow()->getView()->getReportView()->UpdatePropertyBrowserDelayed(m_rView);
@@ -878,7 +878,7 @@ bool DlgEdFuncSelect::MouseMove( const MouseEvent& rMEvt )
if ( !bIsSetPoint )
{
- m_pParent->SetPointer( m_rView.GetPreferredPointer( aPnt, m_pParent) );
+ m_pParent->SetPointer( m_rView.GetPreferredPointer( aPnt, m_pParent->GetOutDev() ) );
// restore color
unColorizeOverlappedObj();
diff --git a/sc/source/ui/Accessibility/AccessibleEditObject.cxx b/sc/source/ui/Accessibility/AccessibleEditObject.cxx
index 2f0c28998723..57780c4335d2 100644
--- a/sc/source/ui/Accessibility/AccessibleEditObject.cxx
+++ b/sc/source/ui/Accessibility/AccessibleEditObject.cxx
@@ -353,7 +353,7 @@ bool ScAccessibleEditObject::IsDefunc(
OutputDevice* ScAccessibleEditObject::GetOutputDeviceForView()
{
- return mpWindow;
+ return mpWindow->GetOutDev();
}
void ScAccessibleEditObject::CreateTextHelper()
diff --git a/sc/source/ui/app/scmod.cxx b/sc/source/ui/app/scmod.cxx
index d8a25bd3a152..bdd66a15db47 100644
--- a/sc/source/ui/app/scmod.cxx
+++ b/sc/source/ui/app/scmod.cxx
@@ -266,7 +266,7 @@ void ScModule::ConfigurationChanged( utl::ConfigurationBroadcaster* p, Configura
{
ScPreview* pPreview = pPreviewSh->GetPreview();
- pPreview->SetDigitLanguage( GetOptDigitLanguage() );
+ pPreview->GetOutDev()->SetDigitLanguage( GetOptDigitLanguage() );
pPreview->Invalidate();
}
diff --git a/sc/source/ui/drawfunc/fuconpol.cxx b/sc/source/ui/drawfunc/fuconpol.cxx
index 712b12a2bddf..3504154d7b99 100644
--- a/sc/source/ui/drawfunc/fuconpol.cxx
+++ b/sc/source/ui/drawfunc/fuconpol.cxx
@@ -58,7 +58,7 @@ bool FuConstPolygon::MouseButtonDown(const MouseEvent& rMEvt)
pView->EnableExtendedMouseEventDispatcher(true);
}
- if ( pView->MouseButtonDown(rMEvt, pWindow) )
+ if ( pView->MouseButtonDown(rMEvt, pWindow->GetOutDev()) )
bReturn = true;
return bReturn;
@@ -66,7 +66,7 @@ bool FuConstPolygon::MouseButtonDown(const MouseEvent& rMEvt)
bool FuConstPolygon::MouseMove(const MouseEvent& rMEvt)
{
- pView->MouseMove(rMEvt, pWindow);
+ pView->MouseMove(rMEvt, pWindow->GetOutDev());
return FuConstruct::MouseMove(rMEvt);
}
@@ -81,7 +81,7 @@ bool FuConstPolygon::MouseButtonUp(const MouseEvent& rMEvt)
SdrViewEvent aVEvt;
(void)pView->PickAnything(rMEvt, SdrMouseEventKind::BUTTONUP, aVEvt);
- pView->MouseButtonUp(rMEvt, pWindow);
+ pView->MouseButtonUp(rMEvt, pWindow->GetOutDev());
if (aVEvt.eEvent == SdrEventKind::EndCreate)
{
diff --git a/sc/source/ui/drawfunc/fudraw.cxx b/sc/source/ui/drawfunc/fudraw.cxx
index 04d31cd6c8b3..2069bace5936 100644
--- a/sc/source/ui/drawfunc/fudraw.cxx
+++ b/sc/source/ui/drawfunc/fudraw.cxx
@@ -655,7 +655,7 @@ static bool lcl_UrlHit( const SdrView* pView, const Point& rPosPixel, const vcl:
if ( eHit != SdrHitKind::NONE && aVEvt.pObj != nullptr )
{
if ( SvxIMapInfo::GetIMapInfo( aVEvt.pObj ) && SvxIMapInfo::GetHitIMapObject(
- aVEvt.pObj, pWindow->PixelToLogic(rPosPixel), pWindow ) )
+ aVEvt.pObj, pWindow->PixelToLogic(rPosPixel), pWindow->GetOutDev() ) )
return true;
if ( aVEvt.eEvent == SdrEventKind::ExecuteUrl )
@@ -696,7 +696,7 @@ void FuDraw::ForcePointer(const MouseEvent* pMEvt)
else if ( pHdl )
{
rViewShell.SetActivePointer(
- pView->GetPreferredPointer( aPnt, pWindow ) );
+ pView->GetPreferredPointer( aPnt, pWindow->GetOutDev() ) );
}
else if ( pView->IsMarkedHit(aPnt) )
{
diff --git a/sc/source/ui/drawfunc/fusel.cxx b/sc/source/ui/drawfunc/fusel.cxx
index b42979a3ba56..52a5b9a4be17 100644
--- a/sc/source/ui/drawfunc/fusel.cxx
+++ b/sc/source/ui/drawfunc/fusel.cxx
@@ -208,7 +208,7 @@ bool FuSelection::MouseButtonDown(const MouseEvent& rMEvt)
if ( SvxIMapInfo::GetIMapInfo( aVEvt.pObj ) ) // ImageMap
{
const IMapObject* pIMapObj =
- SvxIMapInfo::GetHitIMapObject( aVEvt.pObj, aMDPos, pWindow );
+ SvxIMapInfo::GetHitIMapObject( aVEvt.pObj, aMDPos, pWindow->GetOutDev() );
if ( pIMapObj && !pIMapObj->GetURL().isEmpty() )
{
sURL = pIMapObj->GetURL();
diff --git a/sc/source/ui/drawfunc/futext.cxx b/sc/source/ui/drawfunc/futext.cxx
index 8174506255a7..27eeab0e09e9 100644
--- a/sc/source/ui/drawfunc/futext.cxx
+++ b/sc/source/ui/drawfunc/futext.cxx
@@ -116,7 +116,7 @@ bool FuText::MouseButtonDown(const MouseEvent& rMEvt)
SetMouseButtonCode(rMEvt.GetButtons());
bool bStraightEnter = true;
- if ( pView->MouseButtonDown(rMEvt, pWindow) )
+ if ( pView->MouseButtonDown(rMEvt, pWindow->GetOutDev()) )
return true; // event handled from SdrView
if ( pView->IsTextEdit() )
@@ -318,7 +318,7 @@ bool FuText::MouseButtonDown(const MouseEvent& rMEvt)
}
rViewShell.SetActivePointer(pView->GetPreferredPointer(
- pWindow->PixelToLogic(rMEvt.GetPosPixel()), pWindow ));
+ pWindow->PixelToLogic(rMEvt.GetPosPixel()), pWindow->GetOutDev() ));
if (!bStraightEnter)
{
pView->UnmarkAll();
@@ -332,7 +332,7 @@ bool FuText::MouseButtonDown(const MouseEvent& rMEvt)
bool FuText::MouseMove(const MouseEvent& rMEvt)
{
rViewShell.SetActivePointer(pView->GetPreferredPointer(
- pWindow->PixelToLogic(rMEvt.GetPosPixel()), pWindow ));
+ pWindow->PixelToLogic(rMEvt.GetPosPixel()), pWindow->GetOutDev() ));
if (aDragTimer.IsActive() )
{
@@ -346,7 +346,7 @@ bool FuText::MouseMove(const MouseEvent& rMEvt)
Point aPix(rMEvt.GetPosPixel());
Point aPnt(pWindow->PixelToLogic(aPix));
- if ( pView->MouseMove(rMEvt, pWindow) )
+ if ( pView->MouseMove(rMEvt, pWindow->GetOutDev()) )
return true; // event handled from SdrView
if ( pView->IsAction() )
@@ -372,7 +372,7 @@ bool FuText::MouseButtonUp(const MouseEvent& rMEvt)
Point aPnt( pWindow->PixelToLogic( rMEvt.GetPosPixel() ) );
- if ( pView->MouseButtonUp(rMEvt, pWindow) )
+ if ( pView->MouseButtonUp(rMEvt, pWindow->GetOutDev()) )
return true; // Event evaluated by SdrView
if ( pView->IsDragObj() )
diff --git a/sc/source/ui/drawfunc/futext2.cxx b/sc/source/ui/drawfunc/futext2.cxx
index b4e91150d970..8f30cb4a6f86 100644
--- a/sc/source/ui/drawfunc/futext2.cxx
+++ b/sc/source/ui/drawfunc/futext2.cxx
@@ -37,7 +37,7 @@ std::unique_ptr<SdrOutliner> FuText::MakeOutliner()
// #i10426# The ref device isn't set to the EditEngine before SdrBeginTextEdit now,
// so the device must be taken from the model here.
OutputDevice* pRef = pDrDoc->GetRefDevice();
- if (pRef && pRef != pWindow)
+ if (pRef && pRef != pWindow->GetOutDev())
pRef->SetMapMode(MapMode(MapUnit::Map100thMM));
return pOutl;
diff --git a/sc/source/ui/unoobj/viewuno.cxx b/sc/source/ui/unoobj/viewuno.cxx
index 9a2932ca1e12..a758a9054600 100644
--- a/sc/source/ui/unoobj/viewuno.cxx
+++ b/sc/source/ui/unoobj/viewuno.cxx
@@ -317,7 +317,7 @@ uno::Reference< form::runtime::XFormController > SAL_CALL ScViewPaneBase::getFor
SdrView* pSdrView( nullptr );
FmFormShell* pFormShell( nullptr );
if ( lcl_prepareFormShellCall( pViewShell, nPane, pFormShell, pWindow, pSdrView ) )
- xController = FmFormShell::GetFormController( Form, *pSdrView, *pWindow );
+ xController = FmFormShell::GetFormController( Form, *pSdrView, *pWindow->GetOutDev() );
return xController;
}
@@ -359,7 +359,7 @@ uno::Reference<awt::XControl> SAL_CALL ScViewPaneBase::getControl(
SdrView* pSdrView( nullptr );
FmFormShell* pFormShell( nullptr );
if ( lcl_prepareFormShellCall( pViewShell, nPane, pFormShell, pWindow, pSdrView ) )
- pFormShell->GetFormControl( xModel, *pSdrView, *pWindow, xRet );
+ pFormShell->GetFormControl( xModel, *pSdrView, *pWindow->GetOutDev(), xRet );
if ( !xRet.is() )
throw container::NoSuchElementException(); // no control found
diff --git a/sc/source/ui/view/colrowba.cxx b/sc/source/ui/view/colrowba.cxx
index 4851d861e888..c380b0ff168b 100644
--- a/sc/source/ui/view/colrowba.cxx
+++ b/sc/source/ui/view/colrowba.cxx
@@ -195,7 +195,7 @@ void ScColBar::DrawInvert( tools::Long nDragPosP )
{
tools::Rectangle aRect( nDragPosP,0, nDragPosP+HDR_SLIDERSIZE-1,GetOutputSizePixel().Width()-1 );
PaintImmediately();
- Invert(aRect);
+ GetOutDev()->Invert(aRect);
pTabView->GetViewData().GetView()->InvertVertical(meWhich,nDragPosP);
}
@@ -355,7 +355,7 @@ void ScRowBar::DrawInvert( tools::Long nDragPosP )
{
tools::Rectangle aRect( 0,nDragPosP, GetOutputSizePixel().Width()-1,nDragPosP+HDR_SLIDERSIZE-1 );
PaintImmediately();
- Invert(aRect);
+ GetOutDev()->Invert(aRect);
pTabView->GetViewData().GetView()->InvertHorizontal(meWhich,nDragPosP);
}
diff --git a/sc/source/ui/view/drawview.cxx b/sc/source/ui/view/drawview.cxx
index 9d23c064664f..c8829737f589 100644
--- a/sc/source/ui/view/drawview.cxx
+++ b/sc/source/ui/view/drawview.cxx
@@ -515,7 +515,7 @@ void ScDrawView::MarkListHasChanged()
if(OUTDEV_WINDOW == rOutDev.GetOutDevType())
{
- static_cast<vcl::Window&>(rOutDev).PaintImmediately();
+ rOutDev.GetOwnerWindow()->PaintImmediately();
}
}
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index 92b3e31d75fe..166bdd265e09 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -376,7 +376,7 @@ ScGridWindow::ScGridWindow( vcl::Window* pParent, ScViewData& rData, ScSplitPos
nDragEndX( -1 ),
nDragEndY( -1 ),
meDragInsertMode( INS_NONE ),
- aComboButton( this ),
+ aComboButton( GetOutDev() ),
aCurMousePos( 0,0 ),
nPaintCount( 0 ),
aRFSelectedCorned( NONE ),
@@ -422,7 +422,7 @@ ScGridWindow::ScGridWindow( vcl::Window* pParent, ScViewData& rData, ScSplitPos
SetHelpId( HID_SC_WIN_GRIDWIN );
- SetDigitLanguage( SC_MOD()->GetOptDigitLanguage() );
+ GetOutDev()->SetDigitLanguage( SC_MOD()->GetOptDigitLanguage() );
EnableRTL( false );
}
@@ -1500,7 +1500,7 @@ bool ScGridWindow::IsCellCoveredByText(SCCOL nPosX, SCROW nPosY, SCTAB nTab, SCC
Fraction aZoomX = mrViewData.GetZoomX();
Fraction aZoomY = mrViewData.GetZoomY();
- ScOutputData aOutputData(this, OUTTYPE_WINDOW, aTabInfo, &rDoc, nTab,
+ ScOutputData aOutputData(GetOutDev(), OUTTYPE_WINDOW, aTabInfo, &rDoc, nTab,
0, 0, 0, nPosY, nPosX, nPosY, nPPTX, nPPTY,
&aZoomX, &aZoomY);
@@ -3173,8 +3173,8 @@ void ScGridWindow::SelectForContextMenu( const Point& rPosPixel, SCCOL nCellX, S
// clicked outside the selected text - deselect and move text cursor
// use DrawView to allow extra handling there (none currently)
MouseEvent aEvent( rPosPixel );
- pDrawView->MouseButtonDown( aEvent, this );
- pDrawView->MouseButtonUp( aEvent, this );
+ pDrawView->MouseButtonDown( aEvent, GetOutDev() );
+ pDrawView->MouseButtonUp( aEvent, GetOutDev() );
}
return; // clicked within the edit area - keep edit mode
@@ -4754,7 +4754,7 @@ void ScGridWindow::UpdateFormulas(SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2)
Fraction aZoomX = mrViewData.GetZoomX();
Fraction aZoomY = mrViewData.GetZoomY();
- ScOutputData aOutputData( this, OUTTYPE_WINDOW, aTabInfo, &rDoc, nTab,
+ ScOutputData aOutputData( GetOutDev(), OUTTYPE_WINDOW, aTabInfo, &rDoc, nTab,
nScrX, nScrY, nX1, nY1, nX2, nY2, nPPTX, nPPTY,
&aZoomX, &aZoomY );
aOutputData.SetMirrorWidth( nMirrorWidth );
@@ -6188,7 +6188,7 @@ void ScGridWindow::UpdateCursorOverlay()
// non-active pane uses a different color.
aCursorColor = SC_MOD()->GetColorConfig().GetColorValue(svtools::CALCPAGEBREAKAUTOMATIC).nColor;
std::vector< basegfx::B2DRange > aRanges;
- const basegfx::B2DHomMatrix aTransform(GetInverseViewTransformation());
+ const basegfx::B2DHomMatrix aTransform(GetOutDev()->GetInverseViewTransformation());
for(const tools::Rectangle & rRA : aPixelRects)
{
@@ -6259,7 +6259,7 @@ void ScGridWindow::UpdateSelectionOverlay()
else if (xOverlayManager.is())
{
std::vector< basegfx::B2DRange > aRanges;
- const basegfx::B2DHomMatrix aTransform(GetInverseViewTransformation());
+ const basegfx::B2DHomMatrix aTransform(GetOutDev()->GetInverseViewTransformation());
ScDocument& rDoc = mrViewData.GetDocument();
SCTAB nTab = mrViewData.GetTabNo();
bool bLayoutRTL = rDoc.IsLayoutRTL( nTab );
@@ -6384,7 +6384,7 @@ void ScGridWindow::UpdateAutoFillOverlay()
// non-active pane uses a different color.
aHandleColor = SC_MOD()->GetColorConfig().GetColorValue(svtools::CALCPAGEBREAKAUTOMATIC).nColor;
std::vector< basegfx::B2DRange > aRanges;
- const basegfx::B2DHomMatrix aTransform(GetInverseViewTransformation());
+ const basegfx::B2DHomMatrix aTransform(GetOutDev()->GetInverseViewTransformation());
basegfx::B2DRange aRB = vcl::unotools::b2DRectangleFromRectangle(aFillRect);
aRB.transform(aTransform);
@@ -6507,7 +6507,7 @@ void ScGridWindow::UpdateDragRectOverlay()
if (xOverlayManager.is() && !comphelper::LibreOfficeKit::isActive())
{
std::vector< basegfx::B2DRange > aRanges;
- const basegfx::B2DHomMatrix aTransform(GetInverseViewTransformation());
+ const basegfx::B2DHomMatrix aTransform(GetOutDev()->GetInverseViewTransformation());
for(const tools::Rectangle & rRA : aPixelRects)
{
@@ -6556,7 +6556,7 @@ void ScGridWindow::UpdateHeaderOverlay()
{
// Color aHighlight = GetSettings().GetStyleSettings().GetHighlightColor();
std::vector< basegfx::B2DRange > aRanges;
- const basegfx::B2DHomMatrix aTransform(GetInverseViewTransformation());
+ const basegfx::B2DHomMatrix aTransform(GetOutDev()->GetInverseViewTransformation());
basegfx::B2DRange aRB(aInvertRect.Left(), aInvertRect.Top(), aInvertRect.Right() + 1, aInvertRect.Bottom() + 1);
aRB.transform(aTransform);
@@ -6623,7 +6623,7 @@ void ScGridWindow::UpdateShrinkOverlay()
if (xOverlayManager.is() && !comphelper::LibreOfficeKit::isActive())
{
std::vector< basegfx::B2DRange > aRanges;
- const basegfx::B2DHomMatrix aTransform(GetInverseViewTransformation());
+ const basegfx::B2DHomMatrix aTransform(GetOutDev()->GetInverseViewTransformation());
basegfx::B2DRange aRB(aPixRect.Left(), aPixRect.Top(), aPixRect.Right() + 1, aPixRect.Bottom() + 1);
aRB.transform(aTransform);
@@ -6652,7 +6652,7 @@ rtl::Reference<sdr::overlay::OverlayManager> ScGridWindow::getOverlayManager() c
if(pPV)
{
- SdrPageWindow* pPageWin = pPV->FindPageWindow( *this );
+ SdrPageWindow* pPageWin = pPV->FindPageWindow( *GetOutDev() );
if ( pPageWin )
{
diff --git a/sc/source/ui/view/gridwin2.cxx b/sc/source/ui/view/gridwin2.cxx
index 06b9a88bdaaf..bf1b7597b185 100644
--- a/sc/source/ui/view/gridwin2.cxx
+++ b/sc/source/ui/view/gridwin2.cxx
@@ -120,7 +120,7 @@ bool ScGridWindow::DoAutoFilterButton( SCCOL nCol, SCROW nRow, const MouseEvent&
Size aScrSize(nSizeX-1, nSizeY-1);
// Check if the mouse cursor is clicking on the popup arrow box.
- mpFilterButton.reset(new ScDPFieldButton(this, &GetSettings().GetStyleSettings(), &mrViewData.GetZoomY(), &rDoc));
+ mpFilterButton.reset(new ScDPFieldButton(GetOutDev(), &GetSettings().GetStyleSettings(), &mrViewData.GetZoomY(), &rDoc));
mpFilterButton->setBoundingBox(aScrPos, aScrSize, bLayoutRTL);
mpFilterButton->setPopupLeft(bLayoutRTL); // #i114944# AutoFilter button is left-aligned in RTL
Point aPopupPos;
@@ -351,7 +351,7 @@ bool ScGridWindow::DPTestFieldPopupArrow(
Size aScrSize(nSizeX-1, nSizeY-1);
// Check if the mouse cursor is clicking on the popup arrow box.
- ScDPFieldButton aBtn(this, &GetSettings().GetStyleSettings(), &GetMapMode().GetScaleY());
+ ScDPFieldButton aBtn(GetOutDev(), &GetSettings().GetStyleSettings(), &GetMapMode().GetScaleY());
aBtn.setBoundingBox(aScrPos, aScrSize, bLayoutRTL);
aBtn.setPopupLeft(false); // DataPilot popup is always right-aligned for now
Point aPopupPos;
diff --git a/sc/source/ui/view/gridwin3.cxx b/sc/source/ui/view/gridwin3.cxx
index cb8bc5393dc3..ae60b18a5cbf 100644
--- a/sc/source/ui/view/gridwin3.cxx
+++ b/sc/source/ui/view/gridwin3.cxx
@@ -281,7 +281,7 @@ MapMode ScGridWindow::GetDrawMapMode( bool bForce )
rDoc.GetTableArea( nTab, nEndCol, nEndRow );
if (nEndCol<20) nEndCol = 20;
if (nEndRow<20) nEndRow = 1000;
- ScDrawUtil::CalcScale( rDoc, nTab, 0,0, nEndCol,nEndRow, this,
+ ScDrawUtil::CalcScale( rDoc, nTab, 0,0, nEndCol,nEndRow, GetOutDev(),
mrViewData.GetZoomX(),mrViewData.GetZoomY(),
mrViewData.GetPPTX(),mrViewData.GetPPTY(),
aScaleX,aScaleY );
diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx
index bfee8d45eb15..a32ca723b446 100644
--- a/sc/source/ui/view/gridwin4.cxx
+++ b/sc/source/ui/view/gridwin4.cxx
@@ -551,7 +551,7 @@ void ScGridWindow::Draw( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2, ScUpdateMod
Fraction aZoomX = mrViewData.GetZoomX();
Fraction aZoomY = mrViewData.GetZoomY();
- ScOutputData aOutputData( this, OUTTYPE_WINDOW, aTabInfo, &rDoc, nTab,
+ ScOutputData aOutputData( GetOutDev(), OUTTYPE_WINDOW, aTabInfo, &rDoc, nTab,
nScrX, nScrY, nX1, nY1, nX2, nY2, nPPTX, nPPTY,
&aZoomX, &aZoomY );
@@ -581,7 +581,7 @@ void ScGridWindow::Draw( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2, ScUpdateMod
bLogicText = true; // use logic MapMode
}
- DrawContent(*this, aTabInfo, aOutputData, bLogicText);
+ DrawContent(*GetOutDev(), aTabInfo, aOutputData, bLogicText);
// If something was inverted during the Paint (selection changed from Basic Macro)
// then this is now mixed up and has to be repainted
@@ -1230,7 +1230,7 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableI
aBGAbs.AdjustLeft(1);
aBGAbs.AdjustTop(1);
- aCursorRect = OutputDevice::PixelToLogic(aBGAbs, aMM);
+ aCursorRect = GetOutDev()->PixelToLogic(aBGAbs, aMM);
aCursorRect.setWidth(0);
aCursorRect.Move(aCursPos.getX(), 0);
// Sends view cursor position to views of all matching zooms if needed (avoids duplicates).
@@ -1978,7 +1978,7 @@ void ScGridWindow::DrawButtons(SCCOL nX1, SCCOL nX2, const ScTableInfo& rTabInfo
}
pQueryParam.reset();
- aComboButton.SetOutputDevice( this );
+ aComboButton.SetOutputDevice( GetOutDev() );
}
tools::Rectangle ScGridWindow::GetListValButtonRect( const ScAddress& rButtonPos )
@@ -1988,7 +1988,7 @@ tools::Rectangle ScGridWindow::GetListValButtonRect( const ScAddress& rButtonPos
bool bLayoutRTL = rDoc.IsLayoutRTL( nTab );
tools::Long nLayoutSign = bLayoutRTL ? -1 : 1;
- ScDDComboBoxButton aButton( this ); // for optimal size
+ ScDDComboBoxButton aButton( GetOutDev() ); // for optimal size
Size aBtnSize = aButton.GetSizePixel();
SCCOL nCol = rButtonPos.Col();
diff --git a/sc/source/ui/view/gridwin5.cxx b/sc/source/ui/view/gridwin5.cxx
index 47e77a788357..01a1db0d5fe6 100644
--- a/sc/source/ui/view/gridwin5.cxx
+++ b/sc/source/ui/view/gridwin5.cxx
@@ -259,7 +259,7 @@ void ScGridWindow::RequestHelp(const HelpEvent& rHEvt)
{
Point aLogicPos = PixelToLogic( aPosPixel );
IMapObject* pIMapObj = SvxIMapInfo::GetHitIMapObject(
- aVEvt.pObj, aLogicPos, this );
+ aVEvt.pObj, aLogicPos, GetOutDev() );
if ( pIMapObj )
{
diff --git a/sc/source/ui/view/gridwin_dbgutil.cxx b/sc/source/ui/view/gridwin_dbgutil.cxx
index f9c2209bda88..5c1bcce7095e 100644
--- a/sc/source/ui/view/gridwin_dbgutil.cxx
+++ b/sc/source/ui/view/gridwin_dbgutil.cxx
@@ -58,7 +58,7 @@ void ScGridWindow::dumpColumnInformationHmm()
for (SCCOL nCol = 0; nCol <= 20; ++nCol)
{
sal_uInt16 nWidth = rDoc.GetColWidth(nCol, nTab);
- tools::Long nPixel = LogicToLogic(Point(nWidth, 0), MapMode(MapUnit::MapTwip), MapMode(MapUnit::Map100thMM)).getX();
+ tools::Long nPixel = OutputDevice::LogicToLogic(Point(nWidth, 0), MapMode(MapUnit::MapTwip), MapMode(MapUnit::Map100thMM)).getX();
std::cout << "Column: " << nCol << ", Width: " << nPixel << "hmm" << std::endl;
}
}
diff --git a/sc/source/ui/view/hdrcont.cxx b/sc/source/ui/view/hdrcont.cxx
index e322394d2025..c1fe53b96485 100644
--- a/sc/source/ui/view/hdrcont.cxx
+++ b/sc/source/ui/view/hdrcont.cxx
@@ -319,26 +319,26 @@ void ScHeaderControl::Paint( vcl::RenderContext& /*rRenderContext*/, const tools
// background is different for entry area and behind the entries
tools::Rectangle aFillRect;
- SetLineColor();
+ GetOutDev()->SetLineColor();
if ( nLineEnd * nLayoutSign >= nInitScrPos * nLayoutSign )
{
- SetFillColor( rStyleSettings.GetFaceColor() );
+ GetOutDev()->SetFillColor( rStyleSettings.GetFaceColor() );
if ( bVertical )
aFillRect = tools::Rectangle( 0, nInitScrPos, nBarSize-1, nLineEnd );
else
aFillRect = tools::Rectangle( nInitScrPos, 0, nLineEnd, nBarSize-1 );
- DrawRect( aFillRect );
+ GetOutDev()->DrawRect( aFillRect );
}
if ( nLineEnd * nLayoutSign < nPEnd * nLayoutSign )
{
- SetFillColor( SC_MOD()->GetColorConfig().GetColorValue(svtools::APPBACKGROUND).nColor );
+ GetOutDev()->SetFillColor( SC_MOD()->GetColorConfig().GetColorValue(svtools::APPBACKGROUND).nColor );
if ( bVertical )
aFillRect = tools::Rectangle( 0, nLineEnd+nLayoutSign, nBarSize-1, nPEnd );
else
aFillRect = tools::Rectangle( nLineEnd+nLayoutSign, 0, nPEnd, nBarSize-1 );
- DrawRect( aFillRect );
+ GetOutDev()->DrawRect( aFillRect );
}
if ( nLineEnd * nLayoutSign >= nPStart * nLayoutSign )
@@ -355,40 +355,40 @@ void ScHeaderControl::Paint( vcl::RenderContext& /*rRenderContext*/, const tools
if ( bDark )
{
// solid grey background for dark face color is drawn before lines
- SetLineColor();
- SetFillColor( COL_LIGHTGRAY );
- DrawRect( aFillRect );
+ GetOutDev()->SetLineColor();
+ GetOutDev()->SetFillColor( COL_LIGHTGRAY );
+ GetOutDev()->DrawRect( aFillRect );
}
}
else
{
// background for selection
- SetLineColor();
- SetFillColor( rStyleSettings.GetHighlightColor() );
- DrawRect( aFillRect );
+ GetOutDev()->SetLineColor();
+ GetOutDev()->SetFillColor( rStyleSettings.GetHighlightColor() );
+ GetOutDev()->DrawRect( aFillRect );
}
}
- SetLineColor( rStyleSettings.GetDarkShadowColor() );
+ GetOutDev()->SetLineColor( rStyleSettings.GetDarkShadowColor() );
if (bVertical)
{
tools::Long nDarkPos = bMirrored ? 0 : nBarSize-1;
- DrawLine( Point( nDarkPos, nPStart ), Point( nDarkPos, nLineEnd ) );
+ GetOutDev()->DrawLine( Point( nDarkPos, nPStart ), Point( nDarkPos, nLineEnd ) );
}
else
- DrawLine( Point( nPStart, nBarSize-1 ), Point( nLineEnd, nBarSize-1 ) );
+ GetOutDev()->DrawLine( Point( nPStart, nBarSize-1 ), Point( nLineEnd, nBarSize-1 ) );
// line in different color for selection
if ( nTransEnd * nLayoutSign >= nTransStart * nLayoutSign && !bHighContrast )
{
- SetLineColor( aSelLineColor );
+ GetOutDev()->SetLineColor( aSelLineColor );
if (bVertical)
{
tools::Long nDarkPos = bMirrored ? 0 : nBarSize-1;
- DrawLine( Point( nDarkPos, nTransStart ), Point( nDarkPos, nTransEnd ) );
+ GetOutDev()->DrawLine( Point( nDarkPos, nTransStart ), Point( nDarkPos, nTransEnd ) );
}
else
- DrawLine( Point( nTransStart, nBarSize-1 ), Point( nTransEnd, nBarSize-1 ) );
+ GetOutDev()->DrawLine( Point( nTransStart, nBarSize-1 ), Point( nTransEnd, nBarSize-1 ) );
}
}
@@ -446,7 +446,7 @@ void ScHeaderControl::Paint( vcl::RenderContext& /*rRenderContext*/, const tools
// loop through entries several times to avoid changing the line color too often
// and to allow merging of lines
- ScGridMerger aGrid( this, 1, 1 );
+ ScGridMerger aGrid( GetOutDev(), 1, 1 );
// start at SC_HDRPAINT_BOTTOM instead of 0 - selection doesn't get different
// borders, light border at top isn't used anymore
@@ -459,10 +459,10 @@ void ScHeaderControl::Paint( vcl::RenderContext& /*rRenderContext*/, const tools
{
case SC_HDRPAINT_SEL_BOTTOM:
// same as non-selected for high contrast
- SetLineColor( bHighContrast ? rStyleSettings.GetDarkShadowColor() : aSelLineColor );
+ GetOutDev()->SetLineColor( bHighContrast ? rStyleSettings.GetDarkShadowColor() : aSelLineColor );
break;
case SC_HDRPAINT_BOTTOM:
- SetLineColor( rStyleSettings.GetDarkShadowColor() );
+ GetOutDev()->SetLineColor( rStyleSettings.GetDarkShadowColor() );
break;
case SC_HDRPAINT_TEXT:
// DrawSelectionBackground is used only for high contrast on light background
@@ -538,10 +538,10 @@ void ScHeaderControl::Paint( vcl::RenderContext& /*rRenderContext*/, const tools
if ( GetEntrySize(nEntryNo+1)==0 )
{
if (bVertical)
- DrawLine( Point(aScrPos.X(),aEndPos.Y()-nLayoutSign),
+ GetOutDev()->DrawLine( Point(aScrPos.X(),aEndPos.Y()-nLayoutSign),
Point(aEndPos.X(),aEndPos.Y()-nLayoutSign) );
else
- DrawLine( Point(aEndPos.X()-nLayoutSign,aScrPos.Y()),
+ GetOutDev()->DrawLine( Point(aEndPos.X()-nLayoutSign,aScrPos.Y()),
Point(aEndPos.X()-nLayoutSign,aEndPos.Y()) );
}
}
@@ -603,7 +603,7 @@ void ScHeaderControl::Paint( vcl::RenderContext& /*rRenderContext*/, const tools
aTxtPos.AdjustX((nSizePix*nLayoutSign-aTextSize.Width()+1)/2 );
aTxtPos.AdjustY((nBarSize-aTextSize.Height())/2 );
}
- DrawText( aTxtPos, aString );
+ GetOutDev()->DrawText( aTxtPos, aString );
}
break;
}
diff --git a/sc/source/ui/view/notemark.cxx b/sc/source/ui/view/notemark.cxx
index 7b8dd7f6aef2..fd9ce3b406e0 100644
--- a/sc/source/ui/view/notemark.cxx
+++ b/sc/source/ui/view/notemark.cxx
@@ -149,19 +149,19 @@ void ScNoteMarker::Draw()
if ( !(m_xObject && m_bVisible) )
return;
- lcl_DrawWin( m_xObject.get(), m_pWindow, m_aMapMode );
+ lcl_DrawWin( m_xObject.get(), m_pWindow->GetOutDev(), m_aMapMode );
if ( m_pRightWin || m_pBottomWin )
{
Size aWinSize = m_pWindow->PixelToLogic( m_pWindow->GetOutputSizePixel(), m_aMapMode );
if ( m_pRightWin )
- lcl_DrawWin( m_xObject.get(), m_pRightWin,
+ lcl_DrawWin( m_xObject.get(), m_pRightWin->GetOutDev(),
lcl_MoveMapMode( m_aMapMode, Size( aWinSize.Width(), 0 ) ) );
if ( m_pBottomWin )
- lcl_DrawWin( m_xObject.get(), m_pBottomWin,
+ lcl_DrawWin( m_xObject.get(), m_pBottomWin->GetOutDev(),
lcl_MoveMapMode( m_aMapMode, Size( 0, aWinSize.Height() ) ) );
if ( m_pDiagWin )
- lcl_DrawWin( m_xObject.get(), m_pDiagWin, lcl_MoveMapMode( m_aMapMode, aWinSize ) );
+ lcl_DrawWin( m_xObject.get(), m_pDiagWin->GetOutDev(), lcl_MoveMapMode( m_aMapMode, aWinSize ) );
}
}
diff --git a/sc/source/ui/view/olinewin.cxx b/sc/source/ui/view/olinewin.cxx
index 97b7682d8fad..c6a5aac8488f 100644
--- a/sc/source/ui/view/olinewin.cxx
+++ b/sc/source/ui/view/olinewin.cxx
@@ -513,7 +513,7 @@ void ScOutlineWindow::DataChanged( const DataChangedEvent& rDCEvt )
void ScOutlineWindow::SetEntryAreaClipRegion()
{
- SetClipRegion( vcl::Region(tools::Rectangle(
+ GetOutDev()->SetClipRegion( vcl::Region(tools::Rectangle(
GetPoint( 0, mnMainFirstPos ),
GetPoint( GetOutputSizeLevel() - 1, mnMainLastPos ))));
}
@@ -521,13 +521,13 @@ void ScOutlineWindow::SetEntryAreaClipRegion()
void ScOutlineWindow::DrawLineRel(
tools::Long nLevelStart, tools::Long nEntryStart, tools::Long nLevelEnd, tools::Long nEntryEnd )
{
- DrawLine( GetPoint( nLevelStart, nEntryStart ), GetPoint( nLevelEnd, nEntryEnd ) );
+ GetOutDev()->DrawLine( GetPoint( nLevelStart, nEntryStart ), GetPoint( nLevelEnd, nEntryEnd ) );
}
void ScOutlineWindow::DrawRectRel(
tools::Long nLevelStart, tools::Long nEntryStart, tools::Long nLevelEnd, tools::Long nEntryEnd )
{
- DrawRect( GetRectangle( nLevelStart, nEntryStart, nLevelEnd, nEntryEnd ) );
+ GetOutDev()->DrawRect( GetRectangle( nLevelStart, nEntryStart, nLevelEnd, nEntryEnd ) );
}
namespace
@@ -541,11 +541,11 @@ namespace
void ScOutlineWindow::DrawImageRel(tools::Long nLevelPos, tools::Long nEntryPos, const OUString& rId)
{
const Image& rImage = GetImage(rId);
- SetLineColor();
- SetFillColor( GetBackground().GetColor() );
+ GetOutDev()->SetLineColor();
+ GetOutDev()->SetFillColor( GetBackground().GetColor() );
Point aPos( GetPoint( nLevelPos, nEntryPos ) );
- DrawRect( tools::Rectangle( aPos, rImage.GetSizePixel() ) );
- DrawImage( aPos, rImage );
+ GetOutDev()->DrawRect( tools::Rectangle( aPos, rImage.GetSizePixel() ) );
+ GetOutDev()->DrawImage( aPos, rImage );
}
void ScOutlineWindow::DrawBorderRel( size_t nLevel, size_t nEntry, bool bPressed )
@@ -557,9 +557,9 @@ void ScOutlineWindow::DrawBorderRel( size_t nLevel, size_t nEntry, bool bPressed
bool bClip = (nEntry != SC_OL_HEADERENTRY);
if ( bClip )
SetEntryAreaClipRegion();
- DrawImage(aPos, GetImage(sId));
+ GetOutDev()->DrawImage(aPos, GetImage(sId));
if ( bClip )
- SetClipRegion();
+ GetOutDev()->SetClipRegion();
}
mbMTPressed = bPressed;
}
@@ -585,7 +585,7 @@ void ScOutlineWindow::ShowFocus()
SetEntryAreaClipRegion();
InvertTracking( maFocusRect, ShowTrackFlags::Small | ShowTrackFlags::TrackWindow );
if ( bClip )
- SetClipRegion();
+ GetOutDev()->SetClipRegion();
}
}
@@ -598,7 +598,7 @@ void ScOutlineWindow::HideFocus()
SetEntryAreaClipRegion();
InvertTracking( maFocusRect, ShowTrackFlags::Small | ShowTrackFlags::TrackWindow );
if ( bClip )
- SetClipRegion();
+ GetOutDev()->SetClipRegion();
maFocusRect.SetEmpty();
}
}
@@ -624,7 +624,7 @@ void ScOutlineWindow::Paint( vcl::RenderContext& /*rRenderContext*/, const tools
tools::Long nLevelEnd = (mbHoriz ? aSize.Height() : aSize.Width()) - 1;
tools::Long nEntryEnd = (mbHoriz ? aSize.Width() : aSize.Height()) - 1;
- SetLineColor( maLineColor );
+ GetOutDev()->SetLineColor( maLineColor );
tools::Long nBorderPos = mbMirrorLevels ? 0 : nLevelEnd;
DrawLineRel( nBorderPos, 0, nBorderPos, nEntryEnd );
@@ -641,7 +641,7 @@ void ScOutlineWindow::Paint( vcl::RenderContext& /*rRenderContext*/, const tools
for ( size_t nLevel = 0; nLevel < nLevelCount; ++nLevel )
DrawImageRel(GetLevelPos(nLevel), nEntryPos, OUString(aLevelBmps[nLevel]));
- SetLineColor( maLineColor );
+ GetOutDev()->SetLineColor( maLineColor );
tools::Long nLinePos = mnHeaderPos + (mbMirrorEntries ? 0 : (mnHeaderSize - 1));
DrawLineRel( 0, nLinePos, nLevelEnd, nLinePos );
}
@@ -662,8 +662,8 @@ void ScOutlineWindow::Paint( vcl::RenderContext& /*rRenderContext*/, const tools
size_t nEntry;
// first draw all lines in the current level
- SetLineColor();
- SetFillColor( maLineColor );
+ GetOutDev()->SetLineColor();
+ GetOutDev()->SetFillColor( maLineColor );
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list