LibreOffice Module vcl (master) 1
window.h
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#pragma once
21
22#include <sal/config.h>
23
24#include <tools/fract.hxx>
25#include <vcl/commandevent.hxx>
26#include <vcl/idle.hxx>
27#include <vcl/inputctx.hxx>
28#include <vcl/window.hxx>
29#include <vcl/settings.hxx>
30#include <o3tl/deleter.hxx>
33#include "windowdev.hxx"
34#include "salwtype.hxx"
35
36#include <optional>
37#include <list>
38#include <memory>
39#include <vector>
40#include <set>
41
42class FixedText;
43class VclSizeGroup;
44class VirtualDevice;
45namespace vcl::font { class PhysicalFontCollection; }
46class ImplFontCache;
47class VCLXWindow;
48namespace vcl { class WindowData; }
49class SalFrame;
50class SalObject;
51enum class MouseEventModifiers;
52enum class NotifyEventType;
53enum class ActivateModeFlags;
54enum class DialogControlFlags;
55enum class GetFocusFlags;
56enum class ParentClipMode;
57enum class SalEvent;
58
59namespace com::sun::star {
60 namespace accessibility {
61 class XAccessible;
62 class XAccessibleContext;
63 class XAccessibleEditableText;
64 }
65
66 namespace awt {
67 class XWindowPeer;
68 class XWindow;
69 }
70 namespace uno {
71 class Any;
72 class XInterface;
73 }
74 namespace datatransfer {
75 namespace clipboard {
76 class XClipboard;
77 }
78 namespace dnd {
79 class XDropTargetListener;
80 class XDragGestureRecognizer;
81 class XDragSource;
82 class XDropTarget;
83 }
84 }
85}
86
88
89//return true if this window and its stack of containers are all shown
90bool isVisibleInLayout(const vcl::Window *pWindow);
91
92//return true if this window and its stack of containers are all enabled
93bool isEnabledInLayout(const vcl::Window *pWindow);
94
95bool ImplWindowFrameProc( vcl::Window* pInst, SalEvent nEvent, const void* pEvent );
96
98
100
102{
103 std::optional<OUString>
105 std::unique_ptr<ExtTextInputAttr[]>
107 std::optional<tools::Rectangle>
111 std::unique_ptr<tools::Rectangle[]>
114 std::optional<tools::Rectangle>
116 std::optional<tools::Rectangle>
119 sal_uInt16 mnIsTopWindow;
120 bool mbMouseOver; //< tracks mouse over for native widget paint effect
121 bool mbEnableNativeWidget; //< toggle native widget rendering
122 ::std::list< VclPtr<vcl::Window> >
124
125 ImplWinData();
126 ~ImplWinData();
127};
128
130{
131 Idle maPaintIdle; //< paint idle handler
132 Idle maResizeIdle; //< resize timer
133 InputContext maOldInputContext; //< last set Input Context
134 VclPtr<vcl::Window> mpNextFrame; //< next frame window
135 VclPtr<vcl::Window> mpFirstOverlap; //< first overlap vcl::Window
136 VclPtr<vcl::Window> mpFocusWin; //< focus window (is also set, when frame doesn't have the focus)
137 VclPtr<vcl::Window> mpMouseMoveWin; //< last window, where MouseMove() called
138 VclPtr<vcl::Window> mpMouseDownWin; //< last window, where MouseButtonDown() called
139 VclPtr<vcl::Window> mpTrackWin; //< window, that is in tracking mode
140 std::vector<VclPtr<vcl::Window> > maOwnerDrawList; //< List of system windows with owner draw decoration
141 std::shared_ptr<vcl::font::PhysicalFontCollection> mxFontCollection; //< Font-List for this frame
142 std::shared_ptr<ImplFontCache> mxFontCache; //< Font-Cache for this frame
143 sal_Int32 mnDPIX; //< Original Screen Resolution
144 sal_Int32 mnDPIY; //< Original Screen Resolution
145 ImplSVEvent * mnFocusId; //< FocusId for PostUserLink
146 ImplSVEvent * mnMouseMoveId; //< MoveId for PostUserLink
147 tools::Long mnLastMouseX; //< last x mouse position
148 tools::Long mnLastMouseY; //< last y mouse position
149 tools::Long mnBeforeLastMouseX; //< last but one x mouse position
150 tools::Long mnBeforeLastMouseY; //< last but one y mouse position
151 tools::Long mnFirstMouseX; //< first x mouse position by mousebuttondown
152 tools::Long mnFirstMouseY; //< first y mouse position by mousebuttondown
153 tools::Long mnLastMouseWinX; //< last x mouse position, rel. to pMouseMoveWin
154 tools::Long mnLastMouseWinY; //< last y mouse position, rel. to pMouseMoveWin
155 sal_uInt16 mnModalMode; //< frame based modal count (app based makes no sense anymore)
156 sal_uInt64 mnMouseDownTime; //< mouse button down time for double click
157 sal_uInt16 mnClickCount; //< mouse click count
158 sal_uInt16 mnFirstMouseCode; //< mouse code by mousebuttondown
159 sal_uInt16 mnMouseCode; //< mouse code
161 bool mbHasFocus; //< focus
162 bool mbInMouseMove; //< is MouseMove on stack
163 bool mbMouseIn; //> is Mouse inside the frame
164 bool mbStartDragCalled; //< is command startdrag called
165 bool mbNeedSysWindow; //< set, when FrameSize <= IMPL_MIN_NEEDSYSWIN
166 bool mbMinimized; //< set, when FrameSize <= 0
167 bool mbStartFocusState; //< FocusState, when sending the event
168 bool mbInSysObjFocusHdl; //< within a SysChildren's GetFocus handler
169 bool mbInSysObjToTopHdl; //< within a SysChildren's ToTop handler
170 bool mbSysObjFocus; //< does a SysChild have focus
172
173 css::uno::Reference< css::datatransfer::dnd::XDragSource > mxDragSource;
174 css::uno::Reference< css::datatransfer::dnd::XDropTarget > mxDropTarget;
175 css::uno::Reference< css::datatransfer::dnd::XDropTargetListener > mxDropTargetListener;
176 css::uno::Reference< css::datatransfer::clipboard::XClipboard > mxClipboard;
177
183
184 ImplFrameData( vcl::Window *pWindow );
185};
186
188{
189 sal_uInt16 nAccessibleRole;
190 std::optional<OUString>
192 std::optional<OUString>
196
199};
200
202
203enum class ImplPaintFlags {
204 NONE = 0x0000,
205 Paint = 0x0001,
206 PaintAll = 0x0002,
207 PaintAllChildren = 0x0004,
208 PaintChildren = 0x0008,
209 Erase = 0x0010,
210 CheckRtl = 0x0020,
211};
212namespace o3tl {
213 template<> struct typed_flags<ImplPaintFlags> : is_typed_flags<ImplPaintFlags, 0x003f> {};
214}
215
216
218{
219private:
220 WindowImpl(const WindowImpl&) = delete;
221 WindowImpl& operator=(const WindowImpl&) = delete;
222public:
223 WindowImpl( vcl::Window& rWindow, WindowType );
224 ~WindowImpl();
225
227 std::unique_ptr<ImplWinData> mpWinData;
246 std::vector<Link<VclWindowEvent&,void>> maEventListeners;
248 std::set<Link<VclWindowEvent&,void>> maEventListenersDeleted;
249 std::vector<Link<VclWindowEvent&,void>> maChildEventListeners;
251 std::set<Link<VclWindowEvent&,void>> maChildEventListenersDeleted;
255
259 OUString maText;
260 std::optional<vcl::Font>
264 sal_Int32 mnLeftBorder;
265 sal_Int32 mnTopBorder;
266 sal_Int32 mnRightBorder;
267 sal_Int32 mnBottomBorder;
268 sal_Int32 mnWidthRequest;
276 OString maHelpId;
277 OUString maHelpText;
279 OUString maID;
281 css::uno::Reference< css::awt::XWindowPeer > mxWindowPeer;
282 css::uno::Reference< css::accessibility::XAccessible > mxAccessible;
283 std::shared_ptr< VclSizeGroup > m_xSizeGroup;
284 std::vector<VclPtr<FixedText>> m_aMnemonicLabels;
285 std::unique_ptr<ImplAccessibleInfos> mpAccessibleInfos;
287 vcl::Region maWinRegion; //< region to 'shape' the VCL window (frame coordinates)
288 vcl::Region maWinClipRegion; //< the (clipping) region that finally corresponds to the VCL window (frame coordinates)
289 vcl::Region maInvalidateRegion; //< region that has to be redrawn (frame coordinates)
290 std::unique_ptr<vcl::Region> mpChildClipRegion; //< child clip region if CLIPCHILDREN is set (frame coordinates)
291 vcl::Region* mpPaintRegion; //< only set during Paint() method call (window coordinates)
297 sal_uInt16 mnWaitCount;
307 sal_Int32 mnPadding;
308 sal_Int32 mnGridHeight;
311 sal_Int32 mnGridWidth;
312 sal_Int32 mnBorderWidth;
313 sal_Int32 mnMarginLeft;
314 sal_Int32 mnMarginRight;
315 sal_Int32 mnMarginTop;
316 sal_Int32 mnMarginBottom;
317 bool mbFrame:1,
391
392 css::uno::Reference< css::uno::XInterface > mxDNDListenerContainer;
393
394 const vcl::ILibreOfficeKitNotifier* mpLOKNotifier;
398};
399
400namespace vcl
401{
404{
413public:
414 PaintBufferGuard(ImplFrameData* pFrameData, vcl::Window* pWindow);
415 ~PaintBufferGuard() COVERITY_NOEXCEPT_FALSE;
417 void SetPaintRect(const tools::Rectangle& rRectangle);
419 vcl::RenderContext* GetRenderContext();
420};
421typedef std::unique_ptr<PaintBufferGuard, o3tl::default_delete<PaintBufferGuard>> PaintBufferGuardPtr;
422}
423
424// helper methods
425
426bool ImplHandleMouseEvent( const VclPtr<vcl::Window>& xWindow, NotifyEventType nSVEvent, bool bMouseLeave,
427 tools::Long nX, tools::Long nY, sal_uInt64 nMsgTime,
428 sal_uInt16 nCode, MouseEventModifiers nMode );
429
430bool ImplLOKHandleMouseEvent( const VclPtr<vcl::Window>& xWindow, NotifyEventType nSVEvent, bool bMouseLeave,
431 tools::Long nX, tools::Long nY, sal_uInt64 nMsgTime,
432 sal_uInt16 nCode, MouseEventModifiers nMode, sal_uInt16 nClicks);
433
434void ImplHandleResize( vcl::Window* pWindow, tools::Long nNewWidth, tools::Long nNewHeight );
435
436VCL_DLLPUBLIC css::uno::Reference<css::accessibility::XAccessibleEditableText>
437FindFocusedEditableText(css::uno::Reference<css::accessibility::XAccessibleContext> const&);
438
439/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
An idle is a timer to be scheduled immediately.
Definition: idle.hxx:35
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
Definition: outdev.hxx:171
A SalFrame is a system window (e.g. an X11 window).
Definition: salframe.hxx:115
bool mbCompoundControlHasFocus
Definition: window.h:367
sal_Int32 mnGridTopAttach
Definition: window.h:310
bool mbToolBox
Definition: window.h:375
bool mbSysWin
Definition: window.h:320
bool mbFocusVisible
Definition: window.h:357
OString maHelpId
Definition: window.h:276
bool mbFill
Definition: window.h:387
tools::Long mnAbsScreenX
Definition: window.h:274
bool mbFrame
Definition: window.h:317
ControlPart mnNativeBackground
Definition: window.h:296
bool mbAlwaysOnTop
Definition: window.h:365
bool mbNonHomogeneous
Definition: window.h:389
bool mbVisible
Definition: window.h:325
bool mbDisabled
Definition: window.h:326
bool mbMouseButtonUp
Definition: window.h:339
bool mbClipChildren
Definition: window.h:351
VclPtr< vcl::Window > mpRealParent
Definition: window.h:236
css::uno::Reference< css::awt::XWindowPeer > mxWindowPeer
Definition: window.h:281
bool mbCreatedWithToolkit
Definition: window.h:374
bool mbInitChildRegion
Definition: window.h:349
bool mbIsInTaskPaneList
Definition: window.h:380
bool mbOverlapWin
Definition: window.h:319
bool mbWinRegion
Definition: window.h:350
bool mbExpand
Definition: window.h:386
WindowType mnType
Definition: window.h:295
VclPtr< vcl::Window > mpNext
Definition: window.h:242
bool mbExtTextInput
Definition: window.h:371
std::unique_ptr< vcl::Region > mpChildClipRegion
Definition: window.h:290
std::vector< Link< VclWindowEvent &, void > > maChildEventListeners
Definition: window.h:249
WinBits mnStyle
Definition: window.h:292
ActivateModeFlags mnActivateMode
Definition: window.h:301
bool mbClipSiblings
Definition: window.h:352
bool mbActive
Definition: window.h:330
VclPtr< vcl::Window > mpBorderWindow
Definition: window.h:233
tools::Long mnX
Definition: window.h:272
VclPackType mePackType
Definition: window.h:306
VclPtr< vcl::Window > mpFirstChild
Definition: window.h:237
bool mbDefPos
Definition: window.h:343
bool mbInDispose
Definition: window.h:370
bool mbLOKParentNotifier
Definition: window.h:396
Fraction maZoom
Definition: window.h:258
Point maPos
Definition: window.h:275
bool mbInHideFocus
Definition: window.h:362
InputContext maInputContext
Definition: window.h:280
VclPtr< vcl::Window > mpParent
Definition: window.h:235
sal_Int32 mnTopBorder
Definition: window.h:265
bool mbInitWinClipRegion
Definition: window.h:348
bool mbMouseButtonDown
Definition: window.h:338
bool mbVexpand
Definition: window.h:385
sal_Int32 mnGridLeftAttach
Definition: window.h:309
SalFrame * mpFrame
Definition: window.h:229
bool mbMenuFloatingWindow
Definition: window.h:378
bool mbMouseTransparent
Definition: window.h:355
sal_Int32 mnGridHeight
Definition: window.h:308
VclPtr< vcl::Window > mpOverlapWindow
Definition: window.h:232
sal_Int32 mnOptimalWidthCache
Definition: window.h:270
bool mbCallResize
Definition: window.h:346
bool mbDockWin
Definition: window.h:322
bool mbInPaint
Definition: window.h:337
vcl::Region maInvalidateRegion
Definition: window.h:289
OUString maHelpText
Definition: window.h:277
css::uno::Reference< css::uno::XInterface > mxDNDListenerContainer
Definition: window.h:392
bool mbTrackVisible
Definition: window.h:358
SalObject * mpSysObj
Definition: window.h:230
bool mbControlBackground
Definition: window.h:364
VclPtr< vcl::WindowOutputDevice > mxOutDev
Definition: window.h:226
WindowImpl & operator=(const WindowImpl &)=delete
bool mbFakeFocusSet
Definition: window.h:383
int mnEventListenersIteratingCount
Definition: window.h:247
bool mbKeyUp
Definition: window.h:341
bool mbUseFrameData
Definition: window.h:397
bool mbSecondary
Definition: window.h:388
WindowExtendedStyle mnExtendedStyle
Definition: window.h:294
VclPtr< vcl::Window > mpFrameWindow
Definition: window.h:231
std::set< Link< VclWindowEvent &, void > > maEventListenersDeleted
Definition: window.h:248
bool mbDrawSelectionBackground
Definition: window.h:379
std::vector< Link< VclWindowEvent &, void > > maEventListeners
Definition: window.h:246
ImplFrameData * mpFrameData
Definition: window.h:228
OUString maID
Definition: window.h:279
bool mbPaintDisabled
Definition: window.h:368
sal_Int32 mnPadding
Definition: window.h:307
vcl::Region maWinClipRegion
Definition: window.h:288
sal_Int32 mnLeftBorder
Definition: window.h:264
vcl::Region * mpPaintRegion
Definition: window.h:291
sal_Int32 mnOptimalHeightCache
Definition: window.h:271
sal_Int32 mnWidthRequest
Definition: window.h:268
bool mbPaintTransparent
Definition: window.h:354
bool mbKeyInput
Definition: window.h:340
std::optional< vcl::Font > mpControlFont
Definition: window.h:261
bool mbNativeFocusVisible
Definition: window.h:360
bool mbFloatWin
Definition: window.h:323
bool mbNoPtrVisible
Definition: window.h:335
bool mbOverlapVisible
Definition: window.h:373
ImplPaintFlags mnPaintFlags
Definition: window.h:298
bool mbHexpand
Definition: window.h:384
VCLXWindow * mpVCLXWindow
Definition: window.h:286
sal_Int32 mnMarginLeft
Definition: window.h:313
bool mbDlgCtrlStart
Definition: window.h:356
VclPtr< vcl::Window > mpClientWindow
Definition: window.h:234
bool mbDoubleBufferingRequested
Definition: window.h:390
VclPtr< vcl::Window > mpDlgCtrlDownWindow
Definition: window.h:245
GetFocusFlags mnGetFocusFlags
Definition: window.h:299
sal_uInt16 mnWaitCount
Definition: window.h:297
bool mbToolbarFloatingWindow
Definition: window.h:381
OUString maQuickHelpText
Definition: window.h:278
vcl::Region maWinRegion
Definition: window.h:287
ParentClipMode mnParentClipMode
Definition: window.h:300
bool mbSplitter
Definition: window.h:376
sal_Int32 mnMarginRight
Definition: window.h:314
std::set< Link< VclWindowEvent &, void > > maChildEventListenersDeleted
Definition: window.h:251
Color maControlBackground
Definition: window.h:263
std::unique_ptr< ImplAccessibleInfos > mpAccessibleInfos
Definition: window.h:285
bool mbNoParentUpdate
Definition: window.h:329
bool mbInFocusHdl
Definition: window.h:372
int mnChildEventListenersIteratingCount
Definition: window.h:250
std::unique_ptr< ImplWinData > mpWinData
Definition: window.h:227
vcl::Cursor * mpCursor
Definition: window.h:256
sal_Int32 mnHeightRequest
Definition: window.h:269
VclPtr< vcl::Window > mpNextOverlap
Definition: window.h:243
bool mbDialog
Definition: window.h:321
bool mbCompoundControl
Definition: window.h:366
Link< vcl::Window &, bool > maHelpRequestHdl
Definition: window.h:252
VclAlign meHalign
Definition: window.h:304
bool mbDefSize
Definition: window.h:344
bool mbReallyShown
Definition: window.h:332
WindowImpl(const WindowImpl &)=delete
bool mbCallMove
Definition: window.h:345
AlwaysInputMode meAlwaysInputMode
Definition: window.h:303
bool mbSuppressAccessibilityEvents
Definition: window.h:377
WinBits mnPrevStyle
Definition: window.h:293
VclPtr< vcl::Window > mpLastChild
Definition: window.h:238
bool mbNoUpdate
Definition: window.h:328
tools::Long mnY
Definition: window.h:273
bool mbUseNativeFocus
Definition: window.h:359
Link< vcl::Window &, bool > maMnemonicActivateHdl
Definition: window.h:253
bool mbChildTransparent
Definition: window.h:353
sal_Int32 mnMarginBottom
Definition: window.h:316
css::uno::Reference< css::accessibility::XAccessible > mxAccessible
Definition: window.h:282
bool mbAllResize
Definition: window.h:369
vcl::LOKWindowId mnLOKWindowId
ID of this specific window.
Definition: window.h:395
sal_Int32 mnGridWidth
Definition: window.h:311
bool mbPushButton
Definition: window.h:324
bool mbInShowFocus
Definition: window.h:361
Link< tools::JsonWriter &, void > maDumpAsPropertyTreeHdl
Definition: window.h:254
sal_Int32 mnBorderWidth
Definition: window.h:312
Color maControlForeground
Definition: window.h:262
VclPtr< vcl::Window > mpPrev
Definition: window.h:241
sal_Int32 mnRightBorder
Definition: window.h:266
DialogControlFlags mnDlgCtrlFlags
Definition: window.h:302
sal_Int32 mnMarginTop
Definition: window.h:315
bool mbHelpTextDynamic
Definition: window.h:382
bool mbCommand
Definition: window.h:342
bool mbWaitSystemResize
Definition: window.h:347
~WindowImpl()
Definition: window.cxx:741
bool mbReallyVisible
Definition: window.h:331
bool mbPaintFrame
Definition: window.h:336
bool mbInInitShow
Definition: window.h:333
PointerStyle maPointer
Definition: window.h:257
VclPtr< vcl::Window > mpLastOverlap
Definition: window.h:240
VclPtr< vcl::Window > mpLastFocusWindow
Definition: window.h:244
bool mbInputDisabled
Definition: window.h:327
OUString maText
Definition: window.h:259
sal_Int32 mnBottomBorder
Definition: window.h:267
VclAlign meValign
Definition: window.h:305
VclPtr< vcl::Window > mpFirstOverlap
Definition: window.h:239
bool mbBorderWin
Definition: window.h:318
std::shared_ptr< VclSizeGroup > m_xSizeGroup
Definition: window.h:283
bool mbChildPtrOverwrite
Definition: window.h:334
std::vector< VclPtr< FixedText > > m_aMnemonicLabels
Definition: window.h:284
bool mbControlForeground
Definition: window.h:363
const vcl::ILibreOfficeKitNotifier * mpLOKNotifier
To emit the LOK callbacks eg. for dialog tunneling.
Definition: window.h:394
Sets up the buffer to have settings matching the window, and restores the original state in the dtor.
Definition: window.h:404
AllSettings maSettings
Definition: window.h:409
ImplFrameData * mpFrameData
Definition: window.h:405
VclPtr< vcl::Window > m_pWindow
Definition: window.h:406
tools::Long mnOutOffY
Definition: window.h:411
tools::Long mnOutOffX
Definition: window.h:410
tools::Rectangle m_aPaintRect
Definition: window.h:412
Wallpaper maBackground
Definition: window.h:408
#define VCL_DLLPUBLIC
Definition: dllapi.h:29
NotifyEventType
Definition: event.hxx:276
MouseEventModifiers
Definition: event.hxx:80
NONE
long Long
A PhysicalFontFaceCollection is created by a PhysicalFontCollection and becomes invalid when original...
std::unique_ptr< PaintBufferGuard, o3tl::default_delete< PaintBufferGuard > > PaintBufferGuardPtr
Definition: window.h:421
sal_uInt32 LOKWindowId
PointerStyle
Definition: ptrstyle.hxx:26
SalEvent
Definition: salwtype.hxx:46
std::optional< OUString > pAccessibleName
Definition: window.h:191
VclPtr< vcl::Window > pLabeledByWindow
Definition: window.h:194
sal_uInt16 nAccessibleRole
Definition: window.h:189
std::optional< OUString > pAccessibleDescription
Definition: window.h:193
VclPtr< vcl::Window > pLabelForWindow
Definition: window.h:195
VclPtr< vcl::Window > mpTrackWin
Definition: window.h:139
css::uno::Reference< css::datatransfer::dnd::XDragSource > mxDragSource
Definition: window.h:173
bool mbDragging
Definition: window.h:179
tools::Long mnBeforeLastMouseX
Definition: window.h:149
Idle maResizeIdle
Definition: window.h:132
bool mbNeedSysWindow
Definition: window.h:165
sal_uInt64 mnMouseDownTime
Definition: window.h:156
bool mbInMouseMove
Definition: window.h:162
sal_Int32 mnTouchPanPosition
Definition: window.h:171
ImplFrameData(vcl::Window *pWindow)
Definition: window.cxx:763
bool mbStartFocusState
Definition: window.h:167
MouseEventModifiers mnMouseMode
Definition: window.h:160
css::uno::Reference< css::datatransfer::dnd::XDropTarget > mxDropTarget
Definition: window.h:174
VclPtr< VirtualDevice > mpBuffer
Buffer for the double-buffering.
Definition: window.h:180
bool mbStartDragCalled
Definition: window.h:164
bool mbInBufferedPaint
PaintHelper is in the process of painting into this buffer.
Definition: window.h:181
bool mbInSysObjToTopHdl
Definition: window.h:169
tools::Long mnFirstMouseY
Definition: window.h:152
std::shared_ptr< vcl::font::PhysicalFontCollection > mxFontCollection
Definition: window.h:141
tools::Long mnLastMouseY
Definition: window.h:148
sal_uInt16 mnMouseCode
Definition: window.h:159
VclPtr< vcl::Window > mpMouseMoveWin
Definition: window.h:137
tools::Long mnBeforeLastMouseY
Definition: window.h:150
css::uno::Reference< css::datatransfer::dnd::XDropTargetListener > mxDropTargetListener
Definition: window.h:175
tools::Long mnLastMouseX
Definition: window.h:147
sal_Int32 mnDPIX
Definition: window.h:143
std::shared_ptr< ImplFontCache > mxFontCache
Definition: window.h:142
Idle maPaintIdle
Definition: window.h:131
ImplSVEvent * mnMouseMoveId
Definition: window.h:146
bool mbInSysObjFocusHdl
Definition: window.h:168
ImplSVEvent * mnFocusId
Definition: window.h:145
tools::Long mnLastMouseWinY
Definition: window.h:154
sal_Int32 mnDPIY
Definition: window.h:144
VclPtr< vcl::Window > mpMouseDownWin
Definition: window.h:138
bool mbMouseIn
Definition: window.h:163
css::uno::Reference< css::datatransfer::clipboard::XClipboard > mxClipboard
Definition: window.h:176
bool mbSysObjFocus
Definition: window.h:170
sal_uInt16 mnClickCount
Definition: window.h:157
InputContext maOldInputContext
Definition: window.h:133
tools::Rectangle maBufferedRect
Rectangle in the buffer that has to be painted to the screen.
Definition: window.h:182
tools::Long mnFirstMouseX
Definition: window.h:151
sal_uInt16 mnModalMode
Definition: window.h:155
VclPtr< vcl::Window > mpNextFrame
Definition: window.h:134
VclPtr< vcl::Window > mpFirstOverlap
Definition: window.h:135
bool mbMinimized
Definition: window.h:166
VclPtr< vcl::Window > mpFocusWin
Definition: window.h:136
bool mbHasFocus
Definition: window.h:161
sal_uInt16 mnFirstMouseCode
Definition: window.h:158
bool mbInternalDragGestureRecognizer
Definition: window.h:178
tools::Long mnLastMouseWinX
Definition: window.h:153
std::vector< VclPtr< vcl::Window > > maOwnerDrawList
Definition: window.h:140
std::optional< tools::Rectangle > mpTrackRect
Definition: window.h:117
tools::Long mnCompositionCharRects
Definition: window.h:113
std::unique_ptr< tools::Rectangle[]> mpCompositionCharRects
Definition: window.h:112
std::optional< OUString > mpExtOldText
Definition: window.h:104
std::optional< tools::Rectangle > mpCursorRect
Definition: window.h:108
sal_uInt16 mnIsTopWindow
Definition: window.h:119
bool mbEnableNativeWidget
Definition: window.h:121
::std::list< VclPtr< vcl::Window > > maTopWindowChildren
Definition: window.h:123
std::optional< tools::Rectangle > mpFocusRect
Definition: window.h:115
bool mbMouseOver
Definition: window.h:120
~ImplWinData()
Definition: window.cxx:758
std::unique_ptr< ExtTextInputAttr[]> mpExtOldAttrAry
Definition: window.h:106
bool mbVertical
Definition: window.h:110
ShowTrackFlags mnTrackFlags
Definition: window.h:118
tools::Long mnCursorExtWidth
Definition: window.h:109
VclAlign
Definition: vclenum.hxx:193
VclPackType
Definition: vclenum.hxx:201
MouseEventModifiers ImplGetMouseButtonMode(SalMouseEvent const *pEvent)
Definition: winproc.cxx:2306
ImplPaintFlags
Definition: window.h:203
AlwaysInputMode
Definition: window.h:201
@ AlwaysInputEnabled
Definition: window.h:201
@ AlwaysInputNone
Definition: window.h:201
bool ImplHandleMouseEvent(const VclPtr< vcl::Window > &xWindow, NotifyEventType nSVEvent, bool bMouseLeave, tools::Long nX, tools::Long nY, sal_uInt64 nMsgTime, sal_uInt16 nCode, MouseEventModifiers nMode)
Definition: winproc.cxx:268
bool isEnabledInLayout(const vcl::Window *pWindow)
Definition: layout.cxx:2910
bool isVisibleInLayout(const vcl::Window *pWindow)
Definition: layout.cxx:2897
VCL_DLLPUBLIC Size bestmaxFrameSizeForScreenSize(const Size &rScreenSize)
Definition: dialog.cxx:706
MouseEventModifiers ImplGetMouseMoveMode(SalMouseEvent const *pEvent)
Definition: winproc.cxx:2294
bool ImplLOKHandleMouseEvent(const VclPtr< vcl::Window > &xWindow, NotifyEventType nSVEvent, bool bMouseLeave, tools::Long nX, tools::Long nY, sal_uInt64 nMsgTime, sal_uInt16 nCode, MouseEventModifiers nMode, sal_uInt16 nClicks)
Definition: winproc.cxx:808
VCL_DLLPUBLIC css::uno::Reference< css::accessibility::XAccessibleEditableText > FindFocusedEditableText(css::uno::Reference< css::accessibility::XAccessibleContext > const &)
bool ImplWindowFrameProc(vcl::Window *pInst, SalEvent nEvent, const void *pEvent)
Definition: winproc.cxx:2653
void ImplHandleResize(vcl::Window *pWindow, tools::Long nNewWidth, tools::Long nNewHeight)
Definition: winproc.cxx:1912
GetFocusFlags
Definition: window.hxx:313
ShowTrackFlags
Definition: window.hxx:248
ParentClipMode
Definition: window.hxx:237
DialogControlFlags
Definition: window.hxx:333
ActivateModeFlags
Definition: window.hxx:160
WindowExtendedStyle
Definition: window.hxx:413
sal_Int64 WinBits
Definition: wintypes.hxx:109
WindowType
Definition: wintypes.hxx:27