/************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2008 by Sun Microsystems, Inc. * * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: basdoc.hxx,v $ * $Revision: 1.8.22.2 $ * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License version 3 * only, as published by the Free Software Foundation. * * OpenOffice.org is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License version 3 for more details * (a copy is included in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU Lesser General Public License * version 3 along with OpenOffice.org. If not, see * * for a copy of the LGPLv3 License. * ************************************************************************/ #ifndef _BASDOC_HXX #define _BASDOC_HXX #include #include #include class SfxPrinter; class BasicDocShell: public SfxObjectShell { SfxPrinter* pPrinter; protected: virtual void FillStatusBar( StatusBar& rBar); virtual void Draw( OutputDevice *, const JobSetup & rSetup, USHORT nAspect = ASPECT_CONTENT ); virtual void FillClass( SvGlobalName * pClassName, sal_uInt32 * pFormat, String * pAppName, String * pFullTypeName, String * pShortTypeName, sal_Int32 nVersion, sal_Bool bTemplate = sal_False ) const; public: TYPEINFO(); using SotObject::GetInterface; SFX_DECL_OBJECTFACTORY(); SFX_DECL_INTERFACE( SVX_INTERFACE_BASIDE_DOCSH ) BasicDocShell( SfxObjectCreateMode eMode = SFX_CREATE_MODE_STANDARD ); ~BasicDocShell(); SfxPrinter* GetPrinter( BOOL bCreate ); void SetPrinter( SfxPrinter* pPrinter ); }; #endif // _BASDOC_HXX labora/co-22.05'>distro/collabora/co-22.05 LibreOffice 核心代码仓库文档基金会
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-12-16BP_CHECKBOX should be teamed with some CBS_* partCaolán McNamara
noticed by Julien at https://gerrit.libreoffice.org/c/core/+/143999 Change-Id: Ic17834d503f174f91200614cd48e6771835cc08d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144252 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-12-13Related: tdf#152454 pick something suitable for dark mode Inactive tab colorCaolán McNamara
on Windows Change-Id: I400ca7d8c0c541977b574ae08f08aa5f28a2e3d7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144045 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-12-13MBI_NORMAL should be PBS_NORMALCaolán McNamara
Change-Id: I263d96e50699fe878ce153dc88ebfd00cd92415b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143999 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-12-02Resolves: tdf#152284 pull Shadow and DarkShadow from themeCaolán McNamara
Change-Id: Idd5031aa2744d5b04f9f656fcab9fe6f21e2ddcb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143594 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2022-11-23Avoid memory leak on PostMessageW failureMike Kaganski
In addition to leaking memory, the struct holds a couple of VclPtr, so would prevent destroying referenced windows. Change-Id: I258b5f32aca033a602d7b2805b33bd08ba637309 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143154 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-10-24for windows HighContrast use COLOR_HOTLIGHT for hyperlink colorCaolán McNamara
use the same thing for both unvisited and visited Change-Id: Icce13ccb88c7ca35e655f01e8ebb8ac92869753c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141729 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-10-24Related: tdf#151641 set windows WorkspaceColor similiar to other platformsCaolán McNamara
from the same bg as the dialog/face, so we get a good "application background" color in dark mode Change-Id: Ieeb29ed1df177a91691b7b83d056af4068d0e170 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141725 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-10-15tdf#151522 drop Accessibility::AutoDetectSystemHCCaolán McNamara
which doesn't preclude having a different option to force it on/off against the system HighContrast mode setting. Change-Id: Iab9f7f501ac5fd7bb865d07b30b6fad9f1f6809c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141386 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-10-13tdf#120326: properly prevent Windows from entering power savingMike Kaganski
The previous call to SystemParametersInfoW with SPI_SETSCREENSAVEACTIVE only prevented screen saver from running (which is not often used these days), but screen was still turned off (and power saving was started). Despite SetThreadExecutionState documentation [1] claims that it does not stop the screen saver from executing, my experiments show that it does (on my Windows 10). So just use it, because it is designed exactly for this task (documentation discusses the presentation applications). [1] https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setthreadexecutionstate Change-Id: I6eced8f0a7c17211a0b68851a40227eed9a22b1a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141289 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-10-07Related: tdf#98067 get high contrast hover/default button text color rightCaolán McNamara
Normal and high contrast themes seem to behave differently (in Windows 10) to play more directly with themes than the usual ui try: Press Windows Key + R and paste: shell:::{ED834ED6-4B5A-4bfe-8F11-A626DCB6A921} -Microsoft.Personalization\pageColorization High Contrast themes seem different to the others, with a high contrast theme set then its possible to customize the colors, otherwise not. Playing with 'Selected Text' it seems that this is the color used for the active/hover button text color with a high contrast theme. Change-Id: I561616fce6a6f6d781e4881bfdf8ba0abedcd75c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141051 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-09-27Fix some headless window sizes on Windows, to make `make check` more reliableStephan Bergmann
...by making it more resilient against varying screen sizes. On my 2560x1600 Windows laptop, three `make check` tests systematically failed, and apparently all of them were caused by that larger-than-average screen (similar to what has been detailed in the commit message of 3db6a93c558c55eed085b4386228f9951bb08936 "Compute a better GetDefaultCenterPos"): * CppunitTest_sw_layoutwriter > test/source/xmltesttools.cxx:191:testTdf134298::TestBody > equality assertion failed > - Expected: 2 > - Actual : 3 > - In <>, XPath '/root/page' number of nodes is incorrect * CppunitTest_sw_ooxmlexport12 > sw/qa/extras/ooxmlexport/ooxmlexport12.cxx:526:testObjectCrossReference::TestBody > equality assertion failed > - Expected: Text 2 > - Actual : 2 * CppunitTest_sw_uiwriter2 > sw/qa/extras/uiwriter/uiwriter2.cxx:2702:testTdf122942::TestBody > equality assertion failed > - Expected: 2 > - Actual : 1 Those tests are all run with both SAL_USE_VCLPLUGIN=svp and --headless. But svp is only present on Linux and is thus ignored on Windows. And --headless, while preventing any windows from actually being shown, nevertheless uses the GUI code to set up window sizes. So the idea here is to hack the Windows backend in strategic places so that it uses "appropriate" window sizes in --headless mode to make `make check` succeed. The Linux svp backend has a single place in vcl/headless/svpframe.cxx where it hardcodes the number of monitors to 1 and the screen size to 1024x768. However, for the Windows backend, code determining and using those values is somewhat spread, but it turned out that there is one strategic place in ImplSalGetWorkArea that does what we want (without touching the reported number of monitors at all), without (it appears) negatively affecting other scenarios. (It appears that macOS, also not supporting an svp backend, is similarly affected. But it looks harder there to come up with such a strategic place to hardcode --headless window sizes, and at least my own macOS build's `make check` is unaffected as I use a default scaled 1829x1080 screen resolution there instead of the "raw" 3840x2160.) Change-Id: I822241f81497b9f6bed8e9688eddbe7d798c6b34 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140588 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-09-19tdf#151052 set Windows darkmode "ToolTextColor" to same as "WindowTextColor"Caolán McNamara
they are the same in light mode, so do the same in darkmode Change-Id: Ib0186383fcd7f8d74c7ada6826c6955a747e4ecd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140195 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-09-19Rename MouseNotifyEvent to NotifyEventTypeSamuel Mehrbrodt
Also contains keyboard and focus events, not only mouse events Change-Id: Iec1d6c341b01a489ba80fe9634ea3579afb02ea9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139970 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
2022-09-17-Werror,-Wshadow (clang-cl)Stephan Bergmann
Change-Id: I58d99d17baf8dc13e4dc951bf281d7c7c358d259 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140101 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-09-12Fix dropdown mispositionedSamuel Mehrbrodt
Only skip the relative positioning when the window is indeed a dialog. Follow up fix for a49245e04d45735aa76ad7720657c83530ba9ed8 Change-Id: Idbd8327a943c512f0a617cb0ca72e9caeb2e61e3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139204 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
2022-09-06Simplify SalSysObj(Child)WndProcWMike Kaganski
Change-Id: I578410db327c98cde5e6e2a9f802e4de5b64a539 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139492 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-09-06tdf#150682 - bad shortcut in french langageNoel Grandin
the = key is } on a french keyboard, so remap the ctrl-alt-= shortcuts to ctrl-alt-} which means the user gets to keep pressing keys in roughly the same physical location for this action, regardless of keyboard Change-Id: I03e251dacc1c19e543182a44ae23fde2a57cfa45 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139474 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-06Deduplicate screen rect handlingMike Kaganski
Change-Id: I5aacadff5ada74c6bc83ac698c87bca75e85ba0c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139468 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-08-29Don't position dialogs relative to other dialogsSamuel Mehrbrodt
When calling setPosSize on a dialog, and there are other dialogs on top of it, the dialog was positioned relative to its parent dialog. Fix this, so that dialogs are always positioned relative to the main window (if there is one). Revert of/Follow up to 8750c812c9b808ee980f7e0ce0e6ce91e75e1424 Change-Id: I69f189865b118f9bc20077d48591fbd9e83b014f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138994 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
2022-08-17Related: tdf#118320 don't require experimental to be set anymoreCaolán McNamara
Change-Id: Iba42eaa820001651a596b9708504fcc796b406ca Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138381 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-15Fix mispositioning when only quickstarter is activeSamuel Mehrbrodt
When positioning a dialog via external UNO connection, and no LibreOffice window is visible (only quickstarter is running), the window was mispositioned. The ClientToScreen call changes the requested position, so skip that for dialogs too. Change-Id: I7656ec66b6aeccdc1fa306f5e05cf72b3cb87214 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138135 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
2022-07-02tdf#149804 Set newly introduced list box colors from system colorsMichael Weghorn
commit 3c6a53b9ce64180b2a03e097c1844f7496f26815 Date: Sat Apr 17 14:49:43 2021 +0200 improve the look of the macOS combobox had introduced separate style colors to be used for list/combo boxes, but since those new colors were not set explicitly for gtk3, qt5/qt6 and Windows, this resulted in style/theme/system colors no longer being used, but only the default colors introduced in above commit. This sets the style/theme/system colors for qt5/qt6, gtk3 and Windows as well, using the same values that were used previously. Change-Id: I31401af38b991e7e0cdc436b894ee0f491a22752 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136735 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-06-25WIN flatten and assert some codeJan-Marek Glogowski
Thanks to Mike Kaganski to come up with the correct asserts. Change-Id: I01b2b0026fc4de67a14fa803357a4c28951088ec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135810 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-06-23Silence another unhelpful loplugin:redundantfcastStephan Bergmann
...after 37ec4442d70339dc8ec5fb8e4ec8984420b6e14d "o3tl: ensure that the initializer of enumarray contains enough elements", in Windows-only code Change-Id: I1373a5d777240104d88a892bcf048acf3e7392fe Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136334 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-06-21VCL expect correct frame size for native menubarsJan-Marek Glogowski
... and renove the wrong framesize hack in the Qt backend This wastes a few additional pixels in the frame backing store, actually covered by the real native menu bar, to get rid of all the hacks and eventually fix quite a bunch of bugs in Qt (and maybe other backends). This seems to work correct with Qt using either QPainter or Cairo as the painting backend. It's much simpler then my previous failed attempts to fix the Qt related bugs. I would like to convert every implementation to my interpretation of the API (at least I now documented the API). It looks like Win and Mac will just work, because Win has no native menu bar and Mac uses a global menu, so always returns the size of 0. And Gtk also seems to work, if it also lies about the menu bar size being zero. That just seems consequent, if the frame size is reduced by the menubar size. This fixes at least: tdf#64438 - Dockable panels in LibreOffice not dockable using KDE Works. tdf#130893 - XWindow::SetPosSize resizing based on XWindow::GetPosSize shrinks the window The document macro from tdf#130841 now doesn't resize the window. This is just fixed for Qt. tdf#134704 - KDE5 - unable to dock sidebar by dragging frame not fixed, because the sidebar window is now a dialog, which is not dockable. FWIW the same has happend the Navigator (F5), which also renders it non-dockable. No idea, if this is intentional. tdf#137471 - CMIS dialog advances beyond lower right corner of the screen So commit 3f8d3fd4649ef09e86c735617383a4bda0425540 ("tdf#137471 Qt return frame pos + client area size") was really not enought as a fix (at least it didn't break anything). The whole parent-based repositioning is wrong and it really depends on the correct frame size, so I'm keeping this as fixed by this patch. Change-Id: I7faeace61b456c2b0f42c7a826f58018b70d46ae Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135082 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-06-18o3tl: ensure that the initializer of enumarray contains enough elementsMichael Stahl
Currently this silently succeeds. Turns out oox already contains some too-short initializers, let's guess the missing properties are all invalid. One downside of the templated parameter pack approach in the enumarray ctor, as witnessed in vcl/win/window/salframe.cxx, is that argument types can no longer be implicitly deduced and thus need to be spelled explicitly now in certain cases. There were also three uses of enumarry with V being unsigned short (aka sal_uInt16) that started to cause narrowing conversion errors now and needed to be adapted: In editeng/source/uno/unonrule.cxx the obvious fix was to use the proper type for V. In sw/source/core/unocore/unosett.cxx with its odd mix of saL_Int16 and USHRT_MAX, lets keep things that way for now (probably awaiting later clean up) and use casts to avoid the implicit narrowing. And in sw/source/filter/ww8/wrtw8esh.cxx the ESCHER_Prop_* values, while presumably conceptionally of type sal_uInt16, are plain #defines (thus of type int), so rather than changing V to int it looked more consistent to explicitly cast the ESCHER_Prop_* vlaues to sal_uInt16. (And in tools/source/fsys/urlobj.cxx the poor loplugin:redundantfcast started to unhelpfully kick in for (only) the first argument now.) Change-Id: If06c29e673ec7e565e283c6f447889cf1f777cb7 Co-authored-by: Stephan Bergmann <sbergman@redhat.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135970 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-06-17WIN drop window state redundanciesJan-Marek Glogowski
So on Windows a window's state is stored in: - maGeometry, inherited from SalFrame - maState, which is the same type then maGeometry - mnWidth and mnHeight, which are just set, never read - mbFullScreen, which can be encoded in the vcl::WindowState IMHO we can get rid of mnWidth, mnHeight and mbFullScreen. Which leaves the mystery of the extra maState. But at least it looks like we can simply cache an vcl::WindowState instead. And this is a little start to make WinSalFrame variable members private; it'll be a long way... And it also changes a SW_SHOWMAXIMIZED to SW_SHOWMINIMIZED in the cleaned UpdateFrameState(), which looks like an error. Change-Id: I5895313d87a6f81371e2b77af6c813d35f591725 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135809 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-06-15Drop SalMenu::DrawMenuBar (is WIN-only)Jan-Marek Glogowski
This follow-up on commit 483f3125ecd4744cbcc2f8fd3cdf243d81a601ff ("WIN drop effectively empty ImplDrawMenuBar") should probably have been included in it. Windows was the only implementation of that API, but the API is just called for a native menubar, which Windows doesn't use (VisibleMenuBar returns false). Maybe Windows SalFrame::SetMenu should also be dropped? Change-Id: Ic3600e66c91ce9d56d7f911bce5674e0a9ee833c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135633 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-06-08VCL add vcl::WindowPosSize abstract classJan-Marek Glogowski
... and use it to remove a duplicate and simplify code. Should mostly be a refactoring, which was mainly done by some larger sed calls, except for the new API calls, which helped shrinking some LOC. All data is also now private. Originally two of the "replaced" "classes" had unsigned width and height and one had signed. Noel pointed out, that during calculations, the value might get negative temporarly, so this now settles with signed values. Still the set size should never be negative and this is enforced this way. Not sure that is what Noel had in mind. This also includes: - rename WindowState => WindowData - rename WindowStateMask => WindowDataMask - rename WindowStateState => WindowState - move WindowState and WindowDataMask to vcl/windowstate.hxx - move WindowData(Mask) and WindowState into vcl namespace - readability: replace or'ed WindowState enums with "meta" enums + add "meta" WindowState enums PosSize and PosSizeState Change-Id: Icd16cfb498531aa7238ddbde83fcb0ed6d9e4f77 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135426 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-06-04WIN refactor geometry updatingJan-Marek Glogowski
Change-Id: I34e710c022e6362dc2381327eb896610c35bcbf0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135425 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-05-31WIN drop effectively empty ImplDrawMenuBarJan-Marek Glogowski
.. as VisibleMenuBar() just always returns false. Change-Id: Ie793d84d57970cbf08b81b6ec0350b9b5fd4192c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135210 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-05-03loplugin:stringviewparamStephan Bergmann
Change-Id: I32ded64d7e9a86a6226dfbc4a3b9262bc7572ad2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133761 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-04-15tdf#148448 pick a warning color more likely to be readable in dark themeCaolán McNamara
I can't see anything that is useful which could be used to derive this so just pick a better hard coded color Change-Id: Ia351e636ed3a44e9af79147b2d9dfcf347bd8ea9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133068 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-04-08tdf#143447 ignore IME candidate window state.Mark Hung
Some traditional Chinese IMEs ( Input Method Editors ) under Windows10 send WM_IME_NOTIFY with IMN_OPENCANDIDATE but not IMN_CLOSECANDIDATE. The behavior is different if users configure the IME and enable "legacy" option. That caused the cursor been hidden, misled by mbCandidateMode. The patch ignores the candidate window mode in case the length of the composition string is 0, assume in that case candidate window is useless, and resets the candidate window mode when composition ended to maintain the state as much as we can. Change-Id: I91a1c23ee1a031313243e032653f50f39b0f2a3c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132512 Tested-by: Jenkins Reviewed-by: Mark Hung <marklh9@gmail.com>
2022-03-19Related: tdf#118320 let windows icon theme know when a dark theme is preferredCaolán McNamara
Change-Id: I7569814a575e3d7c216e790eb162397d312fa0e5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131843 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-03-16Related: tdf#118320 enable some windows dark theme supportCaolán McNamara
If experimental mode is enabled and only for windows >= 10.0.18362 Toggling from dark to light mode is detected, and getting some suitable colors for dark mode works. The titlebar will toggle into dark/light mode successfully. DrawThemeBackground does something sensible for buttons and scrollbar at least, comboboxes can be forced to work. SpinButtons are less successful. Menubar and toolbar just bodged to draw a solid backcolor. Notebooks/TabControls don't respect the theme. Its possible it makes more sense to not try and use the windows control drawings apis and just set some dark colors and draw with the old built-in vcl widget rendering or alternative. Change-Id: Ic7927fb9af7ec94444d9de6e0204560e2789be46 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131453 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>