LibreOffice Module vcl (master) 1
svdata.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#pragma once
21
22#include <sal/config.h>
23#include <config_version.h>
24
25#include <o3tl/lru_map.hxx>
26#include <o3tl/hash_combine.hxx>
27#include <tools/fldunit.hxx>
28#include <unotools/options.hxx>
29#include <vcl/bitmapex.hxx>
30#include <vcl/image.hxx>
31#include <vcl/settings.hxx>
32#include <vcl/svapp.hxx>
33#include <vcl/window.hxx>
34#include <vcl/task.hxx>
35#include <LibreOfficeKit/LibreOfficeKitTypes.h>
36#include <unotools/resmgr.hxx>
37
38#include <com/sun/star/lang/XComponent.hpp>
39#include <com/sun/star/i18n/XCharacterClassification.hpp>
40
41#include "vcleventlisteners.hxx"
42#include "salwtype.hxx"
44
45#include <mutex>
46#include <optional>
47#include <vector>
48#include <unordered_map>
49#include "ControlCacheKey.hxx"
50#include "schedulerimpl.hxx"
52
54struct ImplTimerData;
55struct ImplIdleData;
56struct ImplConfigData;
57namespace rtl
58{
59 class OStringBuffer;
60}
61namespace vcl::font
62{
63 class DirectFontSubstitution;
64 class PhysicalFontCollection;
65}
66struct ImplHotKey;
67struct ImplEventHook;
68class Point;
70class ImplFontCache;
71class HelpTextWindow;
72class ImplTBDragMgr;
73class ImplIdleMgr;
74class FloatingWindow;
75class AllSettings;
76class NotifyEvent;
77class Timer;
78class AutoTimer;
79class Idle;
80class Help;
81class PopupMenu;
82class Application;
83class OutputDevice;
84class SvFileStream;
85class SystemWindow;
86class WorkWindow;
87class Dialog;
88class VirtualDevice;
89class Printer;
90class SalFrame;
91class SalInstance;
92class SalSystem;
94class UnoWrapperBase;
96class ImplWheelWindow;
97class SalTimer;
98class DockingManager;
99class VclEventListeners2;
100class SalData;
101class OpenGLContext;
102class UITestLogger;
103
104#define SV_ICON_ID_OFFICE 1
105#define SV_ICON_ID_TEXT 2
106#define SV_ICON_ID_TEXT_TEMPLATE 3
107#define SV_ICON_ID_SPREADSHEET 4
108#define SV_ICON_ID_SPREADSHEET_TEMPLATE 5
109#define SV_ICON_ID_DRAWING 6
110#define SV_ICON_ID_PRESENTATION 8
111#define SV_ICON_ID_MASTER_DOCUMENT 10
112#define SV_ICON_ID_TEMPLATE 11
113#define SV_ICON_ID_DATABASE 12
114#define SV_ICON_ID_FORMULA 13
115
116namespace com::sun::star::datatransfer::clipboard { class XClipboard; }
117
118namespace vcl
119{
120 class DisplayConnectionDispatch;
121 class SettingsConfigItem;
122 class DeleteOnDeinitBase;
123 class Window;
124}
125
126namespace basegfx
127{
128 class SystemDependentDataManager;
129}
130
132{
133public:
135};
136
137typedef std::pair<VclPtr<vcl::Window>, ImplPostEventData *> ImplPostEventPair;
138
140{
143
144 std::optional<AllSettings> mxSettings; // Application settings
146 VclEventListeners maEventListeners; // listeners for vcl events (eg, extended toolkit)
147 std::vector<Link<VclWindowEvent&,bool> >
148 maKeyListeners; // listeners for key events only (eg, extended toolkit)
149 std::vector<ImplPostEventPair> maPostedEventList;
150 ImplAccelManager* mpAccelMgr = nullptr; // Accelerator Manager
151 std::optional<OUString> mxAppName; // Application name
152 std::optional<OUString> mxAppFileName; // Abs. Application FileName
153 std::optional<OUString> mxDisplayName; // Application Display Name
154 std::optional<OUString> mxToolkitName; // Toolkit Name
155 Help* mpHelp = nullptr; // Application help
156 VclPtr<PopupMenu> mpActivePopupMenu; // Actives Popup-Menu (in Execute)
158 sal_uInt64 mnLastInputTime = 0; // GetLastInputTime()
159 sal_uInt16 mnDispatchLevel = 0; // DispatchLevel
160 sal_uInt16 mnModalMode = 0; // ModalMode Count
161 SystemWindowFlags mnSysWinMode = SystemWindowFlags(0); // Mode, when SystemWindows should be created
162 bool mbInAppMain = false; // is Application::Main() on stack
163 bool mbInAppExecute = false; // is Application::Execute() on stack
164 volatile bool mbAppQuit = false; // is Application::Quit() called, volatile because we read/write from different threads
165 bool mbSettingsInit = false; // true: Settings are initialized
166 DialogCancelMode meDialogCancel = DialogCancelMode::Off; // true: All Dialog::Execute() calls will be terminated immediately with return false
167 bool mbRenderToBitmaps = false; // set via svp / headless plugin
168 bool m_bUseSystemLoop = false;
169
170 DECL_STATIC_LINK(ImplSVAppData, ImplQuitMsg, void*, void);
171 DECL_STATIC_LINK(ImplSVAppData, ImplEndAllDialogsMsg, void*, void);
172 DECL_STATIC_LINK(ImplSVAppData, ImplEndAllPopupsMsg, void*, void);
173};
174
179 ScaleCacheKey(SalBitmap *pBitmap, const Size &aDestSize)
180 {
181 mpBitmap = pBitmap;
182 maDestSize = aDestSize;
183 }
185 {
186 mpBitmap = key.mpBitmap;
188 }
189 bool operator==(ScaleCacheKey const& rOther) const
190 {
191 return mpBitmap == rOther.mpBitmap && maDestSize == rOther.maDestSize;
192 }
193};
194
195namespace std
196{
197template <> struct hash<ScaleCacheKey>
198{
199 std::size_t operator()(ScaleCacheKey const& k) const noexcept
200 {
201 std::size_t seed = 0;
202 o3tl::hash_combine(seed, k.mpBitmap);
203 o3tl::hash_combine(seed, k.maDestSize.getWidth());
204 o3tl::hash_combine(seed, k.maDestSize.getHeight());
205 return seed;
206 }
207};
208
209} // end std namespace
210
212
214{
216
217 VclPtr<vcl::WindowOutputDevice> mpFirstWinGraphics; // First OutputDevice with a Frame Graphics
218 VclPtr<vcl::WindowOutputDevice> mpLastWinGraphics; // Last OutputDevice with a Frame Graphics
219 VclPtr<OutputDevice> mpFirstVirGraphics; // First OutputDevice with a VirtualDevice Graphics
220 VclPtr<OutputDevice> mpLastVirGraphics; // Last OutputDevice with a VirtualDevice Graphics
221 VclPtr<Printer> mpFirstPrnGraphics; // First OutputDevice with an InfoPrinter Graphics
222 VclPtr<Printer> mpLastPrnGraphics; // Last OutputDevice with an InfoPrinter Graphics
223 VclPtr<VirtualDevice> mpFirstVirDev; // First VirtualDevice
224 OpenGLContext* mpLastContext = nullptr; // Last OpenGLContext
226 std::unique_ptr<ImplPrnQueueList> mpPrinterQueueList; // List of all printer queue
227 std::shared_ptr<vcl::font::PhysicalFontCollection> mxScreenFontList; // Screen-Font-List
228 std::shared_ptr<ImplFontCache> mxScreenFontCache; // Screen-Font-Cache
229 lru_scale_cache maScaleCache = lru_scale_cache(10); // Cache for scaled images
230 vcl::font::DirectFontSubstitution* mpDirectFontSubst = nullptr; // Font-Substitutions defined in Tools->Options->Fonts
231 std::unique_ptr<GraphicConverter> mxGrfConverter; // Converter for graphics
232 tools::Long mnAppFontX = 0; // AppFont X-Numenator for 40/tel Width
233 tools::Long mnAppFontY = 0; // AppFont Y-Numenator for 80/tel Height
234 bool mbFontSubChanged = false; // true: FontSubstitution was changed between Begin/End
235
238};
239
241{
243 VclPtr<vcl::Window> mpFirstFrame; // First FrameWindow
244 VclPtr<vcl::Window> mpActiveApplicationFrame; // the last active application frame, can be used as DefModalDialogParent if no focuswin set
245 VclPtr<WorkWindow> mpAppWin; // Application-Window
246
247 std::unique_ptr<UITestLogger> m_pUITestLogger;
248};
249
251{
253 VclPtr<vcl::Window> mpFocusWin; // window, that has the focus
254 VclPtr<vcl::Window> mpCaptureWin; // window, that has the mouse capture
255 VclPtr<vcl::Window> mpLastDeacWin; // Window, that need a deactivate (FloatingWindow-Handling)
256 VclPtr<FloatingWindow> mpFirstFloat; // First FloatingWindow in PopupMode
257 std::vector<VclPtr<Dialog>> mpExecuteDialogs;
258 VclPtr<vcl::Window> mpExtTextInputWin; // Window, which is in ExtTextInput
259 VclPtr<vcl::Window> mpTrackWin; // window, that is in tracking mode
260 std::unique_ptr<AutoTimer> mpTrackTimer; // tracking timer
261 std::vector<Image> maMsgBoxImgList; // ImageList for MessageBox
262 VclPtr<vcl::Window> mpAutoScrollWin; // window, that is in AutoScrollMode mode
263 VclPtr<vcl::Window> mpLastWheelWindow; // window, that last received a mouse wheel event
264 SalWheelMouseEvent maLastWheelEvent; // the last received mouse wheel event
265
268 bool mbNoDeactivate = false; // true: do not execute Deactivate
269 bool mbNoSaveFocus = false; // true: menus must not save/restore focus
270 bool mbIsLiveResize = false; // true: skip waiting for events and low priority timers
271};
272
273typedef std::vector< std::pair< OUString, FieldUnit > > FieldUnitStringList;
274
276{
277 std::vector<Image> maCheckImgList; // ImageList for CheckBoxes
278 std::vector<Image> maRadioImgList; // ImageList for RadioButtons
279 std::optional<Image> moDisclosurePlus;
280 std::optional<Image> moDisclosureMinus;
281 ImplTBDragMgr* mpTBDragMgr = nullptr; // DragMgr for ToolBox
282 sal_uInt16 mnCheckStyle = 0; // CheckBox-Style for ImageList-Update
283 sal_uInt16 mnRadioStyle = 0; // Radio-Style for ImageList-Update
284 Color mnLastCheckFColor; // Last FaceColor for CheckImage
285 Color mnLastCheckWColor; // Last WindowColor for CheckImage
286 Color mnLastCheckLColor; // Last LightColor for CheckImage
287 Color mnLastRadioFColor; // Last FaceColor for RadioImage
288 Color mnLastRadioWColor; // Last WindowColor for RadioImage
289 Color mnLastRadioLColor; // Last LightColor for RadioImage
290 FieldUnitStringList maFieldUnitStrings; // list with field units
291 FieldUnitStringList maCleanUnitStrings; // same list but with some "fluff" like spaces removed
292};
293
295{
297 bool mbContextHelp = false; // is ContextHelp enabled
298 bool mbExtHelp = false; // is ExtendedHelp enabled
299 bool mbExtHelpMode = false; // is in ExtendedHelp Mode
300 bool mbOldBalloonMode = false; // BalloonMode, before ExtHelpMode started
301 bool mbBalloonHelp = false; // is BalloonHelp enabled
302 bool mbQuickHelp = false; // is QuickHelp enabled
303 bool mbSetKeyboardHelp = false; // tiphelp was activated by keyboard
304 bool mbKeyboardHelp = false; // tiphelp was activated by keyboard
305 bool mbRequestingHelp = false; // In Window::RequestHelp
307 sal_uInt64 mnLastHelpHideTime = 0; // ticks of last show
308};
309
310// "NWF" means "Native Widget Framework" and was the term used for the
311// idea that StarView/OOo "widgets" should *look* (and feel) like the
312// "native widgets" on each platform, even if not at all implemented
313// using them. See http://people.redhat.com/dcbw/ooo-nwf.html .
314
316{
317 int mnStatusBarLowerRightOffset = 0; // amount in pixel to avoid in the lower righthand corner
318 int mnMenuFormatBorderX = 0; // horizontal inner popup menu border
319 int mnMenuFormatBorderY = 0; // vertical inner popup menu border
320 ::Color maMenuBarHighlightTextColor = COL_TRANSPARENT; // override highlight text color
321 // in menubar if not transparent
322 bool mbMenuBarDockingAreaCommonBG = false; // e.g. WinXP default theme
323 bool mbDockingAreaSeparateTB = false; // individual toolbar backgrounds
324 // instead of one for docking area
326 bool mbFlatMenu = false; // no popup 3D border
327 bool mbNoFocusRects = false; // on Aqua/Gtk3 use native focus rendering, except for flat buttons
328 bool mbNoFocusRectsForFlatButtons = false; // on Gtk3 native focusing is also preferred for flat buttons
329 bool mbNoFrameJunctionForPopups = false; // on Gtk4 popups are done via popovers and a toolbar menu won't align to its toolitem, so
330 // omit the effort the creation a visual junction
331 bool mbCenteredTabs = false; // on Aqua, tabs are centered
332 bool mbNoActiveTabTextRaise = false; // on Aqua the text for the selected tab
333 // should not "jump up" a pixel
334 bool mbProgressNeedsErase = false; // set true for platforms that should draw the
335 // window background before drawing the native
336 // progress bar
337 bool mbCanDrawWidgetAnySize = false; // set to true currently on gtk
338
341 bool mbAutoAccel = false; // whether accelerators are only shown when Alt is held down
342 bool mbRolloverMenubar = false; // theming engine supports rollover in menubar
343 // gnome#768128 I cannot see a route under wayland at present to support
344 // floating toolbars that can be redocked because there's no way to track
345 // that the toolbar is over a dockable area.
347
349};
350
352{
360
362 : m_aLastSize(0, 0)
363 , m_nLastAlpha(0)
368 {
369 }
370};
371
373{
378 SalTimer* mpSalTimer = nullptr;
379 sal_uInt64 mnTimerStart = 0;
381 std::mutex maMutex;
383 bool mbActive = true;
384};
385
387{
388 ImplSVData();
389 ~ImplSVData();
390 SalData* mpSalData = nullptr;
391 SalInstance* mpDefInst = nullptr; // Default SalInstance
392 Application* mpApp = nullptr; // pApp
394 bool mbDeInit = false; // Is VCL deinitializing
395 std::unique_ptr<SalSystem> mpSalSystem; // SalSystem interface
396 bool mbResLocaleSet = false; // SV-Resource-Manager
397 std::locale maResLocale; // Resource locale
398 ImplSchedulerContext maSchedCtx; // Data for class Scheduler
399 ImplSVAppData maAppData; // Data for class Application
400 ImplSVGDIData maGDIData; // Data for Output classes
401 ImplSVFrameData maFrameData; // Data for Frame classes
402 ImplSVWinData* mpWinData = nullptr; // Data for per-view Windows classes
403 ImplSVCtrlData maCtrlData; // Data for Control classes
404 ImplSVHelpData* mpHelpData; // Data for Help classes
407 VclPtr<vcl::Window> mpIntroWindow; // the splash screen
408 std::unique_ptr<DockingManager> mpDockingManager;
409 std::unique_ptr<BlendFrameCache> mpBlendFrameCache;
410
411 oslThreadIdentifier mnMainThreadId = 0;
413
414 css::uno::Reference< css::lang::XComponent > mxAccessBridge;
415 std::unique_ptr<vcl::SettingsConfigItem> mpSettingsConfigItem;
416 std::vector< vcl::DeleteOnDeinitBase* > maDeinitDeleteList;
417 std::unordered_map< int, OUString > maPaperNames;
418
419 css::uno::Reference<css::i18n::XCharacterClassification> m_xCharClass;
420
421#if defined _WIN32
422 css::uno::Reference<css::datatransfer::clipboard::XClipboard> m_xSystemClipboard;
423#endif
424
426
427 // LOK & headless backend specific hooks
428 LibreOfficeKitPollCallback mpPollCallback = nullptr;
429 LibreOfficeKitWakeCallback mpWakeCallback = nullptr;
430 void *mpPollClosure = nullptr;
431
432 void dropCaches();
433 void dumpState(rtl::OStringBuffer &rState);
434};
435
436css::uno::Reference<css::i18n::XCharacterClassification> const& ImplGetCharClass();
437
438void ImplDeInitSVData();
442const std::locale& ImplGetResLocale();
443VCL_PLUGIN_PUBLIC OUString VclResId(TranslateId sContextAndId);
447
449
451
454
455#ifdef _WIN32
456bool ImplInitAccessBridge();
457#endif
458
461
463{
464 void* mpData;
468 bool mbCall;
469};
470
471extern int nImplSysDialog;
472
474inline void SetSalData(SalData* pData) { ImplGetSVData()->mpSalData = pData; }
476
477/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Base class used mainly for the LibreOffice Desktop class.
Definition: svapp.hxx:237
An auto-timer is a multi-shot timer re-emitting itself at interval until destroyed or stopped.
Definition: timer.hxx:67
A tooltip: adds tips to widgets in a floating / popup window.
Definition: helpwin.hxx:31
Definition: help.hxx:61
An idle is a timer to be scheduled immediately.
Definition: idle.hxx:35
virtual void ConfigurationChanged(utl::ConfigurationBroadcaster *, ConfigurationHints) override
Definition: svdata.cxx:367
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
Definition: outdev.hxx:170
A SalFrame is a system window (e.g. an X11 window).
Definition: salframe.hxx:115
Definition: timer.hxx:27
DirectFontSubstitution is for Tools->Options->FontReplacement and PsPrinter substitutions The class i...
constexpr ::Color COL_BLACK(0x00, 0x00, 0x00)
constexpr ::Color COL_TRANSPARENT(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
#define VCL_DLLPUBLIC
Definition: dllapi.h:29
#define VCL_PLUGIN_PUBLIC
Definition: dllapi.h:40
std::unique_ptr< sal_Int32[]> pData
std::enable_if_t<(sizeof(N)==4)> hash_combine(N &nSeed, T const *pValue, size_t nCount)
long Long
A PhysicalFontFaceCollection is created by a PhysicalFontCollection and becomes invalid when original...
ConfigurationHints
Color m_aLastColorTopLeft
Definition: svdata.hxx:355
BitmapEx m_aLastResult
Definition: svdata.hxx:359
Color m_aLastColorBottomRight
Definition: svdata.hxx:357
Color m_aLastColorTopRight
Definition: svdata.hxx:356
Size m_aLastSize
Definition: svdata.hxx:353
sal_uInt8 m_nLastAlpha
Definition: svdata.hxx:354
Color m_aLastColorBottomLeft
Definition: svdata.hxx:358
SystemWindowFlags mnSysWinMode
Definition: svdata.hxx:161
DECL_STATIC_LINK(ImplSVAppData, ImplEndAllDialogsMsg, void *, void)
VclPtr< ImplWheelWindow > mpWheelWindow
Definition: svdata.hxx:157
std::optional< OUString > mxDisplayName
Definition: svdata.hxx:153
std::vector< Link< VclWindowEvent &, bool > > maKeyListeners
Definition: svdata.hxx:148
sal_uInt16 mnDispatchLevel
Definition: svdata.hxx:159
DECL_STATIC_LINK(ImplSVAppData, ImplEndAllPopupsMsg, void *, void)
std::vector< ImplPostEventPair > maPostedEventList
Definition: svdata.hxx:149
sal_uInt64 mnLastInputTime
Definition: svdata.hxx:158
std::optional< OUString > mxAppFileName
Definition: svdata.hxx:152
sal_uInt16 mnModalMode
Definition: svdata.hxx:160
std::optional< AllSettings > mxSettings
Definition: svdata.hxx:144
std::optional< OUString > mxToolkitName
Definition: svdata.hxx:154
DialogCancelMode meDialogCancel
Definition: svdata.hxx:166
VclEventListeners maEventListeners
Definition: svdata.hxx:146
VclPtr< PopupMenu > mpActivePopupMenu
Definition: svdata.hxx:156
LocaleConfigurationListener * mpCfgListener
Definition: svdata.hxx:145
bool mbRenderToBitmaps
Definition: svdata.hxx:167
bool m_bUseSystemLoop
Definition: svdata.hxx:168
std::optional< OUString > mxAppName
Definition: svdata.hxx:151
ImplAccelManager * mpAccelMgr
Definition: svdata.hxx:150
Help * mpHelp
Definition: svdata.hxx:155
DECL_STATIC_LINK(ImplSVAppData, ImplQuitMsg, void *, void)
bool mbInAppMain
Definition: svdata.hxx:162
bool mbSettingsInit
Definition: svdata.hxx:165
volatile bool mbAppQuit
Definition: svdata.hxx:164
bool mbInAppExecute
Definition: svdata.hxx:163
ImplTBDragMgr * mpTBDragMgr
Definition: svdata.hxx:281
std::vector< Image > maCheckImgList
Definition: svdata.hxx:277
Color mnLastCheckFColor
Definition: svdata.hxx:284
std::optional< Image > moDisclosureMinus
Definition: svdata.hxx:280
FieldUnitStringList maCleanUnitStrings
Definition: svdata.hxx:291
sal_uInt16 mnRadioStyle
Definition: svdata.hxx:283
Color mnLastRadioLColor
Definition: svdata.hxx:289
std::optional< Image > moDisclosurePlus
Definition: svdata.hxx:279
FieldUnitStringList maFieldUnitStrings
Definition: svdata.hxx:290
Color mnLastCheckWColor
Definition: svdata.hxx:285
std::vector< Image > maRadioImgList
Definition: svdata.hxx:278
Color mnLastCheckLColor
Definition: svdata.hxx:286
Color mnLastRadioFColor
Definition: svdata.hxx:287
Color mnLastRadioWColor
Definition: svdata.hxx:288
sal_uInt16 mnCheckStyle
Definition: svdata.hxx:282
ImplSVCtrlData maCtrlData
Definition: svdata.hxx:403
ImplSchedulerContext maSchedCtx
Definition: svdata.hxx:398
css::uno::Reference< css::i18n::XCharacterClassification > m_xCharClass
Definition: svdata.hxx:419
bool mbDeInit
Definition: svdata.hxx:394
ImplSVFrameData maFrameData
Definition: svdata.hxx:401
bool mbResLocaleSet
Definition: svdata.hxx:396
void * mpPollClosure
Definition: svdata.hxx:430
~ImplSVData()
Definition: svdata.cxx:516
void dropCaches()
Definition: svdata.cxx:421
oslThreadIdentifier mnMainThreadId
Definition: svdata.hxx:411
UnoWrapperBase * mpUnoWrapper
Definition: svdata.hxx:406
SalInstance * mpDefInst
Definition: svdata.hxx:391
LibreOfficeKitPollCallback mpPollCallback
Definition: svdata.hxx:428
std::unique_ptr< DockingManager > mpDockingManager
Definition: svdata.hxx:408
rtl::Reference< vcl::DisplayConnectionDispatch > mxDisplayConnection
Definition: svdata.hxx:412
ImplSVNWFData maNWFData
Definition: svdata.hxx:405
ImplSVGDIData maGDIData
Definition: svdata.hxx:400
std::vector< vcl::DeleteOnDeinitBase * > maDeinitDeleteList
Definition: svdata.hxx:416
std::unique_ptr< BlendFrameCache > mpBlendFrameCache
Definition: svdata.hxx:409
Application * mpApp
Definition: svdata.hxx:392
ImplSVHelpData * mpHelpData
Definition: svdata.hxx:404
ImplSVData()
Definition: svdata.cxx:415
Link< LinkParamNone *, void > maDeInitHook
Definition: svdata.hxx:425
css::uno::Reference< css::lang::XComponent > mxAccessBridge
Definition: svdata.hxx:414
VclPtr< WorkWindow > mpDefaultWin
Definition: svdata.hxx:393
ImplSVWinData * mpWinData
Definition: svdata.hxx:402
void dumpState(rtl::OStringBuffer &rState)
Definition: svdata.cxx:428
ImplSVAppData maAppData
Definition: svdata.hxx:399
std::locale maResLocale
Definition: svdata.hxx:397
std::unique_ptr< SalSystem > mpSalSystem
Definition: svdata.hxx:395
LibreOfficeKitWakeCallback mpWakeCallback
Definition: svdata.hxx:429
std::unique_ptr< vcl::SettingsConfigItem > mpSettingsConfigItem
Definition: svdata.hxx:415
SalData * mpSalData
Definition: svdata.hxx:390
std::unordered_map< int, OUString > maPaperNames
Definition: svdata.hxx:417
VclPtr< vcl::Window > mpIntroWindow
Definition: svdata.hxx:407
bool mbCall
Definition: svdata.hxx:468
VclPtr< vcl::Window > mpWindow
Definition: svdata.hxx:467
VclPtr< vcl::Window > mpInstanceRef
Definition: svdata.hxx:466
Link< void *, void > maLink
Definition: svdata.hxx:465
void * mpData
Definition: svdata.hxx:464
VclPtr< WorkWindow > mpAppWin
Definition: svdata.hxx:245
std::unique_ptr< UITestLogger > m_pUITestLogger
Definition: svdata.hxx:247
VclPtr< vcl::Window > mpFirstFrame
Definition: svdata.hxx:243
VclPtr< vcl::Window > mpActiveApplicationFrame
Definition: svdata.hxx:244
o3tl::lru_map< OUString, BitmapEx > maThemeImageCache
Definition: svdata.hxx:236
VclPtr< vcl::WindowOutputDevice > mpLastWinGraphics
Definition: svdata.hxx:218
VclPtr< OutputDevice > mpLastVirGraphics
Definition: svdata.hxx:220
OpenGLContext * mpLastContext
Definition: svdata.hxx:224
VclPtr< Printer > mpFirstPrnGraphics
Definition: svdata.hxx:221
std::unique_ptr< ImplPrnQueueList > mpPrinterQueueList
Definition: svdata.hxx:226
lru_scale_cache maScaleCache
Definition: svdata.hxx:229
std::shared_ptr< vcl::font::PhysicalFontCollection > mxScreenFontList
Definition: svdata.hxx:227
o3tl::lru_map< OUString, gfx::DrawRoot > maThemeDrawCommandsCache
Definition: svdata.hxx:237
VclPtr< Printer > mpFirstPrinter
Definition: svdata.hxx:225
tools::Long mnAppFontY
Definition: svdata.hxx:233
std::shared_ptr< ImplFontCache > mxScreenFontCache
Definition: svdata.hxx:228
std::unique_ptr< GraphicConverter > mxGrfConverter
Definition: svdata.hxx:231
bool mbFontSubChanged
Definition: svdata.hxx:234
VclPtr< VirtualDevice > mpFirstVirDev
Definition: svdata.hxx:223
tools::Long mnAppFontX
Definition: svdata.hxx:232
VclPtr< OutputDevice > mpFirstVirGraphics
Definition: svdata.hxx:219
vcl::font::DirectFontSubstitution * mpDirectFontSubst
Definition: svdata.hxx:230
VclPtr< vcl::WindowOutputDevice > mpFirstWinGraphics
Definition: svdata.hxx:217
VclPtr< Printer > mpLastPrnGraphics
Definition: svdata.hxx:222
bool mbRequestingHelp
Definition: svdata.hxx:305
VclPtr< HelpTextWindow > mpHelpWin
Definition: svdata.hxx:306
sal_uInt64 mnLastHelpHideTime
Definition: svdata.hxx:307
bool mbKeyboardHelp
Definition: svdata.hxx:304
bool mbSetKeyboardHelp
Definition: svdata.hxx:303
bool mbOldBalloonMode
Definition: svdata.hxx:300
bool mbExtHelpMode
Definition: svdata.hxx:299
bool mbBalloonHelp
Definition: svdata.hxx:301
bool mbQuickHelp
Definition: svdata.hxx:302
bool mbContextHelp
Definition: svdata.hxx:297
bool mbExtHelp
Definition: svdata.hxx:298
bool mbFlatMenu
Definition: svdata.hxx:326
int mnMenuFormatBorderY
Definition: svdata.hxx:319
bool mbDDListBoxNoTextArea
entire drop down listbox resembles a button, no textarea/button parts (as currently on Windows)
Definition: svdata.hxx:340
bool mbNoFocusRects
Definition: svdata.hxx:327
bool mbAutoAccel
Definition: svdata.hxx:341
int mnListBoxEntryMargin
Definition: svdata.hxx:348
bool mbDockingAreaSeparateTB
Definition: svdata.hxx:323
bool mbCanDrawWidgetAnySize
Definition: svdata.hxx:337
bool mbNoFrameJunctionForPopups
Definition: svdata.hxx:329
bool mbCenteredTabs
Definition: svdata.hxx:331
bool mbNoFocusRectsForFlatButtons
Definition: svdata.hxx:328
int mnMenuFormatBorderX
Definition: svdata.hxx:318
int mnStatusBarLowerRightOffset
Definition: svdata.hxx:317
bool mbRolloverMenubar
Definition: svdata.hxx:342
bool mbCanDetermineWindowPosition
Definition: svdata.hxx:346
bool mbDockingAreaAvoidTBFrames
don't draw frames around the individual toolbars if mbDockingAreaSeparateTB is false
Definition: svdata.hxx:325
bool mbProgressNeedsErase
Definition: svdata.hxx:334
bool mbNoActiveTabTextRaise
Definition: svdata.hxx:332
::Color maMenuBarHighlightTextColor
Definition: svdata.hxx:320
bool mbMenuBarDockingAreaCommonBG
Definition: svdata.hxx:322
VclPtr< vcl::Window > mpLastWheelWindow
Definition: svdata.hxx:263
VclPtr< FloatingWindow > mpFirstFloat
Definition: svdata.hxx:256
StartAutoScrollFlags mnAutoScrollFlags
Definition: svdata.hxx:267
std::unique_ptr< AutoTimer > mpTrackTimer
Definition: svdata.hxx:260
bool mbIsLiveResize
Definition: svdata.hxx:270
StartTrackingFlags mnTrackFlags
Definition: svdata.hxx:266
VclPtr< vcl::Window > mpLastDeacWin
Definition: svdata.hxx:255
std::vector< Image > maMsgBoxImgList
Definition: svdata.hxx:261
bool mbNoSaveFocus
Definition: svdata.hxx:269
SalWheelMouseEvent maLastWheelEvent
Definition: svdata.hxx:264
VclPtr< vcl::Window > mpAutoScrollWin
Definition: svdata.hxx:262
VclPtr< vcl::Window > mpFocusWin
Definition: svdata.hxx:253
VclPtr< vcl::Window > mpCaptureWin
Definition: svdata.hxx:254
bool mbNoDeactivate
Definition: svdata.hxx:268
VclPtr< vcl::Window > mpTrackWin
Definition: svdata.hxx:259
VclPtr< vcl::Window > mpExtTextInputWin
Definition: svdata.hxx:258
std::vector< VclPtr< Dialog > > mpExecuteDialogs
Stack of dialogs that are Execute()'d - the last one is the top most one.
Definition: svdata.hxx:257
ImplSchedulerData * mpLastSchedulerData[PRIO_COUNT]
last item of each mpFirstSchedulerData list
Definition: svdata.hxx:375
bool mbActive
is the scheduler active?
Definition: svdata.hxx:383
ImplSchedulerData * mpFirstSchedulerData[PRIO_COUNT]
list of all active tasks per priority
Definition: svdata.hxx:374
ImplSchedulerData * mpSchedulerStack
stack of invoked tasks
Definition: svdata.hxx:376
SalTimer * mpSalTimer
interface to sal event loop / system timer
Definition: svdata.hxx:378
sal_uInt64 mnTimerStart
start time of the timer
Definition: svdata.hxx:379
std::mutex maMutex
the "scheduler mutex" (see vcl/README.scheduler)
Definition: svdata.hxx:381
sal_uInt64 mnTimerPeriod
current timer period
Definition: svdata.hxx:380
ImplSchedulerData * mpSchedulerStackTop
top most stack entry to detect needed rescheduling during pop
Definition: svdata.hxx:377
Cache multiple scalings for the same bitmap.
Definition: svdata.hxx:176
SalBitmap * mpBitmap
Definition: svdata.hxx:177
ScaleCacheKey(const ScaleCacheKey &key)
Definition: svdata.hxx:184
Size maDestSize
Definition: svdata.hxx:178
bool operator==(ScaleCacheKey const &rOther) const
Definition: svdata.hxx:189
ScaleCacheKey(SalBitmap *pBitmap, const Size &aDestSize)
Definition: svdata.hxx:179
std::size_t operator()(ScaleCacheKey const &k) const noexcept
Definition: svdata.hxx:199
DialogCancelMode
Definition: svapp.hxx:215
@ Off
do not automatically cancel dialogs
SystemWindowFlags
Definition: svapp.hxx:90
VCL_PLUGIN_PUBLIC vcl::Window * ImplGetDefaultWindow()
Returns either the application window, or the default GL context window.
Definition: svdata.cxx:212
std::vector< std::pair< OUString, FieldUnit > > FieldUnitStringList
Definition: svdata.hxx:273
SalInstance * GetSalInstance()
Definition: svdata.hxx:475
VCL_PLUGIN_PUBLIC basegfx::SystemDependentDataManager & ImplGetSystemDependentDataManager()
Definition: svdata.cxx:204
VCL_DLLPUBLIC bool ImplCallPreNotify(NotifyEvent &rEvt)
Definition: winproc.cxx:67
std::pair< VclPtr< vcl::Window >, ImplPostEventData * > ImplPostEventPair
Definition: svdata.hxx:137
VCL_PLUGIN_PUBLIC OUString VclResId(TranslateId sContextAndId)
Definition: svdata.cxx:261
SalData * GetSalData()
Definition: svdata.hxx:473
void GenerateAutoMnemonicsOnHierarchy(const vcl::Window *pWindow)
Definition: dialog.cxx:205
o3tl::lru_map< ScaleCacheKey, BitmapEx > lru_scale_cache
Definition: svdata.hxx:211
void ImplDeInitSVData()
Definition: svdata.cxx:89
const std::locale & ImplGetResLocale()
Definition: svdata.cxx:250
VCL_PLUGIN_PUBLIC ImplSVHelpData & ImplGetSVHelpData()
Definition: svdata.cxx:503
BlendFrameCache * ImplGetBlendFrameCache()
Definition: svdata.cxx:325
void SetSalData(SalData *pData)
Definition: svdata.hxx:474
VCL_PLUGIN_PUBLIC ImplSVData * ImplGetSVData()
Definition: svdata.cxx:77
VCL_PLUGIN_PUBLIC void ImplHideSplash()
Definition: dialog.cxx:126
const FieldUnitStringList & ImplGetFieldUnits()
Definition: svdata.cxx:266
css::uno::Reference< css::i18n::XCharacterClassification > const & ImplGetCharClass()
Definition: field2.cxx:61
DockingManager * ImplGetDockingManager()
Definition: svdata.cxx:316
int nImplSysDialog
Definition: print.cxx:56
const FieldUnitStringList & ImplGetCleanedFieldUnits()
Definition: svdata.cxx:296
vcl::Window * ImplGetDefaultContextWindow()
returns the default window created to hold the persistent VCL GL context.
Definition: svdata.cxx:222
#define PRIO_COUNT
Definition: task.hxx:40
unsigned char sal_uInt8
#define SAL_MAX_UINT64
StartAutoScrollFlags
Definition: window.hxx:279
StartTrackingFlags
Definition: window.hxx:265