summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/windows/qwindowsaccessibility.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Add support for IAccessible2 on WindowsJan-Arve Saether2012-03-131-1525/+0
| | | | | Change-Id: Ia955ab46dc5037ed1c74e0acc525e98b02552c97 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Fix off by one in updateAccessibility.Frederik Gladhorn2012-03-071-8/+6
| | | | | | | | Now that indexOfChild is 0-based, the update notifications should follow. Change-Id: I5e0303516d503d5e23061df5894b2428c00da2ce Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Fix get_accFocus() to return CHILDID_SELF when it returns itself.Jan-Arve Saether2012-03-021-7/+41
| | | | | | | | | | This means that the AT client knows it should not have to ask for the focus child anymore. Previously, some clients (NVDA) kept on asking infinitely because of this. Change-Id: Ia2bd2e1088a899f7d1a0c9189024accdacfd693b Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Improve debugging in the windows accessibility bridge.Jan-Arve Saether2012-03-021-29/+43
| | | | | | | | set QT_DEBUG_ACCESSIBILITY=(1|0) to turn logging on or off Change-Id: Ibd5b77699decf0cf02bc6b6cc656fa237de29124 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Fix compilation with MinGWJonathan Liu2012-02-151-0/+2
| | | | | | | | | | | | | Some headers and constants are available in MinGW-w64 that are not available in the official MinGW. STATE_SYSTEM_HASPOPUP and STATE_SYSTEM_PROTECTED constants are defined if they are not already defined by including oleacc.h. _CrtSetReportMode is not used and crtdbg.h is not included when using official MinGW as crtdbg.h is missing from official MinGW. Change-Id: Ie7f3f3726a1663d0fdeb6ee17b86873ae3f61860 Reviewed-by: Jonathan Liu <net147@gmail.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Move all usages of Relation enum values to QAccessible::relations()Jan-Arve Saether2012-02-101-0/+23
| | | | | | | | Next step is to remove navigate(), but that has to be done in qtdeclarative first. Change-Id: I01ea1386c092446be04cc19d0f70adf53f094adc Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Use Q_OS_WINCE instead of Q_WS_WINCEAndreas Holzammer2012-02-071-4/+4
| | | | | | | | | Window system defines have been deprecated, so use Q_OS_WINCE instead. Change-Id: I52059d0f854fe783ac20610ab248800c3e1e827c Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Remove QAccessible::FocusChild, add focusChild()Jan-Arve Saether2012-02-061-22/+11
| | | | | | | | Also cleanup (reduce) all implementations of navigate() in order to make the final removal of navigate smoother. Change-Id: I2c216db8f5b2e40afcce8f859fc775053adc2fe3 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Use events for accessibility updates.Frederik Gladhorn2012-01-311-7/+7
| | | | | | | | | | | | | The problem with the old updates is that it was impossible to send details about the update. For the Linux implementation to work properly with AT-SPI I need to know which state changed (currently I only get a generic "state changed" event) or which part of the text was changed for long texts (imagine a word processor sending updates). This also gives us more options when updating with events generated from not QObject based objects. Change-Id: If0b6c83c523092565eb48e79f3f6de5a1b905ea8 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Remove "All rights reserved" line from license headers.Jason McDonald2012-01-301-1/+1
| | | | | | | | | | As in the past, to avoid rewriting various autotests that contain line-number information, an extra blank line has been inserted at the end of the license text to ensure that this commit does not change the total number of lines in the license header. Change-Id: I311e001373776812699d6efc045b5f742890c689 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Update contact information in license headers.Jason McDonald2012-01-231-1/+1
| | | | | | | Replace Nokia contact email address with Qt Project website. Change-Id: I431bbbf76d7c27d8b502f87947675c116994c415 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* fix case of included windows headersMark Brand2012-01-191-1/+1
| | | | | | | | Allows cross-building on unix. Change-Id: If389138c2d3bf5e72c62c85d054785ac9232f158 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Remove all references to QAccessible::SelfJan-Arve Saether2012-01-191-2/+2
| | | | | | | | | | | | | navigate() to Self does not make any sense (its basically a clone). It seems that its not that useful to return Self from relationTo(), since it was only one place where relationTo() was called where it checked for the Self flag. This was in the windows bridge, and we could easily work around that. If it really turns out that Self is useful, we can always add that enum value back later. Change-Id: I9ebb60da059a843de5e6fcab9e815b919afc6f2a Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Clean up and extend QAccessible::State.Frederik Gladhorn2012-01-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | The state should contain useful and clear information. Some of the old enum/bitfield members were not really clear. Make them follow Qt terminology and shift the burden of interpreting them to the bridge. Apart from the previous commit changing from enum to bitfield, these flags have changed names: unavailable -> disabled mixed -> checkStateMixed protected -> passwordEdit (in the last commit) floating is completely removed, even MSAA documentation states it is unsupported. Some new states have been added. Documentation added. Change-Id: I152256e77a061f28ee5780f527524c80a2c7e333 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Remove all references to QAccessible::(Up|Down|Left|Right)Jan-Arve Saether2012-01-121-2/+8
| | | | | | | | | | | | It is now the resonsibility of the bridge to support this (by querying for QAccessibleInterface::rect()) The windows bridge (currently the only bridge in need of this) has already been updated to reflect this in commit 7dca461620ee6d8cce3a74acf2e1530d4497bff9 Change-Id: Ief1339ab6edc118e2d47e3875e09fa885db65c2f Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Make QAccessibleInterface::indexOfChild() 0-based.Frederik Gladhorn2012-01-111-2/+2
| | | | | | | Makes the code nicer and more consistent with the rest of the world. Change-Id: I5ba0ee39f5b0afd1a079a3cea9990d123955ed3f Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Accessiblity State as bit field.Frederik Gladhorn2012-01-101-3/+57
| | | | | | | | | | | We would like to add more flags that will be over the 32 bit boundary. On Windows enums don't seem to digest values >32 bit. This patch changes the state flags to be a bit field instead. The windows part of the patch was written by Jan-Arve Sæther. Change-Id: I2d1d87807f920ce4d4a5c7bfea8b1122ed44eb08 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Remove unused function.Frederik Gladhorn2012-01-091-100/+0
| | | | | | | Instead this code has been ported to qAccessibleRoleString. Change-Id: I41dd83d09cbcf2b0de3eb2fa027f24cf070f22a2 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Remove all references to QAccessible:: {Child|Ancestor|Sibling}Jan-Arve Saether2012-01-061-24/+92
| | | | | | | | | | | These are deprecated in favor of QAccessibleInterface::child() and QAccessibleInterface::parent() QAccessible::Sibling can be done with a combination of those two. This is handled by the bridges, if required. Change-Id: I2e2a6eb2a982e7c9001a393d69f0c5f1ae9c0970 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Windows: Fix compiler warnings in accessibility.Friedemann Kleint2012-01-061-0/+2
| | | | | | Change-Id: Id9ffe1069116f25b89df85337a75dae54b5beec5 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Andriy Golovnya <andriy.golovnya@googlemail.com>
* Update copyright year in license headers.Jason McDonald2012-01-051-1/+1
| | | | | Change-Id: I02f2c620296fcd91d4967d58767ea33fc4e1e7dc Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Use meta object to get string rep of QAccessible::Role.Frederik Gladhorn2012-01-031-76/+1
| | | | | Change-Id: I69320b69ea13ebc594575277e39d30a066df61fd Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Fix regression, make sure hit testing work on windows again.Jan-Arve Saether2011-12-231-19/+31
| | | | | | | | | | The previous code did not make much sense This regressed due to 74c9f9d83f9f5cb934d0b62b468c74df5a3b9a0d Change-Id: Ia4374623257863edca706a1c3d8b565d0c6bd4c1 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Do not crash in the windows accessibility bridgeJan-Arve Saether2011-12-221-1/+1
| | | | | | | | If the object did not have a QAccessibleInterface subclass it would crash in the windows accessibility bridge. Change-Id: I931d69466a5a74a87f1c1c577fb1c918dcc8accf Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Accessibility: childAt returns interfaceFrederik Gladhorn2011-12-191-11/+13
| | | | | | | | | | | | | | | | | | childAt used to return an integer. Return an interface instead. Not requiring a direct child to be returned allows optimizing by bypassing iterating through the hierarchy of accessibles. For QtQuick this is the only sensible way of implementing this. The bridges are still responsible for finding the top-most element. The default implementation in QAccessibleObject is sufficient to return direct children. The implementation in QAccessibleApplication is therfore no longer needed. Change-Id: Id7100dd5bcc3a98de516a7f4a12eaaa41cb46d26 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Don't inherit QAccessible from QWindowsAccessibleJan-Arve Saether2011-12-021-27/+27
| | | | | | | Qualify all references to QAccessible members with QAccessible:: Change-Id: Ia78d8482bbab3d77c9e258a52bc74f8e7c0c7e10 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Change default implementation of window() to just return 0Jan-Arve Saether2011-11-251-2/+17
| | | | | | | | Instead move the traversal up to the ancestors to the bridge. This simplifies the default implementation to just return 0 Change-Id: Ic3ec60851f378587f4a23363aec2039d0e8a08a1 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Remove virtual child integers.Frederik Gladhorn2011-11-231-28/+83
| | | | | | | | | | | | | | This makes the accessibility apis much simpler and less error prone. Disable the itemviews implementation that is in complex widgets. The itemviews will use the new code from itemviews.h/cpp everywhere now. QToolBox was broken before, now at least it simply exposes all its children. The children are the buttons (tabs of the toolbox) and their contents. Change-Id: I45e218f49f02aebbd678ddfe29f94c2a112a2125 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Accessibility: Clean up usage of navigate.Frederik Gladhorn2011-11-211-4/+2
| | | | | | | Prefer to use parent/child functions instead. Change-Id: Ic92165b9439eb750c9d762ddf5dcd2a5ccf0277d Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Mark the most important MSAA functions as "moz: [important]"Jan-Arve Saether2011-10-201-0/+20
| | | | | | | See comment inside commit for explanation. Change-Id: Ifc05d479ac5094f21f8db0390ae21d99eef0dbe1 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Refactor QAccessibleActionInterface.Frederik Gladhorn2011-10-191-17/+32
| | | | | | | Some refinements done by Jan-Arve Sæther. Change-Id: I99195b3c7273316cfa9c46e451924bbcfddd11a9 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Fix QWindowsAccessible::GetWindow()Jan-Arve Saether2011-10-031-18/+4
| | | | | | | | | | Since we added QAI::window() we now have a more reliable way of getting hold of a HWND. Change-Id: I330ecee67f041d5b204ef4bc1401ce4cc76de2b7 Reviewed-on: http://codereview.qt-project.org/5840 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Windows plugin: Fix compilation with MinGW.Friedemann Kleint2011-10-031-1/+2
| | | | | | | Change-Id: I6c522b121fbac31ac5fc60a9125e1565e78d50c0 Reviewed-on: http://codereview.qt-project.org/5890 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Refactor accessibility for Qt5Jan-Arve Saether2011-09-291-0/+1406
* Moved most stuff to gui\accessible * Moved widget-specific stuff to widgets\accessible * Moved platform-specific code to either the bridge plugin (this was already the case) or to the platform plugin. * Added several classes and functions. These have not yet gone through an API review. The plan is to do that in a later commit. Classes: - QPlatformAccessibility - QWindowsAccessibility Functions: - QWindow *QAccessibleInterface::window(); - QPlatformAccessibility *QPlatformIntegration::accessibility() * The bridge code can now either be a plugin or integrated into the platform plugin * Mac accessibility is left out for now. Unix "should still work" (tm). These platforms should be fixed soon. Change-Id: Ib49ffa73b647ee0af90864544c2769440157f562 Reviewed-on: http://codereview.qt-project.org/5330 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com> Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>