1513 Commits
Author SHA1 Message Date
Michael Weghorn e4f1a48967 toolkit: Rename TableControl header/source to match new class name
Following

    Change-Id: I54e578098684a027c9bf2f192a5af3fecb4e65d7
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Fri Sep 18 15:44:17 2026 +0200

        toolkit: Rename TableControl_Impl to TableControl

, also rename the header and source file to match
with the new class name.
(See that commit's commit message for more background.)

Change-Id: I5d7c4251902689718b9b2f3217671cad5b071201
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211163
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-09-19 16:19:11 +02:00
Michael Weghorn b580576a4d toolkit: Rename TableControl_Impl to TableControl
As mentioned in previous commit

    Change-Id: I82c89866e90f4d29964626d483872e0eafbc4dbe
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Fri Sep 18 15:30:10 2026 +0200

        toolkit: Merge TableControl into TableControl_Impl

, rename TableControl_Impl to simply TableControl,
now that the two classes were merged.

The header and source
file will also be renamed accordingly.
Do it as a separate step to keep the diff of the
single commits clearer.

Change-Id: I54e578098684a027c9bf2f192a5af3fecb4e65d7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211162
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-09-19 16:18:55 +02:00
Michael Weghorn 39749ff5b4 toolkit: Merge TableControl into TableControl_Impl
So far, most of the logic for the TableControl
widget was implemented in the TableControl_Impl
implementation class that was held by the
TableControl via a std::shared_ptr
(TableControl::m_pImpl member).

However, other classes were also using the
TableControl_Impl directly.

Stop that separation and simplify code by merging
TableControl into TableControl_Impl. As mentioned,
the latter already implemented most of the logic,
so it is easier to merge the remaining logic into
that class than the other way around.

Move the remaining TableControl logic into
TableControl_Impl, in particular make TableControl_Impl
a Control subclass and move the vcl::Window/Control
overrides to TableControl_Impl.

Now that TableControl_Impl is a vcl::Window subclass,
VclPtr is the appropriate way for handling shared
ownership and no longer std::shared_ptr.
Therefore, switch to using VclPtr instead of shared_ptr
in the corresponding ITableModel methods
(ITableModel::addTableModelListener and
ITableModel::removeTableModelListener) and corresponding
data structures used in the subclasses.
See also commit message of previous commit

    Change-Id: I74b9b29f03d03571709d1c8a7b416b0a6a12319a
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Fri Sep 18 11:07:29 2026 +0200

        toolkit: Use TableControl_Impl directly instead of ITableModelListener

that was already preparing for that change.

No change in behavior intended.

Now that there is no more TableControl that owns it,
it makes sense to rename TableControl_Impl to TableControl.
That will happen in a separate upcoming commit, to keep
the diff clearer/more manageable.

Change-Id: I82c89866e90f4d29964626d483872e0eafbc4dbe
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211161
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-09-19 16:18:34 +02:00
Andrea Gelmini aeac8192da Fix typos
Change-Id: I5f686165b8e4f971faa762e052c5b85bef94fee7

Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209794
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-26 09:17:29 +02:00
ApurvR20 855b66846b tdf#163738 : use insert function instead of for loop
Change-Id: Id107b224c7182e3706f5265e91a1c35d956d9848
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208284
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Tested-by: Jenkins
2026-07-23 11:11:56 +02:00
Michael Weghorn 7b68bd0779 vcl: Pass Window::Draw outdev param by ref
This makes clear that it is always non-null.

Change-Id: Id29efa073dae8ce01657ec28493d5f63a564d0ab
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205350
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-05-20 00:38:47 +02:00
Michael Weghorn d1245f5ca9 vcl: Pass Window::PaintToDevice outdev param by ref
This makes clear that this is always non-null.

Change-Id: I4452fa69ac5869b1654771b8a38781e57fe89194
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205348
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-05-20 00:38:26 +02:00
Khaled Hosny 6e73dd431b tdf#152206: Add FontVariations UNO service
Expose font variation axis info to scripting and extensions via a new
com.sun.star.awt.FontVariations service. From Basic:

  oInfo = createUnoService("com.sun.star.awt.FontVariations")
  aAxes = oInfo.getFontVariationAxes("Reem Kufi")

The intent is to allow extensions to build a UI for setting font
variations, by querying the axes for an arbitrary font family and then
setting CharFontVariations property.

Change-Id: I4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205070
Reviewed-by: Khaled Hosny <khaled@libreoffice.org>
Tested-by: Jenkins
2026-05-11 23:20:46 +02:00
Robert Marcano 2d20c7f496 tdf#143148 Use pragma once instead of include guards
Change-Id: Iad316b8ca0f443c545b341c62ab30bbe22fca380
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203250
Tested-by: Jenkins
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2026-04-07 08:37:24 +02:00
Andrea Gelmini ac3f25a2b2 Fix typo "then"->"than" + "its" -> "it's"
Change-Id: I3b258d33b9b18d3ea3ed1d9f30c821798802ce70
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/202918
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-03-29 09:49:42 +02:00
Noel Grandin 6ead4fad33 Fraction->double in vcl::Window
Change-Id: I5628be6ae9f3c37c6b96dbfa8c029bffa51dc471
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/202311
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2026-03-22 20:20:15 +01:00
Michael Weghorn 5159ca63d3 toolkit: Use GetSystemClipboard() in VCLXToolkit
... instead of manually calling the SystemClipboard
service ctor.

Change-Id: Ic0b2943d7b06199303d34ea46c6863b8165aca6b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/200655
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-02-28 16:31:44 +01:00
Swarnadeep Paul 42d6a8c3ab tdf#114441 Replace sal_uLong in svx
These were all comments removed for consistency.

Change-Id: I9a95f22959ac7a969662d748327485ec5773899d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/199921
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Tested-by: Jenkins
2026-02-25 18:45:54 +01:00
Gabor Kelemen 94d987edc2 tdf#146619 Use more forward declarations in include/toolkit
Change-Id: I46b4f8c398662b2826f7e4bf90f43750e3569667
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198240
Reviewed-by: Gabor Kelemen <gabor.kelemen@collabora.com>
Tested-by: Jenkins
2026-02-07 00:41:15 +01:00
Gabor Kelemen f8dad0daf9 tdf#146619 Use more forward declarations in include/vcl/svapp.hxx
this was skipped in previous runs, since it contains some code behind #if

After inspecting these, it seems like the removals should not cause trouble.

Change-Id: If1e3e3c7c0fc14ed6e8b51174a0e7f1220fdbc8b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/197496
Tested-by: Jenkins
Reviewed-by: Gabor Kelemen <gabor.kelemen@collabora.com>
2026-01-25 13:31:57 +01:00
Gabor Kelemen 49cb3077fb tdf#146619 Use more forward declarations in include/vcl/outdev.hxx
these were skipped in previous runs, since they contain some code behind #if

After inspecting these, it seems like the removals should not cause trouble.

This also shaves off some 140M input

Change-Id: Ie1f57174dd6fec3ba5b0b91eb0688acdc1a8143d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/197494
Tested-by: Jenkins
Reviewed-by: Gabor Kelemen <gabor.kelemen@collabora.com>
2026-01-23 21:27:08 +01:00
Christopher Sherlock e3ea978616 vcl: remove OutputDevice::DrawBitmapEx()
This also streamlines DrawBitmapWallpaper()

Change-Id: I694667147319ba9d235348068ed8fc811447fae5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190898
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2025-11-11 07:16:00 +01:00
Noel Grandin 6d0e5ddede remove BitmapEx
all use-sites have been converted to Bitmap

Change-Id: I1a8842217a266eef100bd387ab013b004e532256
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190618
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2025-09-05 19:45:45 +02:00
Noel Grandin e957f0dfcb BitmapEx->Bitmap in VCLXBitmap
now that Bitmap supports transparency

Change-Id: I526297240f6192d3ea8665a7ce6873f05c8c1363
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190465
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-09-01 13:51:50 +02:00
Noel Grandin e6211a4b3b BitmapEx->Bitmap in various
now that Bitmap supports transparency

Change-Id: If946687832cf30db70db9749e5aeed38ab1490c9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190149
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-08-25 12:59:18 +02:00
Caolán McNamara 7841de4bf7 drop outdated coverity directives
Change-Id: Icbe3f0bb9433cfcf08efd28bc4eab1ba82efab74
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189850
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-08-18 12:40:58 +02:00
Tomaž Vajngerl c1c8c1352b toolkit: use frozen::unordered_map to convert component types
Change-Id: Ib07104a594269ea8017ae7e8e27120c36a289718
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189321
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2025-08-18 08:45:58 +02:00
Michael Weghorn fb80e10994 toolkit: Use OUString, range-based for
Change-Id: I6a731cbef76be5f23e2c1ddc43b0acf9fff1212a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189659
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-08-15 11:01:31 +02:00
Michael Weghorn 9effdf9884 toolkit: Simplify lcl_convertMessageBoxType
The bool return value is unused.
Drop it and use a string return value instead of an out
param.

Change-Id: Icd13b882cbeec25029d571988cc722e396361aab
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189658
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2025-08-15 11:01:26 +02:00
Tomaž Vajngerl 3e6b8ab487 simplify - no need to explicitly cast to u16string_view
Change-Id: I2c187a1a01fa3e570135eb76cfbd20d03bafdcbd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189163
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Jenkins
2025-08-09 09:20:50 +02:00
Caolán McNamara b1ec05b4b1 cid#1662031 Variable copied when it could be moved
and

cid#1660225 Variable copied when it could be moved
cid#1660211 Variable copied when it could be moved
cid#1660185 Variable copied when it could be moved
cid#1660173 Variable copied when it could be moved
cid#1660168 Variable copied when it could be moved
cid#1660166 Variable copied when it could be moved
cid#1660165 Variable copied when it could be moved
cid#1660163 Variable copied when it could be moved
cid#1660152 Variable copied when it could be moved
cid#1660149 Variable copied when it could be moved
cid#1660147 Variable copied when it could be moved
cid#1660145 Variable copied when it could be moved
cid#1660142 Variable copied when it could be moved
cid#1660140 Variable copied when it could be moved
cid#1660137 Variable copied when it could be moved
cid#1660136 Variable copied when it could be moved
cid#1660135 Variable copied when it could be moved
cid#1660128 Variable copied when it could be moved
cid#1660124 Variable copied when it could be moved
cid#1660122 Variable copied when it could be moved
cid#1660117 Variable copied when it could be moved
cid#1660114 Variable copied when it could be moved
cid#1660110 Variable copied when it could be moved
cid#1660109 Variable copied when it could be moved
cid#1660105 Variable copied when it could be moved
cid#1660104 Variable copied when it could be moved
cid#1660102 Variable copied when it could be moved
cid#1660100 Variable copied when it could be moved
cid#1660098 Variable copied when it could be moved
cid#1660080 Variable copied when it could be moved
cid#1660079 Variable copied when it could be moved
cid#1660078 Variable copied when it could be moved
cid#1660075 Variable copied when it could be moved
cid#1660071 Variable copied when it could be moved
cid#1660070 Variable copied when it could be moved
cid#1660064 Variable copied when it could be moved
cid#1660063 Variable copied when it could be moved
cid#1660060 Variable copied when it could be moved
cid#1660058 Variable copied when it could be moved
cid#1660053 Variable copied when it could be moved
cid#1660050 Variable copied when it could be moved
cid#1660049 Variable copied when it could be moved
cid#1660046 Variable copied when it could be moved
cid#1660042 Variable copied when it could be moved
cid#1660028 Variable copied when it could be moved
cid#1660023 Variable copied when it could be moved
cid#1660022 Variable copied when it could be moved
cid#1660021 Variable copied when it could be moved
cid#1660020 Variable copied when it could be moved
cid#1660017 Variable copied when it could be moved
cid#1660013 Variable copied when it could be moved
cid#1660005 Variable copied when it could be moved
cid#1660003 Variable copied when it could be moved
cid#1659999 Variable copied when it could be moved
cid#1659998 Variable copied when it could be moved
cid#1659995 Variable copied when it could be moved
cid#1659993 Variable copied when it could be moved
cid#1659989 Variable copied when it could be moved
cid#1659988 Variable copied when it could be moved

Change-Id: I2a30c8a2ac8785050d49b98635b0b406535b185a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189056
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2025-08-07 20:51:26 +02:00
Noel Grandin 2ff6d0a32b BitmapEx->Bitmap in VCLXBitmap
now that Bitmap can handle transparency

Change-Id: Ib210be6432741b20659aba63d081715cb9110924
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188970
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2025-08-05 22:23:31 +02:00
Noel Grandin 0a4405f9aa BitmapEx->Bitmap in VCLUnoHelper::CreateBitmap
now that Bitmap can handle transparency

Change-Id: I1de94ef39e00d16b052573ee323886953b574570
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188968
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-08-05 21:07:56 +02:00
Noel Grandin 62d1a50659 BitmapEx->Bitmap in Image
Now that Bitmap can handle transparency

Change-Id: Ic97b5fea315edfb8a5c9c5adb306a8b4f1c97f5b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188822
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-08-02 18:34:08 +02:00
Noel Grandin 4515d4ced5 BitmapEx->Bitmap in ORoadmap
now that Bitmap can handle transparency

Change-Id: I163ad1a2e5a6fa2598e17b20bbd44a1aab61e261
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188665
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-07-31 20:15:05 +02:00
Noel Grandin e435c0749b drop OutputDevice::GetBitmapEx in favour of returning Bitmap
as part of the project of removing BitmapEx in favour of Bitmap, now that we can store RGBA data in Bitmap.

This mostly just moves the Bitmap->BitmapEx from inside OutputDevice to the various call sites,
from where I can make further improvements.

Change-Id: Id5366c1eb5ebca98fee7c974737552f4a09a5c2f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188341
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-07-25 22:34:31 +02:00
Michael Weghorn fcee763123 vcl dnd: Consolidate drop target retrieval, avoid casting
Return a reference to the concrete DNDListenerContainer
instance instead of one to the abstract
css::datatransfer::dnd::XDropTarget interface in
Window::GetDropTarget.

This allows to drop Window::GetDragGestureRecognizer
which was returning a reference to the
css::datatransfer::dnd::XDragGestureRecognizer interface
for the exact same object, so can now use
Window::GetDropTarget directly instead, which drops the
need to query for the other interface.

DNDEventDispatcher was already assuming that a
DNDListenerContainer object was returned and
casting to that, which is no longer needed now.

Change-Id: Ib7ea7cdb0650ba2410b112774f475b4799901538
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188271
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2025-07-24 15:45:01 +02:00
Michael Weghorn 842f0019fa vcl a11y: Return OAccessible in vcl::Window::GetAccessible
By now, the accessible is known to always be an OAccessible,
so return that more specific type instead of a Reference to
the abstract XAccessible interface.

Change-Id: I60f6b2d6465abfcb04d4ee7d3a26bce69fccded3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188182
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2025-07-23 08:00:41 +02:00
Noel Grandin d416ed02fe rather return optional data via an optional param
instead of a combination data of a bool param and an optional
data in a struct

Change-Id: I67338b55fc38bbe053e1e13dea92f6c76389663b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187773
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2025-07-12 20:34:10 +02:00
Michael Weghorn 7c351954ce a11y: Drop a11y logic from VCLXWindow
While accessibility logic for vcl::Window and subclasses
was previously split between vcl::Window and
VCLXWindow, vcl::Window now takes care of everything
to create an XAccessible without involving VCLXWindow
now after

    Change-Id: I25de1ab0f8b47b12346abd01bad05cb54fb75f52
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Mon May 26 09:45:11 2025 +0200

        vcl a11y: Let vcl::Window create accessible directly, drop a11y factory

(and previous changes for vcl::Window subclasses).

Therefore, drop the remaining a11y logic from
VCLXWindow.

No longer let it implement the XAccessible and
XEventListener interfaces.
The latter was only implemented to clear the
reference to the accessible context in
VCLXWindow::disposing, but VCLXWindow now no longer
holds such a reference with this commit in place.

Drop calls to (the now nonexistent) VCLXWindow::disposing
in subclasses (and drop overrides now only calling
base class methods from another subclass).

vcl::Window::dispose already takes care of disposing the
window's XAccessible, so disposing the XAccessibleContext
in VCLXWindow::dispose is no more needed.
(VCLXAccessibleComponent implements both, the XAccessible
and XAccessibleContext interfaces.)

Change-Id: Ided896abdc84cfbbf883621020169699a37cf6df
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185844
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2025-06-19 21:31:57 +02:00
Michael Weghorn f8b3427caa vcl a11y: Let vcl::Window create accessible directly, drop a11y factory
This is basically the vcl::Window base class equivalent of

    commit f82aac71ed
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Thu May 22 12:30:12 2025 +0200

        vcl a11y: Let PushButton create its accessible directly

, see that commit's message for more background and tips on
what to do if this commit causes any issues.

Now that Window::CreateAccessible and all overrides in
subclasses no longer make use of the VCLXWindow for
the XAccessible, VCLXWindow::CreateAccessibleContext
should no longer be called. Add an assert that would
trigger if that method was still called somehow.

Drop the now unused AccessibleFactory.

Further cleanup will be done in separate commits.

Java a11y tests that were previously relying on the
implementation detail that the XAccessible for many
vcl::Window subclasses was their VCLXWindow have been
adjusted in previous commit

    Change-Id: Id96a2104d87c998b0bdcbce36451499484d81272
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Wed Jun 18 17:49:48 2025 +0200

        java a11y tests: Don't rely on XWindow being XAccessible

Change-Id: I25de1ab0f8b47b12346abd01bad05cb54fb75f52
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185843
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-06-19 19:37:45 +02:00
Michael Weghorn d1a25112bb java a11y tests: Don't rely on XWindow being XAccessible
In order to retrieve the XAccessible associated with
a window in AccessibilityTools.getAccessibleObject,
no longer directly query the XWindow for the XAccessible
interface, but instead (temporarily) introduce and use a
new "XAccessible" property for the deprecated XVclWindowPeer
interface (which "gives access to the VCL window implementation")
in VCLXWindow to get the XAccessible for the underlying
vcl::Window.

This ensures this will continue to work when the VCLXWindow
no longer is the accessible for its associated vcl::Window,
s. upcoming commit

    Change-Id: I25de1ab0f8b47b12346abd01bad05cb54fb75f52
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Mon May 26 09:45:11 2025 +0200

        vcl a11y: Let vcl::Window create accessible directly, drop a11y factory

Once all Java a11y tests have been ported to C++, this
property will no longer be needed, because direct access to
the vcl::Window will be possible then, see e.g.

    commit d3262b72f6
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Mon May 26 09:23:29 2025 +0200

        a11y tests: Don't rely on XWindow being window's XAccessible

, but Java tests rely on the information being available
somehow via UNO API.

Change-Id: Id96a2104d87c998b0bdcbce36451499484d81272
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186680
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2025-06-19 19:37:12 +02:00
Michael Weghorn 6c211387c2 toolkit: Flatten VCLXWindow::getProperty
Return early in case GetWindow() returns null, which
allows to drop one indentation level.

Change-Id: Idfd4cc96f2a1c25d2f266f1f4ed20f23147609e4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186614
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2025-06-18 08:07:54 +02:00
Noel Grandin a88b21e3ac Revert "make AsyncCallback a little safer"
This reverts commit 4c15b15a20.

Reason for revert: Various code apparently relies on letting the AsyncCallback object destruct before the callback is handled.

Change-Id: I11b2ad872a7672199350d2333f8c9bbc7e78c9d9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186611
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-06-17 20:58:44 +02:00
Noel Grandin 4c15b15a20 make AsyncCallback a little safer
(1) remove the callback if the object destructs.
(2) assert if addCallback() is not going to do anything, so
   we dont get subtle failure modes

Change-Id: Ibc4a8634c237858eb6add5e1db8ac1ca982590f2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186510
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-06-15 13:43:39 +02:00
Michael Weghorn a57c6e99c9 a11y: Drop unused accessiblefactory.hxx includes
Change-Id: I5b605a32a62dfd17318db5232c59282a6ae1cb7e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185841
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-05-28 18:02:30 +02:00
Michael Weghorn 3cb6bae61d vcl a11y: Let Edit and subclasses create their accessible directly
This is the equivalent of

    commit f82aac71ed
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Thu May 22 12:30:12 2025 +0200

        vcl a11y: Let PushButton create its accessible directly

for Edit subclasses, see that commit's message for more background.

Since all of DateField, TimeField, MultiLineEdit and VclMultiLineEdit
are (not necessarily direct) subclasses of Edit and none of their
subclasses further up the class hierarchy than Edit override
Edit::CreateAccessible, there is no need for them to do so either,
but they can use the Edit implementation. Therefore, just drop the
corresponding methods of their VCLXWindow subclasses that were
calling `AccessibleFactory::createAccessibleContext(Edit* pEdit)`
explicitly.

(Before

    Change-Id: Ifb7452de3e011a73aa798d1ea0302bbbc74ed7d2
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Thu May 22 20:13:09 2025 +0200

        vcl a11y: Set DateField/TimeField window type in ctor

, two of them had some additional extra logic that might
have required them to override the base class implementation.)

Since VCLXAccessibleEdit implements the XAccessible interface
now, its SVTXAccessibleNumericField subclass no longer needs
to implement that directly.

Change-Id: I5fe96a9061afb9f51e494cdd41a27636d0aa4d74
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185838
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2025-05-28 09:20:47 +02:00
Michael Weghorn 344737c3ca vcl a11y: Set DateField/TimeField window type in ctor
So far, a DateField (or subclass) would be created
with WindowType::SPINFIELD due to its SpinField
base class (and not passing any explicit type to
the base class ctor).

However, when an accessible context would later be
retrieved, VCLXDateField::CreateAccessibleContext
would set WindowType::DATEFIELD on the control
before creating an XAccessibleContext via the
AccessibleFactory.

Changing the window type later that way seems odd,
and implies that the window type would be different
depending on whether or not accessibility is active.

Change that to set the DATEFIELD window type in the
ctor already.

The same applies for the TimeField and
WindowType::TIMEFIELD.

Should that have any unwanted side-effect, then
it might be that some code path currently only handling
the WindowType::SPINFIELD type might need to be
adjusted to handle WindowType::DATEFIELD and/or
WindowType::TIMEFIELD the same way.

Change-Id: Ifb7452de3e011a73aa798d1ea0302bbbc74ed7d2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185837
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-05-28 09:20:40 +02:00
Michael Weghorn 64fd4b55a9 vcl a11y: Let FormattedField create its accessible directly
This is the FormattedField equivalent of

    commit f82aac71ed
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Thu May 22 12:30:12 2025 +0200

        vcl a11y: Let PushButton create its accessible directly

, see that commit's message for more background.

Change-Id: I81e196680cc976b73ab029e595713e616ea90bee
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185692
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2025-05-28 09:20:24 +02:00
Michael Weghorn 2bccfbd9ee toolkit: Drop VCLXHeaderBar
Since

    Change-Id: I26249401d9bcde81908553cc01521ac0ead338dd
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Thu May 22 19:37:35 2025 +0200

        vcl a11y: Let HeaderBar create its accessible directly

, the class doesn't add any functionality to its VCLXWindow
base class, so drop it altogether and just use plain
VCLXWindow instead.

Change-Id: I288103d2681a81c3828e311c9b12b7aee1ec1f85
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185691
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-05-28 09:20:18 +02:00
Michael Weghorn 63feda6b8d vcl a11y: Let HeaderBar create its accessible directly
This is basically the HeaderBar equivalent of

    commit f82aac71ed
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Thu May 22 12:30:12 2025 +0200

        vcl a11y: Let PushButton create its accessible directly

, see that commit's message for more background.

In this case of HeaderBar, there is already an existing
HeaderBar::CreateAccessible method that was handling
the case where a custom function to create the XAccessible
was set and the default vcl::Window logic going via the
VCLXWindow/AccessibleFactory was only triggered otherwise.
Handle that case also directly in there instead.

Change-Id: I26249401d9bcde81908553cc01521ac0ead338dd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185690
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-05-28 09:20:12 +02:00
Michael Weghorn 942838c81f toolkit: Drop VCLXToolBox
Since

    Change-Id: Ib6a6746f7fcbcacddc4cc05a00cf63fe04407f80
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Thu May 22 19:21:33 2025 +0200

        vcl a11y: Let ToolBox create its accessible directly

, the class doesn't add any functionality to its VCLXWindow
base class, so drop it altogether and just use plain
VCLXWindow instead.

Change-Id: I2ef8efa06dc04e5e9b18dc743575666d41ce5648
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185689
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2025-05-28 09:20:06 +02:00
Michael Weghorn 05591f072f vcl a11y: Let ToolBox create its accessible directly
This is the ToolBox equivalent of

    commit f82aac71ed
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Thu May 22 12:30:12 2025 +0200

        vcl a11y: Let PushButton create its accessible directly

, see that commit's message for more background.

Change-Id: Ib6a6746f7fcbcacddc4cc05a00cf63fe04407f80
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185688
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-05-28 09:19:59 +02:00
Michael Weghorn 8ff115110e vcl a11y: Let ComboBox create its accessible directly
This is the ComboBox equivalent of

    Change-Id: If6fa82008f3347c4f95538ab181eaa50c7d9636b
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Thu May 22 12:30:12 2025 +0200

        vcl a11y: Let PushButton create its accessible directly

, see that commit's message for more background.

Change-Id: I8ae7a8a53fa04088ab9130d0905498eb45ad46ac
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185687
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-05-26 07:33:43 +02:00
Michael Weghorn 01f3de9b22 vcl a11y: Let ScrollBar create its accessible directly
This is the ScrollBar equivalent of

    Change-Id: If6fa82008f3347c4f95538ab181eaa50c7d9636b
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Thu May 22 12:30:12 2025 +0200

        vcl a11y: Let PushButton create its accessible directly

, see that commit's message for more background.

Change-Id: I0d8759b699fea20ccf8bea9ec897879f6e3e07b1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185686
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-05-26 07:33:36 +02:00