LibreOffice Module svx (master)
1
include
svx
sdrpagewindow.hxx
Go to the documentation of this file.
1
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
/*
3
* This file is part of the LibreOffice project.
4
*
5
* This Source Code Form is subject to the terms of the Mozilla Public
6
* License, v. 2.0. If a copy of the MPL was not distributed with this
7
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
8
*
9
* This file incorporates work covered by the following license notice:
10
*
11
* Licensed to the Apache Software Foundation (ASF) under one or more
12
* contributor license agreements. See the NOTICE file distributed
13
* with this work for additional information regarding copyright
14
* ownership. The ASF licenses this file to you under the Apache
15
* License, Version 2.0 (the "License"); you may not use this file
16
* except in compliance with the License. You may obtain a copy of
17
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
18
*/
19
20
#ifndef INCLUDED_SVX_SDRPAGEWINDOW_HXX
21
#define INCLUDED_SVX_SDRPAGEWINDOW_HXX
22
23
#include <
basegfx/range/b2irectangle.hxx
>
24
#include <
svx/svdtypes.hxx
>
25
#include <
svx/svxdllapi.h
>
26
#include <memory>
27
28
namespace
com::sun::star::awt
{
class
XControlContainer; }
29
namespace
com::sun::star::uno
{
template
<
class
int
erface_type>
class
Reference
; }
30
namespace
rtl
{
template
<
class
reference_type>
class
Reference
; }
31
namespace
sdr::overlay
{
class
OverlayManager; }
32
namespace
vcl
{
class
Region; }
33
34
namespace
sdr::contact
35
{
36
class
ObjectContact;
37
class
ViewObjectContactRedirector;
38
}
39
40
41
namespace
basegfx
{
class
B2DRange; }
42
43
class
SdrPaintWindow
;
44
class
SdrPageView
;
45
46
class
SVXCORE_DLLPUBLIC
SdrPageWindow
47
{
48
struct
Impl
;
49
50
std::unique_ptr<Impl>
mpImpl
;
51
52
SdrPageWindow
(
const
SdrPageWindow
& ) =
delete
;
53
SdrPageWindow
& operator= (
const
SdrPageWindow
& ) =
delete
;
54
55
public
:
56
SdrPageWindow
(
SdrPageView
& rNewPageView,
SdrPaintWindow
& rPaintWindow);
57
~SdrPageWindow
();
58
59
// data read accesses
60
SdrPageView
& GetPageView()
const
;
61
SdrPaintWindow
& GetPaintWindow()
const
;
62
const
SdrPaintWindow
* GetOriginalPaintWindow()
const
;
63
css::uno::Reference<css::awt::XControlContainer>
const
& GetControlContainer(
bool
_bCreateIfNecessary =
true
)
const
;
64
65
// OVERLAYMANAGER
66
rtl::Reference< sdr::overlay::OverlayManager >
const
& GetOverlayManager()
const
;
67
68
// #i72752# allow patcing SdrPaintWindow from SdrPageView::DrawLayer if needed
69
[[nodiscard]]
SdrPaintWindow
* patchPaintWindow(
SdrPaintWindow
& rPaintWindow);
70
void
unpatchPaintWindow(
SdrPaintWindow
* pPreviousPaintWindow);
71
72
// the repaint method. For migration from pPaintProc, use one more parameter
73
void
PrePaint();
74
void
PrepareRedraw(
const
vcl::Region
& rReg);
75
void
RedrawAll(
sdr::contact::ViewObjectContactRedirector
* pRedirector );
76
void
RedrawLayer(
const
SdrLayerID
* pId,
sdr::contact::ViewObjectContactRedirector
* pRedirector,
basegfx::B2IRectangle
const
*);
77
78
// Invalidate call, used from ObjectContact(OfPageView) in InvalidatePartOfView(...)
79
void
InvalidatePageWindow(
const
basegfx::B2DRange
& rRange);
80
81
// #110094# ObjectContact section
82
const
sdr::contact::ObjectContact
& GetObjectContact()
const
;
83
sdr::contact::ObjectContact
& GetObjectContact();
85
bool
HasObjectContact()
const
;
86
87
// #i26631#
88
void
ResetObjectContact();
89
92
void
SetDesignMode(
bool
_bDesignMode )
const
;
93
};
94
95
#endif
// INCLUDED_SVX_SDRPAGEWINDOW_HXX
96
97
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
b2irectangle.hxx
SdrPageView
Definition:
svdpagv.hxx:56
SdrPageWindow
Definition:
sdrpagewindow.hxx:47
SdrPageWindow::mpImpl
std::unique_ptr< Impl > mpImpl
Definition:
sdrpagewindow.hxx:48
SdrPageWindow::SdrPageWindow
SdrPageWindow(const SdrPageWindow &)=delete
SdrPaintWindow
Definition:
sdrpaintwindow.hxx:60
basegfx::B2DRange
basegfx::B2IRange
rtl::Reference< sdr::overlay::OverlayManager >
sdr::contact::ObjectContact
Definition:
objectcontact.hxx:49
sdr::contact::ViewObjectContactRedirector
Definition:
viewobjectcontactredirector.hxx:36
vcl::Region
basegfx
com::sun::star::awt
com::sun::star::uno
Reference
Reference
rtl
sdr::contact
sdr::overlay
vcl
SdrPageWindow::Impl
Definition:
sdrpagewindow.cxx:41
o3tl::strong_int< sal_Int16, struct SdrLayerIDTag >
svdtypes.hxx
svxdllapi.h
SVXCORE_DLLPUBLIC
#define SVXCORE_DLLPUBLIC
Definition:
svxdllapi.h:35
Generated on Sun Jul 30 2023 04:27:35 for LibreOffice Module svx (master) by
1.9.3