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