summaryrefslogtreecommitdiffstats
path: root/src/gui/accessible/qaccessible.h
Commit message (Collapse)AuthorAgeFilesLines
* Fix compilation of public headers with QT_NO_DEPRECATED definedOlivier Goffart2012-05-021-2/+14
| | | | | | | | | | Put the functions in QT_DEPRECATED_SINCE if possible QPluginLoader::staticInstances is not documented as deprecated, and do not reference any alternative use. So I unmarked it as deprecated. Change-Id: I556c3f3657fb0490dd5543fcc56718fe9bd394e7 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Do not map LayeredPane and Terminal to the wrong MSAA roleJan-Arve Saether2012-04-251-3/+5
| | | | | | | | | | | | | | | | | | | | Microsoft did at some point extend the roles in MSAA with two extra roles (ROLE_SYSTEM_IPADDRESS and ROLE_SYSTEM_OUTLINEBUTTON). These are defined in oleacc.h as: #define ROLE_SYSTEM_IPADDRESS ( 0x3f ) #define ROLE_SYSTEM_OUTLINEBUTTON ( 0x40 ) This means that LayeredPane will map to ROLE_SYSTEM_IPADDRESS and Terminal will map to ROLE_SYSTEM_OUTLINEBUTTON, which is obviously wrong. We now reserve some valuespace for more roles to reduce the likelyness of any collisions in the future. Having the reserved area also serves as a way of indicating the boundary between the "MSAA" enums and other enums. Change-Id: Ic67a1a7200382fed3040e69b3e8856376ba642ac Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Add QDebug operator<< for QAccessibleEventJan-Arve Saether2012-04-241-0/+1
| | | | | | | (Keep it internal) Change-Id: I9e99ccbd16cc595d2aff97a26181e8d8c3d9d7ae Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Deprecate qMemCopy/qMemSet in favour of their stdlib equivilents.Robin Burchell2012-04-111-1/+3
| | | | | | | | | | | | | | | | | | Just like qMalloc/qRealloc/qFree, there is absolutely no reason to wrap these functions just to avoid an include, except to pay for it with worse runtime performance. On OS X, on byte sizes from 50 up to 1000, calling memset directly is 28-15% faster(!) than adding an additional call to qMemSet. The advantage on sizes above that is unmeasurable. For qMemCopy, the benefits are a little more modest: 16-7%. Change-Id: I98aa92bb765aea0448e3f20af42a039b369af0b3 Reviewed-by: Giuseppe D'Angelo <dangelog@gmail.com> Reviewed-by: John Brooks <john.brooks@dereferenced.net> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Remove QAccessibleEvent child parameter.Frederik Gladhorn2012-03-191-16/+18
| | | | | | | | | This makes the api cleaner and generally the child should not be there. It is only sometimes more convenient not to create a QAccessibleInterface instance, so the functionallity is kept. Change-Id: I26018a6d3e0549f4d79856775b4167c5660e229d Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Accessibility: add text update eventsFrederik Gladhorn2012-03-191-4/+143
| | | | | Change-Id: Iece9d100b3f5a379d7d8e29dea67a10d0c918c06 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Make copy and assign private for QAccessibleEvent.Frederik Gladhorn2012-03-181-2/+4
| | | | | | | | | Also make the handling of events in the test pointer based since mac-g++ doesn't seem to like const references the way they were before. Change-Id: I7fe39978d4729b8e586be30978b74aa51ca7cfe6 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Use pointers for QAccessibleEvent.Frederik Gladhorn2012-03-151-2/+2
| | | | | | | | | At least on mac g++ badly wants to copy the event and cannot use the copy ctor. The sensible solution is thus to use pointers. This is in line with QCoreApplication::sendEvent. Change-Id: Icb58852be351ab04ffa17069989d7a07d4b377da Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Update accessibility StateChange by custom event.Frederik Gladhorn2012-03-121-0/+15
| | | | | | | | Subclass QAccessibleEvent to give details what changed in the state change. Change-Id: I9005d311e85a3c8bfa6e062833fa6a8a7dc6a4a4 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* QAccessibleEvent needs a virtual destructor.Frederik Gladhorn2012-03-081-0/+3
| | | | | Change-Id: Ia0cd82c5457d39fe501e7ee6b5468ccb0f62f35a Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Add accessible role Desktop.Frederik Gladhorn2012-03-081-0/+1
| | | | | | | | | Another role that is mostly needed to make Qt based desktops accessible. Would be nice to have for KDE's Plasma in the future. Change-Id: I1d2ce9d55d677f73cc59f0a3646ee5e588c1d948 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com> (cherry picked from commit edc6fae534835a2c72edffb52255fe522a37928f)
* Mark overload of QAccessible::updateAccessibility as deprecated.Frederik Gladhorn2012-03-021-1/+1
| | | | | | | | updateAccessibility(const QAccessibleEvent &event) should be used, updateAccessibility(QObject *object, int child, Event reason) is deprecated. Change-Id: I92b32579ff202681189e9581365d2891e5d1e994 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Minor fixes for RelationFlag.Jan-Arve Saether2012-02-241-4/+4
| | | | | | | | | * Document AllRelations * Assigned new values (starting from 1) for the remaining members of the enum. Change-Id: I55ec197f24ff7d43ff3c0d101edd33b9615f9287 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Remove QAccessibleInterface::relationTo().Jan-Arve Saether2012-02-201-1/+0
| | | | | | | | QAccessibleInterface::relations() replaces both relatedTo() and some of the RelationFlags that navigate() handled before. Change-Id: I4b9d2c28ba3d753efe7cc9bfa0ad68bed3ee02fd Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Remove QAccessibleInterface::navigate()Jan-Arve Saether2012-02-201-1/+0
| | | | | | | This is replaced by parent(), child() and relations() Change-Id: Iabff6ec56176a1ca8465d6480860f6e0174fd134 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Ensure that Qt public headers compile with strict flagsDavid Faure2012-02-171-3/+3
| | | | | | | | | | Those from http://wiki.qt-project.org/Coding_Conventions#Conventions_for_public_header_files (unfortunatey -Wold-style-cast cannot be used due to the glibc macro bswap_16) and many Qt defines that disable casts. Change-Id: I97ac707a101df9819e8c031fa75a31b30e20247f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Move all usages of Relation enum values to QAccessible::relations()Jan-Arve Saether2012-02-101-3/+2
| | | | | | | | 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>
* Remove QAccessible::FocusChild, add focusChild()Jan-Arve Saether2012-02-061-2/+2
| | | | | | | | 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>
* Add accessible role Terminal.Frederik Gladhorn2012-02-061-0/+1
| | | | | | | | | | | | | | Forward ported from Qt 4. This is used to mark the role of VTs, terminal emulators. Needed in order to know about the special editing behavior. In order to make for example KDE's Konsole accessible this is required. reviewed-by: jan-arve sæther <jan-arve.saether@nokia.com> (cherry picked from commit 8ca33c6f1643ab5e89699fbf8b80bfaae108b1e5) Change-Id: Ic7beb2ae2ee70f2c526c7ec5bf982bec7ba9feda Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Use events for accessibility updates.Frederik Gladhorn2012-01-311-1/+27
| | | | | | | | | | | | | 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>
* Remove use of QT_MODULE from libraryGunnar Sletta2012-01-251-1/+0
| | | | | | | | | | These defines were there to aid in the commercial licensing scheme we used long ago, and are no longer needed. Keep a QT_MODULE(x) define so other modules continue compiling. Change-Id: I8fd76cd5270df8f14aee746b6cf32ebf7c23fec7 Reviewed-by: Lars Knoll <lars.knoll@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>
* Rename all our interfaces from com.trolltech to org.qt-projectLars Knoll2012-01-191-1/+1
| | | | | | Change-Id: I6db7211fcf6b24bd75e360645bbb2fdf1ef8a8bc Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com> Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
* Remove all references to QAccessible::SelfJan-Arve Saether2012-01-191-1/+0
| | | | | | | | | | | | | 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>
* Remove all references to QAccessible::(Covers|Covered)Jan-Arve Saether2012-01-191-5/+0
| | | | | | | | These were not used in any bridges, and none of the bridges (MSAA, Cocoa, AT-SPI/IA2) can hardly make use of this information. Change-Id: If3cad6b6c1928535dd932f46c9ec6883a4a19c76 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Clean up and extend QAccessible::State.Frederik Gladhorn2012-01-161-8/+40
| | | | | | | | | | | | | | | | | | | | | | 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 invokeMethod in favor of the recommended virtual_hook()Jan-Arve Saether2012-01-121-14/+2
| | | | | | | | | | We don't remove the Method enum (yet), since there are functions in dependent modules that still refer to it. Unfortunately there is no way we can commit to several repos "atomically". Change-Id: Ia1923dc4bf0751a9ba67727d14da5a2e60bd4e74 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Remove all references to QAccessible::(Up|Down|Left|Right)Jan-Arve Saether2012-01-121-4/+0
| | | | | | | | | | | | 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>
* Remove QAccessibleEventFrederik Gladhorn2012-01-121-14/+0
| | | | | | | It was unused and I don't quite understand its purpose any more. Change-Id: I5c946a1644fd64508cb4aad78320ae96fd935d31 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Improve Accessibility documentation 2.Frederik Gladhorn2012-01-101-2/+2
| | | | | | | More cleanup, make sure links work. Change-Id: If72f9cfc0d44aa1fb261be2aace8ddd457295993 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Accessiblity State as bit field.Frederik Gladhorn2012-01-101-41/+42
| | | | | | | | | | | 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 all references to QAccessible:: {Child|Ancestor|Sibling}Jan-Arve Saether2012-01-061-5/+0
| | | | | | | | | | | 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>
* Remove Cursor functions from invokeMethod.Frederik Gladhorn2012-01-061-3/+1
| | | | | | | | Cursor position is handled by the text interface. This was a binary compatibility hack in Qt 4. Change-Id: I45520e6942a490834f6e9346a4c173300a9bf7a9 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.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-0/+3
| | | | | Change-Id: I69320b69ea13ebc594575277e39d30a066df61fd Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Accessibility: childAt returns interfaceFrederik Gladhorn2011-12-191-1/+1
| | | | | | | | | | | | | | | | | | 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>
* Create a class to contain accessibilty enums.Frederik Gladhorn2011-12-081-13/+32
| | | | | | | | This is needed in order to expose the enums to qml. Do not inherit QAccessible. Change-Id: I220a0ea3add2d790e4fa6e93ce3deda762859e1a Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Accessibility: Add Text::DebugDescriptionMorten Johan Sorvig2011-12-071-0/+1
| | | | | | | | Useful for debugging QML accessibility. Change-Id: I814c64bcc4c6b534666adca5865b1588e4d13f44 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Remove unused enum values.Frederik Gladhorn2011-12-041-3/+1
| | | | | | | | | These were used for foreground/background color. Since we have proper functions for these two now, the hack with invoke_method is no longer needed. Change-Id: I66eb645124caa838adb1ceb41383a2724a45f553 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Accessibility: table2 -> tableFrederik Gladhorn2011-12-021-13/+8
| | | | | | | | Rename the new interface after the old one has been removed. This interface is very close to the IAccessible2 Table2 interface. Change-Id: I8659232189fe0e8307151c743727de425c30ac9a Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Remove action enum.Frederik Gladhorn2011-12-011-17/+0
| | | | | | | | This is a left over from the old way of handling accessibility actions. Change-Id: I1146f3dfec2b842f83a3cdd264e4ebb1013cc517 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Make cell a proper QAccessible2Interface.Frederik Gladhorn2011-12-011-1/+6
| | | | | Change-Id: I9b245037e8448f39ed2cb80d1ef5fb0714173518 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Fix casting. Casting is now done through the virtual interface_cast.Jan-Arve Saether2011-11-301-24/+19
| | | | | | | | | Change interface_cast to return void* to avoid using virtual inheritance. Get rid of the magic Q_ACCESSIBLE_OBJECT macro. Change-Id: I94b824aef53f2ba657d39d406b387c8681d47ee4 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Remove virtual child integers.Frederik Gladhorn2011-11-231-14/+10
| | | | | | | | | | | | | | 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>
* Add debug stream for QAccessibleInterface.Frederik Gladhorn2011-11-211-0/+4
| | | | | Change-Id: I68fddac5a09bbf092c1e38c411d49dfbf640f27d Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Make foreground and backgroundColor proper functions.Frederik Gladhorn2011-10-201-6/+3
| | | | | Change-Id: I93d4355a6c0b6edb1902df6399df7884b25ea744 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Refactor QAccessibleActionInterface.Frederik Gladhorn2011-10-191-5/+0
| | | | | | | Some refinements done by Jan-Arve Sæther. Change-Id: I99195b3c7273316cfa9c46e451924bbcfddd11a9 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
* Small cleanup.Jan-Arve Saether2011-10-031-7/+4
| | | | | | | Change-Id: I8661e28fca2069bf4034f7a9d2b5e1bbde2d542a Reviewed-on: http://codereview.qt-project.org/5843 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
* Remove the remaining traces of QT3_SUPPORTLars Knoll2011-10-031-3/+0
| | | | | | | | | | The only place that now still knows about it is moc, so it can still parse old headers. Change-Id: Iafec080f99c67560974e9ebc0cbfb27d9a4b2d6f Reviewed-on: http://codereview.qt-project.org/5755 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>